0

私は、既存の製品を従来の ASP の暗黒時代から抜け出させて光の中に出すための個別のプロジェクトに取り組み始めています。この長い道のりに着手する前に私が行う最大の決定は、新しい設計のためにどのフレームワークと方法論を実装するかを決定することです。

現在、私はMVCまたはMVVM(私が収集したものから、これは単なるSilverlightですか?)、エンティティフレームワーク、またはモデルとして自分自身を記述し、データとしてMSSQLを記述しています。

残念ながら、私は駆け出しのプログラマーであり、一般的なプログラミングの世界の傾向を特に認識していません。何が一時的な流行で、どの技術が実際に永続的な可能性を秘めているのかはわかりません。しばらく関連性がありそうなものを使いたいと思っています。そこで、私はここにいる専門家に、あなたに役立つアイデア、注意すべき落とし穴、注意すべき点についての意見を求めています.

Microsoft と .Net を使用することが前提条件であることを念頭に置いて、あらゆる提案に感謝します。これにはおそらく数か月かかるので、開始する前に正しい方向に向かっていることを確認したいと思っています.

4

2 に答える 2

2

フレームワークに関しては、私が個人的に提案するもの:

  • MVC 4 の ASP.NET MVC 3、ベータ版ソフトウェアが許可されているかどうかの質問に応じて。
  • Entity Framework 4.3 または 5.0。5.0 ははるかに高速です (自動コンパイルがあります) が、まだリリース候補です。
  • Entities と ViewModel の間をマッピングする AutoMapper。
  • 依存性注入のための Ninject (単体テストを作成する場合に役立ちます)。
  • クライアント側の検証などの JQuery (ASP.NET MVC と完全に統合)。
  • Bootstrap のような CSS フレームワークの可能性があります。
  • おそらくRestSharpで、リクエストを簡単に実行できます。
  • それがクラウド サービス (ほとんどの SaaS) であり、Azure でホストしたい場合 (.NET スタックとの優れた統合)、Azure SDK が必要になります。

ソフトウェアアーキテクチャに関しては:

  • サービス層を使用する
  • リポジトリ パターンを使用する
  • エンティティの代わりに ViewModels を使用してビューに渡します
  • 依存性注入コンテナーをセットアップする

これが私のアドバイスです。個人的には、これはエンタープライズ アプリケーションを構築するための黄金の組み合わせだと思います (ただし、多くの設定に多くの時間を無駄にすることはありません)。

落とし穴:

  • 単体テストが本当に必要かどうかはわかりません。アーキテクチャをセットアップするときは、必ずこのことを念頭に置いておく必要がありますが、個人的には、製品が成功するかどうかさえわからないため、後で行うことを選択しています。
  • 何も仮定しないでください。誰もが気に入ると思うクールな機能に取り組んで貴重な時間を何ヶ月も無駄にすることができますが、多くの場合、そうではありません. 絶対に必要な最低限のことだけを行い、ユーザーが気に入った場合は後で改善してください。
于 2012-05-17T16:10:35.680 に答える
1

@Leonの提案は、アプリケーションフレームワークの観点からは優れていると思いますが、クラウドの方法論の観点からここに書きたかったので、さらに追加します。

SaaSを選択したので、アプリケーションとデータをすべてクラウドにまとめながら、クラウドで完全に移動していることは間違いありません。これはすばらしいことです。

クラウドアプリケーションにはいくつかのレイヤーがあり、理解するためにクラウドサービススタックがどのように見えるかを見てみましょう。Windows Azureを例にとると、次のようになります。

  1. アプリケーションがWebサーバーで実行される(または実行されない)Computeがあります。
  2. キーと値のペアを連続して格納し、それらに非常に高速にアクセスするために使用できるAzureテーブルストアがあります。
  3. Azure Queueを使用すると、クラウドアプリケーションのさまざまな部分を分離できるため、クラウドアプリケーションをさまざまなテクノロジーで簡単に構築し、トラフィックのニーズに合わせて簡単に拡張できます。
  4. OpenIDまたはADを介してユーザーを認証するためのアクセス制御サービスがあります
  5. クラウドまたはサードパーティのオンプレミスで他のサービスを接続するためのサービスバスがあります。
  6. Webベースのフラットファイルサーバーとして使用するAzureBlobストレージがあります
  7. Azure Cache(クラウドでスケーリングするためのインメモリキャッシュビルド)があります
  8. クラウドデータベースとしてSQLAzureがあります
  9. 探索して使用できるサービスは他にもたくさんあります

したがって、アプリケーションを従来のWebホスティングからクラウドに移行する場合は、これらのさまざまなクラウドサービスを利用して、必要に応じてアプリケーションを拡張し、多くの費用を節約する方法を検討する必要があります。

クラウドのアプリケーションで、次のように試してみます。

  1. アプリケーションロジックを可能な限り小さくしてください
  2. 静的コンテンツをコンピューティングの外部に保持する
  3. アプリケーションのスケールアウト時に高速アクセスのためにクラウドベースのキャッシュを使用する
  4. 可能で適切な場合は、データを従来のRDBMSデータベースからNoSQLフレームワーク(キーと値のペア、ドキュメントなど)に移動してコストと柔軟性を節約します
  5. 他の利用可能なサービスを利用して、アプリケーションの複雑さを軽減します

上記の側面を念頭に置いて考えると、高速でコストを節約できる真のクラウドベースのアプリケーションを作成できます。

于 2012-05-17T19:02:13.213 に答える