Preko o čitnega Novosti v .NET Framework 3.5
description
Transcript of Preko o čitnega Novosti v .NET Framework 3.5
Preko očitnegaNovosti v .NET Framework 3.5Matevž GačnikGama System d.o.o.Microsoft regionalni direktorMicrosoft MVP – Solution ArchitectBlog: http://www.request-response.com
Agenda Ozadje Zeleni proti rdečim Platformne novosti Novosti v BCL Novosti v WCF, WF Pogled naprej
.NET Framework 1.0
AD 2002
CLR 1.0.3705
Visual
Studio .NET
Rainer
Ozadje .NET Framework 1.0 < 1.1 < 2.0 < 3.0 < 3.5
.NET Framework 1.1
AD 2001
CLR 1.1.4322
Visual
Studio .NET
2003
Everett
.NET Framework 2.0
AD 2005
CLR
2.0.50727
Visual Studio
2005
Whidbey
WinFx
AD 2006
CLR
2.0.50727
.NET Framework 3.0
AD 2006
CLR
2.0.50727
.NET Framework 3.5
AD 2008
CLR
2.0.50727
Visual Studio
2008
Orcas
Ozadje Seattle
Redmond
Microsoft
Visual
Studio .NET / 1.0
Rainier
OzadjeVisual Studio
2008
Orcas
Orcas
Whidbey
Everett
Seattle
Visual Studio
2005
Whidbey
Visual
Studio .NET
2003
Everett
.NET Framework 3.5
.NET Framework 2.0 + SP1
Windows
Presentation
Foundation
Windows
Communication
Foundation
Windows
Workflow
Foundation
Windows
CardSpace
.NET Framework 3.0 + SP1
.NET Framework 3.5
LINQ ASP.NET 3.5 Razširjen BCLOstali
napredki
v3.5.xx
Zeleni proti rdečim Zeleni biti (green bits), rdeči biti (red bits) Rdeči: v2.0 SP1, v3.0 SP1, zeleni - novo
v2.0 RTM
v2.0.50727.42
v3.0.xx
v2.0 RTM
v2.0.50727.xxv3.0
v2.0 RTM
v2.0.50727.312
XP SP2, Server 2003 SP1
Vista
v3.0
v2.0 RTM
v2.0.50727.42
Windows Server 2008
Čista namestitev
• .NET Framework 2.0
+ SP1
Vloga App Server
• .NET Framework 3.0
+ SP1
Naslednji verzija sistema Windows Server (Q1 2008)
Kaj pride z Windows Server 2008?
Windows Server 2008 Core?
GCGeneracije
Generacija 0
Generacija 1
Generacija 2
Tri generacije
Objekti se starajo
Starejši objekti so v starejši generaciji
Količina objektov se veča z generacijo
Gen2 je najdražja
GCKriza srednjih let Proces prebije >30% časa znotraj GC
BTW: Normalno je 1%
Objekti živijo dobro in predolgo
Preživijo gen1 in posledično gredo v gen2
Promocija se zgodi ob času GC
Čas GC se lahko zgodi
Ob alokaciji
Eksplicitno
Sistem je v pomanjkanju pomnilnika
GCGranulacija v .NET Fx 3.5
System.GC.CollectionMode Enum Vrednost Forced Vrednost Optimized Vrednost Default Default je trenutno Forced
Privzeta vrednost se lahko spremeni v prihodnjih različicah
GCGranulacija v .NET Fx 3.5
System.GC.Collect(int generation, GCCollectionMode mode)
Eksplicitni klic Podamo generacijo Podamo način pobiranja
Če rečemo Collect(2, GCCollectionMode. Forced) bo drago
Pazljivo!
GCLatenca v .NET Fx 3.5
<configuration> <runtime> <gcServer enabled=“true"/> </runtime> </configuration>
Tipi GC
Workstation GC
• Concurrent GC
• Nonconcurrent GC
Server GCSamo multiproc in multicore
<configuration>
<runtime>
<gcConcurrent enabled=“true"/>
</runtime>
</configuration>
GCLatenca v .NET Fx 3.5
System.Runtime.GCLatencyMode Enum Vrednost Batch Vrednost Interactive Vrednost LowLatency Default je trenutno Interactive
Server
GC
•Batch
Workstation GC
•Batch•Interactive
•LowLatency
Kako nastavimo?
GCLatencyMode oldMode = GCSettings.LatencyMode;
try { GCSettings.LatencyMode = GCLatencyMode.LowLatency; // work }
catch (ApplicationException) { // ujamemo }
finally { GCSettings.LatencyMode = oldMode; }
Razširitvene metode Ideja:
Razširiti obstoječi tip Brez bolečin, brez prevoda – lastnost prevajalnika Infiksna notacija – x.Op1(arg1).Op2(arg2)
Trenutne opcije: Dedovanje
Zoprno, neskalabilno Kaj narediti z zapečatenimi (sealed) tipi?
Alternativa je statik Bloatware Vhodna referenca Izhodna referenca Prefiksna notacija – Help.Op2(Help.Op1(x,arg1),arg2)
Torej kako? Definiramo statični razred Definiramo statično metodo z določenim
parametričnim modelom Prvi parameter Naslednji parametri
Language INtegrated Query (LINQ)
Namenjen zmanjševanju kompleksnosti pri rokovanju s podatki
Povpraševalni operatorji delujejo nad vsako zbirko (prijatelji v System.Collections) Vgrajeni primeri: Select, Where, GroupBy, Join, ... Razširitveni model omogoča zamenjavo
Prednosti Konsistentnost dela ne glede na tip podatkov Pogled na podatke kot objekte Boljša integracija s programskimi jeziki IntelliSense produktivnost
Programski model, ki integrira podatkovni dostop v sintakso programskih jezikov .NET
Arhitektura LINQ
Objekti
<book>
<title/>
<author/>
<year/>
<price/>
</book>XML
LINQ
C# 3.0 VB 9.0 Ostali…
Relacijska shema
LINQ to
Objects
LINQ to
SQL
LINQ to
XML
LINQ to
DataSets
System.TimeZoneInfo System.DateTimeOffset System.Collections.Generic.HashSet System.IO.Pipes (Named Pipes) Novi Suite-B kriptirni algoritmi EventSchemaTraceListener Podpora za Vista event log (ETW) System.Threading.ReaderWriterLockSlim
Novosti v BCLBase Class Library
Spletne aplikacije Integrirana podpora za ASP.NET AJAX 1.0
Vključen v .NET Framework 3.5 VS 2008
Projektne predloge za ASP.NET AJAX (Visual Studio 2008) Predloge spletnih projektov (Visual Studio 2008) Javascript IntelliSense & Debugging Bogatejša podpora HTML/CSS načrtovalcu Ločen pogled (hkrati izvorna koda in načrtovalec) Improved CSS/HTML layout and visualization in designer
Nove spletne kontrole LinqDataSource, ListView, DataPager
Mobilne aplikacije .NET Compact Framework 3.5
Podpora za LINQ (XML, Objects in Dataset) Windows Communication Foundation CLR Profiler / Performance Monitor BCL napredki: podpora kompresiji, certifikati
odjemalske strani, Sound API
Storitve (WCF, WF) .NET 3.0: Dodane tehnologije
WCF – Enoten programski model in izvajalno okolje za storitve
WF – Fleksibilno, deklarativno izvajalno okolje za delovne tokove in aktivnosti
.NET 3.5: Napredki Programski model HTTP Serializacija JSON in integracija z ASP.NET AJAX Sindikacija (RSS, ATOM), POX in JSON serializacija
odgovorov Razvojna orodja v VS 2008
Add Service Reference, Integriran WF Designer Predloge projektov, testni gostitelj in odjemalec Konfiguracijski editor WCF
WCF kot sindikator / POX Sindikacijska podpora za:
Generiranje, obdelavo in oddajo RSS 2.0 in ATOM 1.0 tokov
Klasični storitveni vmesnik POX / REST podpora:
Vsi webby načini GET POST PUT DELETE
Preprostost
Podpora WS-* Dve novi vezavi znotraj WCF
WS2007HttpBinding WS2007FederationHttpBinding Variante 2005 delujejo nespremenjeno
Podprte specifikacije WS-RM 1.1, WS-AT 1.1, WS-Coordination 1.1 WS-SecureConversation 1.3, WS-Trust 1.3, WS-
SecurityPolicy 1.2 Standardizirane <> oddane specifikacije
Pogled naprej .NET Framework 4.0
Upamo na pariteto CLR/BCL/VS Spodobi se Ne boli če je ni
Podpora za PLINQ Dinamični jeziki Nadgradnje WCF/WF, integracija v BizTalk Nadgradnje .NET CF / MicroFx
Povzetek .NET Fx 3.5 = .NET Fx 2.0 SP1 +
.NET Fx 3.0 SP1 + red bits
CLR GC, kontrola latence in večja granulacija Razširitvene metode, anonimni tipi, samodejne
lastnosti, ... Napredki v BCL Storitve in delovni tokovi, REST / POX, sindikacija .NET CF 3.5 VS 2008, odlično orodje
Matevž Gačnik
Vodja področja razvoja aplikacij
Microsoft regionalni direktor
Microsoft MVP – Solution Architect
Gama System d.o.o.
http://www.gama-system.si
Weblog: http://www.request-response.com
?