Bagikan melalui


Memahami ASP.NET Pelokalan AJAX

oleh Scott Cate

Pelokalan adalah proses merancang dan mengintegrasikan dukungan untuk bahasa dan budaya tertentu ke dalam aplikasi atau komponen aplikasi. Platform Microsoft ASP.NET menyediakan dukungan ekstensif untuk pelokalan untuk aplikasi ASP.NET standar dengan mengintegrasikan model pelokalan .NET standar; Microsoft AJAX Framework menggunakan model terintegrasi untuk mendukung beragam skenario di mana pelokalan dapat dilakukan.

Pengantar

Teknologi ASP.NET Microsoft menghadirkan model pemrograman berorientasi objek dan berbasis peristiwa dan menyatukannya dengan manfaat kode yang dikompilasi. Namun, model pemrosesan sisi servernya memiliki beberapa kelemahan yang melekat pada teknologi, banyak di antaranya dapat diatasi oleh fitur baru yang disertakan dalam namespace System.Web.Extensions, yang merangkum Layanan Microsoft AJAX di .NET Framework 3.5. Ekstensi ini memungkinkan banyak fitur klien yang kaya, sebelumnya tersedia sebagai bagian dari Ekstensi AJAX ASP.NET 2.0, tetapi sekarang menjadi bagian dari Pustaka Kelas Dasar Kerangka Kerja. Kontrol dan fitur di namespace layanan ini mencakup penyajian sebagian halaman tanpa memerlukan refresh halaman penuh, kemampuan untuk mengakses Layanan Web melalui skrip klien (termasuk API pembuatan profil ASP.NET), dan API sisi klien ekstensif yang dirancang untuk mencerminkan banyak skema kontrol yang terlihat dalam set kontrol sisi server ASP.NET.

Laporan resmi ini memeriksa fitur pelokalan yang ada di Microsoft AJAX Framework dan Microsoft AJAX Script Library, dalam konteks kebutuhan bisnis untuk dukungan pelokalan dan meninjau dukungan yang sudah terintegrasi untuk pelokalan dalam aplikasi web yang disediakan oleh .NET Framework. Pustaka Skrip Microsoft AJAX menggunakan format file .resx yang sudah digunakan oleh aplikasi .NET, yang menyediakan dukungan IDE terintegrasi dan jenis sumber daya yang dapat dibagikan.

Laporan resmi ini didasarkan pada rilis Beta 2 Microsoft Visual Studio 2008. Laporan resmi ini juga mengasumsikan bahwa Anda akan bekerja dengan Visual Studio 2008, bukan Visual Web Developer Express, dan akan memberikan panduan sesuai dengan antarmuka pengguna Visual Studio. Beberapa sampel kode akan menggunakan templat proyek yang mungkin tidak tersedia di Visual Web Developer Express.

Kebutuhan akan Pelokalan

Terutama untuk pengembang aplikasi perusahaan dan pengembang komponen, kemampuan untuk membuat alat yang dapat menyadari perbedaan antara budaya dan bahasa telah menjadi semakin diperlukan. Merancang komponen dengan kemampuan untuk beradaptasi dengan lokal klien meningkatkan produktivitas pengembang dan mengurangi jumlah pekerjaan yang diperlukan agar adaptasi komponen berfungsi secara global.

Pelokalan adalah proses merancang dan mengintegrasikan dukungan untuk bahasa dan budaya tertentu ke dalam aplikasi atau komponen aplikasi. Platform Microsoft ASP.NET menyediakan dukungan ekstensif untuk pelokalan untuk aplikasi ASP.NET standar dengan mengintegrasikan model pelokalan .NET standar; Microsoft AJAX Framework menggunakan model terintegrasi untuk mendukung beragam skenario di mana pelokalan dapat dilakukan. Dengan Microsoft AJAX Framework, skrip dapat dilokalkan dengan disebarkan ke dalam rakitan satelit, atau dengan menggunakan struktur sistem file statis.

Menyematkan Skrip dengan Rakitan Satelit

Konsisten dengan strategi pelokalan .NET Framework standar, sumber daya dapat dimasukkan dalam rakitan satelit. Rakitan satelit memberikan beberapa keuntungan daripada penyertaan sumber daya tradisional dalam biner - pelokalan tertentu dapat diperbarui tanpa memperbarui gambar yang lebih besar, pelokalan tambahan dapat disebarkan hanya dengan memasang rakitan satelit ke dalam folder proyek, dan rakitan satelit dapat disebarkan tanpa menyebabkan pemuatan ulang perakitan proyek utama. Terutama dalam proyek ASP.NET, ini bermanfaat karena dapat secara signifikan mengurangi jumlah sumber daya sistem yang digunakan oleh pembaruan inkremental, dan secara minimal mengganggu penggunaan situs web produksi.

Skrip disematkan ke dalam rakitan dengan menyertakannya dalam file .resx (atau .resources) terkelola, yang disertakan ke dalam assembly pada waktu kompilasi. Sumber daya mereka kemudian tersedia untuk aplikasi skrip melalui kode yang dihasilkan runtime AJAX, melalui atribut tingkat perakitan

