一、第一篇内容中必须得简单的介绍一下MVC(在大学时用的是WebForm,拖控件感觉很爽,但是工作后,技术总监让一定要放弃这种 想法!)

1、MVC是什么?:(1) ASP.NET MVC是微软官方提供的MVC模式编写ASP.NET Web应用程序的一个框架

(2) MVC是微软继ASP.NET WebForms后的有一种开发方式,并非替代方式!

2、与WebForm的比较之后的好处:

(1) 关注点分离

(2)高可扩展性

(3)更好的可测试性

(4)更好的URL重写

(5)更好的性能

(6)更加灵活的HTML代码控制

(7)没有ViewState(这个在WebForm中很可怕,右键查看源代码之后,晕了....)

3、其实好处不止这些,概念性的东西没必要过多的解释,园子里好多文章.....

二、上篇的文章也提到,与数据库的交互用的是Nhibernate,大家一定不陌生吧,一种ORM的思想,还有你们熟悉的EF、FluntNibernate,写完这篇会写个小的Demo,里面就包括NHibernate、EF中的CodeFirst(先写Model类,接着Db<Set>,前台数据绑定之后,打开数据库,就会发现生成一个带类似这样:项目名.Contenxt的数据库)仅供初学者学习。

1、在项目中添加了一个NHibernateHelper类,其中方法包括像GetSession()这个方法返回的是ISession。

项目中得安装Nugget包,Install-package Nhibernate 添加这个引用

2、添加完之后:

(1)往项目中添加MSSql.cfg.xml(“目录在\packages\NHibernate.3.3.1.4000\ConfigurationTemplates”)

但要改名为hibernate.cfg.xml 右键属性:无,如果较新则复制

 (2)添加XML,举一个实体的例子来说,如:Product.Hbm.xml,右键属性:不复制,嵌入的资源。

(3)如果想要智能提示的话,在Product.Hbm.xml代码中右键属性:架构添加:nhibernate-configuration.xsd和nhibernate-mapping.xsd

(4)上面说的这些配置都是NHbiernate基础性的东西,建议看看“李永京”的博客。http://www.cnblogs.com/lyj/

(5)现在可以建立一个NHibernateHelper类,建议在(TianxinWeb.Webs.Common)项目的目录在下面。但是记住:得在hibernate.cfg.xml中添加<mapping assembly="项目名称"/>

        //返回ISession
public static ISession GetCurrentSession()
{
//第一种方式:(不灵活,只能对于一个实体类控制)
//var cfg = new Configuration().Configure().AddAssembly(typeof(Product).Assembly); //推荐使用第二种方式:
//注意:在hibernate.cfg.xml中添加<mapping assembly="MvcApplication1"/>
var cfg = new Configuration().Configure();
var sessionFactory = cfg.BuildSessionFactory();
return sessionFactory.OpenSession();
}

      (6)现在增删改查就都可以实现了。自己一定要试试,可以结合事务进行操作,还是建议看看“李永京”的博客。

3、添加四个个类库和一个MVC项目,分别是:TianxinWeb.Webs.BLLs、TianxinWeb.Webs.Common、TianxinWeb.Webs.Models、   TianxinWeb.Webs.Repositories和TianxinWeb.Webs.Webs。这四个类库的作用,前一篇文章已经说过,看命名也知道个大概。

4、在TianxinWeb.Webs.Webs里添加jquery-easyui-1.3.2、还有常用的Ckediter编辑器,ZTree(后面讲到的”用户权限分配“用的就是它)在官网上下载就行,添加到项目中。

三、总结:

1、重点:一定要自己测试一下Nhibernate的功能,是否能增删改查影响到数据库,先把这个问题解决了,上面介绍的也挺清楚,如果实在调试不行,请  留言,帮你看看。

2、大体框架建起来了,媳妇打电话让回家吃饭了,也真有点饿了。呵呵。先写到这里吧,请朋友们继续关注下一篇文章。

最新文章

  1. ES6深入学习记录(三)编程风格
  2. HDU 5015
  3. SQL Server中 ldf 文件过大的解决方法
  4. crawler: 常用的一些工具
  5. Python IDE: Eclipse + PyDev
  6. GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图)
  7. svg学习(六)line
  8. [原]Android打包之跨平台打包
  9. 中石油-高精度阶乘-java
  10. android在程序中打开另一个程序
  11. 【转载】Extjs 中id与itemId的区别
  12. (转载)最黑的黑客米特尼克:多次耍FBI 终被高手擒
  13. Android时间互换代码
  14. 使用Raphael 画图(一) 基本图形 (javascript)
  15. MYSQL知识点
  16. 自学Python2.1-基本数据类型-字符串str(object)
  17. 蓝书例题之UVa 10253 Series-Parallel Networks
  18. 自学Linux Shell18.2-sed编辑器高级特性
  19. redmine3.2 的部署
  20. Angular 请求数据

热门文章

  1. windowsphone8.1学习笔记之应用数据(三)
  2. 3款Linux网络监视工具
  3. 卸载apache服务
  4. ABAP-创建货源清单
  5. 51nod 80分算法题
  6. JAVA-配置path环境
  7. Python中出现“TabError: inconsistent use of tabs and spaces in indentation”问题的解决
  8. html5--1.9 img元素嵌入图片
  9. python练习1(简单爬虫)
  10. linkedin databus介绍——监听数据库变化,有新数据到来时通知其他消费者app,新数据存在内存里,多份快照