Terdapat lonjakan kemajuan yang sangat besar pada ASP.NET 4.0 dari versi sebelumnya. Beberapa fitur baru sangat membantu para developer web dalam membangun aplikasi yang lebih baik dan sesuai standar aplikasi web modern. Dukungan terhadap berbagai browser modern termasuk pada perangkat bergerak (mobile device) seperti BlackBerry dan iPhone juga sudah dimasukkan dalam rilis ini.
Bagi pengembang yang lebih banyak bermain di client script kini bisa bernafas lebih lega karena tidak perlu direpotkan dengan prefiks ClientID yang dibangkitkan oleh server secara otomatis. ClientID kini lebih bersahabat karena dapat diatur sesuai dengan kehendak pengembang sendiri. Selain itu juga terdapat teknologi baru yang sangat menarik yaitu Dynamic Data yang dapat meningkatkan produktivitas anda. ASP.NET MVC 2.0 kini juga sudah masuk dalam paket ASP.NET 4.0 sehingga pengembang dapat dengan mudah memilih teknologi apa yang paling cocok dengan kebutuhan. Yang terpenting di versi terbaru ini, Microsoft memfokuskan pada standar HTML baku dalam merender setiap kontrol.
Web Forms
Ada beberapa selentingan isu dengan rilisnya ASP.NET MVC beberapa waktu yang lalu. Apakah Microsoft akan menghentikan dukungan terhadap Web Forms yang selama ini menjadi ujung tombak dari ASP.NET. Isu itu tidaklah benar dengan dirilisnya ASP.NET 4.0 Web Forms. Banyak sekali kemjuan yang ada dalam Web Form di ASP.NET 4.0 ini terutama pada mesin render yang difokuskan untuk memenuhi standar web. Microsoft tidak akan membuang investasi yang telah di keluarkan untuk membangun Web Forms. Microsoft akan terus memperbaiki dan mengembangkan Web Forms untuk memenuhi kebutuhan pengembangan aplikasi web sesuai dengan perkembangan standar web modern.
File web.config Minimalis
File web.config adalah file yang mengandung seluruh konfigurasi applikasi web. Seiring dengan perkembangan Microsoft .NET Framework, isi file web.config menjadi semakin kompleks. Seperti halnya penambahan konfigurasi untuk ASP.NET Ajax, integrasi dengan IIS 7 dan lain sebagainya membuat jumlah baris dalam file web.config semakin panjang.
Kini, dengan ASP.NET 4 semua konfigurasi default dipindahkan ke dalam file machine.config. Setiap aplikasi akan menurunkan konfigurasi dari machine.config ini. Dengan demikian, pembuatan aplikasi web menjadi lebih mudah, bahkan tanpa harus menulis satu baris pun dalam file web.config, aplikasi sudah bisa berjalan dengan baik.
Anda juga bisa hanya menambahkan isi web.config seperti pada contoh berikut untuk menentukan versi framework yang digunakan.
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation targetFramework="4.0" />
</system.web>
</configuration>
Kendali atas Control ID di Sisi Client yang Terbentuk Otomatis
Tiap control pada ASP.NET pasti memiliki identitas/nama (ID) yang unik. Identitas ini digunakan untuk menentukan/mengakses control dari sisi server (code-behind). Pada ASP.NET versi sebelumnya, identitas control dari sisi server dan client bisa berbeda dikarenakan lokasi control berada di dalam control lainnya. ASP.NET akan memberikan perfiks pada identitas control secara otomatis berdasarkan hirarki control yang dirender. Penambahan prefiks ini tentu saja menyulitkan pengembang yang akan bermain di sisi client, karena sulit untuk menebak ID yang digunakan di sisi client.
Pengembang yang bermain di sisi client biasanya mengambil identitas client dengan cara merender ClientID dalam sebuah variable javascript seperti contoh berikut.
<script type="text/javascript">
var myControlID = '<%= TextBox1.ClientID %>';
</script>
Dengan kode di atas ClientID akan akan dirender dalam halaman mungkin seperti baris berikut.
var myControlID = 'ctl000_MainContainer_TextBox1';
Cara tersebut di atas membuat halaman yang dirender tidak bersih dari javascript. Kita tidak dapat memisahkan semua javascript dalam file terpisah. Dengan kendali atas ClientID, kita dapat sepenuhnya memindahkan javascript dari halaman ke file tersendiri. Dengan demikian halaman akan menjadi lebih bersih dan mudah untuk dikelola.
Pada ASP.NET 4.0 terdapat 4 mode untuk ClientID yaitu:
- Inherit, akan mengikuti perilaku control induknya.
- Legacy, akan berperilaku seperti ASP.NET sebelumnya.
- Predictable, akan memberikan sufiks pada control yang berada dalam repeating-templates seperti ListView, GridView, dll.
- Static, akan merender ID sebagaiman tertulis dalam property ID.
Selected Row Tidak Hilang pada GridView dan ListView
Saat menggunakan GridView dengan fasilitas pagging, ketika sebuah baris dipilih (selected) dan pindah ke halaman lain, maka informasi selected row akan hilang. Hal ini tidak akan terjadi lagi pada ASP.NET 4.0 jika anda mengeset property EnablePersistedSelection menjadi true. Informasi selected row akan tetap terjaga sehingga tidak memerlukan penanganan tersendiri untuk mendapatkan informasi selected row.
Perbaikan Pada Control ListView
ListView adalam templated-control yang ada sejak ASP.NET 3.5. ListView membutuhkan LayoutTemplate dalam server control yang dinamakan itemPlaceholder untuk memasukkan isi dari ItemTemplate seperti pada contoh berikut.
<asp:ListView ID="ListView1" runat="server" DataSourceID="ObjectDS">
<ItemTemplate>
<asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>'></asp:Label>
</ItemTemplate>
<LayoutTemplate>
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</LayoutTemplate>
</asp:ListView>
Pada ASP.NET 4.0, LayoutTemplate telah dihilangkan sehingga kode di atas menjadi lebih sederhana seperti terlihat pada kode berikut.
<asp:ListView ID="ListView1" runat="server" DataSourceID="ObjectDS">
<ItemTemplate>
<asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>'></asp:Label>
</ItemTemplate>
</asp:ListView>
Pada posting selanjut Insya Allah akan saya paparkan fitur baru lainnya di ASP.NET 4.0 seperti pengaturan ViewState, Routing, Chart Control, ASP.NET Ajax 4, dll.