Fitur dan peningkatan baru di .Net Framework 4.5

Microsoft .Net Framework telah berkembang pesat selama beberapa tahun terakhir. Fitur dan penyempurnaan baru telah banyak diperkenalkan untuk mengoptimalkannya dan membuatnya cepat, aman, lebih stabil, dan berkinerja tinggi. Pada artikel ini saya ingin menyajikan pandangan luas tentang peningkatan signifikan dalam .Net Framework 4.5.x.

Pengecualian Out of Memory yang ditakuti

Ini adalah kesalahan yang ditakuti dan bisa menjadi mimpi buruk bagi Anda. Pengecualian Out of Memory dapat menghentikan aliran kontrol aplikasi Anda bahkan ketika Anda memiliki memori fisik yang cukup terpasang. Apa Anda sedang bercanda? Tidak mungkin! Izinkan saya menjelaskan mengapa ini bisa terjadi dan bagaimana masalah ini telah diatasi di .Net Framework 4.5.

Objek yang dibuat oleh lingkungan terkelola disimpan di heap. Selama periode waktu tertentu, heap dapat menjadi terfragmentasi karena pembuatan dan penghapusan objek. Fragmentasi mengacu pada lubang memori (memori bebas) yang tersebar. Dalam kasus seperti itu, Anda akan sering mengamati pengecualian Out of Memory jika aplikasi Anda menggunakan memori dalam jumlah besar dan karena runtime tidak akan mampu mengalokasikan ruang saat dan jika diperlukan meskipun mungkin ada ruang yang tersedia.

Kedengarannya aneh? Nah, jumlah lubang memori mungkin cukup untuk permintaan ini, tetapi karena lubang memori ini tersebar, runtime tidak dapat menggunakannya.

Pemadatan Heap Objek Besar sesuai permintaan

Pemadatan heap Objek Besar Sesuai Permintaan baru saja diperkenalkan untuk memadatkan heap dan menghilangkan fragmentasi heap. Pemadatan berarti memadatkan semua lubang memori yang tersebar ini menjadi satu blok. Fitur ini tersedia (hanya sesuai permintaan) dari .Net Framework 4.5.1 untuk mengurangi masalah pengecualian Memori Habis. Untuk mengaktifkan fitur ini, Anda perlu menyetel properti LargeObjectHeapCompactionMode.

Kebetulan, properti ini dapat memiliki salah satu dari dua nilai: Default dan CompactOnce. Kumpulan if yang pertama akan mengabaikan pemadatan heap objek besar selama siklus GC. Jika Anda menggunakan yang terakhir, tumpukan objek yang besar akan dipadatkan selama siklus berikutnya.

Dukungan untuk ADO.Net Connection Resiliency

Anda tidak perlu lagi menulis kode untuk mengimplementasikan ketahanan koneksi untuk membuat koneksi yang tidak aktif atau rusak. .Net Framework 4.5.1 hadir dengan fitur bawaan untuk membuat kembali koneksi yang rusak ke database.

Peningkatan waktu startup: Pengoptimalan profil

Optimasi profil adalah fitur yang telah diperkenalkan di .Net Framework 4.5 yang meminimalkan waktu startup aplikasi. Bagaimana cara kerjanya? Profil adalah file yang berisi metode yang dibutuhkan aplikasi pada saat aplikasi dimulai. Saat aplikasi dimulai, Just in Time Compiler (JIT) berjalan di thread latar belakang dan di beberapa prosesor untuk menghasilkan kode asli dari kode IL.

Peningkatan pengumpulan sampah: Server GC diperkenalkan

Lingkungan terkelola .Net menggunakan pengumpulan sampah untuk membersihkan objek yang tidak digunakan atau tidak direferensikan - objek yang tidak lagi diperlukan. Di versi .Net Framework yang lebih lama, GC menangguhkan utas aplikasi saat sibuk membersihkan memori. Ini adalah hambatan kinerja yang besar karena aplikasi Anda harus menunggu hingga GC menyelesaikan pekerjaannya.

Dengan .Net Framework 4.5 ini tidak lagi menjadi masalah; Server GC baru saja diperkenalkan untuk memfasilitasi pembersihan objek generasi-dua menggunakan thread latar belakang dan, karenanya, meminimalkan beban pada thread GC utama karena thread aplikasi jauh lebih jarang ditangguhkan. Dengan .Net Framework 4.5, pengumpulan sampah latar belakang didukung di server dan workstation GC. Pengumpulan sampah secara bersamaan juga didukung sekarang; utas khusus melakukan pengumpulan sampah bila diperlukan.

Peningkatan penting dalam .Net Framework 4.5.2

Microsoft merilis .Net Framework 4.5.2 baru-baru ini. Rilis ini diumumkan oleh Microsoft di blog .Net Framework. Ini tautannya: //blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

Selain peningkatan dalam profil dan debugging, ada peningkatan penting dalam ASP.Net di .Net Framework 4.5.2. Anda sekarang dapat menggunakan metode HostingEnvironment.QueueBackgroundWorkItem untuk menjadwalkan tugas latar belakang kecil secara asinkron. Untuk memeriksa dan mengubah header respons dan kode respons, Anda dapat menggunakan metode HttpResponse.AddOnSendingHeaders dan HttpResponseBase.AddOnSendingHeaders. Anda dapat merujuk ke artikel MSDN ini untuk membaca lebih lanjut: //msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

Apa selanjutnya?

Microsoft merilis versi pratinjau .Net Framework 4.6 November lalu. Anda dapat mengunduh salinan .Net Framework 4.6 dari sini: //www.microsoft.com/en-us/download/details.aspx?id=44928

Raksasa perangkat lunak itu juga mengumumkan akan mencabut dukungannya untuk .Net Framework versi 4.x hingga 4.5.1 setelah Januari 2016. Baca lebih lanjut tentang ini di sini: //blogs.msdn.com/b/dotnet/archive/2014/08 /07/moving-to-the-net-framework-4-5-2.aspx