2015年3月1日日曜日

OWIN (Open Web Interface for .NET) Hello world


OWINとは?
  簡単なアプリケーションもすべてインターネットを通してやりとりを行う時のインターフェイス規格です。この技術を使えばハッピーになれるターゲット層は、Internet of things(物とインターネット)をやっている人です。
例えば部屋においてある電化製品でインターネットに繋がっていないモノ{冷蔵庫、オーブンレンジ、トースター、IHコンロ、エアコン、オーディオ、、、etc}それぞれが独自の通信方式を持っているより1つのインターフェイスで出来ちゃえばJavascriptでも制御できてしまう、そんな抽象的なインターフェイス規格です。


OWINの無い世界
  1つ1つの家電は専用サーバーに集約されているが、各社メーカー毎に存在しているので、端末から見るとアクセス先毎に通信方法を変えないと行けない。


メリット
 各社専用サーバーを設けて独自のコンテンツ・サービスの提供が可能。
デメリット
 ・ユーザー視点だと、様々なメーカーを利用しているので同じメーカーで統一しないとメリットの魅力が伝えられない。



PlantUML diagram



OWINのある世界
 家に必ずあるインタネットモデムがサーバーになった場合、アクセス先は家になる。
 さらに家電はOWIN通信規格で統一されているので、新しく買った製品でもすぐつなげる事ができて、コンテンツは各家電が提供することで画面レイアウト以外は共通になる。

メリット
 家の中に1台サーバーがいればスマホ1つですべての家電にアクセスが可能。

デメリット
 コンテンツ・サービスは家電の中に閉じ込めてしまっているので、表示される画面に統一感が無い。


PlantUML diagram



抽象的って素晴らしいなって思うこの頃。(なんでも包括出来てしまう(的が広い)から外れにくい)
今回はイメージ(抽象的)ではなくリアル(現実的)に、ということで今回は具体例を挙げてみました。


hello world


[ツール]⇢[NuGet パッケージマネージャー]⇢[パッケージマネージャーコンソール]を開いて、必要なパッケージをインストールする。


install-package Microsoft.Owin.Hosting -IncludePreRelease
install-package Microsoft.Owin.Host.HttpListener –IncludePreRelease
install-package Microsoft.Owin.Diagnostics –IncludePreRelease
install-Package Owin.Extensions -IncludePrerelease


プロジェクトでコンソールアプリケーションを選択して、

using Microsoft.Owin.Hosting;
using Owin;
static void Main(string[] args)
{
    string uri = "http://localhost:8080/";
    using (WebApp.Start(uri))
    {
        Console.WriteLine("Started");
        Console.ReadKey();
        Console.WriteLine("Stopping");
    }
}
public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.UseWelcomePage();
    }
}

こんなコースコードを書いて実行。
ブラウザ上で「http://localhost:8000」にアクセスすると、下の画面が出てきたら成功。
ちなみに「http://127.0.0.1:8000」だとエラー画面が出るので注意。





独自のコンテンツを展開する場合は、
public class Startup
{
    public void Configuration(IAppBuilder app)
    {        
        app.UseHandlerAsync((req, res) =>
        {
            res.ContentType = "text/plain";
            return res.WriteAsync("Hello, World!");
        });
    }
}
スタートアップクラスを書き換える。


参考URL

http://odetocode.com/blogs/scott/archive/2013/07/09/getting-started-with-owin-katana-and-vs2013.aspx



コメントを投稿

Androider