cloud e web con windows azure e asp net mvc 3 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Cloud e Web con Windows AZURE e ASP.NET MVC 3 PowerPoint Presentation
Download Presentation
Cloud e Web con Windows AZURE e ASP.NET MVC 3

Loading in 2 Seconds...

play fullscreen
1 / 104

Cloud e Web con Windows AZURE e ASP.NET MVC 3 - PowerPoint PPT Presentation


  • 97 Views
  • Uploaded on

Facoltà di Ingegneria,Tor Vergata,12 Dicembre 2011. Cloud e Web con Windows AZURE e ASP.NET MVC 3. Speakers: Antimo Musone e Daniele Midi antimo.musone@studentpartner.com daniele.midi@studentpartner.com. About We. Antimo Musone Cloud Development Tour Owner Daniele Midi

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Cloud e Web con Windows AZURE e ASP.NET MVC 3' - andie


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cloud e web con windows azure e asp net mvc 3
Facoltà di Ingegneria,Tor Vergata,12 Dicembre 2011

Cloud e Web con Windows AZURE e ASP.NET MVC 3

Speakers: Antimo Musone e Daniele Midi

antimo.musone@studentpartner.com

daniele.midi@studentpartner.com

about we
About We

Antimo Musone

Cloud Development Tour Owner

Daniele Midi

Web Development Tour Owner

WebTeam

start with cloud
START WITH :Cloud

Antimo Musone

Cloud Development Tour Owner

what is the cloud
What is the cloud?

An approach to computing that’s about internet scale and connecting to a variety of devices and endpoints

why cloud
Why Cloud?
  • Customer Requirements :
  • Efficency, Reliability
  • Scalability , Agility
  • Reduce IT Costs
  • IT Consultants
  • Don’t must be IT warriors
  • Can delegate IT Problems
cloud computing patterns

“Growing Fast“

“On and Off “

Inactivity

Period

Compute

Compute

Average Usage

Usage

Average

Cloud Computing Patterns

Time

Time

  • Successful services needs to grow/scale
  • On & off workloads (e.g. batch job)

“Unpredictable Bursting“

“Predictable Bursting“

Compute

Compute

Average Usage

Average Usage

Time

Time

  • Unexpected/unplanned peak in demand
  • Services with micro seasonality trends
cloud services
Cloud Services

Infrastructure-as-a-Service

“PaaS”

“IaaS”

“SaaS”

Platform-as-a-Service

Software-as-a-Service

consume

build

host

caso cloud il censimento
Caso Cloud: Il Censimento
  • 500 000 connessione in un solo giorno
  • Carico di workload inaspettato
  • In tilt dopo poche ore
  • dal lancio
  • Raddoppiata l’infrastruttura IT in una sola Notte
  • Infrastuttura Cloud : Telecom Italia
windows azure platform

Scalable compute and storage

  • Automated service management
  • Familiar tools, technologies, languages
Windows Azure Platform
  • Relational storage for the cloud
  • Consistent development model
  • Automated database management
  • Connect existing apps to the cloud
  • Connect through network boundaries
  • Easily control authorization to apps
windows azure platform layers
Windows Azure Platform : Layers

Middleware Services

AppFabric Access Control

AppFabric Service Bus

AppFabric Caching

SQL Azure

Windows Azure Storage

Windows Azure CDN

Data Services

“Red Dog” Front End (RDFE)

Compute Services

Windows Azure Networking

Fabric Controller

windows azure platform data centers

North America Region

Europe Region

Asia Pacific Region

Windows Azure Platform Data Centers

N. Europe

N. Central – U.S.

W. Europe

S. Central – U.S.

E. Asia

S.E. Asia

  • 6 datacenters across 3 continents

Simply select your data center of choice when deploying an application

windows azure
Windows Azure

Windows Azure is a foundation of Microsoft’s Cloud Platform for Developers

Operating System for the Cloud

  • Runs applications in the cloud
  • Provides Storage
  • Application Management
  • Developer SDK

Windows Azure ideal for applications needing

  • Scalability
  • Availability
  • Fault Tolerance
slide16
IaaS

Developer

1) Choose image, then createVM for DBMS and configure DBMS

3) Choose image, then create and configure VM(s) for application

4) Install application

5) Configure load

balancer

