Windows 10 IoT na RPi2 jako mały serwer HTTP / REST Web API Server

12

Obecnie system Windows 10 Core dla IoT jest dostępny w wersji zapoznawczej i można korzystać z programu Visual Studio 2015 RC z nowym projektem Windows Universal i tworzyć niektóre aplikacje.

Jednak jestem zainteresowany tworzeniem własnego interfejsu WebAPI ASP.NET (REST / JSON) na Raspberry Pi 2 jako hosta. Czy to możliwe ? Czy to możliwe, że RPi2 jest małym serwerem WWW z kilkoma plikami .html?

Hrvoje Kusulja
źródło
Nie można dodać pakietów OWIN do uniwersalnej aplikacji w VS 2015

Odpowiedzi:

10

Jeśli szukasz prostej usługi REST dla uniwersalnej aplikacji Windows, spójrz na ten projekt github:

https://github.com/tomkuijsten/restup

Istnieje również pakiet nuget:

https://www.nuget.org/packages/Restup/

Oświadczenie: Jestem właścicielem i twórcą restupu

Tom Kuijsten
źródło
To świetnie wygląda projekt Tom. Zacząłem grać z podobnym pomysłem, tworząc klasy do obsługi różnego rodzaju żądań HTTP, ale ty i twoi współpracownicy naprawdę stworzyliście coś fajnego. Nie mogę się doczekać, aby to wypróbować.
Ben Brandt
Czy to twój projekt? Podaj swoją odpowiedź dotyczącą wyłączenia odpowiedzialności. PS Nie możesz hostować MVC na IoT?
Piotr Kula,
Rzeczywiście mój projekt, dodano zastrzeżenie. I nie, nie możesz hostować MVC na IoT.
Tom Kuijsten
W rzeczy samej. MVC wymaga IIS lub .NET Core, z których żaden nie jest (jeszcze) obsługiwany w Win IoT. Ostatecznie .NET Core będzie obsługiwany.
Jim Yarbro
@TomKuijsten Dziękujemy za Twój wkład. Jeśli mogę zapytać, czy nadal sugerowałbyś, że używam twojej implementacji? Czy to jest „aktualne”, bo widzę, że obecny wątek pochodzi sprzed 3 lat. Jeśli nie, czy masz na myśli alternatywę?
Thodoris Koskinopoulos
4

Sprawdź także wbudowany serwer HTTP i WebSocket dla UWP / .NET 4.5 https://www.nuget.org/packages/IotWeb/ (lub na github )

Lee Richardson
źródło
czy ten pakiet nuget ma jakiś przykład lub jak powiązaną z nim dokumentację? Dzięki!
Rob S.
1
@RobS. dokumentacja jest lekka, ale mają przykłady tutaj github.com/sensaura-public/iotweb/blob/… a tutaj github.com/sensaura-public/iotweb/blob/… i łączę to z aplikacją Angular2 dla czegoś trochę bardziej znaczące tutaj: github.com/AutomatedArchitecture/sirenofshame-uwp/blob/develop/…
Lee Richardson
3

Możliwe jest zaimplementowanie serwera WWW z Windows 10 Core dla IoT na Raspberry Pi 2. Jeśli uzyskasz dostęp do swojego urządzenia na http: // devicename / , faktycznie zobaczysz stronę internetową, która jest już zapewniona przez system.

Aby wdrożyć własny serwer sieciowy w systemie Windows IoT, istnieje wiele możliwości. W przypadku Python lub Node.js istnieją już próbki dostępne w oficjalnym projekcie GitHub:
https://github.com/ms-iot/samples

Jak wspomniałeś ASP.NET: nie natknąłem się jeszcze na żadną próbkę, ale powinieneś być w stanie to zrobić, albo za pomocą klasycznej aplikacji ASP.NET 4 z własnym hostowaniem, albo możesz spróbować z ASP.NET 5 (alias „ASP.NET vNext”).

W obu przypadkach należy najpierw utworzyć aplikację uniwersalną systemu Windows, która będzie hostować serwer WWW. Teraz możesz zastosować to samo podejście, które opisano w kilku samouczkach, które pokazują, jak zaimplementować serwer ASP.NET z własnym hostem, np. Za pomocą aplikacji konsoli. Zamiast aplikacji konsoli używasz tutaj uniwersalnej aplikacji Windows, ale to w zasadzie nie ma znaczenia.

Przykład ASP.NET 4:
http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api

Przykład ASP.NET 5:
http://www.c-sharpcorner.com/UploadFile/7ca517/Asp-Net-5-conaole-application-with-visual-studio-2015/

Mam nadzieję, że to pomaga!

Daniel Lemke
źródło
Dziękuję za informacje, tak, chcę wspomnieć o aplikacji Windows Universal App z własnym hostem ASP.NET 4 lub 5, jednak nie jestem tego pewien, gdy korzystam z aplikacji Universal zamiast prostej aplikacji konsoli. Korzystanie z serwera internetowego OWIN w .net jest niedozwolone w projektach Windows Universal App lub tylko w przypadku IoT.
Hrvoje Kusulja
Cześć, szukam tego samego, ale nie przeszkadza mi używanie OWIN. Chciałbym po prostu serwować strony HTML przez mój Raspberry Pi2 z zainstalowanym Windows 10. nie ma domyślnej strony mojego urządzenia?
Andrew Simpson,
0

Pamiętaj, że przykładowa aplikacja „App2App WebServer” używa gniazd do nasłuchiwania połączenia. Możesz łatwo rozszerzyć kod, aby odczytać zawartość i traktować ją jak JSON, jeśli chcesz zrobić swój własny prosty serwer Restful. Nie będzie miał całego mechanizmu ASP.NET, ale wtedy chcesz mieć prosty.

Bob Frankston
źródło