2011-08-25 30 views
9

Tôi có ứng dụng asp.net mvc được viết cách đây vài năm và tôi càng thêm vào nó, tôi có xu hướng thực hiện lệnh REST/AJAX với bộ điều khiển để lấy dữ liệu từ nó.Bạn có nên sử dụng dịch vụ web hoặc mvc Asp.net tốt hơn không?

Câu hỏi của tôi là tôi tiếp tục làm việc theo cách này hay tôi nên phơi bày dữ liệu dưới dạng một dịch vụ REST riêng biệt (cách WCF làm việc)?

Cảm giác rằng ranh giới về ứng dụng mvc được thiết kế để làm gì và thiết kế dịch vụ web bị mờ. Ứng dụng Mvc (ngoài việc tách) ban đầu đã tạo ra các trang web, bây giờ nó đang được sử dụng để cung cấp dữ liệu dựa trên dịch vụ.

JD

Trả lời

4

Tôi thấy hai tình huống có thể xảy ra

Ứng dụng web đơn. Trong trường hợp này, bạn thực hiện thêm các phương thức vào bộ điều khiển. Điều này là tốt vì nó giữ liên quan đến chức năng điều khiển ở một nơi và sẽ giúp bạn tiết kiệm thời gian. Nó không thích hợp nếu bộ điều khiển đang được gọi từ một ứng dụng web khác. Đơn giản, xấu xí nhưng hoạt động, mất rất ít thời gian để phát triển và nhiều thời gian để bảo trì.

Ứng dụng web + dịch vụ web. Bạn có thể tách riêng các phương thức truy xuất dữ liệu vào giao diện dịch vụ. Mặt tích cực là hệ thống của bạn trở nên nhiều mô-đun và độc lập hơn, điều này rất tốt cho việc bảo trì. Nếu bạn dự đoán rằng sẽ có các phương pháp khác sẽ được bổ sung sớm hoặc nếu các phương thức được sử dụng bởi các ứng dụng web khác, thì đường dẫn này có lẽ tốt hơn là mở rộng ứng dụng web hiện tại. Mặt tiêu cực là dịch vụ mới sẽ yêu cầu một số tái cấu trúc cho ứng dụng web hiện tại và sẽ mất thời gian để được phát triển/thử nghiệm vv. Quyết định này mang lại sự phức tạp hơn, nhưng làm cho ứng dụng của bạn dễ dàng được mở rộng.

2

Tôi nghĩ WCF có một số ưu điểm so với MVC nếu bạn đang gửi đúng dữ liệu, đặc biệt là về các định dạng dữ liệu là rõ ràng (SOAP vs sử dụng mã hóa nhà ủ), công cụ hỗ trợ toàn ngành công nghiệp, xuất sắc hỗ trợ cho các loại ràng buộc khác nhau (nghĩa là không chỉ HTTP), các dịch vụ cấp vận tải khác nhau, khả năng ghi nhật ký và truy tìm tốt đẹp, v.v.

Cuối cùng, nó có lợi thế đủ để đi với WCF cho trường hợp của bạn. Đó là điều mà bạn phải tự tìm ra.

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