Nên chọn cái nào giữa ADO.NET, LINGQ, ADO.NET ENTITY để kết nối Database trong ASP.Net?

Mình đang học về asp.net webform đến phần DB thì không biết nên dùng framework nào cho hợp lý
mình có biết qua những cái này ADO.NET, LINGQ, ADO.NET ENTITY bạn nào từng có kinh nghiệm thì chia sẻ với mình và mọi người về các framework này đi :smile: về sự khác nhau và ưu nhược điểm của chúng :wink:

Dùng Entity framework đi bạn cái này đơn giản, nhanh gọn

1 Like

ADO.NET: công nghệ đầu tiên của mircosoft, mình nghĩa đã cũ và lạc hậu. Nghĩ tới cảnh ngồi cộng chuỗi từ câu lệnh trong sql thì thấy nản. Dĩ nhiên mới đầu thì nên làm quen cái này.
LINGQ: cải tiến hơn tí xíu. Chạy trực tiếp câu sql.
2 cái này đều có điểm yếu là thay đổi cấu trúc database và tên filed thì phải ngồi sửa.
ADO.NET ENTITY: thì map nguyên database vào nên sẽ không lo viết câu sql, không lo thay đổi cấu trúc, số filed.

2 Likes
ADO.NET ENTITY

học nó có nhanh ko nheey :smiley:

cái nào cũng nên chọn để làm cho biết. còn để làm thật thì nên dùng entity framework.

1 Like

nếu dùng winform thì nên dùng cái nào hả các anh

winform mình nghĩ bạn nên xài lingq nhé

Sắp tới em cũng học cơ sở dữ liệu… Nghỉ hè này muốn học về nó trước vào năm đỡ bỡ ngỡ. Ai cho em xin tài liệu đầy đủ để học tốt môn này với ạ?

Học cái tutorial này nè:
http://www.w3schools.com/sql/default.asp

thấy nó dễ đọc và có luôn csdl test trực tiếp hoặc bạn có thể cài phần mềm hệ quản trị CSDL

1 Like

ADO.NET ko phaỉ là ngồ viết từng câu query bằng chuỗi trong code đâu. Nếu bạn viết store trong SQL rồi thì chỉ cần gọi store mà dùng thôi. Cái mà bạn nói chỉ là cơ bản khi học trong trường thôi. Hầu như ai dùng SQL đều viết store hết. Còn Entity thì đúng là nhanh và tiện lợi nhưng theo mình nó sẽ làm cho chương trình chậm và nặng nề hơn. Mình từng đi phỏng vẩn, người phỏng vẩn mình từng nói vậy. Dùng những cái cơ bản là tốt nhất. Những công nghệ mới giúp ta làm việc nhanh hơn nhưng nó nặng nệ và người dùng khó hiểu rõ về bản chất của nó.

1 Like

người dùng khó hiểu rõ về bản chất của nó. --> người dùng ở đây là người dùng nào ?

mình đồng ý với bạn những ý kiến bạn vừa nêu.

Mình vừa thực tập hè xong, học quăng cho cái project bảo dùng ADO.Net nên chỉ biết tới đó. Nói chung dùng thứ này lằng nhằng với kiểm tra thủ công trên SQL nên cũng mất thời gian lắm. :confused:

Mất thời gian nhưng dễ bảo trì vì đâu ra đó. Nếu sau này bạn cần cập nhật gì thì chỉ cẩn gửi store qua máy server bên khách hàng rồi chạy store thôi. Ko cần đụng đến chương trình nữa. Bạn chưa thấy lợi ích của nó đâu.

Mình nghĩ bạn nói củng đúng nhưng phải xem xét lại một điều : Cái mới nó ra để làm gì ? Entity ra nó sẻ giúp viết code nhanh hơn và tiện lôi, và cái mới ra nó có tính kế thừa cái củ nhé.
Entity ra thì viết lệnh SQL thẳng trên Code C# bằng linq to sql nhưng kế thừa ở đây có nghĩa là “bạn ko muốn biết linq to sql thì bạn vẫn dùng Entity gọi Store đc hay Execute 1 câu SQL thuần text” .
Chậm ở đây là do nó phải mất time để render code C# ra chuỗi SQL để thực thi nhưng vấn đề này không đáng kể khi mà người lập trình biết “cheat” và tối ưu theo nhiều cách, ko hẳn Entity nó chậm hơn đâu, với các chương trình mà dữ liệu ít thay đổi thì tính năng Cache của Entity sẻ hiệu quả …

