Programmering

Nye funktioner og forbedringer i .Net Framework 4.5

Microsoft .Net Framework har modnet meget i løbet af de sidste par år. Nye funktioner og forbedringer er introduceret i overflod for at optimere det og gøre det hurtigt, sikkert, mere stabilt og højtydende. I denne artikel vil jeg gerne præsentere et fugleperspektiv af de betydelige forbedringer i .Net Framework 4.5.x.

De frygtede undtagelser uden hukommelse

Dette er en frygtet fejl og kan godt blive et mareridt for dig. Undtagelser uden hukommelse kan afslutte strømmen af ​​kontrol med din applikation, selv når du har tilstrækkelig fysisk hukommelse installeret. Laver du sjov? Ingen måde! Lad mig forklare, hvorfor dette kan forekomme, og hvordan dette problem er blevet løst i .Net Framework 4.5.

Objekter oprettet af det administrerede miljø gemmes i bunke. Over en periode kan dyngen blive fragmenteret på grund af oprettelse og fjernelse af genstande. Fragmentering refererer til hukommelseshuller (ledig hukommelse), der er spredt. I et sådant tilfælde vil du ofte observere undtagelser uden hukommelse, hvis din applikation bruger stor mængde hukommelse, og fordi køretiden ikke er i stand til at tildele plads, når og hvis det er nødvendigt, selvom der muligvis er ledig plads.

Lyder underligt? Nå, summen af ​​hukommelseshullerne kan være tilstrækkelig til denne anmodning, men da disse hukommelseshuller er spredt, kan køretiden ikke bruge dem.

Komprimering af store objekter på efterspørgsel

On-Demand komprimering af store objekter er for nylig blevet introduceret for at komprimere bunken og eliminere bunfragmentering. Komprimering indebærer komprimering af alle disse spredte hukommelseshuller i en blok. Denne funktion er tilgængelig (kun on-demand) fra .Net Framework 4.5.1 for at afbøde undtagelsesproblemerne uden hukommelse. For at aktivere denne funktion skal du indstille egenskaben LargeObjectHeapCompactionMode.

I øvrigt kan denne egenskab have en af ​​to værdier: Standard og CompactOnce. Førstnævnte hvis indstillingen ville ignorere komprimering af store objekter i løbet af en GC-cyklus. Hvis du bruger sidstnævnte, komprimeres den store objektbunke i løbet af den næste cyklus.

Understøttelse af ADO.Net-forbindelsesmodstandsdygtighed

Du behøver ikke længere at skrive kode for at implementere forbindelsesmodstandsdygtighed for at etablere inaktiv eller ødelagte forbindelser. .Net Framework 4.5.1 leveres med denne funktion indbygget til at genskabe ødelagte forbindelser til databasen.

Forbedret opstartstid: Profiloptimering

Profiloptimering er en funktion, der er blevet introduceret i .Net Framework 4.5, der minimerer programmets opstartstid. Hvordan virker det? En profil er en fil, der indeholder de metoder, som applikationen har brug for på det tidspunkt, den starter. Når applikationen starter, kører Just in Time Compiler (JIT) i en baggrundstråd og på tværs af flere processorer for at generere native kode fra IL-koden.

Forbedringer af affaldssamling: Server GC introduceret

Det administrerede miljø i .Net bruger affaldsindsamling til at rydde op i ubrugte eller ikke-refererede objekter - objekter, der ikke længere er nødvendige. I de tidligere versioner af .Net Framework suspenderede GC applikationstrådene, da den havde travlt med at rydde op i hukommelsen. Dette var en stor præstationsflaskehals, da din ansøgning måtte vente, indtil GC havde afsluttet sit arbejde.

Med .Net Framework 4.5 er dette ikke længere et problem; server GC er for nylig blevet introduceret for at lette rensning af generation to objekter ved hjælp af en baggrundstråd og dermed minimere belastningen på GC-hovedtråden, da applikationstrådene er meget sjældnere suspenderet. Med .Net Framework 4.5 understøttes indsamling af baggrundsaffald i både server og GC-arbejdsstation. Samtidig affaldsindsamling understøttes også nu; en dedikeret tråd udfører skraldopsamlingen, når det er nødvendigt.

Bemærkelsesværdige forbedringer i .Net Framework 4.5.2

Microsoft frigav for nylig .Net Framework 4.5.2. Frigivelsen blev annonceret af Microsoft i .Net Framework-bloggen. Her er linket: //blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

Udover forbedringer i profilering og fejlretning er der bemærkelsesværdige forbedringer i ASP.Net i .Net Framework 4.5.2. Du kan nu bruge metoderne HostingEnvironment.QueueBackgroundWorkItem til at planlægge små baggrundsopgaver asynkront. For at inspicere og ændre svaroverskrifter og svarkoder kan du benytte metoderne HttpResponse.AddOnSendingHeaders og HttpResponseBase.AddOnSendingHeaders. Du kan henvise til denne MSDN-artikel for yderligere læsning: //msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

Hvad kommer der næste gang?

Microsoft udgav en preview-version af .Net Framework 4.6 i november sidste år. Du kan downloade en kopi af .Net Framework 4.6 herfra: //www.microsoft.com/en-us/download/details.aspx?id=44928

Softwaregiganten meddelte også, at den ville tilbagekalde sin understøttelse af .Net Framework versioner 4.x til 4.5.1 efter januar 2016. Læs mere om dette her: //blogs.msdn.com/b/dotnet/archive/2014/08 /07/moving-to-the-net-framework-4-5-2.aspx