{"id":8028,"date":"2016-08-31T13:24:54","date_gmt":"2016-08-31T04:24:54","guid":{"rendered":"http:\/\/www.moonmile.net\/blog\/?p=8028"},"modified":"2016-08-31T14:10:31","modified_gmt":"2016-08-31T05:10:31","slug":"%e4%bf%ba%e3%81%ae%e3%83%a9%e3%82%ba%e3%83%91%e3%82%a43%e3%81%a7-net-core%e3%81%aaf%e3%81%8c%e5%8b%95%e3%81%8b%e3%81%aa%e3%81%84%e3%82%8f%e3%81%91%e3%81%8c%e3%81%aa%e3%81%84","status":"publish","type":"post","link":"http:\/\/www.moonmile.net\/blog\/archives\/8028","title":{"rendered":"\u4ffa\u306e\u30e9\u30ba\u30d1\u30a43\u3067.NET Core\u306aF#\u304c\u52d5\u304b\u306a\u3044\u308f\u3051\u304c\u306a\u3044"},"content":{"rendered":"<p>\u3068\u3001\u601d\u3063\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u52d5\u304d\u307e\u305b\u3093 orz.<\/p>\n<p>dotnet\/coreclr:<br \/>\n<a href=\"https:\/\/github.com\/dotnet\/coreclr\/\">https:\/\/github.com\/dotnet\/coreclr\/<\/a><br \/>\ndotnet\/cli:<br \/>\n<a href=\"https:\/\/github.com\/dotnet\/cli\">https:\/\/github.com\/dotnet\/cli<\/a><\/p>\n<p>.NET Core\u3092\u30d3\u30eb\u30c9\u3057\u3088\u3046\u3068\u601d\u3046\u3068\u3001<\/p>\n<p><a href=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/dworkblogimage20160831_01org.jpg\"><img decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/dworkblogimage20160831_01thum.jpg\" border=\"0\" \/><\/a><\/p>\n<p>\u306a\u611f\u3058\u3067\u62d2\u5426\u3089\u308c\u308b\u3057\u3001\u3058\u3083\u3042\u3001dotnet \u30b3\u30de\u30f3\u30c9\u3060\u3051\u3067\u3082\u30d3\u30eb\u30c9\u3067\u304d\u306a\u3044\u304b\u3068\u601d\u3046\u3068\u3001<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/20160831_06.jpg\" alt=\"20160831_06\" width=\"779\" height=\"594\" class=\"alignnone size-full wp-image-8030\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/20160831_06.jpg 779w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/20160831_06-300x229.jpg 300w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/20160831_06-768x586.jpg 768w\" sizes=\"auto, (max-width: 779px) 100vw, 779px\" \/><\/p>\n<p>\u306a\u611f\u3058\u3067\u3001\u524d\u56de\u30d3\u30eb\u30c9\u6e08\u307f\u306e dotnet \u30b3\u30de\u30f3\u30c9\u3092\u8981\u6c42\u3055\u308c\u308b\u3057\u3001\u3069\u3046\u306b\u3082\u306a\u308a\u307e\u305b\u3093\u3002<\/p>\n<p>Problem install .Net Core on Raspberry Pi Model B \u30fb Issue #140 \u30fb dotnet\/core<br \/>\n<a href=\"https:\/\/github.com\/dotnet\/core\/issues\/140\">https:\/\/github.com\/dotnet\/core\/issues\/140<\/a><br \/>\nHow to use dotnet cli in debian linux on arm. \u30fb Issue #3197 \u30fb dotnet\/cli<br \/>\n<a href=\"https:\/\/github.com\/dotnet\/cli\/issues\/3197\">https:\/\/github.com\/dotnet\/cli\/issues\/3197<\/a><\/p>\n<p>\u3092\u898b\u308b\u9650\u308a\u3001Raspberry Pi \u3067\u4f7f\u308f\u308c\u3066\u308b ARMv7 \u3067\u306f\u30d3\u30eb\u30c9\u3067\u304d\u307e\u305b\u3093\u3068\u3044\u3046\u5177\u5408\u3067\u3059\u3002.NET Core\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u3068\u3057\u3066ARM\u306f\u5165\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u3044\u305a\u308c\u5bfe\u5fdc\u3059\u308b\u306e\u304b\u3068\u3044\u3046\u96f0\u56f2\u6c17\u3060\u3051\u306f\u3042\u308b\u3093\u3067\u3059\u304c\u3001\u9032\u5c55\u306f\u3057\u3066\u3044\u308b\u306e\u304b\u306f\u4e0d\u660e\u3002<\/p>\n<h2>\u3067\u3082\u3001\u5143 dnvm \u306f\u52d5\u3044\u3066\u3044\u305f\u3088\u306d\uff1f<\/h2>\n<p>\u3057\u304b\u3057\u3001Raspberry Pi2 \u306b Windows IoT Core \u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u308b\u308f\u3051\u3060\u3057\u3001\u6700\u521d\u304b\u3089 ARMv7 \u304c\u958b\u767a\u30bf\u30fc\u30b2\u30c3\u30c8\u304b\u3089\u5916\u3055\u308c\u3066\u3044\u308b\u3068\u3044\u3046\u306e\u3082\u5909\u540d\u306f\u8a71\u306a\u306e\u3067\u3001\u3044\u3064\u304f\u304b\u9061\u3063\u3066\u307f\u308b\u3068\u3001<\/p>\n<p>Raspberry Pi 2 \u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f Windows 10 IoT Core \u4e0a\u3067 DNX \u3068 ASP.NET 5 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u52d5\u304b\u3057\u3066\u307f\u305f &#8211; \u3057\u3070\u3084\u3093\u96d1\u8a18<br \/>\n<a href=\"http:\/\/blog.shibayan.jp\/entry\/20150629\/1435546231\">http:\/\/blog.shibayan.jp\/entry\/20150629\/1435546231<\/a><br \/>\nHow to run .NET Core Application on Pi2 &#8211; Win10 IoT Core? &#8211; Damir Dobric Posts &#8211; developers.de<br \/>\n<a href=\"http:\/\/developers.de\/blogs\/damir_dobric\/archive\/2015\/09\/22\/how-to-run-net-core-application-on-pi2-win10-iot-core.aspx\">http:\/\/developers.de\/blogs\/damir_dobric\/archive\/2015\/09\/22\/how-to-run-net-core-application-on-pi2-win10-iot-core.aspx<\/a><\/p>\n<p>\u3092\u8aad\u3080\u3068\u3001dotnet \u30b3\u30de\u30f3\u30c9\u306e\u524d\u8eab\u306e dnvm \u30b3\u30de\u30f3\u30c9\u3067\u306f Raspberry Pi \u3067\uff08Windows IoT Core\u9650\u5b9a\u30ab\u30e2\uff09\u52d5\u3044\u3066\u3044\u305f\u6a21\u69d8\u3067\u3059\u3002<br \/>\n\u300c\u6a21\u69d8\u300d\u3067\u3059\u3068\u3044\u3046\u306e\u306f\u3001\u73fe\u5728\u3001ARM\u306e\u30e9\u30f3\u30bf\u30a4\u30e0\u3092\u53d6\u308d\u3046\u3068\u3059\u308b\u3068\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3059\u3002<\/p>\n<p><a href=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/dworkblogimage20160831_02org.jpg\"><img decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/dworkblogimage20160831_02thum.jpg\" border=\"0\" \/><\/a><\/p>\n<p>dnvm install latest -r coreclr -arch x64 \u306f\u901a\u308b\u3051\u3069\u3001<br \/>\ndnvm install latest -r coreclr -arch ARM \u306f\u901a\u3089\u306a\u304f\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u3001<\/p>\n<p>\u30b5\u30fc\u30d0\u30fc\u81ea\u4f53\u304b\u3089\u6d88\u3048\u3066\u3057\u307e\u3063\u305f\u611f\u3058\u3002\u3046\u30fc\u3093\u3001\u53e4\u3044\u30d0\u30a4\u30ca\u30ea\u3067\u3088\u3044\u306e\u3067\u6b8b\u3057\u3066\u307b\u3057\u304b\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u3053\u3053\u304c OSS \u306e\u8f9b\u3044\u3068\u3053\u308d\u3002<\/p>\n<h2>\u3084\u3084\u3053\u3057\u3044\u30013\u3064\u306e Core \u306a\u95a2\u4fc2<\/h2>\n<p>\u3067\u3082\u3063\u3066\u3001\u3084\u308a\u305f\u3044\u3053\u3068\u306f\u3001F# \u306a Web API\u30a2\u30d7\u30ea\u3092\u30e9\u30ba\u30d1\u30a4\u4e0a\u3067\u52d5\u304b\u3057\u305f\u3044\u3060\u3051\u306a\u306e\u3067\u3001\u5225\u306b mono \u3067\u3082\u3044\u3044\u3093\u3060\u3088\u306a\u3001\u3068\u601d\u3044\u76f4\u3057\u3066 .NET Core \u306a\u3068\u3053\u308d\u3092\u3042\u308c\u3053\u308c\u3068\u5f04\u3063\u3066\u3044\u3053\u3046\u3068\u3059\u308b\u3068\u3001<\/p>\n<p>&#8211; .NET Core \u306a\u30e9\u30f3\u30bf\u30a4\u30e0<br \/>\n&#8211; ASP.NET Core<br \/>\n&#8211; ASP.NET Core MVC<\/p>\n<p>\u306a\u3001\u3084\u3084\u3053\u3057\u3044\u95a2\u4fc2\u306b\u3076\u3061\u5f53\u305f\u308a\u307e\u3059\u3002<\/p>\n<p>\u7d20\u76f4\u306b\u3001.NET Core \u74b0\u5883\u3060\u3051\u3067\u4f5c\u308b\u3068\u304b\u3001\u7d20\u76f4\u306b .NET Framework 4.6 \u306a\u74b0\u5883\u3067\u4f5c\u308b\u3068\u304b\u3059\u308c\u3070\u3088\u3044\u306e\u3067\u3059\u304c\u3001\u3058\u3083\u3042\u3001dotnet \u30b3\u30de\u30f3\u30c9\u306f\u4f55\u306e\u74b0\u5883\u3067\u52d5\u3044\u3066\u3044\u308b\u306e\u304b\u3068\u304b\u3001ASP.NET Core MVC \u306f\u5185\u90e8\u3067\u4f55\u304c\u3046\u3054\u3044\u3066\u3044\u308b\u306e\u304b\u3068\u304b\u3068\u304b\u8003\u3048\u308b\u3068\u3084\u3084\u3053\u3057\u3044\u306e\u3067\u3059\u3002<\/p>\n<p>msbuild \u306b\u4ee3\u308f\u308b\u30d3\u30eb\u30c9\u74b0\u5883\u3068\u3057\u3066\u306e dotnet \u30b3\u30de\u30f3\u30c9\u306f\u3001dotnet restore \u3057\u3066\u30a2\u30bb\u30f3\u30d6\u30ea\u3092 NuGet \u3067\u53d6\u3063\u3066\u304d\u3066 dotnet run \u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u3042\u308b\u5834\u6240\u306b\u3001project.json \u304c\u3042\u3063\u3066\u3001\u305d\u306e\u4e2d\u306b\u8a2d\u5b9a\u304c\u66f8\u3044\u3066\u3042\u308b\u308f\u3051\u3067\u3059\u304c\u3001\u3053\u306e dotnet \u30b3\u30de\u30f3\u30c9\u304c\u3001.NET Core \u4e0a\u306a\u306e\u304b .NET Framework \u4e0a\u306a\u306e\u304b mono \u4e0a\u306a\u306e\u304b\u304c\u8b0e\u3067\u3059\u3002\u305f\u3060\u3001dotnet\/cli \u3092\u53d6\u3063\u3066\u6765\u3066 Raspi \u4e0a\u3067\u30d3\u30eb\u30c9\u304c\u3067\u304d\u306a\u3044\uff08Ubuntu\u4e0a\u3067\u306f\u3067\u304d\u305f\uff09\u306e\u3067\u3001\u52d5\u4f5c\u306f\u3068\u3082\u304b\u304f\u3068\u3057\u3066\u3001\u30d3\u30eb\u30c9\u3059\u308b\u306e\u306b\u300c\u52d5\u4f5c\u3059\u308b dotnet\u300d\u304c\u5fc5\u8981\u3067\u3059\u3002\u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u7684\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u3001\u5375\u3068\u9d8f\u306e\u95a2\u4fc2\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>mono \u4e0a\u3067\u52d5\u304f dotnet \u30b3\u30de\u30f3\u30c9\u304c\u3042\u308c\u3070\u3044\u3044\u306e\u306b\u3001\u3068\u601d\u3046\u3093\u3060\u3051\u3069\u3001\u305d\u308c\u304c\u306a\u3044\u3068\u3053\u308d\u307f\u308b\u3068\u3001\u305f\u3076\u3093 .NET Core \u4e0a\u3067\u52d5\u3044\u3066\u3044\u308b\u3093\u3067\u3059\u3088\u306d\u3001\u304a\u305d\u3089\u304f\u3002<\/p>\n<p>ASP.NET Core \u306f\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306a https:\/\/github.com\/aspnet\/ \u3067\u958b\u767a\u304c\u9032\u3081\u3089\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u5185\u90e8\u7684\u306b .NET Core \u5fc5\u9808\u306a\u306e\u304b\uff1f\u3068\u3044\u3046\u3068\u305d\u3046\u3067\u306f\u306a\u304f\u3066\u3001<\/p>\n<p><a href=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/dworkblogimage20160831_03org.jpg\"><img decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/dworkblogimage20160831_03thum.jpg\" border=\"0\" \/><\/a><\/p>\n<p>\u3092\u898b\u308b\u3068\u3001<\/p>\n<p>&#8211; ASP.NET Web Application(.NET Frameowork)<br \/>\n&#8211; ASP.NET Core Web Application(.NET Core)<br \/>\n&#8211; ASP.NET Core Web Application(.NET Framework)<\/p>\n<p>\u306e3\u7a2e\u985e\u306eASP.NET MVC\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u4f5c\u308c\u307e\u3059\u3002<\/p>\n<p>\u6700\u521d\u306eASP.NET\u30a2\u30d7\u30ea\u306f\u3001\u5f93\u6765\u306eASP.NET MVC5\u3068\u304b\u3092\u4f5c\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067 .NET Framework\u3092\u4f7f\u3046\u3084\u3064\u3067\u3059\u3002<br \/>\n\u6b21\u306e\u3001(.NET Core)\u306e\u307b\u3046\u306f\u3001.NET Core\u3092\u4f7f\u3063\u3066\u3044\u308b\u307b\u3046\u3067\u3001dotnet run\u3068\u304b\u3067\u5b9f\u884c\u304c\u3067\u304d\u308b\u3084\u3064\u3067\u3059\u3002IIS\u304c\u3044\u3089\u306a\u3044\u306e\u3067Linux\u306b\u79fb\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3088\u306d\u3002<br \/>\n\u3058\u3083\u3042\u3001\u6700\u5f8c\u306e\u300cASP.NET Core Web Application(.NET Framework)\u300d\u3063\u3066\u306e\u306f\u4f55\u3067\u3057\u3087\u3046\uff1f<br \/>\n.NET Framework\u4e0a\u3067\u52d5\u304f\u3001ASP.NET Core \u3063\u3066\u4f55\uff1fASP.NET Core\u306e\u300cCore\u300d\u3063\u3066\u3001.NET Core\u306e\u300cCore\u300d\u3058\u3083\u306a\u304b\u3063\u305f\u306e\uff1f\u3068\u601d\u3046\u8a33\u3067\u3059\u304c\u3001\u3069\u3046\u3084\u3089\u3001\u3053\u306e2\u3064\u306e Core \u306f\u9055\u3046\u610f\u5473\u3068\u3060\u3068\u3044\u3046\u3053\u3068\u304c\u5206\u304b\u308a\u307e\u3059\u3002\u3069\u3046\u3084\u3089\u3001.NET Framwork\u3092\u4f7f\u3063\u3066\u3001IIS\u306e\u3044\u3089\u306a\u3044 exe \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u3063\u3066\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3067\u3059\u3088\u306d\u3002<\/p>\n<p><a href=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/dworkblogimage20160831_04org.jpg\"><img decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/dworkblogimage20160831_04thum.jpg\" border=\"0\" \/><\/a><\/p>\n<p>bin\/Dbug\/net452\/win7-x64 \u30d5\u30a9\u30eb\u30c0\u30fc\u306b\u3042\u308b WebApplication1.exe \u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u666e\u901a\u306b ASP.NET Core MVC \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u52d5\u304d\u307e\u3059\u3002<\/p>\n<p><a href=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/dworkblogimage20160831_05org.jpg\"><img decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2016\/08\/dworkblogimage20160831_05thum.jpg\" border=\"0\" \/><\/a><\/p>\n<p>\u3053\u306e\u30d0\u30a4\u30ca\u30ea\u3092\u305d\u306e\u307e\u307e Raspberry pi \u306b\u6301\u3063\u3066\u884c\u3063\u3066\u3001mono \u3067\u52d5\u304b\u3059\u3068 libuv \u306e\u30a2\u30bb\u30f3\u30d6\u30ea\u304c\u306a\u304f\u3066\u52d5\u304d\u307e\u305b\u3093\u3002Raspberry pi \u4e0a\u306b libuv \u306f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u306e\u3067\u3059\u304c\u3001Linux \u306e\u52d5\u7684\u30e9\u30a4\u30d6\u30e9\u30ea *.so \u3092\u63a2\u3057\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u306f\u4e0d\u660e\u3067\u3059\u3002<\/p>\n<p>\u3069\u3046\u3084\u3089\u3001ASP.NET MVC \u306e\u307b\u3046\u306f\u3001IIS \u4e0a\u3067\u52d5\u3044\u3066\u3001<br \/>\nASP.NET Core MVC \u306e\u307b\u3046\u306f<\/p>\n<p>&#8211; Kestrel<br \/>\n&#8211; libuv<\/p>\n<p>\u304c\u809d\u3060\u3068\u3044\u3046\u3053\u3068\u304c\u8584\u3005\u308f\u304b\u3063\u3066\u304d\u307e\u3057\u305f\u3002Kestrel \u306f Web\u30b5\u30fc\u30d0\u30fc\u3067\u3001https:\/\/github.com\/aspnet\/KestrelHttpServer \u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u304c\u53ef\u80fd\u3067\u3059\u3002\u305f\u3060\u3057\u3001\u3053\u308c\u3092\u30d3\u30eb\u30c9\u3059\u308b\u3068\u304d\u306b dotnet \u30b3\u30de\u30f3\u30c9\u304c\u5fc5\u8981\u306a\u306e\u3067\u3001\u30e9\u30ba\u30d1\u30a4\u4e0a\u3067\u306f\u9813\u632b\u3057\u3066\u3044\u307e\u3059\u3002\u300cASP.NET Core Web Application(.NET Framework)\u300d\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u3001Kestrel \u3092\u4f7f\u3063\u3066\u3044\u308b\u306e\u3067\u3001.NET Core \u81ea\u4f53\u306f\u5fc5\u8981\u306a\u3044\u306f\u305a\u306a\u3093\u3067\u3059\u3088\u306d\uff08ASP.NET Core\u3057\u304b\u5fc5\u8981\u306a\u3044\uff09\u3002<br \/>\nlibuv \u306e\u307b\u3046\u306f\u3001Node.js \u3067\u3082\u4f7f\u308f\u308c\u3066\u3044\u308b\u30af\u30ed\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306a TCP\/IP \u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002\u3053\u3063\u3061\u306e\u307b\u3046\u306f\u3001https:\/\/github.com\/libuv\/libuv \u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30e9\u30ba\u30d1\u30a4\u4e0a\u3067\u3082\u30d3\u30eb\u30c9\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3068\u3044\u3046\u3053\u3068\u306f\u3001\u300cdotnet \u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u308f\u306a\u3044\u3067\u30d3\u30eb\u30c9\u304c\u3067\u304d\u308b Kestrel \u3092 .NET Framework \u7248\u3067\u30d3\u30eb\u30c9\u3059\u308c\u3070\u3001mono \u4e0a\u3067\u52d5\u304f\u300d\u306e\u3067\u3001\u30e9\u30ba\u30d1\u30a4\u4e0a\u3067\u52d5\u304f\u3088\u3046\u306b\u306a\u308b\u306e\u3067\u306f\uff1f\u3068\u601d\u3044\u3064\u3044\u305f\u306e\u3067\u3059\u304c\u3069\u3046\u3067\u305b\u3075\uff1f<\/p>\n<h2>\u30aa\u30ec\u30aa\u30ecASP.NET Core MVC\u3092\u4f5c\u6210\u3059\u308b<\/h2>\n<p>\u3072\u3068\u307e\u305a\u3001HttpListener\u3092\u4f7f\u3063\u305f\u3089 mono \u3067\u3082\u52d5\u304f\u306e\u3067\u3001Raspberry Pi \u4e0a\u306b F# \u306a Web API\u30b5\u30fc\u30d0\u30fc\u304c\u7acb\u3066\u3089\u308c\u308b\u306e\u3067\u306f\u3068\u601d\u3063\u3066\u3001\u3061\u307e\u3061\u307e\u3068\u8003\u3048\u3066\u3044\u305f\u308a\u3002<\/p>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\ntype WebHostBuilder() as self =\r\n    let mutable _sv = new System.Net.HttpListener()\r\n\r\n    member x.UseStartup() = \r\n        self\r\n    member x.UseUrls(url) = \r\n        _sv.Prefixes.Add( url )\r\n        self\r\n    member x.Build() = \r\n        ()\r\n    member x.Run() =\r\n        if _sv.Prefixes.Count = 0 then\r\n            _sv.Prefixes.Add(&amp;quot;http:\/\/localhost:5000\/&amp;quot;)\r\n        _sv.Start()\r\n        while true do\r\n            let cont = _sv.GetContext()\r\n            Console.WriteLine(&amp;quot;url: {0}&amp;quot;, cont.Request.Url)\r\n            let sw = new System.IO.StreamWriter(cont.Response.OutputStream)\r\n            sw.WriteLine(&amp;quot;OK&amp;quot;)\r\n            sw.Close()\r\n            cont.Response.Close()\r\n        _sv.Stop()\r\n\r\n&#x5B;&lt;EntryPoint&gt;]\r\nlet main argv = \r\n    printfn &amp;quot;start oreoreHttpServer&amp;quot;\r\n\r\n    let host = new WebHostBuilder()\r\n    host.UseStartup()\r\n        .UseUrls(&amp;quot;http:\/\/+:5000\/&amp;quot;)\r\n        .Build()\r\n    host.Run()\r\n    0\r\n<\/pre>\n<p>\u306a\u3093\u3068\u306a\u304f\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3060\u3051 Kestrel \u306b\u4f3c\u305b\u3066\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3068\u3001\u601d\u3063\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u52d5\u304d\u307e\u305b\u3093 orz. dotnet\/coreclr: https:\/\/github.com\/dotnet\/coreclr\/ dotnet\/cli: https:\/\/github.com\/dotnet &hellip; <a href=\"http:\/\/www.moonmile.net\/blog\/archives\/8028\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[19,59,67],"tags":[],"class_list":["post-8028","post","type-post","status-publish","format-standard","hentry","category-asp-net","category-f","category-raspberrypi"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/8028","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=8028"}],"version-history":[{"count":3,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/8028\/revisions"}],"predecessor-version":[{"id":8032,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/8028\/revisions\/8032"}],"wp:attachment":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=8028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=8028"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=8028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}