Konvensi Penamaan untuk File Skrip Tersemat

Manajemen skrip Microsoft AJAX Framework mendukung berbagai opsi untuk digunakan dalam penyebaran dan pengujian skrip, dan panduan disediakan untuk memfasilitasi opsi ini.

Untuk memfasilitasi penelusuran kesalahan:

Skrip rilis (produksi) tidak boleh menyertakan .debug kualifikasi dalam nama file. Skrip yang dirancang untuk penelusuran kesalahan harus disertakan .debug dalam nama file.

Untuk memfasilitasi pelokalan:

Skrip kultur netral tidak boleh menyertakan pengidentifikasi budaya apa pun dalam nama file. Untuk skrip yang berisi sumber daya yang dilokalkan, kode bahasa ISO harus ditentukan dalam nama file. Misalnya, es-CO singkatan dari Bahasa Spanyol, Columbia.

Tabel berikut ini meringkas konvensi penamaan file dengan contoh:

Filename Makna
Script.js Skrip netral budaya versi rilis.
Script.debug.js Skrip netral budaya versi debug.
Script.en-US.js Versi rilis bahasa Inggris, Amerika Serikat skrip.
Script.debug.es-CO.js Skrip Spanyol versi debug, Columbia.

Panduan: Membuat Skrip yang Dilokalkan dan Disematkan

Harap dicatat: panduan ini memerlukan penggunaan Visual Studio 2008 karena Visual Web Developer Express tidak menyertakan templat proyek untuk proyek pustaka kelas.

  1. Buat proyek Situs Web baru dengan Ekstensi AJAX ASP.NET terintegrasi. Buat proyek lain, proyek Pustaka Kelas, dalam solusi yang disebut LocalizingResources.
  2. Tambahkan file Jscript yang disebut VerifyDeletion.js ke proyek LocalizingResources, serta file sumber daya .resx yang disebut DeletionResources.resx dan DeletionResources.es.resx. Yang pertama akan berisi sumber daya netral budaya; yang terakhir akan berisi sumber daya bahasa Spanyol.
  3. Tambahkan kode berikut ke VerifyDeletion.js:
function VerifyDeletion(fileName)
{
 if (confirm(Message.VerifyDelete.replace(/FILENAME/, fileName)))
 {
 Delete(fileName);
 return true;
 }
 return false;
}
function Delete(fileName)
{
 alert (Message.Deleted.replace(/FILENAME/, fileName));
}

Bagi mereka yang tidak terbiasa dengan sintaks JavaScript Regex, teks dalam garis miring maju tunggal (dalam contoh sebelumnya, /FILENAME/ adalah contoh) menunjukkan objek RegExp. Pustaka MSDN berisi referensi JavaScript yang luas, dan sumber daya pada objek asli JavaScript dapat ditemukan secara online.

  1. Tambahkan string sumber daya berikut ke DeletionResources.resx:

    VerifyDelete: Anda yakin ingin menghapus FILENAME?

    Dihapus: FILENAME telah dihapus.

  2. Tambahkan string sumber daya berikut ke DeletionResources.es.resx:

    VerifyDelete: Est seguro que desee quitar FILENAME?

    Dihapus: FILENAME se ha quitado.

  3. Tambahkan baris kode berikut ke file AssemblyInfo:

[assembly: System.Web.UI.WebResource("LocalizingResources.VerifyDeletion.js",
 "text/javascript")]
[assembly: System.Web.UI.ScriptResource("LocalizingResources.VerifyDeletion.js",
 "LocalizingResources.DeletionResources", "Message")]
  1. Tambahkan referensi ke System.Web dan System.Web.Extensions ke proyek LocalizingResources.
  2. Tambahkan referensi ke proyek LocalizingResources dari proyek Situs Web.
  3. Di default.aspx, di bawah proyek Situs Web, perbarui kontrol ScriptManager dengan markup tambahan berikut:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptLocalization="true">
 <Scripts>
 <asp:ScriptReference Assembly="LocalizingResources" Name="LocalizingResources.VerifyDeletion.js"/>
 </Scripts>
</asp:ScriptManager>
  1. Di default.aspx, di mana saja di halaman, sertakan markup ini:
<asp:Button ID="btnDelete" runat="Server" OnClientClick="VerifyDeletion('a.txt');" Text="Delete" />
  1. Tekan F5. Jika diminta, aktifkan penelusuran kesalahan. Saat halaman dimuat, tekan tombol Hapus. Perhatikan bahwa Anda diminta dalam bahasa Inggris (kecuali komputer Anda diatur untuk lebih memilih sumber daya bahasa Spanyol secara default) untuk konfirmasi.
  2. Tutup jendela browser dan kembali ke default.aspx. Di direktif @Page header, ganti otomatis untuk Budaya dan UICulture dengan es-ES. Tekan F5 lagi untuk meluncurkan aplikasi web di browser lagi. Kali ini, perhatikan bahwa Anda diminta untuk menghapus file dalam bahasa Spanyol:

Cuplikan layar yang memperlihatkan dialog Windows Internet Explorer dengan perintah bahasa Spanyol untuk mengklik O K.

