1. ホーム
  2. asp.net

[解決済み] カタナ」と「オウイン」をわかりやすく説明すると?

2022-03-16 05:54:52

質問

OWINやKatanaプロジェクトに関する記事をたくさん読みましたが、その全体像がつかめませんでした。

ASP.NETを使っている普通のWeb開発者にとっては。

  1. OWINとは一体何なのか、どのような問題を解決するのか(簡単に言うと)。IISとの関係は?
  2. OWINはIISに取って代わるのでしょうか? もしそうでなければ、OWINはどのような状況に最も適しているのでしょうか?
  3. 日々の仕事のプロジェクトで、OWINはどのように役立つのでしょうか?
  4. 自己啓発のプロジェクトにOWINはどのように役立つのでしょうか?

どのように解決するのですか?

上のコメントについてですが、OWINはフレームワークではありません。OWINは、WebサーバーとWebアプリケーションを切り離し、これまで対応していなかった環境にASP.NETアプリケーションを移動できるようにするための、Webサーバーの構築方法に関する仕様です。

OWIN以前は、ASP.NETアプリケーションを構築する場合、IISへの依存度が高いため、本質的にIISに縛られていました。 System.Web アセンブリを使用します。

System.Web はASP(.NET以外のバージョン)から存在するもので、内部には必要ないもの(WebフォームやURL認証など)も多く含まれており、デフォルトではすべてのリクエストで実行されるため、リソースを消費し、一般にASP.NETアプリケーションはNode.jsなどの対応するアプリケーションよりもかなり遅くなります。

OWIN自体には、ツールやライブラリなど、何もありません。単なる仕様書です。

一方、Katanaは、現在のASP.NETフレームワークとOWIN仕様の橋渡しをするために開発された、完全なフレームワークです。現在、Katanaは以下のASP.NETフレームワークをOWINに対応させることに成功しています。

  • ウェブAPI
  • シグナルR

ASP.NET MVCとWeb FormsはまだSystem.Web経由だけで動いていますが、長期的にはこれらもデカップリングする計画があります。

一方、IISはWebサーバーのホストとして、リソースが豊富で良いものです。IISを使ったASP.NETのパフォーマンス問題全体が、深い根っこで System.Web だけです。つい最近までは、Webサーバーをどのようにホストするかを決めるとき、2つの選択肢がありました。

  • IIS
  • セルフホスト

つまり、パフォーマンスを求めるなら、セルフホストオプションを選ぶことになる。IISが提供する多くのアウトオブザボックス機能が必要なら、IISを選ぶことになりますが、パフォーマンスでは負けることになります。

さて、第3の選択肢として、マイクロソフトのライブラリである ヘリオス (現在のコードネーム) を削除することを意図しています。 System.Web 不要なライブラリやモジュールを排除し、よりクリーンな方法で IIS を使用できるようになります。Heliosは現在プレリリース版で、マイクロソフトの製品として完全にサポートされるために、コミュニティからのフィードバックを待っているところです。

この説明で、より明確になったでしょうか?

EDIT(2014年9月)。

ASP.NET vNextが開発中であるため、Katanaは徐々に引退していくことになります。バージョン3.0は、スタンドアロンフレームワークとしてのKatanaの最後のメジャーリリースになる可能性が高いです。

しかし、Katanaで導入されたすべてのコンセプトはASP.NET vNextに統合されるため、プログラミングモデルはほとんど同じになります。引用元 フォーラムポスト David Fowler氏(ASP.NET vNextのアーキテクト)が作成したものです。

<ブロッククオート

vNextはKatanaの後継機種です(だから見た目が似ている)。 Katana は、System.Web からの脱却と、より高度な技術への転換の始まりでした。 ウェブスタック用のモジュラーコンポーネントです。vNextは その作業を引き継ぎつつ、さらに進化させたものです(新しいCLR、新しいプロジェクト システム、新しいhttpの抽象化)。

現在Katanaにあるものはすべて、vNextに入ることになります。

EDIT(2015年2月)。

ASP.NET vNextは現在ASP.NET 5として知られており、.NET Core 5の上に構築されます。.NET Core 5は.NET Frameworkの軽量ファクタリング版で、ASP.NET 5と.NET Nativeの目標をサポートするよう設計されています。ただし、ASP.NET 5は、.NET Core 5と一緒に提供される予定の.NET Framework 4.6でもサポートされる予定だ。ASP.NET 5と.NET Core 5の両方がMITの下でライセンスされ、コミュニティによる貢献を受け入れる予定です。

EDIT(2015年5月)。

また、ASP.NET Web APIブランドは廃止されますが、その技術は新しいASP.NET MVC 6のベースとなる予定です。これまでの ASP.NET MVC では、IHttpHandler という System.Web . ASP.NET MVC 6 はその依存性を排除し、様々なプラットフォームやウェブサーバーに移植できるようにしました。

EDIT(2016年5月)。

ASP.NET 5は、近日公開予定のRelease Candidate 2から正式にASP.NET Coreに名称が変更されます。Entity Framework 7 も同様に Entity Framework Core に改名される予定です。公式発表の詳細とその理由については、Scott Hanselman氏のブログポストを参照されたい。 ASP.NET 5 は死んだ - ASP.NET Core 1.0 と .NET Core 1.0 の導入

EDIT(2016年5月)。

リリースキャンディデート2のリリースに伴い。 ASP.NET Coreは、将来のWebアプリが実際にはHTTPリクエストを処理するためにセットアップされた.NET Coreコンソールアプリになるように変更されました。 . このコンセプトにより、ASP.NET Coreは、マイクロサービスアーキテクチャのサポートとAzure Service Fabricによる実装という、Microsoftのアプローチにさらに合致したものとなっています。詳細については、公式ブログの記事を参照してください。 ASP.NET Core RC2の発表