LINQ, là gì và tại sao


LINQ ra đời bởi vì cách viết Entity trước đây tạo ra quá là nhiều code nhưng lại có thể dùng auto coding (xài Code Smith chẳng hạn). Có thể ở background, MS có thuê mấy thèng viết Code Smith làm LINKQ cũng nên ^^.

Tóm lại LINQ ra đời để giảm công sức cho những quá trình đơn giản và “chung chung” trước đây.

Đó là nỗ lực kết xuất truy vấn ra Entity Object. Lập trình viên sẽ không phải care đến việc viết các Entities nữa.

Điểm mạnh (chưa chắc về độ mạnh, nhưng hay) của LINQ là “viết truy vấn cho rất nhiều các đối tượng dữ liệu”. Từ CSDL, XML Data Object … thậm chí là viết truy vấn cho một biến mảng đã tạo ra trước đó. Vì vậy mới có các khái niệm LinQ to SQL, LinQ to XML, blo bla ….

Thích nhất là cái “truy vấn cho một biến mảng” (mình xin không được comments nhiều về biến mảng, vì mình không phải là dân .NET, trong khi hình như là C#, VB.NET có một vài kiểu định nghĩa List, Generics Collection gì gì đó ). Trường hợp bạn muốn sắp xếp lại mảng đó, bạn có thể sử dụng LINQ thay vì viết vòng lặp FOR/WHILE như trước.

Tuy nhiên so với mô hình Entity (Entity Framework), LINQ có yếu điểm là chậm và thiếu nhất quán (hiện đại tất phải hại điện).

Vì thế, với các ứng dụng cỡ bự, yêu cầu sự ổn định, khả năng scalable cao, tạm thời không nên sử dụng LINQ, hoặc chỉ sử dụng LINQ cho các thành phần cơ bản, ít liên quan đến Business Logic.

Trong các hệ thống lớn, khi bạn cần thay đổi một công thức nào đó chẳng hạn, bạn nên sử dụng một “công thức ngoài mã nguồn”. (Stored Procedure chẳng hạn). Khi đó bạn sẽ không phải sửa code, re-compile lại hệ thống. Khi sử dụng LINQ, chắc chắn bạn sẽ tốn thời gian cho công việc này (viết lại LINQ query, re-compile, re-deploy… rõ ràng là cực kì phiền phức).

3 comments

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s