Thực tiễn tốt nhất hiện nay của Microsoft để xây dựng tầng dữ liệu .NET? Còn thực tế?


13

Nhóm phát triển mà tôi đang làm việc sẽ sớm chuyển sang .NET 4.0, tuy nhiên, thư viện lớp truy cập dữ liệu mà chúng tôi sử dụng vẫn sử dụng ADO.NET "classic", có nghĩa là SqlDataReader , DataTable và tương tự. Trong khi đó, có vẻ như Microsoft và có lẽ phần còn lại của thế giới đang tiến lên với Entity Framework và WCF Data Services . Tôi không tìm thấy bất cứ điều gì trên MSDN chỉ ra công nghệ truy cập dữ liệu nào mà Microsoft cho là thực tiễn tốt nhất.

Microsoft có ưu tiên không? Hiện tại hầu hết mọi người đang sử dụng dữ liệu nào? Có lý do chính đáng để ở lại với ADO.NET cổ điển và không chuyển sang Entity Framework không?


Câu hỏi hay. Một nit: "lớp dữ liệu" có thể là một thuật ngữ chính xác hơn. "Các bậc" cũng có thể có nghĩa là các bộ phận của một hệ thống phân tán có thể chạy được trên các hộp riêng biệt.
azheglov

1
@azheglov, "lớp dữ liệu" là suy nghĩ đầu tiên của tôi, nhưng sau đó tôi đã xem xét điều này và tôi nghĩ rằng sẽ đi với bất kỳ thuật ngữ nào tôi thấy trên MSDN: msdn.microsoft.com/en-us/l Library / bb384398.aspx . Tôi đồng ý rằng lớp dữ liệu là chính xác hơn mặc dù.
T. Webster

Webster: cảm ơn vì đã tìm kiếm và làm rõ
azheglov

Câu trả lời:


4

Trong công ty của tôi, chúng tôi đang sử dụng EF. Đó là một ORM đẹp, phù hợp cho dự án nhỏ của chúng tôi. Trong thực tế mọi người đang sử dụng EF hoặc NHibernate. Cả hai khung đều tốt. EF có một hỗ trợ MS tuyệt vời và bạn có thể tìm thấy các công cụ tuyệt vời đi kèm với Visual Studio. NHibernate được coi là tốt hơn so với EF nhưng có một "đường cong học tập" lớn hơn nên bạn sẽ dành nhiều thời gian hơn để áp dụng nó.

Tôi nghĩ rằng, nếu bạn đang ở trên Ado.Net "cổ điển", hãy thử EF. Tạo một dự án đơn giản và thay thế một số phương thức DAL. Kiểm tra cách thức hoạt động và cách bạn có thể quản lý / sửa đổi mã. So sánh nó với các phương thức "SqlDataReader" đơn giản và quyết định cái nào tốt hơn. Hãy nhớ rằng mỗi sự thay đổi công nghệ cần một thời gian để áp dụng vì vậy bạn phải tính toán xem sự thay đổi này có mang lại lợi ích gì cho công ty của bạn về lâu dài hay không.


5

Nhóm của tôi đang tìm thấy thực tế của việc chuyển đến EF một chút đau đớn. Không phải vì EF xấu hay không hữu ích, nhưng phạm vi chuyển đổi các lớp dữ liệu hiện có của chúng tôi (khá lớn) từ các bộ dữ liệu được gõ mạnh có nguồn gốc từ ADO.Net framework 2.0 sang EF chỉ là rất nhiều công việc chuyên sâu không thực sự đạt được chúng tôi bất cứ điều gì Đối với những thứ mới, chúng tôi vẫn còn khá rách nát vì tất cả chúng ta đều có ý kiến ​​và mục tiêu. Đối với các dự án Silverlight của chúng tôi, chúng tôi chỉ tập trung vào các dịch vụ của EF và RIA, nhưng đối với các dự án web (webforms và MVC 3), chúng tôi chủ yếu sử dụng Linq2Sql.

Chúng tôi đang tìm kiếm ít đau đầu hơn và phát triển nhanh hơn bằng Linq2Sql, nhưng tôi biết Microsoft đang thúc đẩy chương trình nghị sự của EF (đặc biệt là với các dịch vụ WCF và RIA). Linq2Sql không đi đâu cả, nhưng tất cả các đồ chơi mới và các tính năng thú vị sẽ được tập trung vào EF. Tôi muốn nói rằng nếu bạn có lựa chọn sớm, thì EF sẽ là một nơi tốt để bắt đầu. Nếu bạn đã ở giữa dòng, tôi không biết rằng việc chuyển đổi sẽ rất dễ dàng.


3

Entity Framework là cách tốt nhất để đi. LinqToSql sẽ được hỗ trợ và duy trì nhưng trọng tâm phát triển trong tương lai là về Entity Framework. Lựa chọn giữa ADO.NET Entity Framework và LINQ to SQL


và hiện tại bạn đang sử dụng cái gì?
T. Webster

2
Tôi nghĩ rằng tất cả mọi người đang sử dụng linq2sql
cnd

@nCdy: Mặc dù một số thành viên trong nhóm của chúng tôi đã giải thích Linq2Sql là quá "trò chuyện", nhưng tất cả chúng tôi đều cho rằng EF tự động tạo ra quá nhiều rác không cần thiết mà L2S bỏ qua.
Joel Etherton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.