Нови функции и подобрения в .Net Framework 4.5

Microsoft .Net Framework е узрял много през последните няколко години. Представени са нови функции и подобрения, които да го оптимизират и направят бързо, сигурно, по-стабилно и високоефективно. В тази статия бих искал да представя поглед от птичи поглед на значителните подобрения в .Net Framework 4.5.x.

Страшните изключения от паметта

Това е страшна грешка и може да се превърне в кошмар за вас. Изключенията извън паметта могат да прекратят потока на контрол на вашето приложение, дори когато имате инсталирана достатъчно физическа памет. Шегуваш ли се? Няма начин! Позволете ми да обясня защо това може да възникне и как този проблем е разгледан в .Net Framework 4.5.

Обектите, създадени от управляваната среда, се съхраняват в купчина. За определен период от време купчината може да стане фрагментирана поради създаване и премахване на обекти. Фрагментацията се отнася до дупки в паметта (свободна памет), които са разпръснати. В такъв случай често бихте наблюдавали изключения Out of Memory, ако вашето приложение използва голям обем памет и тъй като времето за изпълнение не би могло да разпредели място, когато и ако е необходимо, дори ако може да има свободно място.

Звучи странно? Е, сумата от дупките в паметта може да е достатъчна за тази заявка, но тъй като тези дупки в паметта са разпръснати, времето за изпълнение не може да ги използва.

Уплътняване на купчина с големи обекти при поискване

Уплътняването на купчина големи обекти при поискване е ново въведено за уплътняване на купчината и елиминиране на фрагментацията на купчината. Уплътняването предполага уплътняване на всички тези разпръснати дупки в паметта в един блок. Тази функция е достъпна (само при поискване) от .Net Framework 4.5.1, за да смекчи проблемите с изключението извън паметта. За да активирате тази функция, трябва да зададете свойството LargeObjectHeapCompactionMode.

Между другото, това свойство може да има една от двете стойности: Default и CompactOnce. Първият, ако е зададен, ще игнорира уплътняването на голяма купчина обекти по време на GC цикъл. Ако използвате последното, голямата купчина обект ще бъде уплътнена през следващия цикъл.

Поддръжка за устойчивост на връзката ADO.Net

Вече не е необходимо да пишете код, за да приложите устойчивост на връзката, за да установите неактивни или прекъснати връзки. .Net Framework 4.5.1 идва с тази функция, вградена за пресъздаване на прекъснати връзки към базата данни.

Подобрено време за стартиране: Оптимизиране на профила

Оптимизирането на профила е функция, въведена в .Net Framework 4.5, която минимизира времето за стартиране на приложението. Как работи това? Профилът е файл, който съдържа методите, от които приложението ще се нуждае в момента на стартирането му. Когато приложението стартира, Just in Time Compiler (JIT) работи във фонова нишка и в множество процесори, за да генерира собствен код от IL кода.

Подобрения в събирането на боклука: Представен е сървър GC

Управляваната среда на .Net използва събирането на боклук за почистване на неизползвани или нереферирани обекти - обекти, които вече не са необходими. В по-ранните версии на .Net Framework, GC спря нишките на приложенията, когато беше зает с почистване на паметта. Това беше голямо пречка за производителността, тъй като вашето приложение трябваше да изчака, докато GC приключи работата си.

С .Net Framework 4.5 това вече не е проблем; сървърният GC е въведен наскоро, за да улесни почистването на обекти от две генерации с помощта на фонова нишка и, следователно, да намали натоварването върху основната GC нишка, тъй като нишките на приложенията са много по-рядко преустановени. С .Net Framework 4.5 събирането на боклука на фона се поддържа както в сървъра, така и в работната станция GC. Едновременното събиране на боклука също се поддържа сега; специална нишка изпълнява събирането на боклука, когато е необходимо.

Забележителни подобрения в .Net Framework 4.5.2

Microsoft пусна .Net Framework 4.5.2 наскоро. Пускането е обявено от Microsoft в блога .Net Framework. Ето връзката: //blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

Освен подобрения в профилирането и отстраняването на грешки, има забележителни подобрения в ASP.Net в .Net Framework 4.5.2. Вече можете да използвате методите HostingEnvironment.QueueBackgroundWorkItem, за да планирате асинхронно малки фонови задачи. За да проверите и промените заглавките на отговорите и кодовете за отговори, можете да използвате методите HttpResponse.AddOnSendingHeaders и HttpResponseBase.AddOnSendingHeaders. Можете да се обърнете към тази статия на MSDN за допълнително четене: //msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

Какво предстои?

Microsoft пусна предварителен преглед на .Net Framework 4.6 миналия ноември. Можете да изтеглите копие на .Net Framework 4.6 от тук: //www.microsoft.com/en-us/download/details.aspx?id=44928

Софтуерният гигант също обяви, че ще отмени подкрепата си за .Net Framework версии 4.x до 4.5.1 след януари 2016 г. Прочетете повече за това тук: //blogs.msdn.com/b/dotnet/archive/2014/08 /07/moving-to-the-net-framework-4-5-2.aspx