2009-07-12 29 views
12

Có vẻ như có nhiều chiến lược truy cập dữ liệu khác nhau sắp ra khỏi Microsoft. Có 'ADO.NET', Linq2Sql, ADO.NET Entity Framework, ADO.NET Data Services, ADO.NET Dữ liệu động 'cổ điển'. Tôi chắc chắn rằng tôi đã bỏ lỡ một số. Đối với tôi, có vẻ như có rất nhiều sự nhầm lẫn xung quanh nơi mỗi khung công tác phù hợp với kiến ​​trúc của ứng dụng. Microsoft đang cố gắng giải quyết vấn đề gì với tất cả các phương pháp truy cập dữ liệu này?Microsoft đang cố gắng giải quyết vấn đề gì với tất cả các chiến lược truy cập dữ liệu này?

+0

Bạn nên đặt câu hỏi wiki cộng đồng này vì không có câu trả lời dứt khoát nào –

+1

có vẻ tốt, cảm ơn! –

+0

Thực ra, sẽ được đóng tốt hơn là bản sao của http://stackoverflow.com/questions/669242/ado-net-data-services-their-place-in-overall-design và nhiều người khác. –

Trả lời

5

Họ đang cố gắng giải quyết vấn đề về cách tăng doanh thu và thị phần. Để kết thúc các nhóm khác nhau trong Microsoft cố gắng để tấn công vấn đề làm thế nào để có được nhiều nhà phát triển và người dùng cuối sử dụng sản phẩm của họ. Các nhóm khác nhau đưa ra các công nghệ khác nhau và giống như bất kỳ công ty lớn nào khác, Microsoft đang nỗ lực để giữ cho các công nghệ được liên kết và nhóm làm việc hướng tới cùng một kết thúc. Ngoài ra, khi các công nghệ mới đi kèm, họ cần phải giữ (hoặc tốt hơn, thiết lập) tốc độ cũng như tiếp tục hỗ trợ các công nghệ cũ mà khách hàng của họ đã đầu tư. Kết quả cuối cùng cho bất kỳ loại công ty lớn hợp lý nào, bao gồm Microsoft, một lựa chọn công nghệ hơi lộn xộn.

+0

MS chưa bao giờ giỏi về công nghệ DB: xem ODBC, OLEDB, ADO, RDO, DAO, Jet ... có quá nhiều thứ để liệt kê. – gbjbaanb

3

Bạn nhầm lẫn là sự thất vọng của chúng tôi. Rất nhiều người trong chúng ta đưa ra quyết định về kiến ​​trúc cho các trang web của chúng tôi đã vứt bỏ bàn tay của chúng tôi với sự thiếu rõ ràng của Microsoft và thực tiễn phát triển tốt về vấn đề này.

Nhóm của tôi chắc chắn đã bị Linq2Sql đốt cháy.

