用ASP.NET写你自己的代码生成器

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
FRMMAIN. ASPX

<%@ Page language="c#" Codebehind="FrmMain.ASPx.cs" AutoEventWireup="false" Inherits="Web_Test.FrmMain" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>FrmMain</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="javascript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="FrmMain" method="post" runat="server">
<ASP:TextBox id="txtServerName" style="Z-INDEX: 101; LEFT: 116px; POSITION: absolute; TOP: 24px; Design_Time_Lock: True" runat="server" Font-Size="10pt" Design_Time_Lock="True">192.168.0.220</ASP:TextBox>
<ASP:Label id="Label7" style="Z-INDEX: 112; LEFT: 24px; POSITION: absolute; TOP: 98px; Design_Time_Lock: True" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">数据库列表</ASP:Label>
<ASP:Label id="Label6" style="Z-INDEX: 111; LEFT: 27px; POSITION: absolute; TOP: 169px; Design_Time_Lock: True" runat="server" Width="53px" Height="20px" Font-Size="10pt" Design_Time_Lock="True" Visible="False">字段名</ASP:Label>
<ASP:Label id="Label5" style="Z-INDEX: 109; LEFT: 27px; POSITION: absolute; TOP: 135px; Design_Time_Lock: True" runat="server" Width="53px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">表名</ASP:Label>
<ASP:Button id="Button1" style="Z-INDEX: 107; LEFT: 496px; POSITION: absolute; TOP: 91px; Design_Time_Lock: True" runat="server" Width="102px" Text="GetTable" Font-Size="10pt" Design_Time_Lock="True"></ASP:Button>
<ASP:Label id="Label4" style="Z-INDEX: 106; LEFT: 288px; POSITION: absolute; TOP: 63px; Design_Time_Lock: True" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">密码</ASP:Label>
<ASP:Label id="Label2" style="Z-INDEX: 105; LEFT: 25px; POSITION: absolute; TOP: 61px; Design_Time_Lock: True" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">用户名</ASP:Label>
<ASP:Label id="Label1" style="Z-INDEX: 104; LEFT: 25px; POSITION: absolute; TOP: 28px; Design_Time_Lock: True" runat="server" Width="79px" Height="20px" Font-Size="10pt" Design_Time_Lock="True">服务器名</ASP:Label>
<ASP:TextBox id="txtPassword" style="Z-INDEX: 103; LEFT: 376px; POSITION: absolute; TOP: 60px; Design_Time_Lock: True" runat="server" Font-Size="10pt" BackColor="Transparent" ForeColor="Black" BorderColor="White" Design_Time_Lock="True"></ASP:TextBox>
<ASP:TextBox id="txtUserName" style="Z-INDEX: 102; LEFT: 116px; POSITION: absolute; TOP: 62px; Design_Time_Lock: True" runat="server" Font-Size="10pt" Design_Time_Lock="True">sa</ASP:TextBox>
<ASP:DropDownList id="DropDownList1" style="Z-INDEX: 108; LEFT: 115px; POSITION: absolute; TOP: 135px; Design_Time_Lock: True" runat="server" Width="208px" AutoPostBack="True" Font-Size="10pt" Design_Time_Lock="True"></ASP:DropDownList>
<ASP:DropDownList id="DropDownList2" style="Z-INDEX: 110; LEFT: 115px; POSITION: absolute; TOP: 171px; Design_Time_Lock: True" runat="server" Width="208px" Height="28px" Font-Size="10pt" Design_Time_Lock="True" Visible="False"></ASP:DropDownList>
<ASP:Button id="Button2" style="Z-INDEX: 113; LEFT: 355px; POSITION: absolute; TOP: 92px; Design_Time_Lock: True" runat="server" Width="107px" Text="GetDataBase" Design_Time_Lock="True"></ASP:Button>
<ASP:DropDownList id="DropDownList3" style="Z-INDEX: 114; LEFT: 115px; POSITION: absolute; TOP: 98px; Design_Time_Lock: True" runat="server" Width="207px" Height="25px" Design_Time_Lock="True"></ASP:DropDownList>
<ASP:Button id="Button3" style="Z-INDEX: 115; LEFT: 354px; POSITION: absolute; TOP: 132px; Design_Time_Lock: True" runat="server" Width="110px" Text="生 成" Design_Time_Lock="True" Visible="False"></ASP:Button>
<ASP:TextBox id="txtLayOut" style="Z-INDEX: 117; LEFT: 26px; POSITION: absolute; TOP: 206px; Design_Time_Lock: True" runat="server" Width="619px" Height="367px" TextMode="MultiLine" BackColor="Ivory" Design_Time_Lock="True"></ASP:TextBox>
<ASP:Button id="Button4" style="Z-INDEX: 118; LEFT: 497px; POSITION: absolute; TOP: 130px; Design_Time_Lock: True" runat="server" Height="25px" Width="105px" Text="实体类" Design_Time_Lock="True"></ASP:Button>
<ASP:Button id="Button5" style="Z-INDEX: 119; LEFT: 355px; POSITION: absolute; TOP: 171px; Design_Time_Lock: True" runat="server" Width="107px" Text="Test" Height="25px" Design_Time_Lock="True" Visible="False"></ASP:Button>
<ASP:Button id="Button6" style="Z-INDEX: 120; LEFT: 499px; POSITION: absolute; TOP: 171px; Design_Time_Lock: True" runat="server" Height="23px" Width="105px" Text="集合类" Design_Time_Lock="True" Visible="False"></ASP:Button>
</form>
</body>
</HTML>
FRMMAIN.ASPX.CS

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace Web_Test
{
/// <summary>
/// 作者:davi
/// 日期:3003-03-18
/// </summary>
public class FrmMain : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected System.Web.UI.WebControls.Label Label5;
protected System.Web.UI.WebControls.TextBox txtServerName;
protected System.Web.UI.WebControls.TextBox txtUserName;
protected System.Web.UI.WebControls.TextBox txtPassword;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.DropDownList DropDownList2;
protected System.Web.UI.WebControls.Label Label6;
protected System.Web.UI.WebControls.Label Label7;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.DropDownList DropDownList3;
protected System.Web.UI.WebControls.Button Button3;
protected System.Web.UI.WebControls.TextBox txtLayOut;
protected System.Web.UI.WebControls.Button Button4;
protected System.Web.UI.WebControls.Button Button5;
protected System.Web.UI.WebControls.Button Button6;
private SqlConnection m_Scon;
private DataSet m_DS;

private void Page_Load(object sender, System.EventArgs e)
{
m_Scon = new SqlConnection();
m_DS = new DataSet();
}


#region Web Form Designer generated code
//[STAThreadAttribute]
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click = new System.EventHandler(this.Button1_Click);
this.DropDownList1.SelectedIndexChanged = new System.EventHandler(this.DropDownList1_SelectedIndexChanged);
this.Button2.Click = new System.EventHandler(this.Button2_Click);
this.Button3.Click = new System.EventHandler(this.Button3_Click);
this.Button4.Click = new System.EventHandler(this.Button4_Click);
this.Button5.Click = new System.EventHandler(this.Button5_Click);
this.Button6.Click = new System.EventHandler(this.Button6_Click);
this.Load = new System.EventHandler(this.Page_Load);

}
#endregion

