Visual Basic Le novità del linguaggio

Slides:



Advertisements
Presentazioni simili
Elaborazione di Franco Grivet Chin
Advertisements

Lezione 8 Anno accademico Titolare corso: Prof. Costanza Torricelli
INTRODUZIONE Il framework.NET. Un po di storia Sin dalla prima versione del sistema operativo Windows (1990 circa), nacque la necessità di far comunicare.
Database MySql.
Commenti C#.
Corrado Cavalli Microsoft .NET MVP
ASP .NET & Web Service: Introduzione
Crea il tuo sito con Web Matrix e il Web Hosting su ASP.NET
Academic Programs Emanuele Arpini Academic Programs Manager
ASP.NET – Data Binding Davide Vernole .NET MVP.
Strumenti di sviluppo Microsoft Campagna incentivi per Software Assurance Opportunità di vendita.
PHP.
Sommario Nelle lezioni precedenti abbiamo introdotto tutti gli elementi che formano un particolare tipo di linguaggio logico, denominato linguaggio predicativo.
Lez. 5 (10/11 - PB)Elementi di Programmazione1 Lezione 5 Procedure Funzioni Passaggio di parametri.
Lez. 5 (11/12- PB)Elementi di Programmazione1 Lezione 5 Procedure Funzioni Passaggio di parametri.
Type Checking (1° parte)
Algoritmi e Programmazione
Generalità Linguaggio e Macchina Astratta
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Università degli Studi di Modena e Reggio Emilia
Analisi e Contromisure di tecniche di Sql Injection
Moduli 1 In Access è possibile automatizzare diverse operazioni mediante l’utilizzo del linguaggio VBA (Visual Basic for Applications). Le istruzioni.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Dott. Nicola Ciraulo CMS Dott. Nicola Ciraulo
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Basi di Dati II Sara Romano
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
PHP – Un’introduzione Linguaggi e Traduttori 2003 Facoltà di Economia
Cos’è un CMS? Content Management System
Il linguaggio ASP Lezione 4 Manipolare i database con ASP Lutilizzo dei FORM per laggiunta dei dati.
Il linguaggio ASP Lezione 3 La connessione al database con ASP
Lezione 2 Programmare in ASP
Elaborazione di Franco Grivet Chin
Introduzione ad ASP.net
DBMS ( Database Management System)
C# LE BASI 2007 Prima lezione - Introduzione.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
JavaScript 3. Commenti in JS Come in altri linguaggi di programmazione anche javascript offre la possibilità di inserire i commenti all'interno delle.
SVILUPPO MODERNO DI APPLICAZIONI PER WINDOWS
Javascript: fondamenti, concetti, modello a oggetti
CampusBlog - Campuswin Sistema Informativo di Ateneo CampusBlog.
Windows Azure Community Tour… la vendemmia Mario De Ghetto Microsoft MVP – Visual Basic Development Iscritto allOrdine degli Ingegneri di Belluno Community.
Verso lo spazio profondo
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
Sintassi base e struttura di un programma
Creare pagine web Xhtlm. Struttura di una pagina.
14/06/2008 – Matteo Baglini Mail: Blog:
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
ASP.NET. …un po’ di ASP ASP (Active Server Pages) è una tecnologia Microsoft che consente di scrivere codice eseguibile (script) lato server, inserendo.
INTRODUZIONE A JAVASCRIPT
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
JavaScript Generalità Cos'è JavaScript?
Pagine ASP parte 3 I data base Stefano Schacherl.
Introduzione a Javascript
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Microsoft Confidential Gabriele Castellani Developer & Platform Evangelism Microsoft.
Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Lez.6 (13/14)Elementi di Programmazione1 Lezione 6 Funzioni Passaggio di parametri.
Laboratorio Informatico
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
XVRC2 Emanuele Ruffaldi Giugno Tre esperimenti con S3D ► Estensioni del Linguaggio ► Pre-Compilatore ► Esecuzione dentro il Java L C J.
Introduzione a Windows Presentation Foundation Vito Arconzo DotNetSide Member
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Transcript della presentazione:

Visual Basic 2010 - Le novità del linguaggio Community Tour… la vendemmia Visual Basic 2010 - Le novità del linguaggio Belluno – 2 Dicembre 2010 Mario De Ghetto Microsoft MVP – Visual Basic Development Iscritto all’Ordine degli Ingegneri di Belluno Community DotNetWork.it E-mail mario@deghetto.it

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à

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à