6) Manage VMs and DBMS (e.g., deploying new OS images in VMs)

2) Provision database, then create tablesand add data

Library

VM Images

Web

Server

Load Balancer

Application

DBMS

Operating

System

Operating

System

Operating

System

VM

VM

slide17
PaaS

Developer

1) Provision database, then create tablesand add data

2) Deploy application

3) Manage Applications

Web

Server

Load Balancer

DBMS

Application

Operating

System

Operating

System

Operating

System

VM

VM

paas azure
PaaS - Azure

Azure Developer

1) Provision database, then create tablesand add data

4) Manage VM & Applications

2) Deploy application

3) Install Other application

Load Balancer

Other Application

Application

Role

Application

DBMS

Operating

System

Operating

System

Operating

System

VM

VM

slide19

Windows Azure in 1 Slide

Developer Portal

RDP

Service Management Service

User Code

StorageCluster

Compute Cluster

Runtime API

VS Tools

MSFT Datacenters

API REST

WA SDK

VM Setup

Cloud VM

Desktop

slide20

Azure Role :

Scale Application

Archetype

azure scale applications layers
Azure Scale Applications: Layers

Intelligent Network : Load Balancer

Stateless Web Application : Web Role

Stateless ‘Worker’ Machines : Worker Role

Async Work

Data /State Tier

Queues

Key/ValueDatastores

Partitioned RDBMS

Shared Filesystem

azure scale applications roles
Azure Scale Applications: Roles

The Internet via HTTP/TCP

Tables

LB

LB

LB

Storage

Queues

Web Site

(ASPX, ASMX, WCF)

Worker Service

Web Site

(ASPX, ASMX, WCF)

Worker Service

Web Role

IIS as Host

Worker Role

Managed Interface Call

Blobs

Windows Azure Data Center

role interface

AzureRole: Application Box

Role is an application container, that run inside Azure VM, through it we can provide Web / Service / Standalone Applications and also offers an interface to manage it

Events

Methods

Status

Role Interface

Role Lifetime

Busy

OnStart

StatusCheck

Requests Routed

Fabric Calls

StatusCheck

Ready

Run

Busy

OnStop

StatusCheck

Stopping

services roles and instances
Services,Roles and Instances

A Service is a packaged application for Azure, composed by one or more role

Roles are defined in a Service Model

  • May define one or more Roles per Service
  • A role definition specifies
    • VM size
    • Communication Endpoints
    • Local storage resources
    • Etc…

At runtime each Role will execute on one or more instances (up to 20 per subscription)

  • A role instance is a set of code, configuration, and local data, deployed in a dedicated VM
worker role patterns
Worker Role Patterns

Queue Polling Worker

  • Poll and Pop Messages within while(true) loop
  • E.g. Map/Reduce pattern, background image processing

Listening Worker Role

  • Create TcpListener or WCF Service Host
  • E.g. Run a .NET SMTP server or WCF Service

External Process Worker Role

  • OnStart or Run method executes Process.Start()
  • Startup Task installs or executes background/foreground process
  • E.g. Run a database server, web server, distributed cache
web role
Web Role

All features of a worker role + IIS 7 or 7.5

MVC 3 , ASP.NET 3.5 SP1 or 4.0 – 64bit

Hosts

  • Webforms or MVC
  • FastCGI applications (e.g. PHP)
  • Multiple Websites

Http(s)

Web/Worker Hybrid

  • Can optionally implement RoleEntryPoint
service definition
Service Definition

Describes the shape of your Windows Azure Service

Defines Roles

Ports, Certificates

Configuration

Startup Tasks

IIS Configuration

service configuration
Service Configuration

Supplies Runtime Values, can be updated any time through Portal or API

Scale

Config Settings

Certificates to use,

VHD

etc.

vm size in windows azure
VM Size in Windows Azure

Windows Azure

  • Supports Various VM Sizes
  • Size set on Role in Service Definition
  • Service can have multiple roles
  • Balance of Performance per node vs. High Availability from multiple nodes
  • Set in Service Model definition All instances of role will be of equal size
windows azure platform portal
Windows Azure Platform Portal

Web Access to :

https://windows.azure.com

Supports multiple service administrators (co-admins)

Enable and connect to Windows Azure instances using Remote Desktop

Built on the Windows Azure Service Management APIs

