在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一节,我们已经把项目框架的雏形搭建好了,那么现在我来开始业务实现,在业务实现的过程当中,不断的来完善我们现有的框架。 1、假设我们来做一个用户登录的业务 那么我们可以现在IDAL项目中定义的的接口IOu_UserInfoDAL,注意是部分类partial,为了方便管理,把这些扩展的部分接口都统一放到文件夹ExtensionIDAL中进行管理,注意命名空间要和之前的部分接口一致。 using Model; 2、DAL项目中,新建文件夹ExtensionDAL,文件夹下面新建部分类Ou_UserInfoDAL using IDAL; using Model; namespace DAL { public partial class Ou_UserInfoDAL : IOu_UserInfoDAL { public Ou_UserInfo GetUserInfoByName(string loginName) { return base.GetListBy(x => x.uLoginName == loginName).FirstOrDefault(); } } } 3、IBLL项目新建文件夹ExtensionIBLL,文件夹下面新建IOu_UserInfoBLL接口 using Model; namespace IBLL { public partial interface IOu_UserInfoBLL { Ou_UserInfo Login(string strName, string strPwd); } } BLL项目中新建文件夹ExtensionBLL,文件夹下面新建Ou_UserInfoBLL类 using Model; using IBLL; namespace BLL { public partial class Ou_UserInfoBLL : IOu_UserInfoBLL { /// <summary> /// 登陆 /// </summary> /// <param name="strName"></param> /// <param name="strPwd"></param> /// <returns></returns> public Ou_UserInfo Login(string strName, string strPwd) { //1.调用业务层方法 根据登陆名查询 Ou_UserInfo usr = base.GetListBy(u => u.uLoginName == strName).FirstOrDefault(); //2.判断是否登陆成功 return null; } } } 4、关于spring.net的使用请参考:17、ASP.NET MVC入门到精通——Spring.net入门 我们下载下来spring.net包,然后把Spring.Core.dll 、Common.Logging.dll拷贝过来。在Web项目中添加一个Lib文件夹用来存放第三方的dll。 DI项目中,添加这两个dll的引用,然后新建类SpringHelper using Spring.Context; using Spring.Context.Support; namespace DI { public static class SpringHelper { #region 1.0 Spring容器上下文 -IApplicationContext SpringContext /// <summary> /// Spring容器上下文 /// </summary> private static IApplicationContext SpringContext { get { return ContextRegistry.GetContext(); } } #endregion #region 2.0 获取配置文件 配置的 对象 +T GetObject<T>(string objName) where T : class /// <summary> /// 获取配置文件 配置的 对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="objName"></param> /// <returns></returns> public static T GetObject<T>(string objName) where T : class { return (T)SpringContext.GetObject(objName); } #endregion } 5、修改Web项目中的Web.config文件,添加Spring配置 <!-- Spring 的配置 --> <sectionGroup name="spring"> <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/> <!-- 支持在 web.config 中定义对象 --> <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" /> </sectionGroup> </configSections> <spring> <context> <resource uri="~/Config/objects.xml"/> </context> </spring> Web项目中创建一个名为 Config 的文件夹,以保存独立的配置文件 <?xml version="1.0" encoding="utf-8" ?> <objects xmlns="http://www.springframework.net"> <object ></object> <object ></object> <object ></object> </objects> 修改BaseBLL.cs #region 数据仓储 属性 + IDBSession DBSession /// <summary> /// 数据仓储 属性 /// </summary> public IDAL.IDBSession DBSession { get { if (iDbSession == null) { ////1.读取配置文件 //string strFactoryDLL = Common.ConfigurationHelper.AppSetting("DBSessionFatoryDLL"); //string strFactoryType = Common.ConfigurationHelper.AppSetting("DBSessionFatory"); ////2.1通过反射创建 DBSessionFactory 工厂对象 //Assembly dalDLL = Assembly.LoadFrom(strFactoryDLL); //Type typeDBSessionFatory = dalDLL.GetType(strFactoryType); //IDAL.IDBSessionFactory sessionFactory = Activator.CreateInstance(typeDBSessionFatory) as IDAL.IDBSessionFactory; //2.根据配置文件内容 使用 DI层里的Spring.Net 创建 DBSessionFactory 工厂对象 IDAL.IDBSessionFactory sessionFactory = DI.SpringHelper.GetObject<IDAL.IDBSessionFactory>("DBSessFactory"); //3.通过 工厂 创建 DBSession对象 iDbSession = sessionFactory.GetDBSession(); } return iDbSession; } } #endregion 6、我们来看下控制器的调用 public ActionResult Index() { //1.通过业务接口查询数据 var Ou_UserInfoBLL = DI.SpringHelper.GetObject<IOu_UserInfoBLL>("Ou_UserInfo"); var userInfo= Ou_UserInfoBLL.Login("", ""); //2.加载视图 return View(); } 我每个地方都通过DI.SpringHelper.GetObject<IOu_UserInfoBLL>("Ou_UserInfo");来调用是不是很不方便,那么我们可以来创建一个业务层仓储来统一管理这些对象的创建。 7、IBLL项目,新建T4模板IBLLSession.tt,拷贝之前IDAL中的模板IDALSession过来,稍微修改一下就可以了
View Code
<#@ template language="C#" debug="false" hostspecific="true"#> namespace IBLL 8、BLL项目,新建T4模板BLLSession.tt,拷贝之前DAL中的模板DALSession过来,稍微修改一下就可以了
View Code
<#@ template language="C#" debug="false" hostspecific="true"#> namespace BLL <#}#> 9、UI目录下面,添加类库项目Web.Helper,添加对IBLL和DI项目的引用,新建OperateContext.cs using DI; using IBLL; namespace Web.Helper { public class OperateContext { public static IBLLSession _IBLLSession = SpringHelper.GetObject<IBLLSession>("BLLSession"); } } 10、修改控制器调用 using IBLL; 现在调用起来是不是方便了许多。 本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一节,我们已经把项目框架的雏形搭建好了,那么现在我来开始业务实现,在业务实现的过程当中,不断的来完善我们现有的框架。 1、假设我们来做一个用户登录的业务 那么我们可以现在IDAL项目中定义的的接口IOu_UserInfoDAL,注意是部分类partial,为了方便管理,把这些扩展的部分接口都统一放到文件夹ExtensionIDAL中进行管理,注意命名空间要和之前的部分接口一致。 using Model; 2、DAL项目中,新建文件夹ExtensionDAL,文件夹下面新建部分类Ou_UserInfoDAL using IDAL; using Model; namespace DAL { public partial class Ou_UserInfoDAL : IOu_UserInfoDAL { public Ou_UserInfo GetUserInfoByName(string loginName) { return base.GetListBy(x => x.uLoginName == loginName).FirstOrDefault(); } } } 3、IBLL项目新建文件夹ExtensionIBLL,文件夹下面新建IOu_UserInfoBLL接口 using Model; namespace IBLL { public partial interface IOu_UserInfoBLL { Ou_UserInfo Login(string strName, string strPwd); } } BLL项目中新建文件夹ExtensionBLL,文件夹下面新建Ou_UserInfoBLL类 using Model; using IBLL; namespace BLL { public partial class Ou_UserInfoBLL : IOu_UserInfoBLL { /// <summary> /// 登陆 /// </summary> /// <param name="strName"></param> /// <param name="strPwd"></param> /// <returns></returns> public Ou_UserInfo Login(string strName, string strPwd) { //1.调用业务层方法 根据登陆名查询 Ou_UserInfo usr = base.GetListBy(u => u.uLoginName == strName).FirstOrDefault(); //2.判断是否登陆成功 return null; } } } 4、关于spring.net的使用请参考:17、ASP.NET MVC入门到精通——Spring.net入门 我们下载下来spring.net包,然后把Spring.Core.dll 、Common.Logging.dll拷贝过来。在Web项目中添加一个Lib文件夹用来存放第三方的dll。 DI项目中,添加这两个dll的引用,然后新建类SpringHelper using Spring.Context; using Spring.Context.Support; namespace DI { public static class SpringHelper { #region 1.0 Spring容器上下文 -IApplicationContext SpringContext /// <summary> /// Spring容器上下文 /// </summary> private static IApplicationContext SpringContext { get { return ContextRegistry.GetContext(); } } #endregion #region 2.0 获取配置文件 配置的 对象 +T GetObject<T>(string objName) where T : class /// <summary> /// 获取配置文件 配置的 对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="objName"></param> /// <returns></returns> public static T GetObject<T>(string objName) where T : class { return (T)SpringContext.GetObject(objName); } #endregion } 5、修改Web项目中的Web.config文件,添加Spring配置 <!-- Spring 的配置 --> <sectionGroup name="spring"> <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/> <!-- 支持在 web.config 中定义对象 --> <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" /> </sectionGroup> </configSections> <spring> <context> <resource uri="~/Config/objects.xml"/> </context> </spring> Web项目中创建一个名为 Config 的文件夹,以保存独立的配置文件 <?xml version="1.0" encoding="utf-8" ?> <objects xmlns="http://www.springframework.net"> <object ></object> <object ></object> <object ></object> </objects> 修改BaseBLL.cs #region 数据仓储 属性 + IDBSession DBSession /// <summary> /// 数据仓储 属性 /// </summary> public IDAL.IDBSession DBSession { get { if (iDbSession == null) { ////1.读取配置文件 //string strFactoryDLL = Common.ConfigurationHelper.AppSetting("DBSessionFatoryDLL"); //string strFactoryType = Common.ConfigurationHelper.AppSetting("DBSessionFatory"); ////2.1通过反射创建 DBSessionFactory 工厂对象 //Assembly dalDLL = Assembly.LoadFrom(strFactoryDLL); //Type typeDBSessionFatory = dalDLL.GetType(strFactoryType); //IDAL.IDBSessionFactory sessionFactory = Activator.CreateInstance(typeDBSessionFatory) as IDAL.IDBSessionFactory; //2.根据配置文件内容 使用 DI层里的Spring.Net 创建 DBSessionFactory 工厂对象 IDAL.IDBSessionFactory sessionFactory = DI.SpringHelper.GetObject<IDAL.IDBSessionFactory>("DBSessFactory"); //3.通过 工厂 创建 DBSession对象 iDbSession = sessionFactory.GetDBSession(); } return iDbSession; } } #endregion 6、我们来看下控制器的调用 public ActionResult Index() { //1.通过业务接口查询数据 var Ou_UserInfoBLL = DI.SpringHelper.GetObject<IOu_UserInfoBLL>("Ou_UserInfo"); var userInfo= Ou_UserInfoBLL.Login("", ""); //2.加载视图 return View(); } 我每个地方都通过DI.SpringHelper.GetObject<IOu_UserInfoBLL>("Ou_UserInfo");来调用是不是很不方便,那么我们可以来创建一个业务层仓储来统一管理这些对象的创建。 7、IBLL项目,新建T4模板IBLLSession.tt,拷贝之前IDAL中的模板IDALSession过来,稍微修改一下就可以了
View Code
<#@ template language="C#" debug="false" hostspecific="true"#> namespace IBLL 8、BLL项目,新建T4模板BLLSession.tt,拷贝之前DAL中的模板DALSession过来,稍微修改一下就可以了
View Code
<#@ template language="C#" debug="false" hostspecific="true"#> namespace BLL <#}#> 9、UI目录下面,添加类库项目Web.Helper,添加对IBLL和DI项目的引用,新建OperateContext.cs using DI; using IBLL; namespace Web.Helper { public class OperateContext { public static IBLLSession _IBLLSession = SpringHelper.GetObject<IBLLSession>("BLLSession"); } } 10、修改控制器调用 using IBLL; 现在调用起来是不是方便了许多。 |
请发表评论