新しいMVC4インターネットプロジェクトには、47個以上の参照と29個のnugetパッケージがあります。私が逃げることができる参照の最小数は何であるか疑問に思います。JavascriptとORMソリューションを選択したいのですが。基本的には、必要最低限のMVCフレームワークが必要です。何を取り除くことができますか?そしてボーナスポイントについては、WebApiを機能させるために追加しなければならない最小値は何ですか?
3 に答える
完全を期すために、IIS(私の場合はバージョン7.5)にデプロイされた動作中のASPMVCアプリケーションに必要であることがわかった最小限の参照を以下に示します。つまり、これらの参照のみがある場合はMVCアプリケーションが実行され、すべてがない場合は実行されません。また、ローカル開発Webサーバーの観点ではなく、デプロイメントの観点から話していることを覚えておいてください。これらすべての参照なしでローカルで実行すると機能する場合がありますが、IISに展開すると失敗します。
最小参照
REFERENCE COPY LOCAL*
--------- -----------
Microsoft.Web.Infrastructure true
System false
System.Web false
System.Web.Http false
System.Web.Mvc true
System.Web.WebPages true
System.Web.WebPages.Deployment true
System.Web.WebPages.Razor true
*これらの参照がソリューションに追加されると、ローカルコピーはfalseに設定されます。プロジェクトをビルドするときにDLLがbinディレクトリに配置されるように、上記の参照のローカルコピープロパティを適宜設定します。そうすれば、それらは展開のためにピックアップされます。
しばらく経ちましたが、アップデート2では、未使用の参照がまだたくさんある空のテンプレートがあるようです。ソリューションを作成したら、次の参照を安全に削除できます。
- Microsoft.CSharp
- Microsoft.Web.Infrastructure
- Microsoft.Web.Mvc.FixedDisplayModes
- Newtonsoft.Json
- System.ComponentModel.DataAnnotations
- System.Data
- System.Data.DataSetExtensions
- System.Drawing
- System.EnterpriseServices
- System.Net.Http.Formatting
- System.Net.Http.WebRequest
- System.Web.ApplicationServices
- System.Web.DynamicData
- System.Web.Entity
- System.Web.Extensions
- System.Web.Helpers
- System.Web.Razor
- System.Web.Services
- System.Web.WebPages.Deployment
- System.Xml
- System.Xml.Linq
Nugetの観点からは、以下を除くすべてのパッケージ(およびそれらの依存関係)を削除できます。
- Microsoft.AspNet.WebApi
- Microsoft.AspNet.Mvc
次に、インターネットテンプレートを選択しないでください。代わりに、空のテンプレートまたは基本的なテンプレートを選択してください。それが彼らの目的です。
インターネットテンプレートには、すべての参照が必要です。これらの参照の一部を削除する場合は、テンプレートからコードを削除する必要があります。
ただし、すべてのテンプレートには、json.netやWebApiなど、不要なパッケージが含まれているようですが、不要な場合は削除できます。