#region 显示数据库的表 Button1_Click
/// <summary>
/// 显示数据库的表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button1_Click(object sender, System.EventArgs e)
{
try
{
m_Scon.ConnectionString = "user id=" this.txtUserName.Text
";password=" this.txtPassword.Text
";initial catalog=" this.DropDownList3.SelectedItem.Text
";data source=" this.txtServerName.Text;
SqlCommand m_Scmd = new SqlCommand("sp_tables",m_Scon);
m_Scmd.CommandType = CommandType.StoredProcedure;
SqlParameter myParm = m_Scmd.Parameters.Add("@table_type",SqlDbType.VarChar,100);
myParm.Value = "'TABLE'";
m_Scon.Open();
SqlDataReader m_Sdr = m_Scmd.ExecuteReader();
this.DropDownList1.Items.Clear();
while(m_Sdr.Read())
{
if(m_Sdr["TABLE_NAME"].ToString()!="dtproperties")
{
ListItem m_LI = new ListItem();
m_LI.Text = m_Sdr["TABLE_NAME"].ToString();
m_LI.Value = m_Sdr["TABLE_NAME"].ToString();
this.DropDownList1.Items.Add(m_LI);
}
}
m_Sdr.Close();
m_Scon.Close();
}
catch
{
if(m_Scon.State.ToString().ToUpper()=="OPEN")
{
m_Scon.Close();
}
}
}

#endregion

