Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
C# ´úÂëÉú³ÉÆ÷ & ÍøÕ¾¼Ü¹¹Éè¼Æ
 
×÷ÕߣºWizardWu À´Ô´£º²©¿ÍÔ° ·¢²¼ÓÚ 2015-6-12
  3907  次浏览      28
 

Òò±ÖÈ˾õµÃ CodeSmith¡¢MyGeneration Èí¼þ²úÉúµÄÀàºÍ´úÂëÌ«¸´ÔÓ£¬²»¼ûµÃ·ûºÏ×Ô¼ºËùÐ裬ÉõÖÁÊÐÃæÉÏÓÐЩ´úÂëÉú³ÉÆ÷»¹ÒªÊÕ·Ñ£¬Ëì×Ô¼ºËæÊÖÓà ASP.NET дÁËÒ»¸ö´úÂëÉú³ÉÆ÷£¬²¢·ÖÏí³öÀ´¡£¹¦ÄÜÉмò£¬ÒÔºóÓÐʱ¼äÔÙ¼ÌÐøÀ©³ä¡£

±¾ÌûµÄʾÀýÏÂÔØµã£ºhttp://files.cnblogs.com/WizardWu/091216.zip

(Ö´Ðб¾Ê¾Àý£¬ÐèÒª SQL Server µÄ Northwind Êý¾Ý¿â£¬ÒÔ¼° VS 2008 »ò IIS)

Ë«»÷ CodeGenerator.sln£¬¿ªÆôÍøÕ¾ºó£¬ÈçÏÂͼ 1£¬ÏÂÀ­²Ëµ¥ÖУ¬»á×Ô¶¯ß¢È¡ÍøÕ¾ Web.config ÖУ¬Ò»ÖÁ¶à¸öÊý¾Ý¿âÁ¬½ÓµÄ×Ö·û´®¡£

ͼ 1¡¡³ÌÐòÖ´Ðл­Ã棬Óû§¿É×Ô¶¨ÒåÒªÉú³ÉµÄ C# ÀàÆä²¿·ÖÄÚÈÝ

ͼ 2¡¡³ÌÐò»á×Ô¶¯ß¢È¡ Web.config ÖеÄÒ»ÖÁ¶à¸öÊý¾Ý¿âÁ¬½Ó×Ö·û´®

ÈçÏÂͼ 3£¬µ¥»÷¡¸Áгö´ËÊý¾Ý¿âµÄËùÓÐ±í¡¹°´Å¥ºó£¬»áÔÚ GridView ¿Ø¼þÖУ¬ÁгöÕâ¸öÊý¾Ý¿âµÄËùÓС¸±í (Table)¡¹ºÍ¡¸ÊÓͼ (View)¡¹¡£Óû§¿ÉÖðÒ»¹´Ñ¡£¬»òȫѡҪ´´½¨µÄ±íÖ®ºó£¬ÔÙµ¥»÷¡¸¿ªÊ¼´´½¨¡¹°´Å¥¼´¿É¡£

ͼ 3¡¡´´½¨ºóµÄ C# À࣬»á×Ô¶¯²úÉúÔÚ´ËÍøÕ¾¡¡¡¡µ×Ï嵀 Entities Îļþ¼ÐÀï

ÏÂͼ 4 Ϊ´´½¨µÄ C# ÀàÆäÄÚÈÝ¡£C# µÄÀàÐÍ£¬»áºÍÊý¾Ý¿âÖеÄÀàÐÍ×Ô¶¯×ö¶ÔÓ¦£¬ÀýÈç string ¶ÔÓ¦ varchar¡¢Int16 ¶ÔÓ¦ smallint¡£µ±È»Äú¿ÉÊÓ×Ô¼ºµÄÐèÇó£¬Ð޸ĴúÂëÔÙÀ©³ä¡£

ͼ 4¡¡´´½¨µÄ C# ÀàÆäÄÚÈÝ£¬Óû§¿ÉÑ¡ÔñÊÇ·ñÒª¼ÓÈë NHibernate µÄ Attribute

