私の職場のチームは、中程度の量のビジネス ロジックと大量のデータベースを含む Web サイトの作業を開始しようとしています。すぐ。それを構築するための言語とフレームワークを選択する必要がありますが、どこから始めればよいかわかりません。文字通り無数のオプションがあります。必要なのは、データベースに接続できるもの、迅速な開発とプロトタイピングを可能にするもの、および適切にスケーリングできるものだけです。
今日のフィールドでトップ 5 程度のプレーヤーは誰ですか?
私の職場のチームは、中程度の量のビジネス ロジックと大量のデータベースを含む Web サイトの作業を開始しようとしています。すぐ。それを構築するための言語とフレームワークを選択する必要がありますが、どこから始めればよいかわかりません。文字通り無数のオプションがあります。必要なのは、データベースに接続できるもの、迅速な開発とプロトタイピングを可能にするもの、および適切にスケーリングできるものだけです。
今日のフィールドでトップ 5 程度のプレーヤーは誰ですか?
Rails (Ruby)、Django (Python)、CakePHP (PHP)、ASP.NET (すべての .Net 言語)、Struts 2 (Java) です。これらの各言語には他にも多くのフレームワークがあると思います (もちろん、さらに多くの言語もあります;-) が、それが一番の考慮事項である場合、これらはすべて現在高い人気があります。
Rails (Ruby)、Cake (PHP)、Django (Python)、Grails (Groovy) は互いによく似ており、あなたが言及した機能を備えています。ただし、かなり重いです。
これらのフレームワークの多くは自分のやり方で物事を行うのが好きで、自分のやり方でやりたい場合は、フレームワークと格闘する必要があるため、私はより軽量なフレームワークを好みます。では、通常よりも多くの作業を行っているのであれば、わざわざフレームワークを使用する必要はありません。しかし、それぞれに。
ここでリストを参照してください: http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks
ZendFrameworkはどうですか?これは最大のPHPフレームワークであり、質問で言及されているすべてのオプションがあると思います:)
最先端の、これまでにない種類のアプリを作成するつもりがない限り、私はあなたが知っている言語に固執するべきだと私は信じています (それが十分に優れているか、その欠陥を補うのに十分な大きさのエコシステムを持っていると仮定します (これが事実です))。多くの一般的な言語で)))。あなたの場合、それはJavaのようです(あなたのstackoverlowアクティビティから推測しました;))。
Java Web フレームワークに関しては、stackoverflow に関する多くの同様の/関連する質問があることがわかります: https://stackoverflow.com/search?q=java+web+framework
少し関係のない話ですが、私はHaxeの大ファンであり、ユーザーでもあります(理由はこの質問の範囲外です)。興味がある場合は、haXigniterが良いフレームワークになるかもしれません。
PHP は何度も言及されています。CakePHP は非常に流行りで、ZendFramework は広く使用されていますが (汎用コンポーネント ライブラリのほうが多いですが)、個人的にはsymfony、flow3、およびcodeigniterの方が有利であると考えています。
Zend フレームワーク + Doctrine ORM
これは私が今使っているものです。最初に学ぶのは少し難しいかもしれません。しかし、私はその価値があると思います。Zend Framework 2 が登場します ( ZF2 の最初の開発マイルストーンが出ています)。また、PHP 5.3 の「真の」名前空間をサポートしています。現在、Zend Framework 1.10 + Doctrine 2 を使用しています。ニーズに合わせてコンポーネントを簡単にカスタマイズできる方法が本当に気に入っています。
私が使用する多くのクラスがあります (他のフレームワークでは使用できない場合があります)。例えば。ナビゲーション、ページネーション、ビュー ヘルパー、Zend_Test による (PHPUnit) ユニット テストなどのクラス。Zend_Log を使用した FireBug/FirePHP へのログ記録。
迅速な開発とプロトタイピング スキャフォールディングを意味する場合は、CLI コマンドを介してコントローラー、アクション、モデルなどのコンポーネントを作成できる CLI アプリケーションである Zend_Tool があります。
スケーラビリティについてはわかりません。しかし、.NET は企業で一般的に使用されていると聞いたので、よりスケーラブルでなければなりません。しかし、よくわかりません。
このオプションを選択した場合、優れた学習リソースは次のとおりです。
ASP.NET MVC 2
ASP.NET MVC を使用して実際のアプリケーションを作成したことはまだありません。しかし、私はその発展を見ています。MVC 3 が近づいています...リンク&リンク&リンク... カミソリ ビュー エンジン (軽量のテンプレート エンジンのようなもの) が追加されたので見栄えがします。C# を使用でき、Entity Framework (ORM)、ラムダ、LINQ などを備えた非常に強力な言語であることがわかりました。
ASP.NET Web フォームはプロトタイピングには優れていると思いますが、(私の意見では) コードが乱雑で、スケーラビリティには適していないと思います。
これらのオプションのリソース:
Flex (ActionScript) + BlazeDS (Java)。これらはフレームワークではありませんが、この組み合わせは Web アプリケーションを開発するためのもう 1 つのオプションです。クライアント側 (ActionScript) とサーバー (Java) のフレームワークを選択できます。Flex と Flash Builder は迅速な開発とプロトタイピングに適しており、Java はスケーラビリティに適しています。
典型的な ActionScript フレームワークはCairngormまたはPureMVCです。Java 側には、よく知られているフレームワークが多数あります。一般的な組み合わせは、Flex/BlazeDS/Hibernate です。