Nove značajke i poboljšanja u .Net Framework 4.5

Microsoft .Net Framework puno je sazrio tijekom posljednjih nekoliko godina. Uvedene su nove značajke i poboljšanja koja ga optimiziraju i čine brzim, sigurnijim, stabilnijim i učinkovitijim. U ovom bih članku želio predstaviti ptičji pogled na značajna poboljšanja u .Net Framework 4.5.x.

Strašne iznimke od Out of Memory

Ovo je strašna pogreška i može vam postati noćna mora. Iznimke izvan memorije mogu prekinuti tok nadzora nad vašom aplikacijom čak i kada imate instalirano dovoljno fizičke memorije. Šališ li se? Nema šanse! Dopustite mi da objasnim zašto se to može dogoditi i kako je ovaj problem riješen u .Net Framework 4.5.

Objekti stvoreni u upravljanom okruženju pohranjuju se u hrpu. Tijekom određenog vremenskog razdoblja hrpa se može usitniti zbog stvaranja i uklanjanja predmeta. Fragmentacija se odnosi na memorijske rupe (slobodnu memoriju) koje su raspršene. U takvom slučaju, često biste primijetili iznimke izvan memorije ako vaša aplikacija koristi veliku količinu memorije i jer vrijeme izvođenja ne bi moglo dodijeliti prostor kad i ako je potrebno, čak i ako prostora ima na raspolaganju.

Zvuči čudno? Pa, zbroj memorijskih rupa može biti dovoljan za ovaj zahtjev, ali kako su te memorijske rupe raspršene, vrijeme izvođenja ih ne može koristiti.

Zbijanje hrpe velikih predmeta na zahtjev

Zbijanje hrpe velikih predmeta na zahtjev novo je uvedeno kako bi sabilo hrpu i eliminiralo fragmentaciju hrpe. Zbijanje podrazumijeva sabijanje svih ovih raspršenih memorijskih rupa u jedan blok. Ova je značajka dostupna (samo na zahtjev) iz .Net Framework 4.5.1 za ublažavanje problema s iznimkom izvan memorije. Da biste omogućili ovu značajku, morate postaviti svojstvo LargeObjectHeapCompactionMode.

Inače, ovo svojstvo može imati jednu od dvije vrijednosti: Default i CompactOnce. Prvi, ako je postavljen, ignorirao bi zbijanje velike hrpe predmeta tijekom GC ciklusa. Ako upotrijebite potonje, velika gomila predmeta sabiti će se tijekom sljedećeg ciklusa.

Podrška za otpornost veze ADO.Net

Više ne trebate pisati kôd da biste implementirali elastičnost veze kako biste uspostavili neaktivne ili prekinute veze. .Net Framework 4.5.1 dolazi s ovom značajkom ugrađenom za ponovno stvaranje prekinutih veza s bazom podataka.

Poboljšano vrijeme pokretanja: Optimizacija profila

Optimizacija profila značajka je koja je uvedena u .Net Framework 4.5 koja minimalizira vrijeme pokretanja aplikacije. Kako ovo radi? Profil je datoteka koja sadrži metode koje bi aplikacija trebala u trenutku pokretanja. Kada se aplikacija pokrene, Just in Time Compiler (JIT) izvodi se u pozadinskoj niti i na više procesora kako bi generirao izvorni kôd iz IL koda.

Poboljšanja sakupljanja smeća: predstavljen poslužitelj GC

Upravljano okruženje .Net koristi sakupljanje smeća za čišćenje neiskorištenih ili nereferenciranih objekata - objekata koji više nisu potrebni. U ranijim verzijama .Net Framework-a, GC je suspendirao niti aplikacije kada je bio zauzet čišćenjem memorije. Ovo je bilo veliko usko grlo u izvedbi jer je vaša aplikacija morala pričekati dok GC ne završi s radom.

S .Net Framework 4.5 to više nije problem; GC poslužitelja nedavno je predstavljen kako bi se olakšalo čišćenje objekata generacije dvije pomoću pozadinske niti i, na taj način, smanjilo opterećenje glavne GC niti jer su aplikacijske niti puno rjeđe suspendirane. S .Net Framework 4.5, prikupljanje smeća u pozadini podržano je i na poslužitelju i na radnoj stanici GC. Istovremeno je odvojeno i odvoz smeća; namjenska nit po potrebi vrši prikupljanje smeća.

Značajna poboljšanja u .Net Framework 4.5.2

Microsoft je nedavno objavio .Net Framework 4.5.2. Izdanje je najavio Microsoft u blogu .Net Framework. Evo veze: //blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

Osim poboljšanja u profiliranju i otklanjanju pogrešaka, značajna su poboljšanja u ASP.Netu u .Net Framework 4.5.2. Sada možete koristiti metode HostingEnvironment.QueueBackgroundWorkItem za asinhrono planiranje malih pozadinskih zadataka. Da biste pregledali i izmijenili zaglavlja odgovora i kodove odgovora, možete upotrijebiti metode HttpResponse.AddOnSendingHeaders i HttpResponseBase.AddOnSendingHeaders. Ovaj MSDN članak možete potražiti za daljnje čitanje: //msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

Što slijedi?

Microsoft je objavio preglednu verziju .Net Framework 4.6 prošlog studenog. Kopiju .Net Framework 4.6 možete preuzeti ovdje: //www.microsoft.com/en-us/download/details.aspx?id=44928

Softverski div također je najavio da će opozvati podršku za .Net Framework verzije 4.x do 4.5.1 nakon siječnja 2016. Više o tome pročitajte ovdje: //blogs.msdn.com/b/dotnet/archive/2014/08 /07/moving-to-the-net-framework-4-5-2.aspx