2011-01-23 42 views
5

Tôi phải phát triển một ứng dụng để lưu trữ một số tệp phẳng trong DB .. Ứng dụng Console và SQL Server sẽ nằm trên cùng một máy, trong đó hai tùy chọn này là tốt nhất?WCF Data Services hoặc Entity Framework

  • Tạo WCF Data Services và sử dụng nó từ giao diện điều khiển ứng dụng
  • Sử dụng trực tiếp các đối tượng Entity Framework từ các ứng dụng giao diện điều khiển

Nói chung, khi nó là tốt hơn để sử dụng WCF Data Services hoặc Entity Framework ?

CẢM ƠN!

+1

Vâng đây là táo và cam và mỗi giải quyết các vấn đề khác nhau. WCF Data Services dường như không phù hợp nếu chỉ 1 ứng dụng sẽ sử dụng nó cho dữ liệu ETL'ing. –

Trả lời

20

Đó là hai hoàn toàn khác nhau công nghệ:

  • Entity Framework là một HOẶC mapper để truy cập cơ sở dữ liệu của bạn dễ dàng hơn; bạn có thể so sánh điều này với ví dụ: NHibernate, LINQ to SQL, Subsonic, Genome hoặc các trình ánh xạ OR khác

  • WCF Data Services là cách để hiển thị các mô hình dữ liệu của bạn với thế giới bên ngoài qua HTTP/REST; so sánh này để webservices ASMX di sản, các dịch vụ WCF tinh khiết, công nghệ dịch vụ khác

Bạn không thể so sánh hai - chúng con thú hoàn toàn khác nhau, và trong nhiều giải pháp, họ sẽ làm việc với nhau - người ta không thể thay thế khác .

Nếu bạn có ứng dụng giao diện điều khiển cần đọc dữ liệu từ cơ sở dữ liệu, bạn có thể sử dụng trực tiếp Khung thực thể - trong trường hợp đó, ứng dụng bảng điều khiển của bạn phải có kết nối trực tiếp tới cơ sở dữ liệu và nó được gắn với Khung thực thể Công nghệ.

Tùy chọn hiển thị dữ liệu bằng cách sử dụng Dịch vụ dữ liệu WCF thêm lớp khác - ứng dụng bảng điều khiển của bạn không truy cập dữ liệu trực tiếp, nhưng nó chỉ gọi một Dịch vụ dữ liệu WCF. Bây giờ bạn về cơ bản có hai phần: ứng dụng giao diện điều khiển của bạn là ứng dụng khách và một số loại ứng dụng dịch vụ sẽ cung cấp dữ liệu. Trong trường hợp đó, khách hàng của bạn không cần biết bất kỳ điều gì về Khung thực thể hoặc bất kỳ thứ gì giống như vậy - bạn cũng có thể dễ dàng thêm khách hàng thứ hai, ví dụ: một ứng dụng web. Nhưng ứng dụng dịch vụ cung cấp dữ liệu sẽ vẫn cần có khả năng kết nối trực tiếp tới cơ sở dữ liệu bằng Entity Framework. Vì vậy, cuối cùng, bạn không thực sự thay thế Entity Framework với WCF Data Services - bạn chỉ cần thêm một lớp indirection khác, nhưng cuối cùng, để lấy dữ liệu, bạn vẫn cần một số loại dữ liệu công nghệ truy cập (như Entity Framework).

+0

Rất cám ơn! Bây giờ nó là rõ ràng .. – andrew0007

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