ASP .NET MVC 3のコンテキストでベストプラクティスに従っていることを確認したいと思います。MVC3Webアプリケーションで特定のアクションが実行されたときに、Razorテンプレートエンジンを使用して自動電子メールを生成しています。
電子メール用に別のクラスライブラリを作成しました。このクラスライブラリには、電子メールの生成時に使用されるモデルと、適切なビューとモデルを使用して必要なメッセージテキストを生成するメッセージファクトリが含まれます。
ビューテンプレートをどこに保存すればよいかわかりません。それらをCSHTMLとして保存したいと思います。これにより、プロジェクトの開発者(Razorを初めて使用する)がメールテンプレートの作成中にIntelliSenseを使用できるようになります。
デプロイメントがより複雑になるため、クラスライブラリのフォルダに保存することはできないと思います。それらをMVC3Webアプリケーションルート内のフォルダーに保存すると、正しいパスを知っているインターネット上の誰もがアクセスできるようになります。ここで、2つのオプションを検討します。
それらをapp_dataフォルダーに保存しますが、これは乱雑に思えます。
それらをMVCのViewsフォルダー内の「EmailTemplates」というフォルダーに保存します。直接参照することはできず(コントローラーなし)、開発者はそれらに簡単にアクセスしてIntelliSenseを利用できるため、これが最良のオプションだと思います。
オプション2が最良のオプションですか、これらのメールテンプレートをここに配置するのは罪ですか?次に、ローカルファイルシステムを介してファイルに直接アクセスしますが、本番環境にデプロイした後にセキュリティの問題が発生するかどうかはわかりません(おそらく、app_dataフォルダーを使用するとこれを防ぐことができます)。展開のための最小限の構成が欲しいのですが。
ありがとう!