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:

Cần viết phần mềm, tìm ở đâu

Cần viết phần mềm, cần viết phần mềm quản lý, cần viết phần mềm giá rẻ, tìm nơi viết phần mềm. Đó là các từ khoá phổ biển trên Google, nơi mà chúng ta, khi có nhu cầu cũng mong muốn tìm kiếm một dịch vụ tốt, phục vụ cho nhu cầu công việc của bản thân

Viết phần mềm theo yêu cầu riêng-Xu thế thời đại mới

Để tiếp cận thời đại công nghệ 4.0 sắp tới, áp dụng và cải tiến quy trình doanh nghiệp, tạo thế mạnh cạnh tranh trong cuộc đua giành thị trường, một tất yếu là doanh nghiệp cần phải đầu tư xây dựng hệ thống phần mềm riêng, theo ý tưởng hoàn toàn riêng. Và như vậy, chúng ta nên chọn dịch vụ viết phần mềm theo yêu cầu

10 Bí quyết để học và trở thành 1 lập trình viên giỏi nhất

Là một lập trình viên phần mềm làm việc trong ngành công nghiệp IT, thì thứ tạo ra động lực để chúng ta đến nơi làm việc mỗi ngày là những niềm vui và đam mê trong công việc lập trình. Nhưng để cho công việc đó trở nên là một niềm vui thích và đam mê vĩnh cửu thì một trong những điều bạn cần phải học là bám sát vào những thứ căn bản để giúp bạn trở thành một lập trình viên giỏi.