代码生成器对于应用系统开发还是很有必要的。这是在我做毕设期间利用业余时间做的一个代码生成器。这个生成其能生成实体层代码和业务逻辑层代码。因为毕设用的语言是Delphi,所以只做了Delphi代码的自动生成。不过它提供了生成其他语言代码的雏形。以下是程序截图(注: 程序是用VS2003开发的)
数据库架构:
代码生成器:
代码批量生成:
以下是一些代码片段
private void btnGenModel_Click(object sender, System.EventArgs e)
{
if(txtModelName.Text.Trim() == "" || txtModelFileName.Text.Trim() == "")
{
MessageBox.Show("Model名和文件名都不能为空");
return;
}
GeneratorBase gen = new ModelGenerator();
gen.FileName = txtModelFileName.Text.Trim();
gen.TypeName = txtModelName.Text.Trim();
gen.Schema = (DataTable)TableGrid.DataSource;
gen.DoGenerate();
// 通过 gen.OutValue; 可以得到输出内容
if(chkOutputToFile.Checked)
{
string fullPath = txtFolder.Text + "\\" + txtModelFileName.Text + Globals.OutputFileExtension;
StreamWriter writer = new StreamWriter(fullPath);
writer.WriteLine(gen.OutValue);
writer.Flush();
writer.Close();
}
rtxOutput.Text = gen.OutValue;
// MessageBox.Show("完成");
}
{
if(txtModelName.Text.Trim() == "" || txtModelFileName.Text.Trim() == "")
{
MessageBox.Show("Model名和文件名都不能为空");
return;
}
GeneratorBase gen = new ModelGenerator();
gen.FileName = txtModelFileName.Text.Trim();
gen.TypeName = txtModelName.Text.Trim();
gen.Schema = (DataTable)TableGrid.DataSource;
gen.DoGenerate();
// 通过 gen.OutValue; 可以得到输出内容
if(chkOutputToFile.Checked)
{
string fullPath = txtFolder.Text + "\\" + txtModelFileName.Text + Globals.OutputFileExtension;
StreamWriter writer = new StreamWriter(fullPath);
writer.WriteLine(gen.OutValue);
writer.Flush();
writer.Close();
}
rtxOutput.Text = gen.OutValue;
// MessageBox.Show("完成");
}