#region Show Columns in a table DropDownList1_SelectedIndexChanged
/// <summary>
/// 显示表的所有列
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
try
{
if(this.DropDownList1.SelectedIndex!=-1)
{
m_Scon.ConnectionString = "user id=" this.txtUserName.Text
";password=" this.txtPassword.Text
";initial catalog=" this.DropDownList3.SelectedItem.Text
";data source=" this.txtServerName.Text;
SqlCommand m_Scmd = new SqlCommand("sp_columns",m_Scon);
m_Scmd.CommandType = CommandType.StoredProcedure;
SqlParameter myParm = m_Scmd.Parameters.Add("@table_name",SqlDbType.VarChar,100);
myParm.Value = this.DropDownList1.SelectedItem.Value;
m_Scon.Open();
SqlDataReader m_Sdr = m_Scmd.ExecuteReader();
this.DropDownList2.Items.Clear();
while(m_Sdr.Read())
{
ListItem m_LI = new ListItem();
m_LI.Text = m_Sdr["COLUMN_NAME"].ToString();
m_LI.Value = m_Sdr["COLUMN_NAME"].ToString();
this.DropDownList2.Items.Add(m_LI);
}
m_Sdr.Close();
m_Scon.Close();
}
}
catch
{
if(m_Scon.State.ToString().ToUpper()=="OPEN")
{
m_Scon.Close();
}
}
}

#endregion

#region Show All DataBase Button2_Click
/// <summary>
/// 显示所有数据库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button2_Click(object sender, System.EventArgs e)
{
try
{
m_Scon.ConnectionString = "user id=" this.txtUserName.Text
";password=" this.txtPassword.Text
";data source=" this.txtServerName.Text;
SqlCommand m_Scmd = new SqlCommand("sp_databases",m_Scon);
m_Scmd.CommandType = CommandType.StoredProcedure;
m_Scon.Open();
SqlDataReader m_Sdr = m_Scmd.ExecuteReader();
this.DropDownList1.Items.Clear();
while(m_Sdr.Read())
{
ListItem m_LI = new ListItem();
m_LI.Text = m_Sdr["DATABASE_NAME"].ToString();
m_LI.Value = m_Sdr["DATABASE_NAME"].ToString();
this.DropDownList3.Items.Add(m_LI);
}
m_Sdr.Close();
m_Scon.Close();
}
catch
{
if(m_Scon.State.ToString().ToUpper()=="OPEN")
{
m_Scon.Close();
}
}
}

#endregion
#region Make Form
/// <summary>
/// 生成表单项
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button3_Click(object sender, System.EventArgs e)
{
if(this.DropDownList1.SelectedIndex!=-1)
{
m_Scon.ConnectionString = "user id=" this.txtUserName.Text
";password=" this.txtPassword.Text
";initial catalog=" this.DropDownList3.SelectedItem.Text
";data source=" this.txtServerName.Text;
SqlCommand m_Scmd = new SqlCommand("sp_columns",m_Scon);
m_Scmd.CommandType = CommandType.StoredProcedure;
SqlParameter myParm = m_Scmd.Parameters.Add("@table_name",SqlDbType.VarChar,100);
myParm.Value = this.DropDownList1.SelectedItem.Value;
m_Scon.Open();
SqlDataReader m_Sdr = m_Scmd.ExecuteReader();
string ColName = "";
string ColType = "";
while(m_Sdr.Read())
{
ColName = m_Sdr["COLUMN_NAME"].ToString();
ColType = m_Sdr["TYPE_NAME"].ToString();
}
m_Sdr.Close();
m_Scon.Close();
}
}
#endregion

