1.33k likes | 1.55k Views
Présentation et démos disponibles : http:// www.msfrancedev.net/Prez/20100916-JUSSIEU.zip. La plateforme . NET vue par le développeur. Université Jussieu 11 octobre 2011. Hugues Moore AZEO – http://www.azeo.com http://huguesmoore.wordpress.com. La Présentation est basée sur.
E N D
Présentation et démos disponibles : http://www.msfrancedev.net/Prez/20100916-JUSSIEU.zip La plateforme .NETvue par le développeur Université Jussieu 11 octobre 2011 Hugues Moore AZEO – http://www.azeo.com http://huguesmoore.wordpress.com
La Présentation est basée sur Université Jussieu 16 septembre 2010 Pascal Belaud Microsoft France http://blogs.msdn.com/Pascalhttp://www.saga-fr.net
Historique .NET pour les développeurs • Première ligne de code écrite (ASP .NET) en Novembre 1997 • Sortie de Visual Studio .NET 2002 et du Framework .NET 1.0 en Janvier 2002 • Sortie de Visual Studio .NET 2003 et du Framework .NET 1.1 en Avril 2003
Historique .NET pour les développeurs • Sortie de Visual Studio 2005, du Framework . NET 2.0 et de SQL Server 2005 en Novembre 2005 • Sortie du Framework .NET 3.0 en Novembre 2006 • Framework .NET 2.0+ • Windows PresentationFoundation (WPF) • Windows Communication Foundation (WCF) • Windows WorkflowFoundation (WF) Visual Studio 2005
Historique .NET pour les développeurs • Sortie de Visual Studio 2008, du Framework . NET 3.5 en Novembre 2007 • Framework .NET 3.0+ • LINQ
Historique .NET pour les développeurs • Sortie de Visual Studio 2010, du Framework . NET 4.0 en Avril 2010 • CLR 4.0 • Framework .NET 3.5+ • Parallel Extensions
Visual Studio 2010 • Des versions Express à la version Ultimate • Les versions Express sont TOTALEMENT gratuites pour tout le monde
Les versions Express = Gratuites http://www.microsoft.com/express
Voir Gratuit pour les étudiants • Si votre établissement est abonné au programme MSDNAA, demandez à vos professeurs l’accès gratuit aux médias • Sinon, il suffit d’aller ici :http://www.microsoft.com/france/msdn/abonnements/academic/etudiants/telechargementdirect.mspx
Machine de démonstrations • .NET 3.0 • .NET 3.5 • .NET Framework 3.5 • Visual Studio 2008 • .NET 4.0 • .NET Framework 4.0 • Visual Studio 2010 • SQL Server • SQL Server 2008 Express • SQL Server 2008 • Windows 7 • COM/Win32 • .NET 1.1 • .NET Framework 1.1 • .NET 2.0 • .NET Framework 2.0
Saga .NET • Retrouver une grosse partie des démonstrations sous forme de WebCasts : http://www.saga-fr.net
Agenda de la présentation • Microsoft .NET : les points essentiels • Visual Studio 2008 • Les XML Web Services • Accès aux données et ADO.NET • Déploiement par ClickOnce • Les applications Web et ASP.NET • Le développement sur terminaux mobiles
Agenda de la présentation • Microsoft .NET : les points essentiels • Visual Studio 2008 • Les XML Web Services • Accès aux données et ADO.NET • Déploiement par ClickOnce • Les applications Web et ASP.NET • Le développement sur terminaux mobiles
Agenda de la présentation • Multi Langages • Multi Plateformes • Common Language Runtime (CLR) • Framework Class Library (FCL) • Déploiement • Sécurité
Agenda de la présentation • Multi Langages • Multi Plateformes • Common Language Runtime (CLR) • Framework Class Library (FCL) • Déploiement • Sécurité
VB C++ C# J# JScript Cobol … Les langages sur .Net
Comment installer .NET ? • 1- Visual Studio 2008 • La plateforme .NET • Le Software Development Kit (SDK) • Visual Studio en tant qu’IDE
Comment installer .NET ? • 2- Software Development Kit (SDK) • La plateforme .NET • Le Software Development Kit (SDK)http://www.microsoft.com/downloads/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&DisplayLang=en Gratuit !
Comment installer .NET ? • 3- .NET Redistribuable • La plateforme .NEThttp://www.microsoft.com/downloads/details.aspx?familyid=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en Gratuit !
*.vb *.cpp *.cs *.jsl *.js *.cob *.? VB C++ C# J# JScript Cobol … Microsoft Intermediate Language (MSIL) Les langages sur .Net Respectent la Common Language Specification (CLS) Indépendant de la plate-forme hardware
*.vb *.cpp *.cs *.jsl *.js *.cob *.? VB C++ C# J# JScript Cobol … Microsoft Intermediate Language (MSIL) Les langages sur .Net Langage C# Common Language Specification (CLS) Soumis et validé comme un standard par ECMA et ISO
Perl Python Cobol Haskell ML JScript Ada APL Eiffel Pascal Fortran PHP Les langages disponibles • Managed C++ • Visual Basic • C# • J# • SmallTalk • Oberon • Scheme • Mercury • Oz • Objective Caml • Delphi • WinDev • …
Multi Langages démo
Agenda de la présentation • Multi Langages • Multi Plateformes • Common Language Runtime (CLR) • Framework Class Library (FCL) • Déploiement • Sécurité
Common Language Runtime (CLR) Windows XP Windows 2000 NT 4.0* Windows 98, Me PocketPC* … Vista Implémentée par MS La plateforme .Net Microsoft Intermediate Language (MSIL) Soumis et validé à l’ISO et ECMA
Petit lexique avant d’aller plus loin • Le monde .NET est dit « Managé » • Le monde Win32/COM est dit « Non managé » • Toute DLL ou EXE .NET est appelé une Assembly
Agenda de la présentation • Multi Langages • Multi Plateformes • Common Language Runtime (CLR) • Framework Class Library (FCL) • Déploiement • Sécurité
Common Language Runtime • Beaucoup de concepts ont été ramenés au niveau de la CLR, donc accessibles par tout langage • Debug • Types unifiés • Modèle d’exception pour tout le monde • Garbage Collector • …
Common Language Runtime • Common Types System
Common Type System Garbage Collector IDisposable démo
Value / Reference types • Il y’a une nette différence de comportement en mémoire entre une value Type et une Reference • La mémoire est scindée en 2 parties : • Stack : pile • Heap : tas (cible unique du GC)
Value / Reference types • Les Value types (System.ValueType) sont directement stockées dans la Stack • Les Reference types (System.Object) sont stockées à la fois dans la Stack et dans la Heap : • Pointeur dans la Stack • L’objet lui-même dans la Heap
Value types • bool • byte • char • decimal • double • enum • float • int • long • sbyte • short • struct • uint • ulong • ushort
Stack Heap valeur (=2) int valeur = 2; public class MaClasse { public propertyint Valeur { get; set; } } MaClassemaClasse = new MaClasse(); maClasse.Valeur = 3; maClasse .Valeur (=3)
Stack Heap valeur = 2 Index = 3 int valeur = 2; MaMéthode1(valeur); Console.WriteLine(valeur); public void MaMéthode1(int index) { index = 3; } valeur = 2
Stack Heap valeur = 2 Valeur = Index = 4 int valeur = 2; MaMéthode2(ref valeur); Console.WriteLine(valeur); public void MaMéthode2(refint index) { index = 4; } valeur = 4
Stack Heap public class MaClasse { public int Valeur { get; set; } } maClasse .Valeur = 2 maRef MaClassemaClasse = new MaClasse(); maClasse.Valeur = 2; MaMéthode1(maClasse); Console.WriteLine(maClasse.Valeur); public void MaMéthode1(MaClassemaRef) { maRef = null; } maClasse.Valeur = 2
Stack Heap public class MaClasse { public int Valeur { get; set; } } maClasse maClasse = maRef .Valeur = 2 MaClassemaClasse = new MaClasse(); maClasse.Valeur = 2; MaMéthode2(refmaClasse); Console.WriteLine(maClasse.Valeur); public void MaMéthode2(refMaClassemaRef) { maRef = null; }
Attention DANGER intnombreA = 3; objectmonEntier = nombreA; Console.WriteLine(monEntier); monEntier = 4; Console.WriteLine(nombreA); intnombreB = (int)monEntier; Console.WriteLine(nombreB); nombreB = 5; Console.WriteLine(nombreA); monEntier = 3 nombreA = 3 nombreB = 4 nombreA = 3
Boxing/Unboxing Stack Heap nombreA= 3 • Le Boxing etUnboxing est trèscoûteux enmémoire et entemps ! • A utiliser avec modération… monEntier nombre= 3 puis 4 nombreB= 4 puis 5
Agenda de la présentation • Multi Langages • Multi Plateformes • Common Language Runtime (CLR) • Framework Class Library (FCL) • Déploiement • Sécurité
Framework Class Library Le .Net Framework Microsoft Intermediate Language (MSIL) Accessible depuis tous les langages Common Language Runtime (CLR)
System.Web System.Windows.Forms Design ComponentModel Services UI Description HtmlControls Discovery WebControls Protocols System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Xml System.Data OracleClient OleDb SqlClient XSLT Serialization OracleTypes Design SqlTypes XPath System Collections IO Security Runtime InteropServices Configuration Net ServiceProcess Remoting Diagnostics Reflection Text Serialization Globalization Resources Threading Le .Net Framework
Threading Generics LINQ démo