windows azure storage1
Windows Azure Storage

Storage in the Cloud

  • Scalable, durable, and available
  • Anywhere at anytime access
  • Only pay for what the service uses

Exposed via RESTful Web Services

  • Use from anywhere on the internet
    • User specified globally unique account name
    • Can call these from any HTTP client (Flash, Silverlight )

Various storage abstractions

  • Tables, Blobs, Queues, Drives

100TBper account, have two independent 512 bit shared secret keys

blob storage concepts

Account

Container

  • Blob
  • Pages/
  • Blocks

http://<account>.blob.core.windows.net/<container>/<blobname>

Blob Storage Concepts
  • PIC01.JPG
  • Block/Page
  • images
  • VID1.AVI
  • PIC02.JPG
  • contoso
  • Block/Page
  • videos
blob details
Blob Details

Main Web Service Operations

  • PutBlob,GetBlob
  • DeleteBlob,CopyBlob
  • SnapshotBlob ,LeaseBlob

Associate Metadata with Blob

  • Standard HTTP metadata/headers (Cache-Control, Content-Encoding, Content-Type, etc)
  • Metadata is <name, value> pairs, up to 8KB per blob
  • Either as part of PutBlob or independently

Blob always accessed by name

  • Can include ‘/‘ or other delimeter in name e.g. /<container>/myblobs/blob.jpg
blob containers
Blob Containers

Multiple Containers per Account

  • Special $root container

Blob Container

  • A container holds a set of blobs
  • Set access policies at the container level
  • Associate Metadata with Container
  • List the blobs in a container
    • Including Blob Metadata and MD5
    • NO search/query. i.e. no WHERE MetadataValue = ?

Blobs Throughput

  • Effectively in Partition of 1
  • Target of 60MB/s per Blob
table storage concepts

http://<account>.table.core.windows.net/<tablename>

Account

Table

Entity

Table Storage Concepts

Name =…

Email = …

customers

Name =…

EMailAdd= …

contoso

Photo ID =…

Date =…

photos

Photo ID =…

Date =…

table details
Table Details

It’s not an RDBMSsystem but it’ s a container where we can serialize a collection of objects

Table Operations :

  • Create, Query, Delete
  • Tables can have metadata

Entities Operations :

  • Insert,Delete
  • Update
    • Merge – Partial update
    • Replace – Update entire entity
  • Query
  • Entity Group Transactions
    • Multiple CUD Operations in a single atomic transaction
entity properties
Entity Properties

Entity can have up to 255 properties ( members of class )

  • Up to 1MB per entity

Mandatory Properties for every entity

  • PartitionKey & RowKey (only indexed properties)
  • Uniquely identifies an entity
  • Defines the sort order
  • Timestamp
  • Optimistic Concurrency. Exposed as an HTTP ETag

No fixed schema for other properties

  • No schema stored for a table
  • Properties can be the standard types:
    • String, binary, bool, DateTime, GUID, int, int64, and double
querying

http://<account>.table.core.windows.net/<tablename>

http://antimo.table.core.windows.net/Accounts

Querying

?$filter=Last eq ‘Akers’

slide44

Queue Storage Concepts

http://<account>.queue.core.windows.net/<queuename>

Message

Queue

Account

customer ID order ID http://…

order processing

adventureworks

customer ID order ID http://…

loosely coupled workflow with queue
Loosely Coupled Workflow with Queue

Enables workflow between roles

  • Load work in a queue
    • Producer can forget about message once it is in queue
  • Many workers consume the queue
  • For extreme throughput use multiple queues or multiple work items per message

Input Queue (Work Items)

Queue

Worker Role

Web Role

Worker Role

Web Role

Worker Role

Web Role

Worker Role

queue details
Queue Details

Simple asynchronous dispatch queue

  • No limit to queue length subject to storage limit
  • 8kb per message
  • ListQueues- List queues in account

Queue operations

  • CreateQueue ,DeleteQueue
  • Get/Set Metadata
  • Clear Messages

Message operations

  • PutMessage– Reads message and hides for time period
  • GetMessages – Reads one or more messages and hides them
  • PeekMessages – Reads one or more messages w/o hiding them
  • DeleteMessage – Permanently deletes messages from queue
slide47

SQL AZURE

Database

