Visual Studioは非常に優れていますが、ストアドプロシージャを自動的に作成しません。アイアンスピードのデザイナーはおそらくそうします。しかし、それは何か良いですか?
6 に答える
過去 2 年間、ほとんどの ASP.NET フォーム オーバー データ プロジェクトで、Ironspeed を広範囲に使用してきました。
できます。ストアド プロシージャ、テーブル ブラウズ画面と CRUD 画面の高速レイアウト、単一レコードの CRUD 画面の高速レイアウトなど、いくつかのことをうまく実行します。往復 (または半往復) プロセスを適切に管理し、バックエンド db スキーマの変更を検出してデータ アクセス レイヤーを更新し、変更された列を使用して UI (レコードまたはテーブル コントロール パネル) を変更できるようにします。 )。ISD (いわゆる) は、コントロール レベル (asp.net コントロールの ISD のサブクラス化されたバージョンを使用する場合) に至るまで、アプリのセキュリティ管理を非常に簡単にする優れた仕事をします。小さなものではない最後のプラスは、CSS ベースのテーマ コントロールです (さまざまなテーマに簡単に変更でき、特定のテーマを簡単にカスタマイズでき、既存の好きなテーマをフォークして独自のテーマ バリアントを作成することも悪くありません)。 )。
有益な貢献者のコア グループを持つかなり活発なフォーラム。おそらく、フォーラムを通じて有料の技術サポートを避けることができます.
さて、マイナス面。3 層アーキテクチャである、かなり大きなコードの集合体を作成します。Galwegian が言っているように、他のフレームワークと同様に、あなたにはベルベットの手錠があります (コードの制限や規則以外のことを考えている場合は、頭から離れてください!)。ビロードの手錠は、ページとコントロール モデル、データ層、ビジネス オブジェクト/クラス機能自体の欠如、ポストバック モデル、およびユーザー GUI を箱から出してすぐに使えるユーザー GUI のように見せたいという誘惑です。とてつもなく簡単で便利です。
ISD は、HTML テンプレート (ISD GUI を使用して、または手動で、ISD 固有のコード生成タグやその他のタグなどを配置する) を組み合わせて基本的なページを構築します。ページ モデルは、コード テンプレートの一部から作成されたコード ビハインド ページに依存しています。基本クラスはほぼ完全にオーバーライド可能であるため、すべてのデフォルト関数をオーバーライドし、アプリケーションを再生成し、オーバーライドを失うことはありません。データベース コントロールはページ コンテナー内にありますが、特定の /app_code ファイルに独自のクラス定義 (コード ビハインド) があります。繰り返しますが、各コントロール タイプには、かなり完全にオーバーライド可能なメソッドを持つ独自の基本クラスがあります。単一のレコード コントロール (単一の db レコードを表示する) は非常に単純です。複数のレコードを表示するテーブルには、テーブル クラスとテーブル行クラスがあります。ISD の Web サイト (www.ironspeed.
では、このモデルの問題点はどこにあるのでしょうか? 1. すぐに使用できる GUI を使用するのは簡単で魅力的です。ISD をデータベースに向け、ページに変換するテーブルを選択し、ページの種類を伝え、テーマ別のスタイルを指定すると、5 分後にアプリケーションが表示されます。涼しい。しかし、ユーザー GUI はおそらくユーザーが見たいものではないことを忘れがちです。したがって、自分で考えて、このように作成された GUI をいじる準備をしてください。難しいことではなく、VS 2005 を使用することもできます。
- ビジネス オブジェクト。独自のビジネス オブジェクトをまとめることができますが、それは難しく、ISD からの支援は得られません。ISD は、単純な検証とチェック (適切なルックアップ値、範囲、長さなど) の多くの構築を行います。ISD では、カスタム クエリを構築できますが、これらは読み取り専用です。1対多のビューを取り、それをデータベースに書き戻すことができるほど十分にスマートです(そして、どのような場合でもページからの書き込みをオーバーライドできます)(おそらくデフォルトのベースメソッドをオーバーライドしますが、そうではありませんするのは難しい)。ただし、本格的な依存関係のチェックに入ると、ISD は依然として、ビジネス オブジェクトではなくテーブルに関するものです。それで、あなたはいくつかのコードを書くつもりです。
あなたが賢いなら、それを書いて app_code のどこかに保存し、テーブルまたはレコード コントロールのオーバーライドされたメソッドから呼び出して使用します。あなたが私たちのほとんどと同じなら、最初に上記の分離コード クラスの 1 つにスパゲッティを入れてから、そうしたことを忘れるか、顧客データを操作する 10 ページのそれぞれにコピーを持っているでしょう。私の世界では、これは通常、5 つの同一の機能と、すべて異なる 5 つの機能を意味します (それらはすべて同じであるはずですが)。モデルがスパゲッティ コードに適しているため、ISD はマリナラを注文したくなる。もちろん、これを完全に防ぐことはできますが、ISD モデルを学習して、プロジェクトで最適な方法を決定する必要があります。
- ページの状態とポストバック。ISD はこの問題について非常にオープンであり、ポストバック ストリームで asp.net ページ全体の状態を返すという既定値 (代わりにサーバー上のキャッシュ) をそのまま使用しないようにユーザーに指示していますが、既定値はページ全体を返すことです。いくつかの BIG ページを作成できます。これにより、ユーザーは SLO W と考えるようになります。私が言ったように、これは操作できます。しかし、ポイントして、クリックして、ブームするのがとても魅力的であるときに、初心者はこれを手に入れるでしょう-インスタントアプリケーション。彼女の製品在庫テーブルは「ウェブ上」にあり、クールな検索および編集 GUI (少し気が狂って ISD のデフォルトの動作を取っただけの場合は 400kb の状態ページ) を備えているため、マネージャーはあなたの背後から離れています。社内は素晴らしいが、現実世界の顧客は....
繰り返しますが、知識が鍵です。これは修正できますが、知っておく必要があります。
- データベースの読み取り/書き込みポストバック。ここでは大きな問題はありませんが、モデルは現在使用されているデータのみをフェッチすることを知っておく必要があります。テーブルに 50 レコードずつ 1000 レコードが表示されている場合、レコード 1 から 50 から 51 から 100 に移動すると、ポストバックしてデータベースに再度ヒットします。これにより、データが最新に保たれますが、サーバー トラフィックが増加します。
全体: デモ版を試してください。本当にasp.netアプリケーションに入れたい単純なものを指してください。おそらく 3 つのテーブルを作成します。次に、上記をガイドとして使用して分析します。あなたの考えを見て、この質問に投稿してください。
非常に小さなプロジェクトの利便性のために使用しました。それは私が望んでいたことをしてくれ、数日間の仕事を節約してくれました。
私が見つけた主な問題は、生成されたプロジェクトのカスタマイズまたは拡張に関してでした。Ironspeed のやり方を理解するにはかなりの時間を費やさなければなりませんが、それは私のやり方ではありません。
後であまりカスタマイズする必要がないことが事前にわかっていれば、小さなプロジェクトにもう一度使用します。
IronSpeed は、データ駆動型の企業イントラネット アプリケーションの開発を支援してくれました (すぐに使用できます)。コード モデルに慣れるには少し時間がかかりますが、優れた 3 層アプリを維持するには効果的です。ページ テンプレートは 2010 年の Web デザインと比べると派手に見えるかもしれませんが、フォームよりも機能が必要な場合は、これで十分です。
ストアド プロシージャの生成だけを求めている場合、CodeSmith は、IronSpeed の数分の 1 のコストで適切なオプションです。利用可能な sproc テンプレートがいくつかあり、必要に応じて独自のテンプレートを作成したり、既存のテンプレートを微調整したりできます。CodeSmith を使用して、心ゆくまで .Net コードを生成することもできます。このためのビジネス クラス テンプレートはすでに数多く存在します。
IronSpeed の価値は sproc 生成ではなく、RAD 機能にあります。私は@Galwegianに同意します... IronSpeedは、モックアップや非常に単純なアプリには問題ありませんが、カスタマイズが必要な場合はまったく適していません.
Evolutility CRUD フレームワークを確認することをお勧めします。同じ機能 (CRUD に限定) のいくつかを提供し、オープン ソースです。
Iron Speed Designer は、単純な CRUD タイプの Web アプリケーションに最適です。当社の Web サイトhttp://www.dotnetarchitect.co.uk/で役立つ情報を見つけることができます。