#region Make object
/// <summary>
/// 生成实体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button4_Click(object sender, System.EventArgs e)
{
if(this.DropDownList1.SelectedIndex!=-1)
{
m_Scon.ConnectionString = "user id=" this.txtUserName.Text
";password=" this.txtPassword.Text
";initial catalog=" this.DropDownList3.SelectedItem.Text
";data source=" this.txtServerName.Text;
SqlCommand m_Scmd = new SqlCommand("sp_columns",m_Scon);
m_Scmd.CommandType = CommandType.StoredProcedure;
SqlParameter myParm = m_Scmd.Parameters.Add("@table_name",SqlDbType.VarChar,100);
myParm.Value = this.DropDownList1.SelectedItem.Value;
m_Scon.Open();
SqlDataReader m_Sdr = m_Scmd.ExecuteReader();
string TableName = this.DropDownList1.SelectedItem.Value;
string m_LayOut = "";

m_LayOut = m_LayOut "using System;/r/n";
m_LayOut = m_LayOut "using System.Data;/r/n" ;
m_LayOut = m_LayOut "using System.Data.SqlClient;/r/n";
m_LayOut = m_LayOut "/r/n";
m_LayOut = m_LayOut "namespace OceanSoft/r/n";
m_LayOut = m_LayOut "{/r/n";

m_LayOut = m_LayOut BL(4) "///<comment>/r/n";
m_LayOut = m_LayOut BL(4) "r/n";
m_LayOut = m_LayOut BL(4) "///</comment>/r/n";

string ColName = ""; //列名
string ColType = ""; //列的数据类型
string ColDefine = ""; //列定义
string ColProperty = ""; //列属性
while(m_Sdr.Read())
{
ColName = m_Sdr["COLUMN_NAME"].ToString();
ColType = GT(m_Sdr["TYPE_NAME"].ToString());

ColDefine = ColDefine BL(8) "private " ColType " m_" ColName ";/r/n";

ColProperty = ColProperty BL(8) "/r/n";
ColProperty = ColProperty BL(8) "public " ColType " " ColName "/r/n";
ColProperty = ColProperty BL(8) "{/r/n";
ColProperty = ColProperty BL(12) "get/r/n";
ColProperty = ColProperty BL(12) "{/r/n";
ColProperty = ColProperty BL(16) "return m_" ColName " ;/r/n";
ColProperty = ColProperty BL(12) "}/r/n";
ColProperty = ColProperty BL(12) "set/r/n";
ColProperty = ColProperty BL(12) "{/r/n";
ColProperty = ColProperty BL(16) "m_" ColName " = value ;/r/n";
ColProperty = ColProperty BL(12) "}/r/n";
ColProperty = ColProperty BL(8) "}/r/n";

}
m_Sdr.Close();
m_Scon.Close();

m_LayOut = m_LayOut BL(4) "public class " TableName "/r/n";
m_LayOut = m_LayOut BL(4) "{/r/n";

m_LayOut = m_LayOut BL(4) "/r/n";
m_LayOut = m_LayOut ColDefine; //定义

m_LayOut = m_LayOut BL(8) "///<summary>/r/n";
m_LayOut = m_LayOut BL(8) "///构造函数/r/n";
m_LayOut = m_LayOut BL(8) "///<summary>/r/n";
m_LayOut = m_LayOut BL(8) "public " TableName "()/r/n"; //构造函数
m_LayOut = m_LayOut BL(8) "{/r/n";
m_LayOut = m_LayOut BL(8) "}/r/n/r/n";

m_LayOut = m_LayOut BL(8) "///<summary>/r/n";
m_LayOut = m_LayOut BL(8) "///析构函数/r/n";
m_LayOut = m_LayOut BL(8) "///<summary>/r/n";
m_LayOut = m_LayOut BL(8) "~" TableName "()/r/n"; //析构函数
m_LayOut = m_LayOut BL(8) "{/r/n";
m_LayOut = m_LayOut BL(8) "}/r/n";

m_LayOut = m_LayOut ColProperty; //实体属性

m_LayOut = m_LayOut BL(4) "}/r/n";

m_LayOut = m_LayOut "}/r/n";

this.txtLayOut.Text = m_LayOut;
}
}
#endregion

#region Test
private void Button5_Click(object sender, System.EventArgs e)
{
//
}
#endregion

#region Functions
private string BL(int values)
{
switch(values)
{
case 4:
return "/t";
case 8:
return "/t/t";
case 12:
return "/t/t/t";
case 16:
return "/t/t/t/t";
case 20:
return "/t/t/t/t/t";
}
return "";
}

private string GT(string Values)
{
switch(Values.ToUpper())
{
case "INT":
return "int";
case "NVARCHAR":
return "string";
case "TINYINT":
return "int";
case "INT IDENTITY":
return "int";
case "BIT":
return "int";
case "UNIQUEIDENTIFIER":
return "string";
case "DATETIME":
return "string";
case "VARCHAR":
return "string";
default:
return "string";
}
}
#endregion