sql azure database
SQL Azure Database

Familiar SQL Server relational database model delivered as a service

  • Support for existing APIs & tools
  • Built for the cloud with high availability & fault tolerance
  • Easily provision and manage databases across multiple datacenters

SQL Azure provides logical server

  • Gateway server that understands TDS protocol
  • Looks like SQL Server to TDS Client
  • Actual data stored on multiple backend data nodes

Logical optimizations supported

  • Indexes, Query plans etc..

Physical optimizations not supported

  • File Groups, Partitions etc…

Transparently manages physical storage

sql azure1
SQL Azure

SQL Azure Use & Deployment :

Web Portal

(API)

DB Script

SQL Server Managment

SQL Azure

TDS

Custom Tool

sql azure data sync
SQL Azure Data Sync

On-Premises

Cloud

Offline Clients

Geo-replication of SQL Azure data and spanning on-premises with cloud

  • geo-replication
  • sync between SQL Server and SQL Azure

Builds on Sync Framework

  • Sync data between SQL Azure,

SQL Compact and SQL Server

slide52

AZURE

Interoperability

development interoperability
Development & Interoperability

Microsoft & Partners provide development tools & sdk to design/develop Web Apps & Services on Azure Platform

  • Windows Azure SDK & Training Kit : A step by step helper , provide a full developer local environment to develop and test Azure Apps
      • Development Fabric: simulate in local Windows Azure SO
      • Development Storage: : simulate in local Windows Azure Storage

Not only tools for Microsoft Platform but also Windows Azure Team provide tools for Eclipse , Java and many other open source technology

C / C++

Win32

VHD

azure phone 1 2
Azure+ Phone 1 / 2
  • Phone
  • Connection
  • Smart
  • Marketplace

AzureKey Word : Interoperability

Common development tools

  • Azure
  • Services
  • Scalability
azure phone 2 2
Azure+ Phone 2 / 2

Development Tools & Interoperability with all mobile platforms

AzureApps

Common development tools

Azure Datacenters

switch to web
SWITCH TO :Web

Daniele Midi

Web Development Tour Owner

parleremo di
Parleremo di...

Pattern MVC

MVC secondo Microsoft

Gestione dei dati

Web Apps per il Cloud

mvc formulazione originale
MVC: formulazione originale

Model

E’ un pattern architetturale che risolve il problema di disaccopiare la logica di interfaccia da quella di dominio.

Observer

View

Controller

mvc adattato al web model 2
MVC adattato al Web (Model 2)

Model

Model

Skinny Controller,

FatModel and DumbView

(RubyOnRailsdevs)

View

Controller

View

Controller

mvc secondo microsoft
MVC secondo Microsoft

Model

BROWSER

ROUTING ENGINE

3

Controller

4

1

2

5

View

6

controller
Controller

E’ una classe.

Convention-over-configuration: per convenzione, la classe del Controller deve chiamarsi “NomeControllerController”

  • es.: “AnnunciController”

Contiene la logica di interazione per un certo numero di “pagine” logicamente collegate

  • es.: AnnunciController potrebbe:
    • visualizzare l’elenco degli annunci
    • vedere i dettagli di un annuncio
    • aggiungere un nuovo annuncio
action
Action

E’ un metodo di un Controller.

Quando l’utente richiede l’esecuzione di una certa “azione” (visualizzare i dettagli di un annuncio, crearne uno nuovo, …) viene invocata la relativa Action.

La Action esegue della logica applicativa e poi restituisce un oggetto ActionResult, che sarà utilizzato per mostrare i risultati all’utente in una “pagina” (la View).

slide67

HomeController

Index ()

About ()

?

RICHIESTA

AnnunciController

Index ()

Details (intid)

Create ()

routing engine
Routing engine

routes.MapRoute(

"Default",

"{controller}/{action}/{id}",

new {

controller = "Home", action = "Index", id = UrlParameter.Optional

}

);

www.ilmiosito.com/Annunci/Details/12

ROUTING ENGINE

  • www.ilmiosito.com/Annunci/Details/12

Annunci

Details

12

CONTROLLER

ACTION

ID

AnnunciController.Details(12)

model anzi viewmodel
Model (anzi, ViewModel)

Il Model in ASP.NET MVC fa da intermediario fra Controller e View

  • permette di tipizzare i dati scambiati fra Controller e View

