当前位置: 首页 > news >正文

城北区工程建设信息网站网站集约化建设意见

城北区工程建设信息网站,网站集约化建设意见,在阿里云安装wordpress,湛江师范学院网站开发技术这篇文章本来应该很早就写出来的#xff0c;但是一直苦于自己的精神能力有限#xff0c;而且已经到了我们学校的考试周#xff0c;所以时间上还是有点紧迫。关键的一点就是#xff0c;找不到合理的思路来写#xff0c;思路没有的话#xff0c;就算是再好的素材#xff0…这篇文章本来应该很早就写出来的但是一直苦于自己的精神能力有限而且已经到了我们学校的考试周所以时间上还是有点紧迫。关键的一点就是找不到合理的思路来写思路没有的话就算是再好的素材也写不来大家喜欢的文章。 之前已经写过关于.NET三层架的两篇文章了一篇是《【ASP.NET开发】ASP.NETMVC三层架构知识的学习总结》和《【ASP.NET开发】ASP.NET对SQLServer的通用数据库访问类》。如果大家有兴趣的话可以去读一读。当然了这两篇文章的内容大部分都不是自己的自己也是看了别人的博文然后自己总结一下拿过来自己用罢了。这次的文章主要是自己亲自使用这些知识做了一个项目我们学校资环学院的院网站然后拿出来跟大家分享一下。也不要期望博主能够写出多么有水平的文章我还是学生大三我也是在学习的过程中写博客之不过是想记录自己学习过程中的点滴和记录自己的进步如果能够顺便的帮助别人学习就更好了。同时也希望大家能够多给我提意见。 非常感谢  守护晴天 Adming Qlin等博友给我提出的宝贵的修改意见。也希望大家在阅读本博文的时候如果有什么问题或者疑问及时的给我留言沟通大家一起探讨。 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 对于三层架构来说主要是使用设计模式的思想对于项目的各个模块实现高内聚低耦合的思想。这里就不做详细的介绍了如果大家有兴趣可以阅读软件工程和设计模式相关文章。 对于三层架构来说就是使用类把我们在做项目的过程中可能需要反复操作数据库反复的使用某个方法等等可能就是操作的参数不同。如果我们如果在每次使用的时候都去编写相应的代码无疑会增加程序员的负担。所以为了增加方法的重用就把这些能够重用的方法抽象成类以供程序员在其它地方可以调用。 当然了这也是面向对象的一部分。其中的三层所指的就是①视图层UI②数据库访问层DAL③业务逻辑层BLL。当然了还有所谓的第四层-实体层model这一层主要是在这三个层之间进行流动传递。但是为什么不叫四层架构。。。原因我也不知道可能是因为实体层是外在的可以根据需要会随时变化的如项目后续模块的添加等。而其它三个层如果搭建完后可以作为框架来使用的。。。 1)首先还是先来介绍一下实体层吧就是我们通常所说的model 实体就是我们在开发项目过程中所要涉及的一些对象。把这些所要涉及的对象如新闻名称新闻上传时间供稿人上传文件的名称等都抽象成一个类。使用封装字段方法我们可以在视图层通主要是视图层过实例化对象的方法来给我们的对象的属性赋值。 简单的看一段代码吧可能会能够更加的清楚明白 1 public class NewsModel2 {3 //新闻编号4 private int nNewsId;5 6 public int NNewsId7 {8 get { return nNewsId; }9 set { nNewsId value; } 10 } 11 12 //新闻名称 13 private string strNewsName; 14 15 public string StrNewsName 16 { 17 get { return strNewsName; } 18 set { strNewsName value; } 19 } 20 21 } 这里的NewsModel就是一个关于新闻的实体类其中声明了两个private的属性字段一定要是private防止非法赋值使用public的构造函数可以在外部给字段赋值。 下面的就是在视图层来实例化对象根据需要来给字段赋值看下面的一段代码 NewsModel newModel new NewsModel();newModel.StrNewsName this.TextBox1.Text; 当然了这仅仅是一段代码其中并没有给字段nNewsId赋值因为我把它作为数据库的id地段已经设置成自动增长。这样就完成了视图层对实体层的调用。   2数据库访问层 数据库库访问层顾名思义就是主要来完成对数据库的访问等一系类的对数据库操作的类。为什么要单独的把对数据库的操作抽象成一个单独的类我个人理解是因为在整个项目的开发过程中不仅仅需要一次访问数据库而是需要多次如果每次都编写数据库访问代码的话会增加程序员的个人工作量而且对于代码的易用性和简洁性来说肯定是非常糟糕的。当然来可能还有其它的一些优点我暂时还没有发现。 既然是对数据库的操作类而且对数据库的操作无非就是四种增删改查。所以一个能提供增删改查的通用类是必不可少的。这就是我们经常所说的通用数据库访问类很多的程序员都喜欢把这个类命名为SqlHelper既然是名字都是可以随意起的只要不违反C#语法命名规范当然这样命名也是有好处就是可以使其他程序员根据类的名称大概判断出这个类是要干什么的。 当然了我这次做自己项目的时候所写的数据库访问类就没有我上次看周金桥老师的书然后模仿写的数据库访问类那么的复杂了《【ASP.NET开发】ASP.NET对SQLServer的通用数据库访问类》。当然了我这里的数据库访问类主要还是为了简介和易用只要满足我自己当前项目的需要就可以了不是每做一个项目都要写一个功能全面的数据库访问类。 代码如下请大家参考更喜欢哪个访问类自己可以根据自己口味或者需要直接用也可以 /// summary ///创建一个SqlHelper的数据库访问通用类完成对数据库的所有操作 /// /summary public class SqlHelper {//定义数据库的连接字符串private static readonly string connectionString ConfigurationManager.ConnectionStrings[strConnectionString].ConnectionString;/// summary/// 创建方法完成对数据库的非查询的操作/// /summary/// param namesqlsql语句/param/// param nameparameters传入的参数/param/// returns/returnspublic static int ExecuteNonQuery(string sql, params SqlParameter[] parameters){using (SqlConnection con new SqlConnection(connectionString)){con.Open();using (SqlCommand cmd con.CreateCommand()){cmd.CommandText sql;cmd.Parameters.AddRange(parameters);string str sql;return cmd.ExecuteNonQuery();}}}/// summary/// 完成查询的结果值/// /summary/// param namesqlsql语句/param/// param nameparameters传入的参数数组/param/// returns/returnspublic static int ExecuteScalar(string sql, params SqlParameter[] parameters){using (SqlConnection con new SqlConnection(connectionString)){con.Open();using (SqlCommand cmd con.CreateCommand()){cmd.CommandText sql;cmd.Parameters.AddRange(parameters);return Convert.ToInt32( cmd.ExecuteScalar());}}}/// summary/// 主要执行查询操作/// /summary/// param namesql执行的sql语句/param/// param nameparameters参数数组/param/// returns/returnspublic static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters){using (SqlConnection con new SqlConnection(connectionString)){con.Open();using (SqlCommand cmd con.CreateCommand()){cmd.CommandText sql;cmd.Parameters.AddRange(parameters);SqlDataAdapter adapter new SqlDataAdapter(cmd);DataTable dt new DataTable();adapter.Fill(dt);return dt;}}} } 这样的类创建好以后其他的需要访问数据库的类就可以根据自己的需要完成相应的增删改查的操作了。还是用一段代码来演示吧 /// summary ///NewsDALL 的摘要说明 /// /summary public class NewsDALL {//向数据库中插入新闻public int AddNews(NewsModel model){string sql insert into News (name,author,time,content,sort,isdelete) values(name,author,time,content,sort,isdelete);int nResult SqlHelper.ExecuteNonQuery(sql, new SqlParameter(name, model.StrNewsName), new SqlParameter(author,model.StrNewsAuthor),new SqlParameter(time, model.StrAddTime), new SqlParameter(content, model.StrNewsContent), new SqlParameter(sort, model.Sort), new SqlParameter(isdelete, model.IsDelete1));return nResult;}//执行数据库的删除操作public int DeleteNew(int id){string sql delete from News where idid;int nResult SqlHelper.ExecuteNonQuery(sql, new SqlParameter(id, id));return nResult;}//执行数据库的更新操作public int UpdateNew(NewsModel model, int nID){string sql update News set namename,timetime,contentcontent where id nID;int nResult SqlHelper.ExecuteNonQuery(sql, new SqlParameter(name, model.StrNewsName), new SqlParameter(time, model.StrAddTime), new SqlParameter(content, model.StrNewsContent));return nResult;}//执行数据库的查询操作public NewsModel GetNewsModel(int id)//声明一次从数据库中读取新闻的条数{string sql select * from News where idid;DataTable dt SqlHelper.ExecuteDataTable(sql, new SqlParameter(id, id));if (dt.Rows.Count 0){return null;}else if (dt.Rows.Count 1){NewsModel newModel new NewsModel();DataRow dr dt.Rows[0];newModel.StrNewsName dr[name].ToString();newModel.StrNewsAuthor dr[author].ToString();newModel.StrAddTime dr[time].ToString();newModel.StrNewsContent dr[content].ToString();newModel.Sort (int)dr[sort];return newModel;}else{throw new Exception(出现异常);}} } 这里的这个NewsDALL类主要是来完成有关新闻需要对数据库的各种操作当然了这只是这个类的一部分主要是来演示NewsDALL类怎样调用SqlHelper类中的方法来完成对数据库的操作的。 3接下来就是最后一层业务逻辑层了。 业务逻辑层的话主要来处理视图层和数据库访问层之间的关系的。当然了也可以直接在视图层调用数据库访问层但是对于关系来说可能会增加复杂性所以前辈们就专门的抽象出来一个业务逻辑层把所有的业务逻辑关系都在这一层处理清楚之后再访问数据库访问层进行对数据的操作。当然这是我自己的理解如果有什么不对的话请大家指正 在我这次的项目中貌似我的这一层完全是多余的因为不需要什么太多的业务逻辑的处理可以完全在视图层直接访问数据库访问层的。 还是使用代码说话吧当然这个仍然是NewsBLL类代码的一部分 /// summary ///业务逻辑层主要处理视图层和数据库访问直接的关系 /// /summary public class NewsBLL {//完成对数据库的添加public static int AddNew(NewsModel model){NewsDALL newDALL new NewsDALL();return newDALL.AddNews(model);}//完成对数据的删除public static int DeleteNew(int i){NewsDALL newDALL new NewsDALL();return newDALL.DeleteNew(i);}//返回一个新闻分类的对象public static NewsModel GetModel(int intSort){NewsModel model new NewsModel();if (intSort 1){model.StrNewSort1 学院新闻;model.StrNewSort2 ;model.StrNewSort3 ;}else if (intSort 2){model.StrNewSort1 公告通知;model.StrNewSort2 ;model.StrNewSort3 ;}..........return model;} } 接下来就是在视图层来通过访问业务逻辑层来和实体层来玩成所需要的数据操作了。 还是使用代码来描述吧这个代码主要来完成对数据进行添加 public void InsertData(){NewsModel newModel new NewsModel();newModel.StrNewsName this.TextBox1.Text;newModel.StrNewsAuthor this.TxtBoxAuthor.Text;newModel.StrAddTime this.TxtDate.Text;newModel.StrNewsContent Server.HtmlDecode(FCKeditor1.Value);newModel.Sort Convert.ToInt32( this.DropDownList2.SelectedValue.ToString());//NewsBLL newBLL new NewsBLL();int nResult NewsBLL.AddNew(newModel);if (nResult ! 0){Response.Write(scriptalert(添加成功)/script);}else{Response.Write(scriptalert(添加失败)/script);}} 我以前自己做的图被大家指出了很多的错误。所以我就引用了网络上的一个图片来解释如果侵害了您的版权请您联系我 据我自己的理解三层架构可以算是一个团队项目开发的基本框架在这个框架的基础上可以满足一些设计模式的需要。当然可以满足模块开发的需要。 总结 对于我这次的开发项目来说收获还是很多的以前仅仅是知道有三层架构这个东西也看书照着别人的代码写过但是却不能体会到这其中的真正意义。 优点①使代码的重用更加的高了不需要像以前做项目每次在一个页面反复的编写操作数据库的代码而使用三层架构的话只需要把注意力放在业务逻辑层     的业务逻辑的处理和数据库访问层的sql语句的编写。  ②代码的整洁性和易用性更加的高了。因为不同的操作都分别放在了不同的层所以代码逻辑更加清晰如果做好注释的话别人能够更加清楚的理解    编写者的意图。  ③可扩展型更加的高了根据需要在不同的层编写代码然后调用就可以了。  ④非常利于团队开发。 当然了三层架构的有点不仅仅有这些不然也不会成为现在企业开发的基本框架这只不过是我在开发中明显的发现的优点拿出来跟大家分享一下。 缺点①就是性能上肯定比以前直接在相应的页面编写数据库操作代码上有点降低。但是这个完全是可以接受的况且对于我现在的水平就是代码质量上可定还     有待提高有更大的优化空间。   ②就是在我的项目中我觉得最大的浪费就是可以在视图层直接访问数据库访问层因为要处理的业务逻辑实在是不多所以还是有点代码冗余吧。所以     以后还是要跟据自己项目的需要来灵活的使用不一定要按照规定必须这样做。 这仅仅是我的一点拙见有什么地方错误请大家积极指正。也欢迎大家跟我交流。  转载于:https://www.cnblogs.com/yisuowushinian/archive/2013/01/16/2863201.html
http://wiki.neutronadmin.com/news/52167/