:wink: :wink: :wink:

Mình thì nghĩ những công nghệ mới giúp người lập trình dễ tiếp cận và làm việc nhanh hơn. Còn việc ứng dụng chạy nhanh thì là một chuyện khác. Khi 1 công nghệ càng dễ tiếp cận thì người lập trình càng khó hiểu đc bản chất của nó. Mình nghĩ nó giống như ngôn ngữ lập trình vậy. Nếu chỉ học C#, VB thì chúng ta sẽ dễ lập trình phần mềm hơn nhưng bên cạnh đó chúng ta lại không hiểu rõ nếu như chưa học về C/C++. Mình từng được biết nếu viết 1 app bằng C/C++ thì chương trình sẽ chạy nhanh hơn rất nhiều so với viết bằng C# hoặc VB. Nhưng để viết được 1 app bằng C/C++ thì lại khó hơn C#/VB,

Củng đúng đấy :grinning:
Tại vì C/C++ có thể hiểu nôm na là nó gần với ngôn ngữ máy hơn là các ngôn ngữ C#,VB (thực chất C# hay VB từ C/C++ )
tức là càng về sau khi chúng ta công nghệ lập trình càng phát triển thì nền tảng đó rốt cuộc nó củng phải render và qui về source C/C++ hay thậm chí là ngôn ngữ máy thực thi nên chậm hơn tí là dễ hiểu … nhưng nhanh hay chậm mình nghĩ 70% do phần cứng vận hành hệ thống đó nữa nhưng càng ngày thì phần cứng đã cải thiện rất nhiều nên ở mức tương đối, chúng ta hãy xem phần cứng đã đc tối ưu nhất để vận hành CODE của chúng ta
:smile:

Chưa cần bàn tới chuyện nhanh hay chậm. Mình từng dùng LightSwitch (1 công nghệ của Microsof) để làm. Bao chậm và nặng nề! Mới nhìn vào thấy nó rất là nhanh nhưng theo mình tìm hiểu nó chỉ thích hợp làm các phần mềm đơn giản, kiểu mì ăn liền. Chứ các phần mềm phức tạp thì mình thấy là bó tay. LightSwitch dùng công nghệ Entity Framework. Vừa mới add cái database vào thì cái solution tăng lên 300 - 400MB @@. Loay hoay 2 tháng cuối cùng bỏ cuộc. Cái đó là mình làm thực tế luôn đó chứ không phải làm tìm hiểu chơi đâu.

1 Like

bên java có hibernate khi học thì thấy nó cũng chả khác gì entity mấy chỉ có điều entity có thêm cái diagram khá hay… và mình đang phải làm cả hai song song @@

Nói chung cái nào cũng ok cả, về hiệu năng thì theo kinh nghiệm mình biết thì Entity chạy chậm lần đầu tiên, nó có cơ chế cache dữ liệu nên những lần sau chạy cũng nhanh gần như ADO, còn về ADO nói nó loằng nhoằn cũng ko đúng, làm 1 thời gian rồi chúng ta cũng tự phát sinh ra các class, các hàm để gọi nhanh và ngắn gọn hơn thôi,… Nhưng có điều mình thấy khi càng làm nhiều chúng ta càng muốn hiểu rõ bản chất của nó như thế nào nên cái quan trọng nhất là hiểu rõ bản chất của ADO hay Entity hoặc là cách mà ADO nó kết nối và gọi xuống DB như thế nào,…? Nói chung học cả hai. :wink:

Dùng cả 2 nha bạn, nhưng tùy theo dự án, mình áp dụng quy tắc sau:

  1. Nếu dự án nhỏ, mô hình đơn giản, cần triển khai nhanh, thì dùng Entity Framework
  2. Nếu dự án lớn, mô hình phức tạp, có nhiều thời gian để triển khai thì mình dùng ADO.NET, các câu lệnh SQL thì viết trên Store Procedure. Cách này giúp cho bạn tách bạch rõ ràng giữa các team khi làm dự án.

EF nếu khi code không lường trước, sẽ làm hệ thống ngày càng trở nên nặng nề, đặc biệt khi dữ liệu phình to mà lúc nào cũng Map hết về local thì hệ thống sẽ chậm kinh khủng.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?