2011-01-18 10 views
2

最初の広範な見解:私は、 "ビジネスとデータ層のコアのコード生成により、ISの急速な発展のためのツールを設計し実装する学校プロジェクトの課題を得ました(言い換えれば)。私はコード生成のフレームワークとツールを見ていました。より具体的には、T4とCodeSmith Generatorというものがあります。私の目に当たったのは.netTiersで、ソフトウェア開発に使うことができる興味深いものがいくつかありますが、実際の開発にどれくらい役に立つのか分かりません。ソフトウェア開発におけるコード生成

私の質問:コード生成を中心とした情報システムを開発する方法はありますか?あるいは、コード生成ツールやテンプレートを一般的に利用する方法はありますか?もし私がこれを持っていれば、もっと具体的なことをすることができます。

私はここでもコンサートコードの作成についていくつか質問しましたが、そのほとんどは良いか悪いのか、それとも一般的な経験かについてです。私が欲しいのは、特定のツールやテンプレートの具体的な経験と、開発の利益の大きさです。

お返事ありがとうございます。

+2

私はおそらくここで少し密集していますが、「IS」は何を表していますか? – Oded

+1

@Oded、あなただけではない:-) – driis

+0

野生の推測:情報システム? –

答えて

3

はいです。

あなたが見ることができる最大のものの1つはNaked Objectsですと思います。

のJava:Naked Objects.org

。NET:Naked Objects MVC

これらの2つは、基本的にドメインモデルからプログラム全体を生成します。とても興味深い。 Scott HanselmanはここでHanselminutesをやった:Hanselminutes w/ Richard Pawson。また、いくつかの非常に興味深いものへのリンクがあります。

HanselmansがPDC PDCから話すのを見ると、彼はコード生成を使ってたくさんのことをします。

私の会社CSLA .NETテンプレートとCodeSmithを使用して、データモデルから(カスタム機能なしで)DALおよびBOレイヤー全体を生成します。

あなたは世代を使ってかなりのことをすることができます。私は本当にあなたができることの表面にさえ本当に触れていません。

+0

これは非常に興味深い! Eclipse Modeling Frameworkとの比較 –

+0

いいです。確認してみるよ。 – Euphoric

+0

@davidvanbrink私は知らないでしょう – msarchet

0

コード生成にはその場所とコストがあります。

Cプリプロセッサは、コード生成の一形式です。ほとんどの大規模なCプロジェクトは、プリプロセッサマクロに基づいて、最終的にC言語の独自の方言に発展します。

アセンブリ言語のマクロは非常に便利です。

組み込みシステム用に、初期化されたC配列として表現された高速のSin/Cosルックアップテーブルを作成するPerlスクリプトなど、プロジェクトの一部を生成するのはよくあることです。あるいは、いくつかの測定されたパフォーマンスデータファイルは、アプリケーションに「組み込み」されて、ある程度のコストまたは他のものを推定するのに役立ちます。

Javaでは、JAXBなどを使用してXMLスキーマに基づいてクラスを生成するのが一般的です。 (私はこれがあなたの質問の意図に最も近いと考えています、@ユーフォリック...)

また、多くのゲッターやセッターを実装する手間を省くためのさまざまなメカニズム。 (悪い、悪い、Java)

コストは複雑です。 "ソースコード"と "生成されたコード"の違いを管理する必要があります。誰かが "ソースコード管理システム"に "生成されたコード"をチェックしているのを見たら...それが本当に正しいことだと思っています!

あなたのMakeまたはビルドシステムが適切な生成ファイルを作成する方法を知っていたらうまくいけば&それらを使用してください。

確かに、一部のサーバーシステムでは、実行中にオンザフライでコードを作成しコンパイルすることさえあります。私:私はそれを怖がっています!しかし、私はそれを使用する必要はありませんでした。

1

ASP.NETの場合、ASP.NET Dynamic Data Scaffoldingを使用できます。

スキャフォールディングとは、データベース内の各テーブルのWebページを自動的に生成するDynamic Data要素を指します。これらの自動生成Webページは、各表の作成、読み取り、更新、および削除(CRUD)操作を提供します。スキャフォールディングは、ページテンプレート、エンティティページテンプレート、フィールドページテンプレート、およびフィルタテンプレートで構成されています。これらのテンプレートを使用すると、機能的なデータ駆動型Webサイトを迅速に構築できます。

デスクトップアプリケーションのために、あなたは、閲覧に入ると、編集データのために、つまり、Visual Studio LightSwitch

ほとんどのビジネスアプリケーションでは、フォーム・オーバー・データ・アプリケーションですユーザーインターフェイスを使用することができます。ほとんどの開発ツールでは、同じタスクを繰り返し実行するために多くの時間が費やされます。データベースと対話するコードを記述し、ユーザーインターフェイスのコードを記述し、ビジネスロジックのコードを記述します。 LightSwitchを使用することで、多くの作業がすでに完了しています。実際、1行のコードを書くことなくLightSwitchアプリケーションを作成することは可能です。ほとんどのアプリケーションでは、書くことができるコードはビジネスロジックだけです。

関連する問題