.NETの世界にrails / grails / django / rooのようなものがないのはなぜですか?[閉まっている]


10

急速に発展するWebプラットフォームは、Webアプリケーションの世界を根本的に変えると思われます。

Ruby用のRails 1.0がリリースされてから5年が経過し、Groovy用のGrails、Python用のDjango、Java用のRooが登場しました。

しかし、私の知る限り(おそらく制限されており、Java / Groovyプログラマーです)、C#に類似したフレームワークはありません。

そのようなものは存在しますか?そうでない場合、なぜでしょうか?

編集: 「迅速な開発」と言ったときに正しい言葉を使用していない可能性は十分にありますが、30分で実用的なブログエンジンを構築できるフレームワークについて話しています。コントローラーを見つけるために必要なさまざまな構成と、エンティティーを永続化して取得するために必要な構成とコードの両方を考えると、Java、Spring、Hibernateなどではこれを合理的に行うことはできません。

だから、私はすべてのCRUDを、convention-over-configurationの考え方で処理するフレームワークについて話しています。誰かが私が話していることに対して正しい言葉を持っているなら、知らせてください。

回答:


5

このスレッドでみなさんが話しているこの種のフレームワークの名前はまだないようです。今のところ、RAILSに似たフレームワークと呼んでいます。ほとんどのWebアプリケーションの基本的なニーズを解決することを目的として、他の既存のフレームワークを調整することで生産性を向上させると同時に、開発者からすべての複雑さを隠します。

基本的なニーズとは、永続化プロバイダー、依存関係インジェクションコンテナー、ロギングツール、MVCプラットフォーム、HTMLテンプレートエンジン、CSSプリセットを備えたWebサイトテンプレートスターターキット、セキュリティフレームワーク、およびAJAX機能用のいくつかのJavaScriptライブラリの実装を意味しますと他のクールなもの。RAILSのようなフレームワークは、ドメインモデル(属性を持つシステムのエンティティ)に基づいて、これらすべてのフレームワークとツールを調整します。

これらのフレームワークは、Convention-over-Configurationの原則のおかげで、オーケストレーションするフレームワーク(Spring、Spring MVC、Hibernate、Log4Jなど)が通常必要とする多くの構成ファイルを定義する必要がなく、デフォルトで名前に基づいて構成を想定しています。 、構造、メタデータが同じクラス定義に含まれています。

これらのフレームワークが使用する動的言語(Ruby、Groovy、Python、Clojureなど)のおかげで、AspectJを使用してJavaで動的動作を実装するSpringRooを除いて、その下のフレームワークに属する機能が拡張され、開発者は、基礎となるテクノロジーを知っているだけの統一されたエレガントな方法で利用できます。

最後にScaffoldテクニックのおかげで、開発者が定義したドメインオブジェクトのそれぞれに対して、メイン関数(CRUD)の単体テスト、統合テスト、コントローラー、およびビューが自動的に生成されます。

.NETの世界では、以前のすべての定義に従って、まだ何も開発されていません。しかし、それがすぐに発生するのを妨げるものはありません。.NETの世界では、CLR用に作成された新しいRAILSのようなフレームワークでオーケストレーションできる優れたフレームワーク、ツール、およびライブラリがすでにあります。Unity、Spring.NET、Castle Windsorなどが、依存性インジェクションのニーズに対応しています。Entity Framework 4、NHibernate、iBatis.NETは、非常に優れた.NET永続性プロバイダーです。ASP.NET MVCは、従来のASP.NETに加えて、さまざまなテンプレートエンジンをサポートするようになりました。

DLR言語を使用してこの種のフレームワークを構築できなかったとしても、十分な知識がある人なら誰でも、SpringSourceパスをたどり、アスペクトを利用してF#、C#、VB.NETなどの静的言語でRAILSのようなフレームワークを実装できます。 -動的な動作を取得するための指向コンテナ(AspectSharpやGripper-LOOM.NETなど)。

.NETでそのようなフレームワークを開発しようとしている人々のグループについて知りたいです。


4

「迅速な開発Webプラットフォーム」の意味がわかりません。私が精通している「迅速な開発」の定義は、言語、パラダイム、またはフレームワークとは何の関係もありません。むしろ、システムを作成するためのラピッドプロトタイピングと反復開発の使用です。どの言語やフレームワークでも同じように使用できます。

私はこれまでGrailsやRooを使用したことがありませんが、DjangoとRailsはどちらもMVCフレームワークであるため、.NETで対応するものはASP.NET MVCになります


1
まあ、私はASP.NET MVCをSpring MVCの対応物と見なします。そしてRailsがMVCフレームワークであると言うのは、Stackoverflowがエキスパート交換のようなQAサイトであると言っているようなものです。それは真の声明ですが、最も重要な機能とその大成功の理由を逃しています。
Eric Wilson

1
「最も重要な特徴」を説明してください。RailsはRuby言語用のMVCフレームワークに過ぎません。それはそれについてすべてを捕らえます。
Thomas Owens

2
さて、SpringはJavaのMVCフレームワークですが、RailsとGrailsを優れたものにする多くの機能を果たしていません。たとえば、Grailsの場合、ドメインオブジェクトを作成した後、タイプするgrails generate-allと、Grailsはコントローラー、ビューを生成し、永続性を管理します。
Eric Wilson、

3

Visual Studioに移動し、Webページにコントロールをドラッグアンドドロップして、コードをほとんどまたはまったく使用せずにデータベースに接続できます。ワンクリックでテスト/表示。そしてワンクリックでウェブサイトにアップロードします(認証情報を入力してください)。

これが最もよく使われる方法であり、推奨される方法でもありませんが、実際にはこれほど簡単にはなりません。


0

.NET Webアプリケーションにはビルドサイクルがあるからです。

Ruby / Pythonは非常に機敏で機敏で動的な言語です。

私が作業している場所には巨大な.NET Webアプリケーションがあり、コンパイル時間は典型的な中規模から大規模のC ++プログラムに匹敵します。

私の予備では、PythonでWebアプリを開発しています。コンパイル時間は0です。コンパイル手順はまったくありません。実行中のインタープリターは、保存するときに.pyファイルをリロードするだけです。


1
さて、Javaアプリケーションにはビルドサイクルがありますが、Spring RooはJava / Springアプリケーションでは不思議に機能します。したがって、ここには他にも問題があると思います。
Eric Wilson、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.