強力なコード生成ツールMyGeneration
Powerful Code Generation Tool Mygeneration
元の住所: 強力なコード生成ツールMyGeneration
私の世代 とてもパワフルです コード 生む ツール 。データベースの目次を介してさまざまなタイプ(C#、VB.Net、JScript、VBScript)のテンプレートを含むスクリプトを作成することにより、必要なさまざまなコードを生成します。これを使用して、ORMエンティティタイプ、ストアドプロシージャ、SQLステートメントなどを生成できます。私はそれを使ってAsp.Netページを生成します(ああ、私は怠け者です)。
私の世代 強力なオンラインテンプレートライブラリを提供します。彼らのWebサイトにアクセスするか、テンプレートブラウザのオンラインテンプレート機能ボタンを使用するために必要なテンプレートを見つけることができます。もちろん、必要に応じて独自のテンプレートを作成することもできます。
私のNHibernateテンプレートが公開され、それに専念するエッセイを書きました。見る ' MyGenerationとNHibernateマッピングファイルを使用して、テンプレートの関係を生成します(1対1、1対多、多対多) 」。
始めることができます ここに 最新バージョンをダウンロードします。
重要なコンポーネントを紹介する
これは、一般的に使用されるいくつかの重要な外部コンポーネントで構成されています。次の2つです。
データベースに含まれるMyMeta情報。データベースから目的のデータベースと関連情報を得ることができます。例:データベースの名前、データベーステーブル、主キーなど、内部のテーブル。
ゼウスは 私の世代 パッケージアセンブリWinFromの最も一般的なコンポーネントのセットであるフレームワークを提供します。これにより、インターフェイスが必要な動的コンポーネントを生成でき(ユーザーインターフェイステンプレートを使用パラメーター用に選択できます)、次にインターフェイス内部情報は、テンプレートの生成に役立つ場合があります。
それは分析を行います
私の世代 サポートは、さまざまなスクリプトモードでさまざまな言語でのみ表現され、その動作原理は同じです。
私が最も一般的に使用するのはC#テンプレートです。テンプレートは2つのステップで実行されます。最初にスクリプトエンジンとスクリプト内のインターフェイスコードコードテンプレートによって実行され、ソーステンプレートインターフェイスソースC#コードを生成してから、ソーステンプレートを実行して必要なコードを生成します。以下に示すように
テンプレートコードテンプレートプロファイル
Aspの文法とC#テンプレートコードの構文は非常に似ています(ソースはコードに基づいて生成されたコードを記述できないことに注意してください)。
フィールドまたはバインディングプロパティを表します。
セクションはスクリプトを表します。ここでは、C#構文に沿って任意のステートメントを記述できます。
他のコンテンツは解析されません。ファイナルに結果を直接出力します。
一般的なC#スクリプトは、テンプレートソース内のDotNetScriptTemplate、DotNetScriptTemplateを継承します。これは、彼が_DotNetScriptTemplateから継承されていることがわかります。インターフェースは似ています。
公衆 概要 クラス DotNetScriptTemplate:_DotNetScriptTemplate{{
保護されたZeus.UserInterface.GuiController ui
保護されたMyMeta.dbRoot MyMeta
保護されたDnp.Utils.Utils DnpUtils
公衆DotNetScriptTemplate(IZeusContextコンテキスト):ベース(環境)
{{
この。玉ねぎ=context.Objects ['玉ねぎ']なのでZeus.UserInterface.GuiController
この.MyMeta=context.Objects ['MyMeta']なのでMyMeta.dbRoot
この.DnpUtils=context.Objects ['DnpUtils']なのでDnp.Utils.Utils
}
}
テンプレート内のDotNetScriptTemplateは、データベース情報を使用する必要があり、インターフェイス情報も引用されています。MyMetaによってデータベース内の情報を取得し、内部のuiからテンプレートに関連する情報とパラメーターを取得できます。
Renderメソッドで、テンプレートにコードを記述します。のメソッドで記述されたセットアップページコード。
構成ファイルの使用
私の世代 デフォルト設定の編集にある構成ファイルの使用をサポートします...私たちが見ることができます。
言語マッピングは、データベースと言語(C#、VB.Netなど)フィールドの対応を定義します。
データベースターゲットマッピングデータベースであり、ADO.Net対応関係内のフィールドを定義します。
ユーザーメタデータを使用すると、ユーザーはカスタムプロファイルを設定できます。
テンプレートでは、同様の構文で入力['__dbDriver']の内容にアクセスできます。
一般的なものは次のとおりです。
__defaultOutputPath
__dbDriver
__dbTarget
__言語
__dbTargetMappingFileName
__dbLanguageMappingFileName
__userMetaDataFileName
Tutorials / C#Inside Charpt1内のサンプルテンプレートディレクトリを見ることができます(Charpt2も良い例ですが、やや面倒に書かれています)。
詳細なショートカットボタン
テンプレートブラウザはすべてのテンプレートを見ることができます。
最初の役割はボタンを更新することです。
2番目のボタンは、表示モードを切り替えるアクションです。名前空間に従って、カテゴリ別に参照および参照します。
3番目のボタンは、オンラインテンプレートライブラリを調べることです。
4番目のボタンはテンプレートの役割です。
6番目のポイント実行と組み合わせて使用される5番目のボタンと6番目のボタン、パラメーターは指定されたznipファイル(実際にはXML形式)に記録され、次のポイントは5番目のボタンを実行し、ファイルを保存したznipを選択すると自動的に行われます構成をロードします。
7番目のボタンはテンプレートの実行です。
最初のボタンアクションは、ファイルを開くことです。
2番目のアクションは、ボタンのテンプレートブラウザウィンドウです。
3番目のボタン機能はMyMetaブラウザウィンドウに表示され、データベース情報を表示します。
4番目のボタンは、新しいプロジェクトの役割です。複数のテンプレートを使用してタスクを完了することができます(私は通常そうします)。
5番目のボタンは、出力パスを開くためのデフォルトのアクションです。
6番目のボタンは、新しいJScriptテンプレートの役割です。
7番目のボタンは新しい役割のVBScriptテンプレートです
8番目のボタンアクションは新しいC#テンプレートです
9番目は新しい役割ボタンVB.Netテンプレートです
10番目のボタンはMyMetaプロパティを調べることです(使用方法がわからないので、次に使用するようにアドバイスしてください)
ボタンの10分の1は、言語マッピングを調べることです。
12番目のボタンは、DbTargetマッピングを調べることです。
13番目のボタンは、ユーザーメタデータを調べることです。
14番目のボタンは、グローバルユーザーメタデータを調べることです。
最初のボタンは役割を維持することです
2番目の効果は[保存]ボタンです
3番目のボタンは、テンプレート情報を調べることです
4番目のボタンはコンソールの役割です
5番目のボタンの役割は、テンプレートを実行することです
最初のテンプレートを書いてみてください
メインメニューで、[ファイル]-> [新規]-> [C#テンプレート]を選択します。 私の世代 以下のテンプレートコードを生成します。これが内部のテンプレートコードです。
<%公衆 クラス GeneratedTemplate:DotNetScriptTemplate
{{
公衆GeneratedTemplate(ZeusContextコンテキスト):ベース(環境) {}
//-------------------------------------------------- -
//Render()は、ロジックを記述したい場所です
//-------------------------------------------------- -
公衆 オーバーライド ボイドRender()
{{
%>
切り替えることができますに アウトのようなスクリプトのこの
<%
output.writeln('こんにちは世界。')。
}
}
%>
このテンプレートを実行すると、出力が表示されます。 %><% Content output directly to the inside of the results, output.writeln the content is outputted to the result. output is Interface which comes attributes. There are a lot of features. See Zeus's help files.
このようにスクリプトから切り替えることができます
こんにちは世界。
インターフェイスコードが見つかり、コードコメントが少し見つかりました。コメント後に次のコードを削除しました
{{
公衆GeneratedGui(ZeusContextコンテキスト):ベース(環境) {}
//-----------------------------------------
//ユーザーインターフェイスのエントリポイント
//-----------------------------------------
公衆 オーバーライド ボイドセットアップ()
{{
//** UIを表示するには以下のコメント解除コード**
ui.Width= 100
ui.Height= 100
GuiLabel lblDemo=ui.AddLabel('lblDemo'、'デモ'、'デモツールチップ')。
ui.ShowGui= true
}
}
テンプレートを実行します。デモには、フォントタグと[OK]ボタンフォームが表示されます。コードに追加するラベルのデモフォント。 [OK]ボタンテンプレートが自動的に設定され、[OK]を示します。
簡単な関数を実装するためのテンプレートを書いてみましょう。ドロップダウンリスト名バインディングデータベースインターフェイスを使用して、データベース内のデータベーステーブルのリストを選択します。コードは以下のように表示されます
{{
公衆GeneratedGui(ZeusContextコンテキスト):ベース(環境) {}
//-----------------------------------------
//ユーザーインターフェイスのエントリポイント
//-----------------------------------------
公衆 オーバーライド ボイドセットアップ()
{{
//** UIを表示するには以下のコメント解除コード**
ui.Width= 180
ui.Height= 120
ui.Title='最初のテンプレート'//フォームのタイトル
GuiLabel lblDatabase=ui.AddLabel('lblDatabase'、'データベースを選択'、'データベースを選択')。
GuiComboBoxchooseDatabase=ui.AddComboBox('ChooseDatabase'、'データベースを選択')。
ChooseDatabase.Width=150
setupDatabaseDropdown(chooseDatabase)
ui.ShowGui= true
}
//バインディングデータベース
公衆 ボイドsetupDatabaseDropdown(GuiComboBoxチェックボックス)
{{
もし(MyMeta.IsConnected)//接続が成功した場合MyMeta
{{
チェックボックス.BindData(MyMeta.Databases)
}
}
} <%
公衆 クラス GeneratedTemplate:DotNetScriptTemplate
{{
公衆GeneratedTemplate(ZeusContextコンテキスト):ベース(環境) {}
//-------------------------------------------------- -
//Render()は、ロジックを記述したい場所です
//-------------------------------------------------- -
公衆 オーバーライド ボイドRender()
{{
ストリング_dbName=入力['ChooseDatabase'] .ToString()
foreach(ITableテーブルにMyMeta.Databases [_dbName] .Tables)
{{
output.writeln(table.Alias)
}
output.writeln('**************************')。
foreach(ITableテーブルにMyMeta.Databases [_dbName] .Tables)
{{
%><%=table.Alias%>
<%
}
}
}
%>
2つのforeachは同じように動作できます。ここで書くのは、2つのバインディング関数を示すことです。結果にスペースが表示されるため、2つの一番上の行のバインド動作を尋ねることができます。これにより、独自の効果を試すことができます。
他のコードは非常に単純です、私たちは皆理解していると思います。
それを実行し、結果を確認します
sysdiagrams
T_Child
T_Employee
T_Employee1
T_Parent
T_Person
T_Person1
T_Role
T_User
T_User_Role
**************************
sysdiagrams
T_Child
T_Employee
T_Employee1
T_Parent
T_Person
T_Person1
T_Role
T_User
T_User_Role
ああ、成功。
これは単純な例です。 MyGenerationの非常に強力なエンティティは、ORMクラス、ストアドプロシージャ、SQLステートメントなどを生成できます。
テンプレートを作成したい場合は、ZeusとMyMetaのヘルプファイルをもっと見ることができます。他の人がテンプレートを作成しているのを見てください。すぐに強力なテンプレートを作成できるようになると思います。
この記事を転載するアドレスを指定してください: 強力なコード生成ツールMyGeneration