(Klik untuk melihat gambar ukuran penuh)

Cuplikan layar yang memperlihatkan perintah untuk menghapus file dalam bahasa Spanyol.

(Klik untuk melihat gambar ukuran penuh)

Perhatikan bahwa ada beberapa variasi untuk panduan ini. Misalnya, skrip dapat didaftarkan dengan kontrol ScriptManager secara terprogram selama pemuatan halaman.

Menyertakan Struktur File Skrip Statis

Saat menggunakan file skrip statis untuk penyebaran, Anda kehilangan beberapa manfaat menggunakan skema pelokalan .NET yang melekat. Terutama terlihat adalah Bahwa Anda kehilangan jenis otomatis yang dihasilkan dari termasuk file sumber daya skrip; dalam panduan di atas, misalnya, sumber daya diekspos oleh jenis yang dihasilkan secara otomatis yang disebut Pesan dari kontrol ScriptManager.

Namun, ada beberapa manfaat menggunakan struktur file skrip statis. Updates dapat dilakukan tanpa kompilasi ulang dan penyebaran ulang rakitan satelit, dan penggunaan struktur file statis juga dapat dilakukan untuk mengambil alih skrip yang disematkan, untuk mengintegrasikan sepotong kecil fungsionalitas yang mungkin belum dikirim dengan komponen.

Microsoft merekomendasikan untuk menghindari masalah kontrol versi dengan membuat sumber daya skrip Anda secara otomatis selama kompilasi proyek. Saat mempertahankan basis kode skrip yang luas, menjadi semakin sulit untuk memastikan bahwa perubahan kode tercermin dalam setiap skrip yang dilokalkan. Sebagai alternatif, Anda cukup mempertahankan satu skrip logika dan beberapa skrip pelokalan, menggabungkan file saat membangun proyek.

Karena tidak ada sumber daya untuk disertakan secara deklaratif, file skrip statis harus direferensikan baik dengan menambahkan <asp:ScriptElement> elemen sebagai anak dari <Scripts> tag kontrol ScriptManager, atau dengan menambahkan ScriptReference objek secara terprogram ke Scripts properti ScriptManager kontrol pada halaman saat runtime.

ScriptManager dan Perannya dalam Pelokalan

ScriptManager memungkinkan beberapa perilaku otomatis untuk aplikasi yang dilokalkan:

  • Ini secara otomatis menemukan file skrip berdasarkan pengaturan dan konvensi penamaan; misalnya, ini memuat skrip yang diaktifkan debug saat dalam mode debugging, dan memuat skrip yang dilokalkan berdasarkan pilihan antarmuka pengguna browser.
  • Ini memungkinkan definisi budaya, termasuk budaya kustom.
  • Ini memungkinkan pemadatan file skrip melalui HTTP.
  • Ini membuat cache skrip untuk mengelola banyak permintaan secara efisien.
  • Ini menambahkan lapisan tidak langsung ke skrip dengan mempipanya melalui URL terenkripsi.

Referensi skrip dapat ditambahkan ke kontrol ScriptManager baik secara terprogram atau dengan markup deklaratif. Markup deklaratif sangat berguna ketika bekerja dengan skrip yang disematkan dalam rakitan selain proyek situs web itu sendiri, karena nama skrip kemungkinan tidak akan berubah karena revisi didorong.

Ringkasan

Ketika aplikasi web tumbuh untuk menjangkau audiens yang lebih besar, kebutuhan untuk dapat menjangkau budaya dan komunitas yang lebih luas menjadi inti dari model bisnis; Aplikasi web e-niaga harus dapat menangani mata uang asing, sistem manajemen konten harus dapat tidak hanya menyajikan konten mereka tetapi juga petunjuk navigasi dan bidang formulir mereka dalam bahasa lain, dan perusahaan perlu tahu bahwa kebutuhan ini dapat diakses.

.NET Framework secara intrinsik mendukung kerangka kerja pelokalan yang kaya, menggunakan rakitan satelit dan file sumber daya XML (.resx) untuk menyajikan cara yang seragam untuk mencari string dan gambar sumber daya. Ekstensi AJAX ASP.NET, termasuk Microsoft AJAX Framework dan Microsoft AJAX Script Library, memberikan dukungan untuk model pemrograman ini ke dalam kode sisi klien, memungkinkan pencarian string sumber daya yang mudah. Rakitan satelit mendukung penyertaan otomatis sumber daya skrip (file .js aktual) melalui ScriptResource.axd selama nama file mengikuti skema penamaan tertentu. Dengan dukungan ini, ekstensi AJAX ASP.NET menyederhanakan pelokalan skrip dan globalisasi aplikasi.

Bio

Scott Cate telah bekerja dengan teknologi Microsoft Web sejak 1997 dan merupakan Presiden myKB.com (www.myKB.com) di mana ia mengkhususkan diri dalam menulis aplikasi berbasis ASP.NET yang berfokus pada solusi Perangkat Lunak Pangkalan Pengetahuan. Scott dapat dihubungi melalui email di scott.cate@myKB.com atau blognya di ScottCate.com