2012-12-14 33 views
6

Tôi đang thử nghiệm ASP.NET MVC 3.Tại sao tôi nên sử dụng WCF với MVC?

Và đối với cuộc gọi ajax, tôi có thể sử dụng phương thức điều khiển MVC hoặc dịch vụ WCF. Nhưng tại sao tôi lại sử dụng WCF, nếu tôi có thể làm điều đó với MVC?

Câu hỏi của tôi là: Tôi có nên sử dụng dịch vụ WCF với MVC hay không? Và tại sao ? Và trong trường hợp nào?

Xin cảm ơn,

Trả lời

3

MVC là tốt, bạn thực sự không cần WCF cho việc này. MVC tạo ra một số loại REST API (tất cả các phương thức hành động của bạn nhận được URL riêng của chúng mà bạn có thể sử dụng để gọi phương thức), vì vậy bạn có thể sử dụng nó.

+0

Cảm ơn, đó là những gì tôi nghĩ. Nhưng bây giờ tôi chắc chắn;) – Tkanos

7

WCF là một khuôn khổ được sử dụng để phát triển các dịch vụ web. Ý tưởng về một dịch vụ web là nó tách riêng chức năng được sử dụng để cung cấp dữ liệu thô từ chức năng được sử dụng để xử lý dữ liệu và cung cấp dữ liệu cho người dùng cuối. Có một vài lợi thế cho việc này:

  • Nếu bạn cung cấp API, bạn không biết cách sử dụng dữ liệu. Bạn chỉ muốn cung cấp dữ liệu thô cho một tập hợp các ứng dụng và cho phép các ứng dụng đó xử lý phần còn lại. Một dịch vụ web thực hiện điều đó ... nó mở ra lớp dữ liệu của một ứng dụng trong khi vẫn để phần còn lại đóng lại.
  • Nó có thể cải thiện khả năng bảo trì lớp dữ liệu bằng cách thực thi khớp nối lỏng lẻo. Khớp nối lỏng lẻo có nghĩa là các thành phần của ứng dụng của bạn không bị ràng buộc với nhau. Đây là một điều tốt vì nó giúp bạn dễ dàng thực hiện các sửa đổi đối với các phần của ứng dụng mà không làm gián đoạn phần còn lại. Ví dụ, nếu được hiểu rằng một cuộc gọi hàm sẽ trả về một đối tượng JSON đã đặt, bạn có thể thay đổi cấu trúc bảng của cơ sở dữ liệu cung cấp dữ liệu cho đối tượng đó mà không can thiệp vào mã của ứng dụng tiêu thụ. Điều này hoạt động miễn là bạn duy trì hợp đồng dữ liệu được xác định trước bằng cách luôn cung cấp cùng loại dữ liệu trong cùng một định dạng. Mặt khác, nếu các truy vấn cơ sở dữ liệu, các chuỗi kết nối và các chuỗi tương tự đều được mã hóa cứng vào ứng dụng của bạn, nó làm cho việc sửa đổi logic cơ sở dữ liệu của bạn trở nên khó khăn hơn nhiều.

Trong trường hợp của bạn, nếu bạn chỉ phát triển một ứng dụng web nhỏ đến vừa và không có ý định khởi chạy API hoặc dịch vụ tương tự, có thể không cần WCF. Tuy nhiên, hãy nhớ rằng mặc dù bạn có thể không cần phải viết một dịch vụ WCF cho ứng dụng của mình, bạn vẫn nên cố gắng kết nối các lớp ứng dụng của bạn một cách lỏng lẻo như bạn làm với một dịch vụ. Bạn có thể làm điều này bằng cách tách mã truy cập dữ liệu hoặc mã định nghĩa đối tượng (thực thể) ra thành các phần tử riêng biệt. Loose khớp nối, cho dù nó được thực hiện với WCF hoặc chỉ MVC làm cho việc duy trì dự án của bạn đơn giản, dễ dàng hơn và giá cả phải chăng hơn và là một thực hành rất tốt để tuân theo.

+0

Cảm ơn, đó là những gì tôi nghĩ. Nhưng bây giờ tôi chắc chắn;) – Tkanos

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