±¾Ê¾ÀýÓÃÁËÒ»¸ö ADO.NET ÊéÉϽ̵ļ¼ÇÉ£¬´îÅä DataReader£¬ÔÚµ¥Ò»´ÎµÄÊý¾Ý¿â connection ÖУ¬Ò»´Î¾ÍÈ¡»Ø¶à¾ä SQL Óï¾ä£¬ËùҪߢȡµÄ¶à¸ö ResultSet (´ËΪ¶àÐжàÁеĶþάÀàÐÍÊý¾Ý), ÒÔÌáÉý³ÌÐòÐÔÄÜ£¬ÈçÏ·½´úÂëËùʾ£º

genDataSet()
1 using (SqlConnection conn = new SqlConnection(strConnString))
2 {
3 conn.Open();
4 using (SqlCommand cmd = new SqlCommand())
5 {
6 cmd.Connection = conn;
7 cmd.CommandText = strSql;
8 using (SqlDataReader dr = cmd.ExecuteReader())
9 {
10 //¶à´Îò¡È¡ ResultSet (¶àÐжàÁеĶþάÀàÐÍÊý¾Ý)
11 for (int ii = 0; ii < intDataTableCount; ii++ )
12 {
13 dtInsertInput = new DataTable();
14
15 dcInsertInput = new DataColumn();
16 dcInsertInput.DataType = Type.GetType("System.String");
17 dcInsertInput.ColumnName = "TableName";
18 dtInsertInput.Columns.Add(dcInsertInput);
19
20 dcInsertInput = new DataColumn();
21 dcInsertInput.DataType = Type.GetType("System.String");
22 dcInsertInput.ColumnName = "ColumnName";
23 dtInsertInput.Columns.Add(dcInsertInput);
24
25 dcInsertInput = new DataColumn();
26 dcInsertInput.DataType = Type.GetType("System.String");
27 dcInsertInput.ColumnName = "DataType";
28 dtInsertInput.Columns.Add(dcInsertInput);
29
30 while (dr.Read())
31 {
32 drInsertInput = dtInsertInput.NewRow();
33 drInsertInput["TableName"] = dr.GetString(1);
34 drInsertInput["ColumnName"] = dr.GetString(2);
35 drInsertInput["DataType"] = dr.GetString(6);
36 dtInsertInput.Rows.Add(drInsertInput);
37 //Response.Write(dr.GetString(1) + ", " + dr.GetString(2).ToString() + ", " + dr.GetString(6).ToString() + "<br>");
38 }
39
40 //½«ÕâÒ»´ÎߢȡµÄ ResultSet£¬´æÈëÒ»¸öÐ嵀 DataTable ºó£¬ ÔÙ°ÑÕâÒ»¸ö DataTable ´æÈë DataSet Àï
41 ds.Tables.Add(dtInsertInput);
42
43 //dtInsertInput.Clear();
44
45 dr.NextResult(); //µ½ DataReader µÄÏÂÒ»¸ö ResultSet ¼ÌÐø¶ÁÈ¡Êý¾Ý
46
47 Label1.Text += "ÒѾ­´´½¨ÁËµÚ " + ds.Tables.Count + " ¸öÀà<br>";
48 }
49 }
50
51 dcInsertInput.Dispose();
52 dtInsertInput.Dispose();
53 }
54 }

ÓÐÐ©ÍøÕ¾ÏµÍ³µÄÉè¼Æ£¬»á²ÉÓḷֲãʽ; ¶à²ãʽ (n-Tier)¡¹µÄ¼Ü¹¹£¬ÈçÏÂͼ 5 Ëùʾ¡£ÔÚ Layer Óë Layer Ö®¼äµÄÊý¾Ý´«µÝ£¬»òµç×Ó±íµ¥ÖÐÓû§ËùÊäÈëµÄ¶à¸ö×Ö¶ÎÖµµÄ´«µÝ£¬Òà¿É͸¹ý´ËÖÖ Mapping Ó³ÉäÀàµÄ instance£¬À´°ïæ´«µÝ´óÁ¿µÄÊý¾Ý£»»¹ÓÐЩ Java/J2EE µÄÊéÖлáÌáµ½£¬¿ÉÔÙ½«ÕâЩÊý¾ÝÔÝ´æÔÚÄÚ´æÖУ¬ÒÔ×öһЩ¡¸³Ö¾ÃÐÔ (persistence)¡¹µÄÑÓÉìÓ¦Óã¬ÕâЩÔÝ´æÔÚÄÚ´æÀïµÄ class µÄ¶à¸ö×Ö¶ÎÖµ£¬ÒÔºóËæÊ±¿É´ÓÄÚ´æÖÐÈ¡³öÔÙʹÓá£

