Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avJoakim Magnusson
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
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.