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:

Làm thế nào để học viết phần mềm hiểu quả

Hiện nay, nhu cầu doanh nghiệp rất cần thay đổi cách thức vận hành, để bước vào thời đại 4.0, do vậy, nhu cầu viết phần mềm theo yêu cầu là rất lớn.

Bạn là người có nhu cầu học để viết phần mềm, nhưng học để hiểu quả, để viết được một phần mềm với rất nhiều logic về thuật toán, kiến thức chuyên môn, các tool hỗ trợ, liệu bạn đã sẵn sàng chưa?

Học viết phần mềm thật đơn giản

Học lập trình C thế nào

C# là một ngôn ngữ, trong vô số ngôn ngữ lập trình. Tại sao phải học C#, học C# có khó không, học C# phải bắt đầu từ đâu. Đó là một trong vô số câu hỏi mà bất cứ ai mới tiếp xúc với lập trình, đều mong muốn có câu giải đáp

Dạy Csharp winform

Dạy C# winform

Bạn muốn học viết phần mềm và muốn chọn cho mình trung tâm học uy tín nhất? Thanhsoft là đơn vị chuyên đào tạo lập trình C# từ cơ bản đến nâng cao với nhiều khoá học hấp dẫn và chuyên sâu