2012-11-08 19 views
6

Szukam odpowiednika Jetty w kodzie zarządzanym przez Net Framework. Czy to istnieje? Chciałbym korzystać z biblioteki z aplikacji F #/C#/VB.net. "Nie wdrażaj swojej aplikacji na pomoście, użyj mola w swojej aplikacji."Pomost dla świata NET

+1

Podobne pytanie zostało raz zadane: http://stackoverflow.com/questions/4268814/embedded-c-sharp-web-server – Jensen

+0

Dziękuję bardzo! Pomaga mi. – dag

+2

Możesz być także zainteresowany [ServiceStack] (http://servicestack.net/). Istnieje również kilka wymienionych tutaj frameworków, które są kompatybilne z [OWIN] (http://owin.org/). –

Odpowiedz

5

Jakich wyrafinowanych API szukasz? Jeśli chodzi o proste zadania, myślę, że można uzyskać dość daleko tylko przy użyciu standardowego typu HttpListener. Istnieje próbka MSDN, która hermetyzuje ją agentem F # (part 3), a następnie wykorzystuje go do utworzenia prostego serwera czatu (part 4).

Zasadnicza część serwera czatu wygląda dość prosta:

let handleRequest (context:HttpListenerContext) = async { 
    match context.Request.Url.LocalPath with 
    | "/post" -> 
     // Send message to the chat room 
     room.SendMessage(context.Request.InputString) 
    | "/chat" -> 
     // Get messages from the chat room (asynchronously!) 
     let! text = room.AsyncGetContent() 
     context.Response.Reply(text) 
    | s -> 
     // Omitted: handle file request } 

Bardziej zaawansowana biblioteka dostępna dla F # może być Frack (An wdrożenie otwartego interfejsu WWW dla .NET (OWIN), .NET Interfejs bramki serwera WWW, napisany w języku F #.) Wygląda to również na bardzo łatwy w użyciu.

4

działa również w aplikacji hostowanej automatycznie HttpListener w Win/.NET lub Mono/Linux (oprócz hosta ASP.NET).

Zapoznaj się z self-hosted wiki page, aby uzyskać proste przykłady korzystania z ServiceStack w aplikacjach C# lub F # Console.