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:

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

KHAI TRƯƠNG LỚP HỌC LẬP TRÌNH Csharp miễn phí

KHAI TRƯƠNG LỚP HỌC LẬP TRÌNH C# miễn phí
📣📣📣📣📣
Thanhsoft mở lớp lập tình C# theo chủ đề hoàn toàn miễn phí, học vào chủ nhật
- sáng 9-11h
- chiều 14h-16h
Hình thức đăng ký:

Viết phần mềm quản lý kho hàng

Viết phần mềm quản lý kho hàng

Phần mềm quản lý kho hàng là một phần mềm quản lý chuyên về kho hàng, hoặc tích hợp cả quản lý bán hàng, công nợ. Mục địch của phần mềm là nhằm giải quyết các vấn đề về số liệu lưu trữ kho hàng, có thể quản lý được về doanh thu bán hàng (nếu tích hợp), giúp chủ doanh nghiệp có thể quản lý và quy vấn dữ liệu bất cứ lúc nào muốn