相关文章:

  • 上海高端网站设计公司wordpress无法搜索中文
  • 网站制作九江计算机软件开发培训
  • 电商网站商品属性设计wordpress 机械模板下载地址
  • dede本地环境搭建网站c语言自学免费网站
  • 中文域名和网站的关系淄博网站建设
  • 网站建设基本模板介绍作图网站都有哪些
  • 企业在网站建设上的不足常熟东南开发区人才网
  • 网站建设实训建议河池网站优化
  • 微企点建站怎么样谷歌网站 百度
  • 建设一个网站引言网站制作公司北京
  • 河南中国建设银行官网站WordPress可以配置163邮箱吗
  • 建设网站条件wordpress漏洞上传php文件夹
  • 专门做防盗门的网站网站seo优化推广教程
  • 福州室内设计学校企业关键词排名优化哪家好
  • 网站增加栏目费用如何做网站
  • 网站服务器如何更改解析公司的 SEO与网站建设
  • 简单个人网站模板下载做国外的网站有什么不用钱的
  • 做单页网站怎么选产品微信网站建设公司费用
  • 如何实现网站的快速排名英文的购物网站
  • 重庆网站制作公司重庆wordpress custom post type
  • 国外网站 国内做镜像电商网站项目经验介绍ppt模板
  • 广西最优秀的品牌网站建设公司网站开发开票交税额
  • 58同城枣庄网站建设济南做平台网站的
  • 商城网站设计图商会网站建设开发
  • 高端网站建设公司wordpress多站点是什么
  • 网站简约式布局特点东莞市住房和城乡建设局网
  • 网站域名删除时间查询win 2003 网站 管理员
  • 虚拟主机wordpress石家庄seo优化公司
  • 自己有主机怎么做论坛网站大数据培训费用多少钱
  • 易做文学网站的logo做网站 套用模板之后用什么改