+ All Categories
Home > Documents > Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre...

Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre...

Date post: 02-May-2015
Category:
Upload: brizio-adamo
View: 218 times
Download: 2 times
Share this document with a friend
Popular Tags:
62
Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development Iscritto all’Ordine degli Ingegneri di Belluno Community DotNetWork.it E-mail [email protected]
Transcript
Page 1: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Visual Basic 2010 - Le novità del linguaggio

Community Tour… la vendemmia

Belluno – 2 Dicembre 2010

Mario De GhettoMicrosoft MVP – Visual Basic DevelopmentIscritto all’Ordine degli Ingegneri di BellunoCommunity DotNetWork.itE-mail [email protected]

Page 2: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Di cosa parliamo…

• continuazione implicita di linea

• il nuovo tipo BigInteger

• proprietà auto-implementate

• Optional Nullable Parameters

• Collection Initializers

• le novità nella manipolazione degli array

• espressioni lambda multi-linea e Statement Lambda

• covarianza e controvarianza

• WPF e Entity Framework: le novità

Page 3: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Di cosa parliamo…

• continuazione implicita di linea

• il nuovo tipo BigInteger

• proprietà auto-implementate

• Optional Nullable Parameters

• Collection Initializers

• le novità nella manipolazione degli array

• espressioni lambda multi-linea e Statement Lambda

• covarianza e controvarianza

• WPF e Entity Framework: le novità

Page 4: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Continuazione implicita di linea

E’ un cambiamento storico per VB: non occorre più il simbolo “_” per continuare una istruzione nella riga successiva, anche senza utilizzare (“;”) come in

C#!

Esempi: dopo la virgola e dopo il punto …

Page 5: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Continuazione implicita di linea

… dopo la clausola From, dopo una parentesigraffa aperta e dopo la virgola …

Page 6: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Continuazione implicita di linea

… nella decorazione di oggetti …

Page 7: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Continuazione implicita di linea

… in una query LINQ …

Otteniamo un maggiore impatto visivo con le istruzioni LINQ perché sembrano sempre di più delle

normali istruzioni SQL.

Page 8: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Continuazione implicita di linea

… in una espressione di LINQ to XML…

Page 9: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Continuazione implicita di linea

Vale solo in precisi contesti, non ovunque.

Per esempio non funziona con la clausola Handles:

Page 10: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Di cosa parliamo…

• continuazione implicita di linea

• il nuovo tipo BigInteger

• proprietà auto-implementate

• Optional Nullable Parameters

• Collection Initializers

• le novità nella manipolazione degli array

• espressioni lambda multi-linea e Statement Lambda

• covarianza e controvarianza

• WPF e Entity Framework: le novità

Page 11: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Il nuovo tipo BigInteger

I precedenti tipi interi avevano un limite troppo stretto, in particolare quando serviva trattare numeri molto grandi per applicazioni scientifiche o statistiche.

BigInteger dà la possibilità di trattare numeri veramente molto grandi, perché non ha limite superiore né inferiore.

Page 12: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Il nuovo tipo BigInteger

Esempio:

Page 13: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Il nuovo tipo BigInteger

Page 14: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Il nuovo tipo BigInteger

Raddoppiando 1.000.000 di volte il numero 2 ottengo un numero lungo oltre 300.000

cifre!!!

Nota: attenzione alle eccezioni OutOfMemoryException

Page 15: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Il nuovo tipo BigInteger

Altri esempi:

Page 16: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Il nuovo tipo BigInteger

Alcune informazioni e curiosità:

• è definito nel namespace System.Numerics come segue:

• è definito come una struttura (Structure)• è serializzabile• BigInteger esiste già da tempo in Java. La versione definita nel .NET Framework 4.0 ha meno metodi ma pare essere veloce almeno il doppio rispetto alla versione Java.

Page 17: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Di cosa parliamo…

• continuazione implicita di linea

• il nuovo tipo BigInteger

• proprietà auto-implementate

• Optional Nullable Parameters

• Collection Initializers

• le novità nella manipolazione degli array

• espressioni lambda multi-linea e Statement Lambda

• covarianza e controvarianza

• WPF e Entity Framework: le novità

Page 18: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Proprietà auto-implementate

