Friday, February 12, 2016

Sorting Data On The Client

Katakanlah Anda menggunakan Dot Net untuk berinteraksi dengan database SQL Anda. Anda ingin mendapatkan data yang sudah diurutkan dari database Anda. Tapi, Anda ingin beban pekerjaannya terjadi tingkat menengah Anda, dengan maksud untuk mengurangi beban pada server database Anda. apa pilihan yang tersedia untuk Anda pada saat ini?

Ada banyak cara yang berbeda untuk berbicara dengan SQL Server di Dot Net. Mereka semua didasarkan pada protokol komunikasi Dot Net seperti ODBC, atau ADO.Net menggunakan System.Data.SqlClient. Terlepas dari protokol komunikasi, data dikembalikan ke kode Anda dalam bentuk System.DataTable, atau, jika lebih dari satu tabel, itu dikembalikan dalam System.DataSet (Catatan: Anda dapat memiliki dataset dengan hanya satu tabel) .

Kelas DataTable sudah memiliki cara melakukan filter dan sort (pengurutan). Lihat metode DataTable.Select (). Hal ini memungkinkan Anda untuk memberikan dua string sebagai parameter dalam memilih metode. Parameter pertama adalah filter, dan yang kedua adalah sort. Filter teks terlihat sangat banyak seperti klausa WHERE untuk sintaks SQL, Dalam metode ini tanpa kata WHERE. Dalam cara yang sama, seperti ORDER BY klausa untuk SQL dan tanpa kunci frase ORDER BY dalam kelas DataTable .

Sorting dengan cara ini mengembalikan array System.Data.DataRow, disaring, dan diurutkan sesuai dengan kebutuhan Anda. Tergantung pada ukuran set Anda, ini dapat bekerja untuk Anda.

Lebih menarik lagi, dan lebih modern, metode lain adalah dengan menggunakan Linq dalam bentuk Linq To SQL atau Entity Framework. Kerangka entitas ini lebih disukai karena bekerja dengan Kelas Dot Net. Semua ini untuk mengumpulkan data dari database dan dibangun ke Entity Framework. Kita hanya mendapatkan satu set. Kemudian, dengan set tersebut, kita bisa mengurutkan menggunakan Linq .OrderBy atau .OrderByDescending metode. Apa yang baik tentang menggunakan Linq adalah bahwa hal itu akan melakukan sort  melalui SQL Server jika itu adalah tempat yang lebih baik.

Jika kita menggunakan Transfer Data Objects (DTO) yang terdiri dari kelas sederhana yang hanya berisi properti, yang dapat dengan mudah diubah menjadi objek JSON untuk transportasi dalam layanan RESTful, kita bisa menggabungkan kode untuk menghasilkan DTO dan mengurutkan data ke dalam satu pernyataan LINQ.

Kedua pilihan ini mengambil beban dari database server Anda dan memindahkannya ke tingkat lain. Hal ini menguntungkan di lingkungan-lingkungan di mana aplikasi Anda mungkin perlu dikembangkan segera, atau untuk masa depan. Database Anda tidak dapat dikembangkan dengan mudah. Tapi, konsumen Anda lebih siap untuk dilakukan perubahan. Jadi, kita menempatkan beban di sana. Menggunakan alat bantu seperti Linq, itu adalah jauh lebih mudah untuk menyortir pada klien, terutama menggunakan kriteria berbeda.

Disadur dari http://www.sswug.org/bentaylor/editorials/sorting-data-on-the-client/ February 3, 2016 12:00 am, penulis Ben Taylor