DBオブジェクトからDALをビルドするために、PLINQOテンプレートにCodeSmithを使用します。それは素晴らしい作品です!CodeSmithのようなコードジェネレーターを使用してどのようなコードを検討しますか?
私はこれがコードジェネレータの主な用途だと思っていますが、私は興味があります。コードジェネレータを使用する他のコードについて教えてください。頻繁に使用するCodeSmithテンプレートをお持ちですか?もしそうなら、それは何ですか?
DBオブジェクトからDALをビルドするために、PLINQOテンプレートにCodeSmithを使用します。それは素晴らしい作品です!CodeSmithのようなコードジェネレーターを使用してどのようなコードを検討しますか?
私はこれがコードジェネレータの主な用途だと思っていますが、私は興味があります。コードジェネレータを使用する他のコードについて教えてください。頻繁に使用するCodeSmithテンプレートをお持ちですか?もしそうなら、それは何ですか?
私はCodeSmithを使用していませんが、私はかなりのコード生成を行っています。私は、CMコードが3つの異なるプラットフォーム用に生成されたWiMAXシステム用の構成管理(CM)システムのほとんどを書いていました。唯一の違いは、各プラットフォームのCMモデルです。
このモデルは、私たちが作成した独自のドメイン固有言語(DSL)にパーサーが含まれていました。言語は、コンテナがネストして識別子を持つ基本的なコンテナ/エレメントスタイルであり、要素は事前定義されたタイプであった。ドキュメントは要素とコンテナの属性でした。要素とコンテナ定義にLuaスニペットを追加してセマンティック検証を行うことができます(たとえば、IPアドレスが他の場所で定義されたCIDR範囲にある場合など、値は正しい範囲にあります)。
パーサーは、テンプレートでプッシュした構文ツリーを生成しました。テンプレート言語は部分的なC実装のStringTemplateでした。 、モデルを検証し、便利なエラーメッセージを提供するための収集Luaのコード
振り返ってみると、私は単純にLuaをDSLとして直接使用していたはずです。もっと冗長になっていましたが、既にパーサを持っていて、私に利用可能なLuaテンプレートの選択肢がたくさんあると、多くの開発努力が節約されました。
繰り返し構造を持ち、それらのことが何をする必要があるかについてよく定義されたルールの場合、コード生成は素晴らしいことです。