Model ʵÀý²ã
namespace com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.Model
{
    public class Product       //´ËÒ»¡¸ÀࡹµÄÃû³Æ£¬»á¶ÔÓ¦ÖÁÊý¾Ý¿âµÄͬÃû¡¸Êý¾Ý±í¡¹Product
    {
        private int _id;           //´ËΪ .NET µÄ¡¸×Ö¶Î(field)¡¹£¬¶ÔÓ¦ÖÁ Product ±íµÄͬÃû¡¸×ֶΡ¹ID
        private string _name;
        private decimal _price;
 

        public int ID          //´ËΪ .NET µÄ¡¸ÊôÐÔ(property)¡¹£¬¶ÔÓ¦ÖÁ Product ±íµÄͬÃû¡¸×ֶΡ¹ID
        {
            set { _id = value; }
            get { return _id; }
        }
 
        public decimal Price
        {
            set { _price = value; }
            get { return _price; }
        }

        public string Name
        {
            set { _name = value; }
            get { return _name; }
        }
    }
}   

View չʾ²ã
public partial class _Default : System.Web.UI.Page
{
    //Óû§µ¥»÷ submit Ëͳö°´Å¥£¬Óû¡¸Ìí¼Ó¡¹Ò»±Ê¼Ç¼µ½Êý¾Ý¿âµÄ Product ±í
    protected void Button1_Click(object sender, EventArgs e)
   {
       com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.Model.Product model = new com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.Model.Product();   
//Ò»¸ö Model ʵÀý²ãµÄ¶ÔÏó


        com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.BLL.Product bll = new com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.BLL.Product();          
//Ò»¸ö BLL ²ãµÄ¶ÔÏó 


       model.ID = TextBox1.Text;      
//½«Óû§ÔÚ±íµ¥ÖУ¬ËùÊäÈëµÄ ID Êý¾Ý£¬´æ´¢(set) ÖÁ Model ʵÀý²ãµÄ¶ÔÏó
       model.Name = TextBox2.Text;  
 //½«Óû§ÔÚ±íµ¥ÖУ¬ËùÊäÈëµÄ Name Êý¾Ý£¬´æ´¢(set) ÖÁ Model ʵÀý²ãµÄ¶ÔÏó
       model.Price = TextBox3.Text;  
 //½«Óû§ÔÚ±íµ¥ÖУ¬ËùÊäÈëµÄ Price Êý¾Ý£¬´æ´¢(set) ÖÁ Model ʵÀý²ãµÄ¶ÔÏó


       bll.executeInsert(model);      //½«°ü×°ºÃµÄÓû§ÊäÈëÊý¾ÝµÄ¼¯ºÏ£¬´«µÝÖÁ BLL ÉÌÒµÂß¼­²ã
   }
}

BLL ÉÌÒµÂß¼­²ã
namespace com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.BLL
{
    public class Product
    {
        //Ò»¸ö DAL Êý¾Ý·ÃÎʲãµÄ¶ÔÏó
         private com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.DAL.Product dal = new com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.DAL.Product();
 
        public int executeInsert(com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.Model.Product model)
        {
            //ÕâÀï¿ÉÒÔ¼ÓÈëÆäËûµÄÉÌÒµÂß¼­        


             //½«°ü×°ºÃµÄÓû§ÊäÈëÊý¾ÝµÄ¼¯ºÏ£¬´«µÝÖÁ DAL Êý¾Ý·ÃÎʲã
             return dal.executeInsert(model);
        }
    }
}

