4

C# で ASP.net を使用して、Facebook、Twitter などの大規模なソーシャル Web アプリケーションを開発するタスクが割り当てられています。

これ以前は、私の開発は 3 層アーキテクチャ (つまり、プレゼンテーション層、ビジネス ロジック層、およびデータ アクセス層) に基づいていましたが、このプロジェクトでは、最初の大規模なプロジェクトであるため、混乱しています :(

私が持っている他の可能なアーキテクチャの選択肢は何ですか?

そのような質問に答えるのが難しいことは承知していますが、良いリソースが欲しいだけなので、考えられる選択肢をそれぞれ検討し、最終的に自分の要件に合ったものを選択します。私はインターネットを介して少し RnD を行いましたが、あまり成功しませんでした。

4

4 に答える 4

2

WindowsAzureをチェックする必要があります。ホスティング、Blob(またはファイル/イメージ/ raw)、キュー(分散通信用)、テーブルストレージ(非リレーショナルな方法で「エンティティ」データを維持するため)の形式の3種類のスケーラブルな(ただしリレーショナルではない)ストレージを提供します)。

リレーショナルストレージ用のSQLAzureと、ハイブリッド(オンプレミス/クラウド)アプリケーションのアドレス指定機能用のAppFabric、およびクレームベースのID管理用のアクセス制御もあります。

診断機能が組み込まれており、C#/ ASP.NET / ASP.NET MVCを知っている場合は、このプラットフォームを利用するために新しいスキルは必要ありません。また、JavaおよびPHPでも機能します。

windows.azure.com

于 2011-07-01T05:47:32.950 に答える
1

私ならサービス指向アーキテクチャーを選びます。すべてのビジネス ロジックと DAL を適切なサーバー上で実行し、時間とリソースを消費するすべての操作、ロジックを実行します。Microsoft チームのベスト プラクティスとパターンによって作成されたすべてのアーキテクチャ パターンがあります。Web Service Software Factory について読んで、BLL と DAL を実行するように選択し、Web サイトがホストされているサーバーからサービスを呼び出すだけです。別のサーバーでは、プレゼンテーション層 (ページ) を配置する必要があります。
これにより、次の利点が失われます。
1. ベスト プラクティスとアーキテクチャ
2. 他の人と開発している場合、作業を簡単に分割できます。
3. パフォーマンス、すべての作業はサーバー上で行われます。
これらは主要な視点であり、十分すぎるほどです。

よろしく、
セルジュ。

于 2011-07-01T14:43:00.777 に答える
1

アーキテクチャに関する限り、3 層を維持できます。あなたができるようにしたいのは、データベースの読み取りを簡単にスケーリングし、理想的には memcached や membase のようなキャッシュ レイヤーを配置することです。Facebook、YouTube、および基本的に他のトラフィックの多いアプリケーションはすべて、これらのキャッシュを使用します。

その後、ページの読み込みと配信時間を最適化します。これは幅広いタスクですが、1 億レコードのテーブルを変更する方法を見つけようとするよりもはるかに簡単です。

于 2011-07-01T05:54:48.527 に答える
-1

大規模な Web アーキテクチャを設計するには、パフォーマンスだけでなく、リソース、データ アーキテクチャ、リファクタリングが容易で、さまざまな処理サービス (マルチレイヤー) を表示できるように、幅広く検討する必要があると思います。javascript を使用した大規模な Web アーキテクチャに関する私のブログ投稿を参照してください。 . http://faizalpribadi.github.io/web-architecture-for-large-scale-application/

于 2016-03-12T19:13:12.137 に答える