Chúng tôi hiện đang xây dựng trang web của mình với phương pháp Thiết kế theo hướng miền và đặc biệt là Kiến trúc Onion của Palermo (http://jeffreypalermo.com/blog/the-onion-architecture-part-1/). Các đối tượng kinh doanh chỉ là POCO và không phụ thuộc vào cơ sở hạ tầng.

Cơ sở hạ tầng hiện được xử lý bởi NHibernate và ORM được cuộn tùy chỉnh cho CMS của chúng tôi. Các chi phí khởi động đau đớn cho những điều này đã vượt xa những kiến ​​thức mà cộng đồng sẽ tiếp tục chuyển NHibernate theo hướng tốt nhất và chúng tôi kiểm soát nguồn của ORM. Tồi tệ hơn đến tồi tệ hơn và Microsoft phát hành một cái gì đó thực sự hấp dẫn mà làm việc trong một kiến ​​trúc DDD, chúng tôi chỉ cần viết lại lớp cơ sở hạ tầng của chúng tôi.

15

Tôi không thấy điểm của câu hỏi này. Trong thực tế, đó là một chút trollish.

  • ADO.NET là công nghệ truy cập dữ liệu gốc từ .NET 1.0. Rõ ràng không thuộc về bất kỳ cuộc thảo luận nào về "chiến lược" truy cập dữ liệu mới
  • LINQ to SQL là một trong những nhà cung cấp LINQ gốc. Nó cung cấp một ánh xạ một-một giữa các cấu trúc cơ sở dữ liệu và các kiểu được sử dụng trong một chương trình. Nó có nghĩa là làm việc với SQL Server
  • Khung thực thể ADO.NET linh hoạt hơn. Nó có nghĩa là làm việc với bất kỳ nhà cung cấp ADO.NET nào, và có một lớp bản đồ, để chương trình làm việc với các lớp gần hơn với các thực thể nghiệp vụ hơn là các bảng cơ sở dữ liệu. Ví dụ: một thực thể đơn lẻ có thể bao gồm dữ liệu từ nhiều bảng. Microsoft đã quyết định dành nhiều nỗ lực hơn cho EF hơn LINQ to SQL.
  • ADO.NET Dịch vụ dữ liệu là một lớp dịch vụ qua EF. Nếu bạn định sản xuất dịch vụ của riêng bạn để không làm gì hơn là phơi bày dữ liệu của bạn, thì đó là một sự đặt cược hợp lý. Nó sử dụng một giao diện REST, và có thể phơi bày dữ liệu ở định dạng ATOM.
  • ASP.NET Dữ liệu động không phải là chiến lược truy cập dữ liệu. Xem http://www.asp.net/dynamicdata/.

Sự phân biệt đủ rõ ràng rằng một lượng nhỏ nghiên cứu sẽ làm cho chúng rõ ràng.

+4

Sự phân biệt không rõ ràng đối với một người không sử dụng bất kỳ sản phẩm nào của Microsoft nhưng có mối quan tâm chung về công nghệ đằng sau những sản phẩm đó. Chúng tôi tồn tại và có thể xem xét câu hỏi thú vị như thế này. Không trollish cả. – IlDan

+0

Tôi đang đề cập đến câu hỏi ban đầu. Có lẽ bạn sẽ nói nó khác đi. –

3

Họ đã có chiến lược dữ liệu cho độ tuổi. Trong thực tế, bạn có thể và nên tìm kiếm "Microsoft Data Access Strategy" và bạn sẽ tìm thấy các liên kết cũ và mới (tức là năm 1998 và chiến lược OLEDB của họ).

Tôi nghĩ rằng những gì bạn đang tìm kiếm là here từ năm 2007 mặc dù là 2 tuổi là về XML, ADO.NET, Dữ liệu, LINQ, SQL Server, Visual Studio Orcas, Entity Framework ... chúng giải quyết question Microsoft có Chiến lược Truy cập Dữ liệu không?:

Có, hóa ra là chúng tôi làm. Microsoft hình dung Nền tảng dữ liệu thực thể cho phép khách hàng xác định một mô hình dữ liệu thực thể phổ biến trên các dịch vụ dữ liệu và các ứng dụng. Dữ liệu thực thể Nền tảng là tầm nhìn đa phát hành, với các phiên bản báo cáo tương lai công cụ, sao chép, định nghĩa dữ liệu, bảo mật , v.v ... được xây dựng xung quanh Mô hình dữ liệu thực thể chung. ...

Mike Pizzo, Kiến trúc sư, dữ liệu Khả năng lập trình

Tôi hy vọng nó giúp.

1

Tôi tìm thấy bài viết tại http://msdn.microsoft.com/en-us/magazine/cc700331.aspx giới thiệu kỹ thuật hay về Khung thực thể nếu bạn không quen với các khái niệm cơ bản.

Đây là một phần có liên quan đến câu hỏi này giải thích một số mục tiêu và mối quan hệ với ADO.Net EF của ...

Các ADO.NET Entity Framework là một quá trình tiến hóa của ADO.NET và là người đầu tiên thực hiện cụ thể EDM, cung cấp mức trừu tượng cao hơn khi phát triển dựa trên cơ sở dữ liệu quan hệ. Trong phiên bản 1.0, nhóm đã tập trung xây dựng nền tảng của một nền tảng, nhiều hơn chỉ là một ORM đơn giản, cho phép các nhà phát triển làm việc với mô hình khái niệm hoặc đối tượng với ánh xạ rất linh hoạt và khả năng chứa một mức độ cao phân kỳ từ cửa hàng cơ bản.

Mức độ linh hoạt cao và phân kỳ này từ cửa hàng cơ bản là chìa khóa để cho phép cơ sở dữ liệu và ứng dụng phát triển riêng biệt. Khi một thay đổi được thực hiện trong lược đồ cơ sở dữ liệu, ứng dụng được cách ly khỏi sự thay đổi của khung thực thể, và bạn thường không bắt buộc phải viết lại các phần của ứng dụng, mà chỉ cần cập nhật các tệp ánh xạ nếu cần thiết để thích ứng với thay đổi.

Để bắt đầu phát triển nền tảng ADO.NET, Khuôn khổ thực thể được xây dựng dựa trên mô hình nhà cung cấp ADO.NET 2.0 hiện có, với các nhà cung cấp hiện có được cập nhật một chút để hỗ trợ chức năng Entity Framework và ADO.NET 3.5 mới. Chúng tôi đã chọn để thực hiện trên đầu trang của mô hình nhà cung cấp ADO.NET hiện có để đảm bảo một mô hình nhà cung cấp quen thuộc với cộng đồng phát triển.

Các vấn đề liên quan