DAL Êý¾Ý·ÃÎʲã
namespace com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.DAL
{
    public class Product
    {
        public int executeInsert(com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.Model.Product model)
        {
            StringBuilder strSql = new StringBuilder();
 
            //ÔÚÕâÀï×éºÏ³öÍêÕûµÄ SQL Óï¾ä
            strSql.Append("INSERT INTO Product(ID, Name, Price) VALUES (@ID, @Name, @Price)"); 
 
            //ADO.NET ÖÐµÄ SqlParameterCollection ÀàµÄÓ¦Óã¬±íµ¥ÖÐËùÓÐÊäÈëÊý¾ÝµÄ¼¯ºÏ 
            System.Data.SqlClient.SqlParameter[] params = {
                new SqlParameter("@ID", SqlDbType.Int), 
                new SqlParameter("@Name", SqlDbType.NVarchar, 30), 
                new SqlParameter("@Price", SqlDbType.Decimal) }; 
             
            //ÔÚÕ⽫Óû§ÔÚ±íµ¥ÖÐÊäÈëµÄ¶à¸öÊý¾Ý£¬ÖðÒ»ÌîÈë SQL Óï¾äÀïµÄ¡¸²ÎÊý(parameters)¡¹
            params[0].Value = model.ID;
            params[1].Value = model.Name;
            params[2].Value = model.Price; 

            //½«×éºÏºÃµÄÕû¾ä SQL Óï¾ä£¬
͸¹ý¹²Óõġ¸DBUtility Êý¾Ý¿â·ÃÎÊÀࡹDbHelper£¬Å×ÈëÊý¾Ý¿âÈ¥Ö´ÐС¸Ìí¼Ó¡¹µÄ¶¯×÷ 

            com.¹«Ë¾Ãû³Æ.ÏîÄ¿Ãû³Æ.DBUtility.DbHelper dbh;

            int intResult = dbh.executeInsert(strSql.ToString(), params);

                        

            return intResult;
        }
    }
}

µ±È»£¬ÈôÄúÖ»Êǵ¥´¿Òª´«µÝÓû§ÔÚ±íµ¥ÖÐÊäÈëµÄ¶à¸öÖµ£¬²¢·ÇÒ»¶¨ÒªÍ¸¹ý´ËÖÖ Mapping µÄ C# Àà instance£¬Î¢Èí ADO.NET ÌṩµÄ SqlParameterCollection ÀàÒ²ºÜºÃÓã¬ÇÒ¿ÉÊÂÏÈÉèÖúöÔÓ¦µÄÊý¾Ý±íÀ×ֶεÄÀàÐͺͳ¤¶È£¬ÈçÉÏ·½ DAL Êý¾Ý·ÃÎʲãÀïµÄ´úÂë¡£

ÈôÕæÕýҪ̸µ½ O/R Mapping µÄÒéÌ⣬ÆäÌØÐÔ¼°ÓŵãÉõ¶à£¬ÀýÈç¿É±ÜÃâÔÚ´úÂëÖУ¬Ö±½ÓдËÀÌØ¶¨µÄÊý¾Ý±í×Ö¶ÎÃû³Æ£¬»ò±ÜÃâÔÚǰ¶Ë´úÂëÖгöÏÖ SQL Óï¾ä£¬ÒÔÀûÓÚÖдóÐÍϵͳÈÕºóµÄά»¤¡£ÆäÄÚÈÝ·ÇÈýÑÔÁ½Óï¿ÉµÀ¾¡£¬±¾ÎIJ»ÔÙÉîÈë̽ÌÖ¡£

   
3907 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þ
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS

ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù

Èñ°²¿Æ¼¼ Èí¼þ¼Ü¹¹Éè¼Æ·½·¨
³É¶¼ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£Æû³µ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
±±¾© Èí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£ Èí¼þ¼Ü¹¹Éè¼Æ°¸ÀýÓëʵ¼ù
±±¾© ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ÉîÛÚ ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù