博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EasyFastCMS系列教学课程——1、三层框架的搭建
阅读量:6707 次
发布时间:2019-06-25

本文共 7267 字,大约阅读时间需要 24 分钟。

    在本系列教程中,我们以一个大型CMS系统的完整开发流程为例,和大家一起探讨net开发的经验和教训。在本程序中,我们采用了流行的三层/N层框架+仓储模式的架构模式。项目分层示意图:

 
 
各层的主要用途:
  • EasyFast.Web ——UI展示层,系统的操作界面。
  • EasyFast.BLL ——业务逻辑层,用于处理程序中的业务逻辑。
  • EasyFast.Model  ——用于在各层之间传递数据。
  • EasyFast.Utility ——公共类库
  • EasyFast.Repository ——数据操作(数据仓储层)
  • EasyFast.DBContext ——ORM工具层
基本框架代码:
 
 
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;using System.Data.SqlClient; namespace EasyFast.Repository.Interface{    public interface IRepository
where T : class { T GetById(int id); T Find(string where, string orderColumn, List
parameters); int Add(T model); int Delete(int id); int Update(T model); int GetPageCount(string tableName, string where, List
parameters); DataTable GetPageList(string tableName, string fieldNames, string where, string orderColumn, int startRecordIndex, int endRecordIndex, List
parameters); DataTable GetDataTable(string tableName, string fieldNames, string where, string orderColumn, List
parameters); }}
——目录结构:EasyFast.Repository.Interface.IRepository
 
 
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using EasyFast.Repository.Interface;using System.Data;using System.Data.SqlClient; namespace EasyFast.Repository{    public class Repository
: IRepository
where T : class { public T GetById(int id) { T model = default(T); return model; } public T Find(string where, string orderColumn, List
parameters) { T model = default(T); return model; } public int Add(T model) { int _result = 0; return _result; } public int Delete(int id) { int _result = 0; return _result; } public int Update(T model) { int _result = 0; return _result; } public int GetPageCount(string tableName, string where, List
parameters) { int _result = 0; return _result; } public DataTable GetPageList(string tableName, string fieldNames, string where, string orderColumn, int startRecordIndex, int endRecordIndex, List
parameters) { DataTable dt = new DataTable(); return dt; } public DataTable GetDataTable(string tableName, string fieldNames, string where, string orderColumn, List
parameters) { DataTable dt = new DataTable(); return dt; } }}
——目录结构:EasyFast.Repository.Repository
 
 
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;using System.Data.SqlClient;using EasyFast.Repository;using EasyFast.Repository.Interface; namespace EasyFast.BLL{    public class BaseBLL
where T : class { IRepository
repository = new Repository
(); protected readonly Object lockHelper = new object(); #region 获取model public T GetById(int id) { return repository.GetById(id); } public T Find(string where) { return repository.Find(where,"", null); } public T Find(string where, List
parameters) { return repository.Find(where,"", parameters); } public T Find(string where, string orderColumn, List
parameters) { return repository.Find(where, orderColumn, parameters); } #endregion #region 新增一条记录 public int Add(T model) { return repository.Add(model); } #endregion #region 删除一条记录 public int Delete(int id) { return repository.Delete(id); } #endregion #region 更新一条记录 public int Update(T model) { return repository.Update(model); } #endregion #region 获取指定条件的记录集 public virtual DataTable GetDataTable(string tableName, string fieldNames, string where, string orderColumn, List
parameters) { return repository.GetDataTable(tableName, fieldNames, where, orderColumn, parameters); } public virtual DataTable GetDataTable(string fieldNames, string where, string orderColumn, List
parameters) { return repository.GetDataTable("", fieldNames, where, orderColumn, parameters); } public virtual DataTable GetDataTable(string fieldNames, string where, List
parameters) { return repository.GetDataTable("", fieldNames, where, "", parameters); } public virtual DataTable GetDataTable(string where, List
parameters) { return repository.GetDataTable("", "*", where, "", parameters); } public virtual DataTable GetDataTable(string where) { return repository.GetDataTable("", "*", where, "", null); } public virtual DataTable GetDataTable() { return repository.GetDataTable("", "*", "", "", null); } #endregion #region 获取指定条件的记录数 public virtual int GetPageCount(string tableName, string where, List
parameters) { return repository.GetPageCount(tableName, where, parameters); } public virtual int GetPageCount(string where, List
parameters) { return repository.GetPageCount("", where, parameters); } public virtual int GetPageCount(string where) { return repository.GetPageCount("", where, null); } public virtual int GetPageCount() { return repository.GetPageCount("", "", null); } #endregion #region 分页获取指定条件的记录 public virtual DataTable GetPageList(string tableName, string fieldNames, string where, string orderColumn, int startRecordIndex, int endRecordIndex, List
parameters) { return repository.GetPageList(tableName, fieldNames, where, orderColumn, startRecordIndex, endRecordIndex, parameters); } public virtual DataTable GetPageList(string tableName, string fieldNames, string where, int startRecordIndex, int endRecordIndex, List
parameters) { return repository.GetPageList(tableName, fieldNames, where, "", startRecordIndex, endRecordIndex, parameters); } public virtual DataTable GetPageList(string fieldNames, string where, int startRecordIndex, int endRecordIndex, List
parameters) { return repository.GetPageList("", fieldNames, where, "", startRecordIndex, endRecordIndex, parameters); } public virtual DataTable GetPageList(string where, int startRecordIndex, int endRecordIndex, List
parameters) { return repository.GetPageList("", "*", where, "", startRecordIndex, endRecordIndex, parameters); } public virtual DataTable GetPageList(string where, int startRecordIndex, int endRecordIndex) { return repository.GetPageList("", "*", where, "", startRecordIndex, endRecordIndex, null); } public virtual DataTable GetPageList(int startRecordIndex, int endRecordIndex) { return repository.GetPageList("", "*", "", "", startRecordIndex, endRecordIndex, null); } #endregion }}
——目录结构:EasyFast.BLL.BaseBLL

 

示例代码下载: 

 

 

转载于:https://www.cnblogs.com/cnuusw/p/EasyFast_1.html

你可能感兴趣的文章
读书笔记-看见未来:改变互联网世界的人们
查看>>
Symfony2CookBook:如何创建自定义的表单域类型
查看>>
HCP Anywhere:为HDS内容云锦上添花
查看>>
分享B2B信息发布小技巧
查看>>
你不得不知道的Visual Studio 2012(3)- 创建Windows应用程序
查看>>
Linux环境下C语言模拟内存负载测试
查看>>
Cocos Creator中的动画支持技术
查看>>
“2012年度IT博客大赛”获奖感言--梦想、学习、坚持、自信、淡定
查看>>
年轻群体当道,哈弗F7如何赢得芳心?
查看>>
关于考核与面谈
查看>>
项目案例分享四:DC升级后Sysvol停止复制,日志报13508
查看>>
职场思想分享001 | 有多种选择才叫有能力
查看>>
ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)
查看>>
3D圣诞树源码[强力推荐]
查看>>
25 个超棒的 WordPress 主题(2012)
查看>>
Concurrent use of embedded Ruby in Java (using JRuby)
查看>>
基础才是重中之重~.net中的显式事务与隐式事务
查看>>
转载 - 通过设置P3P头来实现跨域访问COOKIE
查看>>
使用泛型创建只读集合
查看>>
SQL Server 中如何判断表是否存在
查看>>