1

私は、世界中で使用されるウェブサイトに取り組んでおり、地球上のいつでもどこでも非常に責任を負う必要があります。そのため、小規模なメンテナンスが必要な場合に Web サイトを再コンパイル/再起動する必要性を最大限に減らすために、考えられるすべてのトリックを使用しようとしています。

ビューを編集し、サービスを中断することなくフレームワークによって自動的かつ動的に再コンパイルする Asp.Net MVC の機能は非常に優れており、私のニーズに完全に適合しています。しかし、基になるモデルを同様の方法で編集できず、すべてを再コンパイルする必要がある場合、その関心は大幅に制限されます。

だから私の質問:コードブロックのビュー自体の中にビューモデルクラスを定義することは、どんな方法でも可能です(ひどい、ハッキーな方法でも)?

そうでなければ、「ホットエディット可能な」ウェブサイトを実現するためにどの道を探ればよいでしょうか (つまり、サイトがまだ生きている間に、変更をすぐに考慮して、どの部分を再コンパイルできるかということです)。

よろしくお願いします!:-)

4

2 に答える 2

2

パフォーマンスと稼働時間が心配な場合は、サーバーファームを使用してサイトをホストすることを検討してください。更新が必要な場合は、各サーバーを個別に停止して、サイトを常に利用できるようにすることができます。

ただし、ほとんどの展開には数秒しかかかりません。アプリケーションの起動には多少時間がかかる場合がありますが(たとえば、EFビューの生成には10〜20秒かかる場合があります)、オフピーク時に更新する限り、問題はありません。

また、ライブサーバーでコードを変更することは決してお勧めしません。あなたは最終的に何かを壊します。

于 2012-12-05T16:14:37.123 に答える
0

最終的には、別の戦略で目標を達成することができました。すべてのビューには同じモデルが呼び出されDataSourceます。これは、レンダリング前に開かれ、レンダリング後に閉じられるグローバルなレコードセットです (必要に応じて、ビュー内の Razor コードによって読み取りが実行されます)。

レコードセットの列リストは、サイトをクラッシュさせずにライブで変更できます。

フォームと検証の場合、基になるストアド プロシージャに関するデータベースから取得されたメタデータは、ac# 型を動的に作成するコードの発行につながります。それだけです。sp が変更されるたびに新しい型が生成されますが、アプリ プールのリサイクル率により、メモリ内でゾンビ化する古い型が多すぎるのを防ぐことができます。

于 2014-01-30T10:42:36.853 に答える