Esempi: dopo la virgola e dopo il punto … 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 …

Continuazione implicita di linea … dopo la clausola From, dopo una parentesi graffa aperta e dopo la virgola …

… nella decorazione di oggetti … Continuazione implicita di linea … nella decorazione di oggetti …

normali istruzioni SQL. 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.

… in una espressione di LINQ to XML… Continuazione implicita di linea … in una espressione di LINQ to XML…

Continuazione implicita di linea Vale solo in precisi contesti, non ovunque. Per esempio non funziona con la clausola Handles:

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à

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.

Il nuovo tipo BigInteger Esempio:

Il nuovo tipo BigInteger

Nota: attenzione alle eccezioni OutOfMemoryException 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

Il nuovo tipo BigInteger Altri esempi:

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.

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à

Proprietà auto-implementate Ora possiamo dichiarare una proprietà così (in C# esiste già): Equivale a scrivere:

Proprietà auto-implementate Due eccezioni: (1) Proprietà a sola lettura si definiscono nel solito modo:

(2) Ridefinizione di una proprietà in una classe derivata Proprietà auto-implementate (2) Ridefinizione di una proprietà in una classe derivata Visual Studio 2010 propone tutto il codice della proprietà

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à

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

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

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à

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

Collection Initializers Dietro le quinte:

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

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

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

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à

Definizione per inferenza: Le novità nella manipolazione degli array Definizione per inferenza:

Cosa succede in questo caso? Le novità nella manipolazione degli array Cosa succede in questo caso? Se Option Strict On si otterrà un ERRORE Se Option Strict Off --> array di tipo Object

Gli Array literals sono una novità Le novità nella manipolazione degli array Gli Array literals sono una novità Permettono di dichiarare allo stesso modo sia array multidimensionali sia jagged array (matrici irregolari o array di array).

Le novità nella manipolazione degli array Un array multidimensionale si dichiara così: Un jagged array (matrice irregolare) si dichiara così:

Le novità nella manipolazione degli 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 interi con la coppia di elementi (1, 2)

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à

Espressioni lambda multi-linea 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 Function Sub … End Sub

Espressioni lambda multi-linea Esempio: elenco dei processi attivi con nome che inizia per “D” In VB 2008: In VB 2010:

Lo scorrimento degli elementi lo possiamo fare con queste istruzioni: Statement Lambda Lo scorrimento degli elementi lo possiamo fare con queste istruzioni:

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à

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

IEnumerable(Of Object) 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 attraverso IEnumerable(Of Object) Vediamo un esempio concreto di codice ...

Covarianza

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.

In VB 2008 potevamo scrivere: Controvarianza In VB 2008 potevamo scrivere:

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

Controvarianza … poi nel gestore dell’evento Load del form aggiungiamo queste due dichiarazioni: … e abbiamo finito.

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

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à

Nuovi controlli: DataGrid Calendar DatePicker WPF: le novità Nuovi controlli: DataGrid Calendar DatePicker

(Microsoft Expression Blend) 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)

Supporto ai dispositivi touch screen WPF: le novità Supporto ai dispositivi touch screen

Miglioramenti nella grafica e nelle animazioni WPF: le novità Miglioramenti nella grafica e nelle animazioni Miglioramenti nel rendering del testo Estensione e miglioramento del binding

Interoperabilità HTML – XBAP WPF: le novità Nelle applicazioni WPF per browser (WPF Browser Application): Interoperabilità HTML – XBAP (XBAP = XAML Browser Application)

WPF: le novità WPF sfrutta le funzionalità estese della taskbar di Windows 7 JumpList TaskBarItemInfo

Migliore supporto per SilverLight Supporto multipiattaforma: WPF: le novità Migliore supporto per SilverLight Supporto multipiattaforma: WPF 3.5 / 4.0 e successive Silverlight 3 / 4 e successive … e molto altro!

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

Database Generation Workflow Manager v1.1 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”)

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à

Il blog del Team MSDN Italia RISORSE UTILI 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 Italia http://blogs.msdn.com/italy/

3/29/2017 4:33 AM © 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. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. 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.