Presentation laddar. Vänta.

Presentation laddar. Vänta.

Visual Studio 2005 Patrik Löwendahl, SweNUG, Cornerstone Johan Lindfors.

Liknande presentationer


En presentation över ämnet: "Visual Studio 2005 Patrik Löwendahl, SweNUG, Cornerstone Johan Lindfors."— Presentationens avskrift:

1 Visual Studio 2005 Patrik Löwendahl, SweNUG, Cornerstone Johan Lindfors

2 Visual Studio 2005.NET Framework 2.0 Namnrymder, basklasser och programmeringsspråk

3 Mål med presentationen  Introducera.NET Framework 2.0  Generics  Anonyma metoder  Iteratorer  Delade klasser  Nyheter i språken  Refactoring och code snippets i Visual C#  My.* i Visual Basic.NET  C++/CLI

4 Att skriva typsäker kod  Kod förlitar sig ofta på typen object  Kan användas som vilken typ som helst  Vanligt för fält, parametrar/returvärden  Den tekniken har en del sårbarheter  Ingen typkontroll vid kompilering  “Boxing”, “Unboxing” och typkontroller vid exekvering  Oväntade typkonvertingar

5 demo Exempel på typsäkerhet

6 En stack med och utan Generics object int object int object int object int Box Push Utan Generics object int Unbox Pop Push Med Generics int Pop

7 Generics  Definitioner kan parameteriseras med typdetaljer  Möjliggör generisk kod som är ovetande om typinformation vid kompileringsögonblicket  Korrekt typ används först vid JIT-kompilering  “Generics” i Eiffel & Ada, “templates” i C++  Kan använda generisk typinformation på många platser i applikationer  Klasser, strukturer, gränssnitt, metoder,delegater...

8 Sätta begränsningar  Sätter krav på typer som får anges som generisk typinformation.  Försäkrar att typer erbjuder krävd funktionalitet  Ännu starkare typkontroll vid kompilering  Minskar behovet för explicita typkonverteringar  Kan begränsa användandet  Det finns tre sorters begränsningar  Klass  Interface  Konstruktor

9 demo Implementera Generics

10 Anonyma Metoder  Viss kod anropas bara av delegater  Händelsehanterare och “callback”  Anonyma metoder är en elegant lösning  Tillåter kod för delegater att skrivas “in-line”  Kan användas överallt en delegat förväntas  Påminner om Lisp och Python  Förlitar sig på implicit konvertering av delegat  Kräver kompatibla parametrar och returvärden

11 demo Anonyma metoder

12 Enumeratorer  Det är vanligt att iterera genom samlingar  foreach bygger på ett känt mönster.  I C# 1.x implementerar vi själva mönstret.  Omständigt och repetetivt om man vill ha hårdtypning. public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator { object Current { get; } bool MoveNext(); void Reset(); }

13 Iteratorer  Kompilatormagi för att slippa implementera IEnumerable-mönstret  Nya nyckelord  yield return – producerar nästa element  yield break – indekerar avslutad iteration  Kan implementeras som en metod eller en egenskap om den returnerar  IEnumerable  IEnumerator  IEnumerable  IEnumerator

14 demo Iteratorer

15 Delade typer  Tillåter implementation av en typ över flera filer  Klasser och strukturer (och gränssnitt i C#)  Deklareras med nya nyckelordet partial  En hel del fördelar  Stora implementationer kan delas upp  Användarkod kan separeras från genererad  Flera utvecklare kan jobba med samma typ  Möjliggör “code-beside” vs “code-behind”  Kan underlätta underhåll och källkodshantering  Underlättar inte versionshantering

16 demo Delade typer

17 Andra förbättringar  Edit and Continue stöd i C#  Egenskaper med skilda ”accessors” för get/set  Elegantare delegathantering  Statiska klasser  Alias för global namnrymd ”::”  #pragma warning  Speciell syntax för tomma värdetyper  INullable pattern  int? I

18 demo Andra nyheter

19 ”Refactoring”  Metodik för att hantera kod som genomgår evolution  Visual Studio 2005 levereras med stöd för refactoring-processen  Promote  Extract  Encapsulate  Rename  Ytterligare förbättringar...

20 demo Refactoring i C#

21 Säkerhetsuppdateringar  SecureString  Använder DPAPI  SecurityContext klass  System.Security.AccessControl  System.Security.Cryptography  DPAPI  Kod och bevisbaserad säkerhet  Bevis för installerad i GAC

22 My.* klasser  Erbjuder snabb åtkomst till vanliga funktioner  Minskar antalet rader kod  My.* innehåller:  My.Application  My.Computer  My.User  My.Forms  My.Webservices  My.Resources  My.Settings

23 Nya nyckelord  Continue  Hoppar till nästa iteration i Do, For och While  Using  Försäkrar hanteringen av resurser Dim p As Pen = New Pen(c) Try g.DrawLine(p, 0, 0, 50, 50) Finally If Not p Is Nothing Then CType(p, IDisposable).Dispose() End If End Try Using p As New Pen(c) g.DrawLine(p, 0, 0, 50, 50) End Using

24 Andra förbättringar Dim b(0 To 7) As Byte  Överlagring av vanliga operatorer  För klasser och strukturer  Ny IsNot operator  Underlättar syntaxen från Not och Is  Explicita nollindexerade vektorer  Skräddarsydd händelsehantering  XML dokumentation genom kommentaren '''

25 demo Nyheter i Visual Basic.NET

26 Förbättringar i Visual C++ 2005  Språk och biblioteksförbättringar  Mycket hög anpassning till standards (>98%)  Eleganta tillägg till språket för att koda mot CLR  Förbättringar i ATL, MFC, SCL och CRT  Nya funktioner i kompilatorn  Mixad, ren och verifierbar kompilering  64-bitars ren och korskompilering  Förbättrad produktivitet och enkelhet

27 CLR datatyper  Deklarera hanterade CLR datatyper class N { /*...*/ }; // Native C++ class ref classR { /*...*/ }; // CLR reference class value class V { /*...*/ }; // CLR value class interface classI { /*...*/ }; // CLR interface enum class E { /*...*/ }; // CLR enumeration delegate void ThingEventHandler( int ); // Delegate eventThingEventHandler^ Thing; // Event

28 demo Använda C++/CLI

29 Andra förbättringar i FX 2.0  Semaforer  Komprimering av strömmar  Konsoluppdateringar  HttpListener  Seriella portar  FTP klasser  Debuggningsattribut

30 Sammanfattning .NET Framework 2.0  Generics  Anonyma metoder  Iteratorer  Partiella typer  Säkerhet, nya klasser, förbättringar  Språken  Refactoring, enkelhet, standardisering

31


Ladda ner ppt "Visual Studio 2005 Patrik Löwendahl, SweNUG, Cornerstone Johan Lindfors."

Liknande presentationer


Google-annonser