Ora possiamo dichiarare una proprietà così (in C# esiste già):

Equivale a scrivere:

Page 19: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Proprietà auto-implementate

Due eccezioni:

(1) Proprietà a sola lettura si definiscono nel solito modo:

Page 20: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Proprietà auto-implementate

(2) Ridefinizione di una proprietà in una classe derivata

Visual Studio 2010 propone tutto il codice della proprietà

Page 21: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Di cosa parliamo…

• continuazione implicita di linea

• il nuovo tipo BigInteger

• proprietà auto-implementate

• Optional Nullable Parameters

• Collection Initializers

• le novità nella manipolazione degli array

• espressioni lambda multi-linea e Statement Lambda

• covarianza e controvarianza

• WPF e Entity Framework: le novità

Page 22: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Optional Nullable Parameters

VB 2010 supporta argomenti di tipo Nullable(Of T) per parametri opzionali all’interno dei metodi. Ora possiamo scrivere:

Page 23: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Optional Nullable Parameters

Se proviamo lo stesso codice con VS 2008otteniamo un errore:

Page 24: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Di cosa parliamo…

• continuazione implicita di linea

• il nuovo tipo BigInteger

• proprietà auto-implementate

• Optional Nullable Parameters

• Collection Initializers

• le novità nella manipolazione degli array

• espressioni lambda multi-linea e Statement Lambda

• covarianza e controvarianza

• WPF e Entity Framework: le novità

Page 25: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Collection Initializers

E’ finalmente possibile definire e inizializzare una collezione nella stessa istruzione.

Page 26: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Collection Initializers

Dietro le quinte:

Page 27: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Collection Initializers

Funziona anche con le nostre classi personalizzate.Supponiamo di avere una classe di questo tipo:

notare l’uso della nuova caratteristica:

le proprietà auto-implementate

Page 28: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Collection Initializers

Possiamo definire i nostri oggetti di tipo Cliente in questo modo:

Page 29: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Collection Initializers

Possiamo poi istanziare una collezione di questi oggetti di tipo Cliente:

Page 30: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Di cosa parliamo…

• continuazione implicita di linea

• il nuovo tipo BigInteger

• proprietà auto-implementate

• Optional Nullable Parameters

• Collection Initializers

• le novità nella manipolazione degli array

• espressioni lambda multi-linea e Statement Lambda

• covarianza e controvarianza

• WPF e Entity Framework: le novità

Page 31: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Le novità nella manipolazionedegli array

Definizione per inferenza:

Page 32: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Le novità nella manipolazionedegli array

Cosa succede in questo caso?

Se Option Strict On si otterrà un ERRORESe Option Strict Off --> array di tipo Object

Page 33: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Le novità nella manipolazionedegli array

Gli Array literals sono una novità

Permettono di dichiarare allo stesso modo sia array multidimensionalisia jagged array

(matrici irregolari o array di array).

Page 34: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Le novità nella manipolazionedegli array

Un array multidimensionale si dichiara così:

Un jagged array (matrice irregolare) si dichiara così:

Page 35: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Le novità nella manipolazionedegli array

L’accesso a un elemento di un jagged array avviene nello stesso modo in cui siamo già abituati:

La variabile Array3 è un array di intericon la coppia di elementi (1, 2)

Page 36: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Di cosa parliamo…

• continuazione implicita di linea

• il nuovo tipo BigInteger

• proprietà auto-implementate

• Optional Nullable Parameters

• Collection Initializers

• le novità nella manipolazione degli array

• espressioni lambda multi-linea e Statement Lambda

• covarianza e controvarianza

• WPF e Entity Framework: le novità

Page 37: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Le espressioni lambda sono state introdotte con Visual Basic 2008 e ora sono state ulteriormente potenziate.

E’ possibile utilizzare espressioni multilinea (senza “_”) e definire all’interno di un’espressione lambda delle Sub e delle Function con i classici costrutti:

Function … End FunctionSub … End Sub

Espressioni lambda multi-linea

Page 38: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Espressioni lambda multi-linea

Esempio: elenco dei processi attivi con nome che inizia per “D”

In VB 2008:

In VB 2010:

Page 39: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Statement Lambda

Lo scorrimento degli elementi lo possiamo fare con queste istruzioni:

Page 40: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Di cosa parliamo…

• continuazione implicita di linea

• il nuovo tipo BigInteger

• proprietà auto-implementate

• Optional Nullable Parameters

• Collection Initializers

• le novità nella manipolazione degli array

• espressioni lambda multi-linea e Statement Lambda

• covarianza e controvarianza

• WPF e Entity Framework: le novità

Page 41: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Covarianza e Controvarianza

Sono due aspetti della VARIANZA GENERICA e riguardano concetti fortemente legati all’ereditarietà tra classi.

COVARIANZA: si ottiene il risultato previsto dalle classi derivate nell’ambito di una collezione di oggetti di tipo astratto

CONTROVARIANZA: è esattamente il contrario, si ottiene il risultato sfruttando una classe astratta da un oggetto derivato

Page 42: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Covarianza

Per esempio, String eredita da System.Object: ora è possibile assegnare un generico elenco di stringhe

a un Object (con VB 2008 non era possibile).

ATTENZIONE: lo possiamo fare solo attraversoIEnumerable(Of Object)

Vediamo un esempio concreto di codice ...

Page 43: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Covarianza

Page 44: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Controvarianza

In una applicazione Windows Forms, vogliamo definire un metodo comune per la gestione di due

eventi distinti di un pulsante (MouseClick e KeyUp).

Questi eventi sono gestiti da metodi che ricevono rispettivamente oggetti di tipo

MouseEventArgs e KeyEventArgs.

Entrambi ereditano da System.EventArgs.

Page 45: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Controvarianza

In VB 2008 potevamo scrivere:

Page 46: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Controvarianza

In VB 2010 possiamo procedere in modo analogo: prima di tutto definiamo il metodo comune.

Page 47: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Controvarianza

… poi nel gestore dell’evento Load del form aggiungiamo queste due dichiarazioni:

… e abbiamo finito.

Page 48: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Controvarianza

In VB 2010 c’è un altro modo per dichiarare un gestore di evento.

Page 49: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Di cosa parliamo…

• continuazione implicita di linea

• il nuovo tipo BigInteger

• proprietà auto-implementate

• Optional Nullable Parameters

• Collection Initializers

• le novità nella manipolazione degli array

• espressioni lambda multi-linea e Statement Lambda

• covarianza e controvarianza

• WPF e Entity Framework: le novità

Page 50: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

WPF: le novità

Nuovi controlli:

- DataGrid- Calendar- DatePicker

Page 51: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

WPF: le novità

Nuova classe VisualStateManager: permette di definire l’aspetto di un controllo

visuale in base al suo stato, per esempio lo stato premuto di un

pulsante.

(Microsoft Expression Blend)

Page 52: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

WPF: le novità

Supporto ai dispositivi touch screen

Page 53: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

WPF: le novità

Miglioramenti nella graficae nelle animazioni

Miglioramenti nel rendering del testo

Estensione e miglioramento del binding

Page 54: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

WPF: le novità

Nelle applicazioni WPF per browser (WPF Browser Application):

Interoperabilità HTML – XBAP(XBAP = XAML Browser

Application)

Page 55: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

WPF: le novità

WPF sfrutta le funzionalità estese della taskbar di Windows 7

JumpList TaskBarItemInfo

Page 56: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

WPF: le novità

Migliore supporto per SilverLight

Supporto multipiattaforma:- WPF 3.5 / 4.0 e successive

- Silverlight 3 / 4 e successive

… e molto altro!

Page 57: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Entity Framework: le novità

Supporto per le entità POCO (Plain Old CLR Object), cioè entità semplici che non ereditano da EntityObject.

Vantaggi:• serializzazione più facile• possibilità di utilizzo di tali entità anche in altri contesti

Page 58: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Entity Framework: le novità

Database Generation Workflow Manager v1.1

Finora potevamo mappare un database attraverso un modello a oggetti.

Ora possiamo creare prima il modello a oggetti e poi generare il database sulla base del modello

(model first design)

Si trova alla pagina:http://visualstudiogallery.msdn.microsoft.com(“Entity Designer Database Generation Power

Pack”)

Page 59: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Entity Framework: le novità

• Supporto per i template T4 (generazione automatica di codice, anche degli script SQL nell’approccio model first)

• Supporto per le stored procedure migliorato

• Supporto per i tipi complessi

• … e molte altre novità

Page 60: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

Community DotNetWork.it http://www.dotnetwork.it/

(forum, articoli, blog …)

Forum Microsoft (sezione Visual Basic – in italiano)http://social.microsoft.com/Forums/it-it/

categories

Il blog del Team MSDN Italiahttp://blogs.msdn.com/italy/

RISORSE UTILI

Page 61: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.
Page 62: Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development.

© 2010 Microsoft Corporation. All rights reserved. Microsoft, Visual Studio, the Visual Studio logo, and [list other trademarks referenced] are trademarks of the Microsoft group of companies.

 The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond

to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. 

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Recommended