1

Asp.Net用のC#でWebアプリケーションフレームワークを構築しています。フレームワークは、dllファイル、codebehindファイルを含むaspxファイル、App_Codeのコードファイル、cssファイルおよび画像の組み合わせで構成されています。

Visual Studio 2008の「Webアプリケーション」プロジェクトを見てきました。これは、すべてのコードファイルを削除し、binフォルダー内の1つのdllに配置するのに役立ちます。ただし、他のすべてのファイルは残ります。

これらのファイルをリソースファイルに入れて、dllファイルに含めることが可能でなければならないと思います。Telerikのように、一部の制御プロバイダーがそれを行っているようです。

どうやってそれをやるの?また、ファイル数が1000を超えるため、これを行うための自動化されたプロセスはありますか。

どんな助けでも大いに感謝されます!

4

3 に答える 3

3

実際には、サイトを 1 つのアセンブリ、web.config ファイルと global.asax ファイルに減らすことができます。

これを行うには、埋め込みリソースを使用して、すべての静的コンテンツ (画像など) をアセンブリに埋め込みます。これは、Telerik のようなコンポーネント ベンダーが、コントロール用の単一のアセンブリ展開を提供するために行っていることです。埋め込まれたリソースは、仮想パス プロバイダーを使用して提供できます。msdn には、仮想パス プロバイダーを使用するための優れた記事があります。Web アプリケーション プロジェクトを使用する場合、ページ (.aspx) とユーザー コントロール (.ascx) をリソースとして埋め込むこともできます。

ルーティング モジュールを使用すると、アセンブリに埋め込まれたページへの URL のほぼ透過的な変換を実装できます。

ただし、いくつかの制限があります。

  • IIS6 は、既定では、アセンブリから静的コンテンツを提供しません。カスタム ハンドラー (files.ashx/my/static/content.jpg など) を使用するか、ワイルドカード マッピングを使用してすべての要求をアプリケーションにルーティングするように IIS を構成します。
  • アセンブリにページを埋め込むと、Visual Studio でのデザイナー サポートの一部が失われます。
于 2009-05-13T09:11:11.417 に答える
2

ASP.NET には、実際には「単一の DLL にコンパイルする」アプローチがありません (残念ながら、私自身何度もそれを望んでいました!)。

ご指摘のとおり、Web アプリケーションは混乱をいくらか軽減するのに役立ちます。

Web 配置も役立ちます。Web ページのコードが 1 つの DLL にコンパイルされ、*.aspx/*.ascxインストールからファイルを実際に削除できますが (更新できない場合)、まだ多くの*.compiledファイルが残っています。

残念ながら、現時点では、要件を満たす「すぐに使える」ソリューションはないと思います(これまで聞いた限りでは、VS2010 / ASP.NET でそのようなものは計画されていません) 4.0 または 4.0)。

マルク

于 2009-05-13T08:04:44.647 に答える
1

ASP.Net には、Microsoft のアドオンを使用して「単一の DLL にコンパイル」する機能があります。「Web Deployment」アドオンを見てください。これにより、ASCX コントロールを含むほぼすべてのものを 1 つの DLLにコンパイルできるようになります(これは、それらを簡単に再配布するための優れた方法です)。

于 2010-05-09T21:29:10.037 に答える