抖音粉丝群1
『7x24小时有问必答』

AI浪潮下的计算机行业——从业者现状与未来展望
因公众号更改推送规则,请点“在看”并加“星标”
第一时间获取精彩分享
哈喽,你好啊,我是雷工!
01  项目需求分析
根据与需求方沟通,分析需求,一般都有需求分析师来进行项目需求收集与分析。
根据需求文档进行项目功能设计。
02 框架的选择
①小项目可以根据需求选择两层或三层结构。
②中型大型项目,至少需要三层架构和其他架构的组合。
03  框架的搭建
①首先要把UI界面设计好;
②添加需要的模块,像Models、DAL、BLL……
如下图,添加实体类LeiGongModels,数据访问模块LeiGongDAL,业务逻辑模块LeiGongBLL
1.png
③添加模块之间的引用关系。
04  实体类
在实体类中添加以下几个类
2.png
参考前边的练习,在各个类中添加代码:
①账号实体类
数据库表结构为:
3.png
添加与之对应的代码:
namespace  LeiGongModels{        public  class  Author        {                ///  <summary>                ///  作者实体类                ///  </summary>                public  int  AuthorId  {  get;  set;  }                public  string  TypeName  {  get;  set;  }                public  string  LoginAccount  {  get;  set;  }                public  string  LoginPwd  {  get;  set;  }                public  string  AuthorName  {  get;  set;  }                public  string  Phonenumber  {  get;  set;  }                public  string  NowAddress  {  get;  set;  }        }}
②账号类型实体类
账号类型数据库表结构为:
4.png
添加预支对应的代码:
namespace  LeiGongModels{        public  class  AccountType        {                ///  <summary>                ///  账号类型实体类                ///  </summary>                public  int  TypeId  {  get;  set;  }                public  string  TypeName  {  get;  set;  }        }}
③作者实体类
作者数据库表结构为:
5.png
添加与之对应的代码为:
namespace  LeiGongModels{        public  class  Author        {                ///  <summary>                ///  作者实体类                ///  </summary>                public  int  AuthorId  {  get;  set;  }                public  string  TypeName  {  get;  set;  }                public  string  LoginAccount  {  get;  set;  }                public  string  LoginPwd  {  get;  set;  }                public  string  AuthorName  {  get;  set;  }                public  string  Phonenumber  {  get;  set;  }                public  string  NowAddress  {  get;  set;  }        }}
05  数据访问模块
按照如下图,添加与实体类对应的三个数据访问类和一个通用数据访问类。
6.png
此4个数据访问类均需要引入如下图所示的两个命名空间。
并且除通用数据访问类SQLHelper外,其余3个需要将class前边的internal字段改为public
7.png
06  业务逻辑模块
按照如下图添加与实体类对应的单个业务逻辑类
8.png
07  添加引用
数据访问模块LeiGongDAL需要引用-【程序集】-【System.Configuration】
9.png
另外项目之间的引用关系可以参考:
添加引用完成后需要重新生成解决方案
10.png
08  SQLHelper通用类
通用类代码:
//数据访问类需要引入如下两个命名空间using  System.Data;using  System.Data.SqlClient;using  System.Configuration;namespace  LeiGongDAL{        ///  <summary>        ///  通用数据访问类        ///  </summary>        internal  class  SQLHelper        {                private  static  string  connString  =  ConfigurationManager.ConnectionStrings["connString"].ToString();                ///  <summary>                ///  执行insert、update、delete类型的SQL语句                ///  </summary>                ///  <param name="sql">                ///  <returns>受影响的行数</returns>                ///  <exception cref="Exception"></exception>                public  static  int  Update(string  sql)                {                        SqlConnection  conn  =  new  SqlConnection(connString);                        SqlCommand  cmd  =  new  SqlCommand(sql,conn);                        try                        {                                conn.Open();                                return  cmd.ExecuteNonQuery();                        }                        catch  (Exception  ex)                        {                                //可以在这个地方捕获ex对象的相关信息,然后保存到日志文件中                                throw  new  Exception("执行public static int Update(string sql)发生异常:"  +  ex.Message);                        }                        finally                        {                                conn.Close();                        }                }                ///  <summary>                ///  执行单一结果的查询                ///  </summary>                ///  <param name="sql">                ///  <returns></returns>                ///  <exception cref="Exception"></exception>                public  static  object  GetSingleResult(string  sql)                {                        SqlConnection  conn  =  new  SqlConnection(connString);                        SqlCommand  cmd  =  new  SqlCommand(sql,  conn);                        try                        {                                conn.Open();                                return  cmd.ExecuteScalar();                        }                        catch  (Exception  ex)                        {                                //可以在这个地方捕获ex对象的相关信息,然后保存到日志文件中                                throw  new  Exception("执行 public static object GetSingleResult(string sql)发生异常:"  +  ex.Message);                        }                        finally                        {                                conn.Close();                        }                }                ///  <summary>                ///  执行一个结果集的查询                ///  </summary>                ///  <param name="sql">                ///  <returns></returns>                ///  <exception cref="Exception"></exception>                public  static  SqlDataReader  GetReader(string  sql)                {                        SqlConnection  conn  =  new  SqlConnection(connString);                        SqlCommand  cmd  =  new  SqlCommand(sql,  conn);                        try                        {                                conn.Open();                                return  cmd.ExecuteReader(CommandBehavior.CloseConnection);                        }                        catch  (Exception  ex)                        {                                //可以在这个地方捕获ex对象的相关信息,然后保存到日志文件中                                throw  new  Exception("执行public static SqlDataReader GetReader(string sql)发生异常:"  +  ex.Message);                        }                }        }}
09  整体效果
至此通用的三级架构基本搭建完成,剩下的可以根据具体需求,在此基础上做相应的开发。
11.png
10  后记
现如今实际项目中已经不用这种架构了,但是对于学习者来说,还是很有必要的。
大家可以以此为基础,学习更多的框架。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码