Nên chọn ADO.NET hay LinQ khi xây dựng ứng dụng


Trước khi tìm hiểu về chúng, ta hãy xem chúng là gì?
 
ADO.NET là gì? ADO.NET viết tắt của từ ActiveX Data Object .NET.DO.NET được thiết kế với dạng dữ liệu “ngắt kết nối”, nghĩa là chúng ta có thể lấy cả một cấu trúc phức tạp của dữ liệu từ Database, sau đó ngắt kết nối với Database rồi mới thực hiện các thao tác cần thiết. Đây là một sự tiến bộ về mặt thiết kế bởi vì thiết kế ADO trước đây luôn cần duy trì một kết nối trong quá trình thao tác dữ liệu.
 
 Tuy nhiên, điểm yếu dễ thấy của ADO.NET là ở chỗ thao tác với dữ liệu nhận về từ Database. ADO.NET gom dữ liệu nó truy xuất được từ Database, sau khi đã ngắt kết nối, thành một đối tượng duy nhất gọi là Dataset. Người dùng sẽ thao tác với Dataset như với Database thực sự. Khi thao tác với dataset này, lập trình viên chỉ được truy xuất thẳng tới bảng ,dòng ,cột mong muốn. Điều này có nghĩa là họ cần quan tâm tới các yêu cầu, ràng buộc, liên kết, phụ thuộc trong Database, chỉ khác đi là giờ họ phải làm việc với Dataset, giống như 1 sự trừu tượng hóa ở mức độ cơ bản, chưa tự động hóa hoàn toàn.
 
LinQ là gì? LinQ viết tắt bởi từ  Language Integrated Query là 1 cải tiến của ADO.NET, giúp lập trình viên " đỡ mệt hơn" khi code,khắc phục được điểm yếu của ADO.NET phía trên. LinQ, bản nâng cấp sau này gọi là Entity framework (EF), sẽ thay đổi hoàn toàn tư duy của lập trình viên, khi chúng ta không cần làm việc với DataSet, có vẻ chậm chạp, thay vào đó, chúng ta làm việc với các thực thể kết hợp (entity). Người lập trình hoàn toàn có thể thoải mái dùng cú pháp của linQ, hay trộn lẫn cách dùng Query của ADO.NET, hay kết hợp sử dụng Store Procedure, trích xuất và liên kết có vẻ " nhanh hơn" về tốc độ code, giúp lập trình viên đỡ mất nhiều thời gian loay hoay với các công việc xử lý " ngắt kết nối" hay tối ưu kết nối, mọi việc hãy để  nó lo.
Tuy nhiên, bạn đừng lầm tưởng rằng khi sử dụng LinQ hay EF thì tốc độ chạy chương trình bạn sẽ cải thiện so với ADO.NET. Đó là một nhận thức hoàn toàn sai lầm, bởi bản chất của LinQ hay EF cũng vẫn là ADO.NET, và như thế, việc 1 đoạn code của bạn chạy nhanh hay chậm, phần lớn phụ thuộc vào thuật toán, tối ưu dòng code của bạn đấy
 
Ví dụ, để lấy ra 1 danh sách nhân viên nằm trong Table NhanVien ở SQL
 
ADO.NET viết như sau:
...
SqlCommand cmd=new SqlCommand("select * from NhanVien, con);
 
Còn EF viết như sau:
QuanLyNhanSuEntities table=new QuanLyNhanSuEntities();
var a=from p in table.NhanVien select p;
 
Như vậy, bản chất của 2 câu lệnh trên cũng đều là select toàn bộ cột và dòng của table NhanVien, và như vậy, tốc độ chương trình là như nhau
 

Tin khác:

Thiết kế phần mềm với DevExpress

Video minh hoạ 1 phần sử dụng DevExpress trong C#. Nếu như bạn nào thích sử dụng DevExpress thì đây là tài liệu hữu ích, DevExpress sử dụng trong video là phiên bản 10.1.6, bạn có thể sử dụng phiên bản cao hơn

Viết phần mềm quản lý tại Việt Nam

Công ty TNHH công nghệ Thanhsoft được thành lập vào tháng 09/2011 với lòng nhiệt huyết của tuổi trẻ, là các cựu sinh viên ĐHSP.TPHCM, ĐHBK,TP.HCM,ĐH Quốc Gia CNTT TP.HCM

Thanhsoft nhận viết phần mềm quản lý theo yêu cầu tại Việt Nam và Thế Giới với đủ các loại ngành nghề:

Link vá khắc phục bằng các bản Windows

Hiện tại, mã độc WannaCry đang lang rộng tới rất nhiều quốc gia và trong đó đã có một vài trường hợp ở Việt Nam. Bởi thể mà Microsoft đang khuyến cáo người dùng cập nhật bản vá bảo mật mới có hệ điều hành Windows ngay lúc này. Tuy nhiên, quá trình cập nhật tự động không phải lúc nào cũng thuận tiện, FPTShop sẽ liệt kệ cho bạn các bản vá cho từng phiên bản hệ điều hành Windows khác nhau để chống mã độc WannaCry