Si parla allora di ViewModel:

  • Classi create ad uso e consumo delle View
  • Classi completamente anemiche (solo attributi)
validazione data annotations
Validazione: Data Annotations

Dato che i ViewModel nascono prettamente per tipizzare i dati scambiati con la view, possono essere usate anche per definire le regole di validazionee renderingdella view che le consuma.

In .NET possiamo indicare tali informazioni con dei semplici attributi chiamati Data Annotations:

view loosely typed
ViewLoosely-Typed

ASP.NET MVC < 3: ViewData

  • ACTION

ViewData[“Messaggio”] = “Benvenuto!”;

ViewData[“Cliente”] = newCustomer();

  • VIEW

<%: ViewData[“Messaggio”] %>

<%: (ViewData[“Cliente”] as Cliente).Nome %>

ASP.NET MVC 3:dynamicViewBag + Razor

  • ACTION

ViewBag.Messaggio = “Benvenuto!”;

ViewBag.Cliente = newCustomer();

  • VIEW

@ViewBag.Messaggio

@ViewBag.Cliente.Nome

view strongly typed
ViewStrongly-Typed

Inizia con una dichiarazione @model T

  • es.: una View che mostri i dettagli di una Sessione può iniziare con la dichiarazione @model Sessione

È una normale pagina Web

T è il ViewModel

  • un “modello” della View: raggruppa in una classe i dati che la View deve mostrare e gestire

Vantaggi:

  • Intellisense
  • Controlli alla compilazione
model binder tipi primitivi
ModelBinder: tipi primitivi
  • ACTION del CONTROLLER “Libri”
  • public ActionResultDetails(intid)
model binder oggetti

HTML FORM

  • <formaction=“/Persone/Edit”>
  • <input type=“text” name=“persona.Nome” />
  • <input type=“text” name=“persona.Cognome” />
  • <input type=“text” name=“persona.Eta” />
  • </form>
  • HTML FORM
  • <formaction=“/Persone/Edit”>
  • @Html.TextBoxFor(model => model.Nome)
  • @Html.TextBoxFor(model => model.Cognome)
  • @Html.TextBoxFor(model => model.Eta)
  • </form>
  • CLASSE “PERSONA”
  • public stringNome
  • { get; set; }
  • public stringCognome
  • { get; set; }
  • public intEta
  • { get; set; }
ModelBinder: oggetti
  • ACTION del CONTROLLER “Persone”
  • public ActionResultEdit(Persona persona)
  • MODEL BINDER
statelessness
Statelessness

Load balancer round-robins requests in multi instance roles

Follow web farm best practices

  • Do not store state on individual instances
  • Do not assume subsequent requests will hit the same instance
    • Don’t forget things like dynamically generated images loaded by a page

All instances require the same MachineKey for hashing

  • Fabric uses same machine key for all instances in a role
ajax and windows azure
AJAX and Windows Azure

Client side calls may not return to the same instance the original page came from

AJAX calls must be stateless

  • Don’t generate a page and leave state on the server to call via AJAX later
windows azure session state
Windows Azure Session State

Windows Azure Load Balancer uses round-robin allocation. Session state must persist to client or storage on every request

session[“foo”] = 1;

session[“foo”] = 2;

LB

What is the value of session[“foo”]?

SQL Azure

Windows Azure Storage

solving session state
Solving Session State

Persist to Storage via Session State Provider

  • Windows Azure AppFabric Caching
  • 3rd party distributed cache (e.g. MemCached)
  • SQL Azure
  • Windows Azure Storage
  • Custom

Persist to Client

  • Use cookies  performance issues
windows azure appfabric caching
Windows Azure AppFabric Caching

Using Windows Azure AppFabric Caching as the session store

In-memory, distributed cache

Based on Windows Server AppFabric Caching

Used the Microsoft.Web.DistributedCache assembly found in the SDK

Enable ASP.NET 4 Session Compression

Currently available in AppFabric LABS Portal as CTP

appfabric caching session state
AppFabric Caching Session State

Session state stored using Windows Azure AppFabric Caching and an out-of-the-box session state provider

session[“foo”] = 1;

session[“foo”] = 2;

LB

What is the value of session[“foo”]?

AppFabric Caching

sql server session state
SQL Server Session State

