280 likes | 454 Views
Preko o čitnega Novosti v .NET Framework 3.5. Matevž Gačnik Gama System d.o.o. Microsoft regionalni direktor Microsoft MVP – Solution Architect Blog: http ://www.request-response.com. Agenda. Ozadje Zeleni proti rdečim Platformne novosti Novosti v BCL Novosti v WCF, WF Pogled naprej.
E N D
Preko očitnegaNovosti v .NET Framework 3.5 Matevž GačnikGama System d.o.o. Microsoft regionalni direktor Microsoft MVP – Solution Architect Blog: http://www.request-response.com
Agenda • Ozadje • Zeleni proti rdečim • Platformne novosti • Novosti v BCL • Novosti v WCF, WF • Pogled naprej
.NET Framework 3.0 AD 2006 WinFx AD 2006 Ozadje CLR 2.0.50727 CLR 2.0.50727 • .NET Framework 1.0 < 1.1 < 2.0 < 3.0 < 3.5 .NET Framework 1.0 AD 2002 .NET Framework 1.1 AD 2001 CLR 1.0.3705 .NET Framework 2.0 AD 2005 .NET Framework 3.5 AD 2008 CLR 1.1.4322 Visual Studio .NET Rainer CLR 2.0.50727 CLR 2.0.50727 Visual Studio .NET 2003 Everett Visual Studio 2005 Whidbey Visual Studio 2008 Orcas
Ozadje Seattle Redmond Microsoft Visual Studio .NET / 1.0 Rainier
Ozadje Visual Studio 2008 Orcas Orcas Visual Studio 2005 Whidbey Whidbey Everett Visual Studio .NET 2003 Everett Seattle
.NET Framework 3.5 .NET Framework 3.5 RazširjenBCL LINQ ASP.NET 3.5 Ostali napredki .NET Framework 3.0 + SP1 Windows Presentation Foundation Windows Communication Foundation Windows Workflow Foundation Windows CardSpace .NET Framework 2.0 + SP1
Zeleni proti rdečim • Zeleni biti (green bits), rdeči biti (red bits) • Rdeči: v2.0 SP1, v3.0 SP1, zeleni - novo XP SP2, Server 2003 SP1 v3.0 v3.0 v3.5.xx v2.0 RTM v2.0.50727.312 v2.0 RTM v2.0.50727.42 v3.0.xx v2.0 RTM v2.0.50727.42 Vista v2.0 RTM v2.0.50727.xx
Windows Server 2008 • Naslednji verzija sistema Windows Server (Q1 2008) • Kaj pride z Windows Server 2008? • Windows Server 2008 Core?
GCGeneracije • 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> <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 • 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) Programski model, ki integrira podatkovni dostop v sintakso programskih jezikov .NET • 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
Arhitektura LINQ C# 3.0 VB 9.0 Ostali… LINQ LINQ toObjects LINQ toDataSets LINQ toSQL LINQ toXML <book> <title/> <author/> <year/> <price/> </book> Objekti Relacijska shema XML
Novosti v BCLBase Class Library • 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
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 gostiteljinodjemalec • 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 aplikacijMicrosoft regionalni direktorMicrosoft MVP – Solution Architect Gama System d.o.o. http://www.gama-system.si Weblog:http://www.request-response.com matevz.gacnik@gama-system.si