2009-08-04 10 views
2

私は現在、Webアプリケーションを設計しています。フロントエンドにはpython-djangoを使用し、バックエンドにはC#-WCF-Entity Frameworkを使用することを検討しています。私のコアコンピタンスはC#であり、したがってバックエンド技術の選択です。しかし、私はdjangoのクリーンなデザインとASP.NETと動的言語の柔軟性を好むため、フロントエンドでC#を使いたくないのです。私はすべてのデータアクセスのためにWCFサービスにREST呼び出しを行うつもりです(つまり、私はdjangoモデルをまったく使用しません)。アーキテクチャの考慮点

私の質問...:

  • が、これは、スケーラビリティの面で、良い建築ますか?アーキテクチャに脅威を与え、プロジェクトを脅かす短所はありますか?単純にASP.NETを使用し、REST呼び出しを忘れる方がよいでしょうか?

  • このアーキテクチャでは、.NETもやっているdjangoホストを見つけるのが難しいため、ホストに関する懸念も高まっています。 Google App EngineのフロントエンドとWindows Azureのバックエンドをホストするのは賢明なことでしょうか?

あなたの回答は高く評価されます。

ありがとうございました。

答えて

0

あなたが最も快適に感じる言語で開発された堅牢なビジネス層です。これは良いアイデアのようです。

プレゼンテーション層のデカップリングは、おそらく将来、異なるクライアントプラットフォームで複数の層を持つ場合でも - 合理的でも、私はこれらの線で成功したシステムを見てきました。

RESTfulサービスは、開発の容易性の面で非常に効果的であるようです。私は、テキストデータ転送メカニズム(任意の味のWebサービス)を使用する際にパフォーマンス上のオーバーヘッドがあることを期待していますが、慎重な設計ではこれは通常は克服できない問題ではありません - 多くのリッチUIブラウザのパフォーマンスを見てくださいテキストペイロードを使用したAJAX呼び出しを使用します。

スケーラビリティを本質的に妨げているこのアーキテクチャの選択肢はわかりません。ビジネス層を正しく取得し、状態を注意深く管理しなければならないことは明らかですが、なぜスケーラビリティーの問題が導入されるのかわかりません。

0

一般的に、フロントエンドでPython-Djangoを使用し、データの取得と分析のためにネットワーク経由でコアサービスを呼び出すのは、かなり一般的なアーキテクチャです。私たちはここで私たちの会社のすべてのものをほぼ使用しています。私たちは.NETを使用していませんが、違いがあるとは思いません。このアプローチは非常に拡張性があります。なぜなら、ボトルネックがコアであれば、フロントエンドに全く触れずにコンピューティングパワーを追加するからです。

すべてのコアサービスは外部からアクセスできないため、受信するデータの種類について非常に強力な前提を設定し、フロントエンド側で検証の負担を負担することができます。これはかなり便利ですあなたは強く型付けされた言語を持っていて、動的なものではデータの検証がはるかに簡単です。この利得をより完全に利用するには、SOAPなどの2つの部分の通信にタイプアウェアプロトコルを使用することをお勧めします。Thrift

1

実際、これを許可するホストを見つけるとオプションが制限されることがあります。

Python/Django、RESTなどはすばらしい選択肢です。 ASP.NETのフロントエンドを避けることは、メンテナンスコスト、他の(つまり安価な)フロントエンドサーバーなどへの移植性の点では確かに良いと言えます。提案しているアーキテクチャを実装することでスケーラビリティが向上するはずです。

Google AppEngineについては、AppEngine、Java、GoogleのWebツールキットを選択できます。特に、豊富なユーザーエクスペリエンスとスケーラビリティが必要な場合は、Webアプリケーション用のすばらしいプラットフォームです。この設定でのAzureの選択は、.NETを使用してロックされていない限り、まったく意味がありません。

1

使用している技術の数を減らすことで、アーキテクチャを簡素化することをお勧めします。

特に、Pythonの代わりにフロントエンドにASP.net MVCを使用します。

フロントエンドとバックエンドの間でWCFを使用します。 SOAPまたはRESTを使用すると、設定が変更されます。

RESTを使用してバックエンドと会話するときは、自分でホストするか、Windows Azureを使用するかを選択できます。

関連する問題