#region Make Object Collection Class
private void Button6_Click(object sender, System.EventArgs e)
{
if(this.DropDownList1.SelectedIndex!=-1)
{
string TableName = this.DropDownList1.SelectedItem.Value;
string m_LayOut = "";

m_LayOut = m_LayOut "using System;/r/n";
m_LayOut = m_LayOut "using System.Data;/r/n" ;
m_LayOut = m_LayOut "using System.Data.SqlClient;/r/n";
m_LayOut = m_LayOut "using System.Collections;/r/n";
m_LayOut = m_LayOut "/r/n";

m_LayOut = m_LayOut "namespace e3.Pantheon.WorkFlow.Structure/r/n";
m_LayOut = m_LayOut "{/r/n";

m_LayOut = m_LayOut BL(4) "///<comment>/r/n";
m_LayOut = m_LayOut BL(4) "///公司名称:苏州中软公司/r/n";
m_LayOut = m_LayOut BL(4) "///作者:/r/n";
m_LayOut = m_LayOut BL(4) "///创建日期:" System.DateTime.Now.ToShortDateString() "/r/n";
m_LayOut = m_LayOut BL(4) "///用途说明:/r/n";
m_LayOut = m_LayOut BL(4) "///修改记录:/r/n";
m_LayOut = m_LayOut BL(4) "///</comment>/r/n";

m_LayOut = m_LayOut BL(4) "public class " TableName "s : System.Collections.CollectionBase/r/n";
m_LayOut = m_LayOut BL(4) "{/r/n";

m_LayOut = m_LayOut BL(8) "///<summary>/r/n";
m_LayOut = m_LayOut BL(8) "///构造函数/r/n";
m_LayOut = m_LayOut BL(8) "///<summary>/r/n";
m_LayOut = m_LayOut BL(8) "public " TableName "s()/r/n"; //构造函数
m_LayOut = m_LayOut BL(8) "{/r/n";
m_LayOut = m_LayOut BL(12) "//TODO:在这里增加构造函数逻辑/r/n";
m_LayOut = m_LayOut BL(8) "}/r/n/r/n";

m_LayOut = m_LayOut BL(8) "///<summary>/r/n";
m_LayOut = m_LayOut BL(8) "///析构函数/r/n";
m_LayOut = m_LayOut BL(8) "///<summary>/r/n";
m_LayOut = m_LayOut BL(8) "~" TableName "s()/r/n"; //析构函数
m_LayOut = m_LayOut BL(8) "{/r/n";
m_LayOut = m_LayOut BL(12) "//TODO:在这里增加析构函数逻辑/r/n";
m_LayOut = m_LayOut BL(8) "}/r/n/r/n";

m_LayOut = m_LayOut BL(8) "public void Remove(int index)/r/n"; //删除
m_LayOut = m_LayOut BL(8) "{/r/n";
m_LayOut = m_LayOut BL(12) "if(index>Counter-1||Counter<0)/r/n";
m_LayOut = m_LayOut BL(12) "{}/r/n";
m_LayOut = m_LayOut BL(12) "else/r/n";
m_LayOut = m_LayOut BL(12) "{/r/n";
m_LayOut = m_LayOut BL(16) "List.RemoveAt(index);/r/n";
m_LayOut = m_LayOut BL(12) "}/r/n";
m_LayOut = m_LayOut BL(8) "}/r/n/r/n";

m_LayOut = m_LayOut BL(8) "public void Add(" TableName " m_" TableName ")/r/n"; //增加
m_LayOut = m_LayOut BL(8) "{/r/n";
m_LayOut = m_LayOut BL(12) "List.Add(" " m_" TableName ");/r/n";
m_LayOut = m_LayOut BL(8) "}/r/n/r/n";

m_LayOut = m_LayOut BL(8) "public " TableName " this[int index]/r/n"; //集合的元素
m_LayOut = m_LayOut BL(8) "{/r/n";

m_LayOut = m_LayOut BL(12) "get/r/n";
m_LayOut = m_LayOut BL(12) "{/r/n";
m_LayOut = m_LayOut BL(16) "if(index <List.Count)/r/n";
m_LayOut = m_LayOut BL(16) "{/r/n";
m_LayOut = m_LayOut BL(20) "return (" TableName ")List[Index];/r/n";
m_LayOut = m_LayOut BL(16) "}/r/n";
m_LayOut = m_LayOut BL(16) "else/r/n";
m_LayOut = m_LayOut BL(16) "{/r/n";
m_LayOut = m_LayOut BL(16) "return null;/r/n";
m_LayOut = m_LayOut BL(16) "}/r/n";
m_LayOut = m_LayOut BL(12) "}/r/n";

m_LayOut = m_LayOut BL(12) "set/r/n";
m_LayOut = m_LayOut BL(12) "{/r/n";
m_LayOut = m_LayOut BL(16) "if(iIndex<List.Count)/r/n";
m_LayOut = m_LayOut BL(16) "{/r/n";
m_LayOut = m_LayOut BL(20) "List[index]=value;/r/n";
m_LayOut = m_LayOut BL(16) "}/r/n";
m_LayOut = m_LayOut BL(12) "}/r/n";

m_LayOut = m_LayOut BL(8) "}/r/n";

m_LayOut = m_LayOut BL(4) "}/r/n"; //class

m_LayOut = m_LayOut "}/r/n"; //namespace

this.txtLayOut.Text = m_LayOut;
}
}
#endregion

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您是不是因为ASP.NET的开发和维护繁琐而烦恼,微软的开发工具更新速度、开发技巧是成多元化的趋势,ASP.NET以其灵活多变的开发模式,深受广大开发人员的喜爱,灵活多变的开发模式有其利的一面,也有其不好的地方,特别是程序代码的随意性较强,即开发人员可以把代码放到任何一个地方,且变量的使用也是无度的、无规律的,这对目前讲究团队开发的流程管理来讲,简直就是一种灾难,本软件将彻底解决您的后顾之忧,通过本软件的自动生成功能,生成的ASP.NET代码规范、全部开源,不存在用隐含的内容,全部代码逻辑开源的展示给客户,符合团队开发的管理要求。本工作室的开发团队汲取多位资深开发人员多年的项目开发经验开发出本软件, 使用本软件从最基本的VO对象到ASPX页面的新增、删除、修改、查询等功能一起生产,代码功能一一俱全。您只需要稍微做下界面的排版即可使用到实际的项目中了。 1、使用本软件做开发的优势: 如果您是ASP.NET开发人员,一定会为每天开发中大量的重复拷贝、粘贴代码(如分页等功能)而感到烦恼,又或为ASP.NET对模式开发的繁琐关联配置而显得无可奈何时。使用本软件可以自动生成代码、建立页面关联。开发人员只要前期对业务了解清楚,数据库表设计明确,用本软件即可完成程序的编。 如果您是经常使用NHibernate或其他DLL插件的ASP.NET开发人员,一定会为NHibernate或其他DLL插件的配置部署问题而搞懵,这些类型的插件有个最大的问题是其核心操作均是由该插件的内部完成,对开发人员来说是个黑匣子(一般用户不会去读其开源代码),而且多个项目用同类型的插件部署到一部服务器上的时候,很容易造成版本冲突,且出现莫名其妙的问题。这些插件产生的冗余代码,也让开发人员不舒服。使用本软件生成的代码,全部开源,结构清晰,在您的开发工程中绝对不需要引用任何插件或链接库。 如果您是公司或项目负责人,一定会遇到这样的情况,公司拥有众多的ASP.NET开发高手,而开发习惯也各式各样,因而对项目接手的维护人员的技术要求也相应需要提高,这样项目的投入成本自然增加,而企业的利润也相应减少。没有统一开发的模式,对项目的后期维护是一个相当痛苦的过程,何况IT界人才流动频繁,项目的交接也是常有的问题。使用本软件的自动生成的代码,符合.NET的开发模式结合工厂模式,展示、业务、逻辑、存储的分层实现,代码的编已分门归类,重要体现了“桥归桥,路归路”的理念,这样对任何需要尽快熟悉项目的人员,一定可以在短时间内理解项目的架构思想,很快上手。 2、本软件自动生成的内容: ★ VO、POJO对象 ★ DAO接口 ★ IMPL接口实现类 ★ DAO工厂 ★ VO、POJO工厂 ★ DBC数据库连接管理类,数据库事务管理机制 ★ ASPX调用页面(增、删、改、查)(含.CS文件),分页功能自动实现 ★ Web.Config配置文件(VS2005工程需要的文件) 3、特色: ☆ 一键生成,简洁使用。 ☆ 生成的代码全部开源,没有任何通过插件或链接库来做的操作。 ☆ 支持多表的多主键处理。 ☆ 支持数据事务的操作。 ☆ 生成内容可以依据客户的需要来选择性的生成。 ☆ 支持自定义查询接口的生成,用户可以定义查询条件。 ☆ 目前支持Oracle、Sqlserver 数据库对象的自动生成代码。 4、联系方式: Email通讯邮箱 : [email protected] QQ留言:915842778

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值