2013-07-01 24 views
10

Có ai đã thành công (mã sản xuất) có lưu trữ một dịch vụ dựa trên web không đồng bộ độc lập API (asp.net web API) trên Mono không? Bởi độc lập tôi có nghĩa là lưu trữ các API trong một ứng dụng giao diện điều khiển bên ngoài asp.net.API web không đồng bộ độc lập trên Mono

Tôi đang tìm một cách đơn giản để tạo một API REST và tôi thực sự muốn làm cho chồng của tôi không đồng bộ (kiểu C# 5) từ lớp HTTP trên cùng đến lớp truy cập dữ liệu phía dưới, bây giờ là C# 5 có sự hỗ trợ tốt cho nó.

Thông thường tôi sẽ đi với ServiceStack và lưu trữ nó như một daemon trên Linux, nhưng vì ServiceStack không hỗ trợ các công cụ không đồng bộ của C# 5 trong các dịch vụ của họ (theo như tôi biết), tôi đang xem xét sử dụng đã lưu trữ API web không đồng bộ trên Mono.

Tôi biết rằng có một số nhánh không đồng bộ trên đường đi trong ServiceStack, nhưng nó chưa sẵn sàng và tôi biết rằng có một số thứ không đồng bộ trong ServiceStack, nhưng tôi không nghĩ rằng điều này đang sử dụng tác vụ mới dựa trên async thứ trong C# 5. Vì vậy, câu hỏi của tôi là liệu có thể và đủ ổn định để tạo một dịch vụ REST bằng cách sử dụng API web không đồng bộ tự lưu trên mono hay chỉ tốt hơn khi sử dụng ServiceStack đồng bộ khi thực hiện lưu trữ độc lập trên Mono?

Trả lời

9

Sử dụng tốt hơn . Web API không được hỗ trợ tốt trên Mono (chưa). Với Nancy, bạn sẽ làm như sau:

public Module() 
{ 
    Get["/greet/{name}"] = async x => { 
     await Task.Delay(5000); 
     return string.Concat("Hello ", x.name); 
    }; 
} 
+0

ok cảm ơn. Có vẻ như mặc dù id NancyFc async vẫn là bản beta. Web Api có vô dụng trên mono không? –

+0

Hỗ trợ cho API Web và MVC 4 trong bản 3.0 không hoàn chỉnh như tôi có thể nói. Bạn có thể thỉnh thoảng nhận được ngoại lệ. Đồng bộ của NancyFx vẫn còn là phiên bản beta nên không có giải pháp nào hoàn hảo cho Mono tại thời điểm này. –

+2

Hỗ trợ của Nancy Async là bản beta kỹ thuật, nhưng nó đang được sản xuất ở một vài nơi và lỗi duy nhất chúng tôi có cho đến nay là về việc loại bỏ các ngoại lệ tổng hợp, vì vậy nó chắc chắn :) –

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