一、第一篇内容中必须得简单的介绍一下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、大体框架建起来了,媳妇打电话让回家吃饭了,也真有点饿了。呵呵。先写到这里吧,请朋友们继续关注下一篇文章。

“MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第一篇的更多相关文章

  1. “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)

    “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构.登录窗口.以及主界面) 一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增 ...

  2. “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)

    一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增删改查的地步.测试好之后再来看这篇文章,我的主框架相对来说简答一点,重点还是实现系统的功能,以及对Jquery-Eas ...

  3. MVC+Nhibernate+jquery+easyui递归实现多级菜单

    1.新建访问的控制器动作返回视图,在视图中使用easyui的treegrid插件来得到后台得到的json数据显示多级菜单 public ActionResult Menu() { return Vie ...

  4. 完成一个MVC+Nhibernate+Jquery-EasyUI信息发布系统

    一.最近学习了Jquery-EasyUI框架,结合之前用过的MVC3+Nhibernate做一个信息发布系统,对工作一年半的自己做一个总结吧!(也正好 供初学者学习!) 二.先上截图(系统简介),让大 ...

  5. “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成)

    “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成) 一.这篇文章主要是要实现:图片新闻的添加,无刷新图片的上传,以及添加新闻静 ...

  6. “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现)

    “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现) 一.前三篇的内容是否对您有帮助呢?如果有的话,请您继续关注这篇吧,这篇主要是实现”用户管理“的 ...

  7. 年底小回顾(MVC+NHibernate+Jquery+JqueryUI——网站)

    1.附:利用MVC+NHibernate+Jquery+JqueryUI这些技术可以做出一个比较好的前台+后台网站.下面是本人对这些技术的笔记,作为私人年底小结吧.呵呵 好久没写文章了,感觉下不了笔吐 ...

  8. MVC 使用Jquery EasyUI分页成功

    先上图吧

  9. 第一章使用JSP/Server技术开发新闻发布系统第一章动态网页开发基础

      一:为什么需要动态网页    由于静态网页的内容是固定的,不能提供个性化和定制化得服务,使用动态网页可真正地与用户实现互动. 二:什么是动态网页  ①:动态网页是指在服务器端运行的,使用程序语言设 ...

随机推荐

  1. 使用struts2中默认的拦截器以及自定义拦截器

    转自:http://blog.sina.com.cn/s/blog_82f01d350101echs.html 如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Acti ...

  2. Bootstrap aggregating Bagging 合奏 Ensemble Neural Network

    zh.wikipedia.org/wiki/Bagging算法 Bagging算法 (英语:Bootstrap aggregating,引导聚集算法),又称装袋算法,是机器学习领域的一种团体学习算法. ...

  3. 一文快速搞懂MySQL InnoDB事务ACID实现原理(转)

    这一篇主要讲一下 InnoDB 中的事务到底是如何实现 ACID 的: 原子性(atomicity) 一致性(consistency) 隔离性(isolation) 持久性(durability) 隔 ...

  4. QQ登录集成到自己网站php代码(转载)

    我们现在在各大网站论坛都可以看到点击一个QQ图标就可以利用自己的QQ号在网站进行登录了,下面我来告诉你一段QQ登录集成到自己网站php代码,有需要的朋友可参考. 1.打开open.qq.com 添加创 ...

  5. CUDA:零拷贝主机内存

    The easy way to achieve copy/compute overlap!1.Enable Host Mapping* Runtime: cudaSetDeviceFlags() wi ...

  6. 用c++后缀自动机实现最大公共字符串算法,并封装成Python库

    后缀自动机的C++代码转自https://e-maxx.ru/algo/suffix_automata,其余封装为自写. 在C++文件同级目录建立setup.py文件,代码如下: # !/usr/bi ...

  7. 【docker】kubernetes集群一键部署包

    背景说明: 随着docker使用的逐步深入,docker的管理变得越来越麻烦,单纯的通过docker命令行的方式进行管理已经不能满足需求,同时也存在效率低下的问题.所以急需一个docker集群管理工具 ...

  8. Java for LeetCode 089 Gray Code

    The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...

  9. SpringBoot学习笔记(10):使用MongoDB来访问数据

    SpringBoot学习笔记(10):使用MongoDB来访问数据 快速开始 本指南将引导您完成使用Spring Data MongoDB构建应用程序的过程,该应用程序将数据存储在MongoDB(基于 ...

  10. 在PyCharm上创建Django项目

    声明:此Django分类下的教程是追梦人物所有,地址http://www.jianshu.com/u/f0c09f959299,本人写在此只是为了巩固复习使用 首先我们在Pycharm上新建一个Dja ...