460 likes | 630 Views
Microsoft Academic Tour 2008 Visual Studio 2008 et le framework .NET 3.5. Didier Danse http://didierdanse.net. Agenda. Historique de .NET et de Visual Studio Présentation du Framework 3.5 Visual Studio 2008: Nouveautés majeures Apports de C# 3.0 et VB 9.0 LINQ
E N D
Microsoft Academic Tour 2008Visual Studio 2008 et le framework .NET 3.5 Didier Dansehttp://didierdanse.net
Agenda • Historique de .NET et de Visual Studio • Présentation du Framework 3.5 • Visual Studio 2008: Nouveautés majeures • Apports de C# 3.0 et VB 9.0 • LINQ • Visual Studio 2008: Développement Web • Visual Studio 2008: Développement Windows • Visual Studio 2008: Développement Office
.NET Présentation du Framework 3.5 C# 3.0 VB.NET 9.0 C# 1.0 VB.NET 7.0 C# 1.1 VB.NET 7.1 C# 2.0 VB.NET 8.0
Visual Studio 2008 Les nouveautésmajeures • Support des versions du Framework .NET 2.0, 3.0 et 3.5 • Modèle de projet et méthode de compilation inchangés • Permet aux entreprises d’utiliser Visual Studio 2008 sans pour autant mettre à jour le code source • Une solution Visual Studio peut contenir des projets ayant pour cible des versions différentes du Framework
Visual Studio 2008 Les nouveautés • Gestion du cycle de vie d’une application • Interaction avec Team Foundation Server 2005 et 2008 • Designers • Tests unitaires et couverture de code • Analyse du code et de la performance • Outils pour les développeurs de base de données • … • Support amélioré du développement Web • JavaScript IntelliSense et Debugging • CSS
Demo Vue d’ensemble de Visual Studio 2008
Apports C# 3.0 et VB 9.0 Les besoins pour LINQ Query expressions • var contacts = • from c in customers • wherec.State = « WA » • select new { c.Name, c.Phone }; Inférence de type Expressions lambda • var contacts = • customers • .Where (c => c.State == « WA ») • .Select (c => new { c.Name, c.Phone }); Initialisation simplifiée Méthodes d’extension Types anonymes
Apports C# 3.0 et VB 9.0 Propriétésautomatiques • class Ecole • { • private string _nom; • public string Nom • { • get { return _nom; } • set { _nom = value; } • } • } • Ecriture simplifiée des propriétés • class Ecole • { • public string Nom { get ; set ; } • }
Apports C# 3.0 et VB 9.0 Initialisationd’objetssimplifiée • En C# 2.0 et VB 8.0 • Définition de l’objet • Instanciation de l’objet et set des propriétés • public class Ecole • { • public string Nom ; • public intNombreEtudiants ; • } • Instanciation de l’objet et set des propriétés • Ecole hepl = new Ecole(); • hepl.Nom = « Haute Ecole Province Liège »; • hepl.NombreEtudiants = 500;
Apports C# 3.0 et VB 9.0 Initialisationd’objetssimplifiée • En C# 3.0 ou VB 9.0 • Initialisez votre objet comme vous le souhaitez • Ecole hepl = new Ecole() { Nom = « HEPL », NombreEtudiants = 500 }; • Combinaison constructeur / initialisation simplifiée • Attention l’initialisation simplifiée est effectuée après le constructeur • Ecole hepl = new Ecole(« HEPL ») { NombreEtudiants = 500 }; • Ecole hers = new Ecole(« HERS ») { Nom = « HEPL » }; • Console.WriteLine(hers.Nom); // Résultat = HEPL IntelliSense actif
Apports C# 3.0 et VB 9.0Initialisation de collections simplifiée • List<Participant> lst = new List<Participant> (); • lst.Add(new Participant (« Didier », 26)); • lst.Add(new Participant (« Walter »)); • lst.Add(new Participant (« Alfonso »)); • En C# 2.0 et VB 8.0 • En C# 3.0 et VB 9.0 • List<Participant> lst = new List<Participant> { new Participant { Prenom = “Didier", Age = 26 }, new Participant { Prenom = “Walter” }, new Participant { Prenom = “Alfonso” } };
Demo Propriétés automatiquesInitialisation d’objetsInitialisation de collections
Apports C# 3.0 et VB 9.0 Inférence de type • Détection du type de sortie d’une fonction par analyse des types fournis en entrée et des opérations effectuées sur ceux-ci • Fortement typé • En VB, nécessite « Option Infer On » (actif par défaut) • Dim speaker = « Didier Danse » • var speaker = « Didier Danse »;
Apports C# 3.0 et VB 9.0 Types anonymes • Création d’objets sans écrire de définition de classe • Classe générée par le compilateur • Intitulé « anonyme » car on ne connait pas le type • var speaker = new { Nom = « Didier Danse », Employeur = « Acane Consulting » }; • Dim speaker = New With { .Nom = « Didier Danse », .Employeur = « Acane Consulting » } • var msdnSession = new { Date = DateTime.Now.Date, NomSpeaker = speaker.Nom };
Apports C# 3.0 et VB 9.0Méthodesd’extension • Comment ajouter une fonction ou méthode à une classe dont on a pas le code source? • Héritage de la classe de base (si applicable) • Solution généralement mise en place avec C# 2.0 et VB 8.0 • public class Util • { • public static string NomComplet(Speaker speaker, string titre) • { • return titre + « » + speaker.Nom + « » + speaker.Prenom; • } • } • Console.WriteLine(Util.NomComplet(speaker, « Mr »));
Apports C# 3.0 et VB 9.0Méthodesd’extension • Ajout de fonctionnalités personnalisées aux types de données déjà définis sans créer de type dérivé • Utilisation de l’attribut « Extension » en VB et « this » en C# • Le premier paramètre est le type à étendre • public class Util { • public string NomComplet (this Speaker speaker, string titre) { • return titre + « » + speaker.Nom + « » + speaker.Prenom; • } • } • Console.WriteLine(speaker.NomComplet(« Mr »));
Apports C# 3.0 et VB 9.0 Types nullables • Permet d’éviter d’utiliser des valeurs « dummies » • 3 syntaxes différentes • Ne peut être utilisé avec un type « référence » (String, classe, …) • ‘Dim val? As Integer • Dim val As Integer? • ‘Dim val As Nullable(Of Integer) • If Val.HasValueThen • Console.WriteLine(val.Value) • Else • Console.WriteLine(« pas de valeur ») • End If • bool? b;
Apports C# 3.0 et VB 9.0 Expressions lambda • Fonction • Sans nom • Retourne une valeur unique • IEnumerable<Participant> results = • participants.Where ( p => p.EstEtudiant == true ); • Utilisé par LINQ avec Where, Select, OrderBy, …
Demo Type anonymeMéthode d’extensionType nullableExpressions lambda
.NET Présentation du Framework 3.5 LINQ C# 3.0 VB.NET 9.0 C# 1.0 VB.NET 7.0 C# 1.1 VB.NET 7.1 C# 2.0 VB.NET 8.0
LINQ Architecture Visual C# Visual Basic Others .Net Language Integrated Query (LINQ) LINQ-enabled data sources LINQ-enabled ADO.NET LINQ To SQL LINQ To Datasets LINQ To XML LINQ To Entities LINQ To Objects <book> <title/> <author/> <price/> </book> Databases Objects XML
LINQGénéralités • Permet de faire des requêtes utilisant le même code quelle que soit la source • Introduction d’une syntaxe proche de SQL • Compilé en tant que C# traditionnel (grâce aux méthodes d’extension) • Syntaxe native • IntelliSense • Auto complétion • Fonctionne avec toute collection (IEnumerable<T>) • Utilise les expressions lambda
Demo LINQ to Objects
Demo LINQ to SQL
Demo Combinaison entre LINQ to Objects LINQ to SQL
ASP.NET 3.5Vueglobale des nouveautés • ASP.NET 3.5 • Microsoft Ajax Library • ListView, DataPage, LinqDataSource • Nouveautés de Visual Studio 2008 • Nouvel éditeur HTML • Partage avec Expression Web • Support du CSS et des Master Pages imbriquées • Affichage « Split View » • IntelliSense appliqué au JavaScript et Debugging du JavaScript
Demo JavaScript IntelliSenseDebugging JavaScriptSupport CSS
Visual Studio 2008 Applications Windows • Windows Forms • Amélioration de ClickOnce • Utilisation des services ASP.NET • Utilisation des services WCF en mode Partial Trust • Windows Presentation Foundation • XAML • Designer intégré dans Visual Studio • Déploiement de XBAP sur FireFox
Demo Windows Presentation Foundation
Visual Studio 2008 Applications pour mobiles • Support des Compact Framework 2.0 et 3.5 • Tests unitaires • LINQ • WCF • CLR Profiler • APIs Son • …
Visual Studio 2008 Workflow Foundation et Windows Communication Foundation • Windows Communication Foundation • HTTP sans utilisation de SOAP (sérialisation XML ou JSON) • Mise en place d’un framework de syndication • RSS • ATOM • Support du Partial Trust • Workflow Foundation • Envoi et réception vers/de services WCF • WorkflowServiceHost
Visual Studio 2008 Office Business Applications • Support des versions 2003 et 2007 • Customisation 2008 • Document • Application • Office Ribbon Designer • Outlook FormRegion Designer • Custom and Action Task Panes • Word Content Controls • Support de WF et de SharePoint
.NET Présentation du Framework 3.5 C# 3.0 VB.NET 9.0 C# 1.0 VB.NET 7.0 C# 1.1 VB.NET 7.1 C# 2.0 VB.NET 8.0
.NET 3.5Nouvelleslibrairies • System.Data.Linq • System.Xml.Linq • System.Data.DataSetExtensions • System.Web.Extensions • System.ServiceModel.Web • System.AddIn, System.AddIn.Contract • System.Windows.Presentation • System.Net • System.DirectoryServices.AccountManagement • System.Management.Instrumentation • …
Visual Studio 2008, C# 3.0 et VB 9.0Resources • Visual Studio Team System 2008 Team Suite with Visual Studio Team System 2008 Team Foundation Server http://go.microsoft.com/?linkid=8048142 • Visual Studio 2008 Training Kit http://go.microsoft.com/?linkid=7602397 • Dev Center C# http://msdn2.microsoft.com/en-us/vcsharp/default.aspx • Dev Center VB.NET http://www.microsoft.com/france/msdn/vbasic/default.mspx
Q&A Questions?
Merci pour votre attention Blog: http://didierdanse.netEmail: didier.danse@acaneconsulting.com