2013-09-01 18 views
5

多くの開発者にとって、ASP.NETとASP.NET Webフォームは同じものです。しばらく私はWebフォームを使用していましたが、最近はWebフォームがASP.NETの上に構築されていることを学びました。よりシンプルなプレーンなASP.NETアプリケーションはどのように見えますか? Webフォーム、Webページ、MVCの3つのASP.NETプログラミングモデルについて学びました(Here Scott Hanselmanが簡単に説明しています)。しかし、3つのアプローチのすべてがASP.NETの上に位置しています。単純なプレーンASP.NETアプリケーションの例(WebフォームとMVCなし)

純粋なASP.NETを使用するサンプルアプリケーションを見つけようとしていましたが、何も見つかりませんでした。

私はASP.NET Webページのソースコードを詳しく調べ始めました。各Webページは実際にHTTPハンドラ(各ページはIHTTPHandlerインターフェイスを実装しています)であることがわかりました。純粋なASP.NETアプリケーションが単なるHTTPハンドラ実装であることを意味しますか?あるいは私は何かを逃している。

私の理解では、ASP.NET Webフォームはデスクトップ環境でのWinフォームに対応しています。しかし、デスクトップ環境では、Winフォームを使用しないコンソールアプリケーションを作成することができます。では、Web世界でのコンソールアプリケーションと同等のものは何ですか?

いずれかのコメントまたは参考に感謝します。前もって感謝します。

+0

比較するにはC#(言語)、.NET(テクノロジ)、およびWinフォーム(リアルタイムWindowsアプリケーションを構築できる場所)...これをC#(言語)、ASP.NET (リアルタイムWEBアプリケーションを構築できる場所)。 ASP.NETは、ASP.NET実行時にサポートされているこれらの言語で記述されたWebアプリケーションの実行方法を定義する基盤技術(フレームワーク)です。 – Prash

+0

@Prash、あなたのご意見ありがとうございます。それは本当だ。しかし、Winフォームを使わずに(簡単なコンソールアプリケーションを書くことによって).NETでアプリケーションを書くことができます。また、Webフォームを使用せずにASP.NETでアプリケーションを作成する方法。 –

+0

例としてWin Formsを引用しているので、 Win Formsアプリケーションではコンソールのみを非表示にします。プロジェクトの設定に行き、設定をコンソール表示に変更することができます。つまり、Win Formsはコンソールアプリケーションでもあり、グラフィカルユーザーインターフェイスは別のスレッドで開かれています。 – Prash

答えて

5

ASP.NETは非常に幅広いテクノロジのセットで、WebFormsを含みます。また、MVC5ではMVC、WebApi、WebPagesも含まれています。これはMicrosoftが現在「One ASP.NET」イニシアチブと呼んでいるものです。

これらはすべて、ASP.NETの一部であり、ASP.NETは.NETの一部です。これらはすべて単なるレイヤーです。これらの部分を含んでいないasp.netと呼ばれる「分離した」部分はありません(以前のバージョンでも、WebFormsを含まないasp.netのバージョンはありませんでした)。

このように、「純粋なasp.net」アプリのようなものはありません。確かにWebFormsを使用しないアプリケーションを書くことができます(つまり、.aspxやascx、.masterファイル、何らかの種類のサーバーコントロールがないことを意味します)。

これはSystem.Web名前空間内にあるものを考慮することができます(これ以上の名前空間はありません)。http://msdn.microsoft.com/en-us/library/system.web.aspx

これは、Requestオブジェクト、Responseオブジェクト、 Membership、FormsAuthenticationなど...これは基本的な配管であり、それだけではそれほど有用ではありません。あなたはそれの上に座るために自分のプレゼンテーションフレームワークを書く必要があります。

FubuMVC、Nancy、MonoRailなどの他のフレームワークがあります。これらは、基本的なASP.NETクラスを使用してMVCやWebFormsやWebPagesと同じように機能します。

0

例として、ASP.NET MVCを紹介します。 ASP.NET MVCはASP.NETの上にのフレームワークですが、確かにWebフォームではありません(実際には完全に置き換えられ、私の意見では最高です)。

ASP.NETのようなもの、一般的にウェブに共通のサービスを提供しています。

  • は、「アプリケーション」(概念の維持要求と応答
  • 偽装などのセキュリティ、認証、
  • の取り扱いアプリをインスタンス化したり、シャットダウンしたり、ルートなどの中心的なものを処理したり、キャッチされていない例外を処理するなどのためのフレームワークとしてGlobal.asaxを使用しています)。
  • ホスティングパーミッションの管理
  • (HTTPハンドラに加えて) モジュール

Webフォームを実行している一般的なで10 IIS(または他のWebサーバ)とのインターフェース

  • 物理&仮想アプリケーション
  • は上プレゼンテーション層を追加しますASP.NETのインフラストラクチャのこれはForms、ViewStateなどのものを提供します。コードビハインドコードをHTML表現に「翻訳する」。これはごくわずかな例です。

    インフラストラクチャとしてのASP.NETとプレゼンテーションレイヤーとしてのWebフォームの分離により、後でASP.NET MVCを作成することができました。 ASP.NET MVCは 'フォーム'にまったく依存せず、WinForms開発ワークフローを模倣しようとしません(コードビハインド「メソッド」や「プロパティ」などを使用して生のHTMLを隠すことによって)、実際にははるかに良い&を提供しますWeb開発を行う方法。

    については、 ASP.NETについて質問していました。以下は、純粋なASP.NET、Webフォーム、MVCの例です。ここには、http://support.microsoft.com/kb/308001があります。これは基本的なHTTPハンドラで、この例では、アドレスを.syncで終了するたびに(その拡張機能を使用するすべての要求を処理するためにASP.NETを教えることによって)実行されます。 ところで、あなたは(あなたの言葉で) "コンソール"アプリとして扱うことができます。どこからでもURLを取得し(好きな場合はcurlを使用できます)、テキスト応答を返します。

  • +0

    *咳* WebForms ViewEngine *咳* –