2011-02-03 7 views
0

システムを設計しているときにMVCでいくつかのことを試していて、MVCフレームワークのコントローラの外でのコンセプトを使用できるかどうか試してみたかったのです。私が外で言うとき、私は自分のC#サービス内ではなく、Webサイトを意味します。MVCフレームワークなしでコントローラを使用する

理論をテストするための単純なコンソールアプリケーションを開始しました。プロファイルを非クライアントプロファイルに変更し、System.Web.Mvcを追加してコントローラを作成し、JsonResultを返すようにすれば簡単です。 JSONを使用してサービスを応答させたい場合には、この作業の半分が完了したので、これがセットアップされたのは簡単です。

次のステップは、Httpサーバークラスを設定することです。受信した要求を自分のコントローラーにマップするフレームワークの他の部分を活用できるのであれば、私は大好きです。残念ながら、これは私が紛失した部分であり、特定のコントローラーの機能に到達するためにどのようなコードが後ろに向かうのかわかりません。

誰かがこれを達成するためのアイデアや、見るべきリソースを持っていますか?

要約:自分のサービスでコントローラを使用し、独自のHTTPサーバを使用したいと考えています。

答えて

1

フレームワークを使用せずにデザインパターンを使用することができます。つまり、モデルビューコントローラパターンを適用して問題が解決した場合は、「ビュー」を「サービス」に置き換えることができます。 、あなたは概念の一部を適用することができ、我々はそれからちょうどASPを使用して、JSONサービスについて、具体的話している場合が...

http://msdn.microsoft.com/en-us/library/ff649643.aspx

はしかし、より良いサービスに自分自身を貸すことが他のパターンがあり、 .NET MVCフレームワークをそのまま使用すると、(それを書き直そうとするよりも)うまくいくはずです。

+0

他のオプションを掘り下げた後、私は同意します。ビューをまったく使用する必要はありません。データへの純粋なコントローラ主導のインターフェイス(JSONの入出力)が必要です。長時間実行しているタスクを(同じモデルのDLLを共有する)別のサービスに委任します。 –

1

あなたは車輪を再発明しようとしていませんか?

JSONを返すことが主な目的の1つである場合、WCFはあなたのニーズを満たします。 WCFをお持ちであれば、IISで自由にホストできます。これは、独自のHTTPサーバーを持つ2番目の目的に役立ちます。

URLに基​​づいて異なるアクションが呼び出されるようなルーティングを実現しようとしています。異なるメソッドを持つWCFサービスを持つことと似ているのではなく、クライアントはそれぞれ別のURLで呼び出していますか?

ウェブ以外のアプリケーションでコントローラのコンセプトを試してみるのは革新的ですが、あなたの場合はオーバーエンジニアリングのようです。

+0

いいえ、私は車輪を再発明したくありません。 MVCフレームワークは、着信するWebリクエストを取得し、コントローラ上のメソッドにマッピングして応答するための優れたメカニズムを提供します。私はMvcからコントローラを捨ててSohneeが示唆しているように "コンセプト"に従うことができますが、これをMVC ASP.NETアプリケーションの外側に行うために既存のクラスを使用することができるなら、私はそれを使いたいと思います。ご覧のとおり、私はここでホイールを再構築しようとはしていません。 –

+0

私は話すときにWCFを見ています:) –

1

基本的なMVCパターンは、複製が難しいものではありません。私は真剣にあなたのアプリにMVCクラスをshoehornしようとするのではなく、自分自身を書くことを検討するだろう。

サイモン

1

それはあなたを助けている場合、全体のASP.Net MVCフレームワークをオープンソースであり、あなたはhttp://aspnet.codeplex.com/からそれをすべてダウンロードすることができます。ここでライブラリを使用して、フレームワークがバックグラウンドで何をしているのかを表示したり、必要に応じて自分の使い方を変えることができます。

関連する問題