Use SQL Azure as backing store

Round trip to database twice per request

  • Read at request start
  • Write at request end

Enable ASP.NET 4 Session Compression

Scale out across multiple DBs

  • Use session state partitioning
  • http://tinyurl.com/scale-session

SQL Azure is competitive on cost basis

sql azure session state
SQL Azure Session State

Session state stored using SQL Server Session State Provider and session state partitioning

session[“foo”] = 1;

session[“foo”] = 2;

LB

resolve partition

What is the value of session[“foo”]?

SQL Azure

3 x 1GB Databases

windows azure storage providers
Windows Azure Storage Providers

Sample ASP.NET Providers (Session, Membership, Role etc…)

Sample Codehttp://code.msdn.microsoft.com/windowsazuresamples

Uses Blob + Table Storage

Several storage transactions per request

Enable ASP.NET 4 Session Compression

Sample Provider should be treated as a starting point only.

cookies
Cookies

Serialize and Encrypt state into cookie

Possible to implement as Session State Provider

Cookies add significant performance overhead

Cookies sent with every request to domain

  • Use alternative host header to serve images, …
    • http://www.myweb.com
    • http://images.myweb.com
  • Use Windows Azure Storage for static content
slide88
DNS

All services get a *.cloudapp.net address

  • myservicename.cloudapp.net
  • TTL is 10 seconds

Standard approach is to CNAME to *.cloudapp.net

  • Requires two DNS lookups
  • Limited caching due to low TTL

Officially, Windows Azure do not support the use of A records

IP Address for deployment is fixed for lifetime of that slot

file upload
File Upload

ASP.NET File Upload Control uses ASP.NET temporary directory to buffer files

  • Temp path cannot be changed to Local Resource or Windows Azure Drive

Windows Azure Compute roles have 100MB of root disk space

Problems arise

  • Uploading large files (~100MB)
  • Multiple users uploading concurrently (10 users uploading 10MB files)
file upload solutions
File Upload Solutions

Upload direct to Blob storage using Silverlight

  • Provide a Shared Access Signature to Silverlight control
  • Upload blocks direct to storage [http://tinyurl.com/sl-blob]

Use 3rd Party Control

Implement a custom IHttpHandler to receive file and buffer to disk

takeaways
Takeaways

ASP.NET In Windows Azure

  • Broad support for ASP.NET Features
  • Must understand and architect for scale out

Advanced Techniques

  • SaaS Applications using Virtual Path Providers and Host header checking

Challenges

imagine a world
IMAGINE A WORLD...

The most important student technology competition!Let’sjoin to thousands of students from around the world who are stepping up to the challenge of global change. Choose from three team competitions—Software Design, Game Design: Xbox/Windows, and Game Design: Phone or take on the IT Challenge.

overview
OVERVIEW

The structure of the game is entirely up to you!

The goal :Creatively using technology.

The Software Design Competition is all about creating real-world applications that can help make the world a better place.

The IT Challenge is an individual challenge for students around the world who have the nterest, and technical knowledge to design infrastructures.

The Game Design: Phone competition is an excellent opportunity to learn the art of mobile video game design!

inspiration
Inspiration

Need a Litte Inspiration? Get motivated by one of the eight United Nations Millennium Development Goals: the Imagine Cup offers these ambitious challenges as a guide to promote change all around the world. Game “Malaria Wars” based on Windows for Xbox that improves knowledge about Malaria, Software Design project “Brain” which allow children, who had their elementary education interrupted, to continue learning and “G7oups” a Windows Phone 7 based application with a clear goal to improve in a creative way the education of guys

More at Imagine cup.com/Student stories

step up the challenge
STEP UP THE CHALLENGE
  • Check out www.imaginecup.com
  • Form your Team
  • Make new Friends, compete & change the World!
  • Next year you could be on stage @Sidney Finals!!
slide102
STAY TUNED ONSite: www.MICROSOFT.IT/STUDENTIWWW.IMAGINECUP.COMSocial: FB fanpage Iniziative studentiMail to: itauni@microsoft.com
slide103

Vinci con Windows PhonePremi per oltre 20.000 euro complessivi in buoni acquisto spendibili online presso Media World. tra estrazioni bisettimanali e premi finali http://www.microsoft.it/msdn/concorso