**注:要做工,没什么时间,等有空时会上传到GIT,项目结构如上,简单的说一下:

**支持IOC及多数据库等,各项目由MVC区域隔离;

主要使用基于接口与抽象类进行高度的抽象与接口隔离,与其它框架比较优点如下:

  1,抽象度非常高,接口隔离,项目清晰完整,任何一部分均可且容易替换;一开始就非常注重非陷入复杂化;

2,框架非常易用,且易于扩展;编程新手也可立即上手使用;

3,设计目标为:轻量化、高抽象度、可扩展性、模块任意替换、清晰简洁易用(易懂、代码量要少[没必要码农]);

  

**NetDevelop框架使用说明:
1,设计图为Doc文件夹下;
2,使用说明(支持多数据库,这里以MES为例):
2.1 在Mes.Container项目下:
Entitys文件夹下:新建实体类(用动软等和模块生成)
EntitysMapping文件夹下:新建映射类
MesDbContext.cs文件中:添加DbSet

2.2 在Mes.IRepository项目下:
新建仓储接口

2.3 在Mes.Repository项目下:
新建仓储接口实现类

2.4 在NetDevelop.DbFactory项目下:
Interfaces/IDbSessionMes:添加接口
MesDbSession:添加接口实现

2.5 在Mes.IService项目下:
新建接口;

2.6 在Mes.Service项目下:
新建接口实现类;

2.7 在MvcApplication项目下(或其它类型应用程序中):
如已建立以下创建工厂,则直用添加注册;
MvcApplication/Common/NinjectControllerFactory中:建立注册映射

**以上已进行了高度的抽象与接口隔离,实测并性能有所提升,已经非常的简化了操作,线程级隔离;
平均上述的每个新加类文件,除了实体类,其代码量平均都在5行以下。后续还可以用生成器全部生成;

2.8 如何使用(只用声明属性,并在构造函数中加载要手工释放回收的对象资源):

NetDevelop_20161209.rar
1,实现:Mvc+EasyUI+Ninject,生成实体类可用动软代码生成器,只生成简单实体即可。
2,用这个时,多条件查询用
IQueryable<User> q = _userService.Find(t => t.Id != 0);
q = q.Where(t=>t....)
q = q.Where(t=>t....)
单条件用 List<User> list=_userService.Find(t => t.Id != 0).ToList();
3,用了IOC后,要简单很多;
原:IUserService bll=new UserService();
User model=bll.Find(t=>t.Id!=0).First();
现:
每个页面CS只用一个IUserService _userService{get;set;}
调用:User model=_userService.Find(t=>t.Id!=0).First();
基本上少写很多的IUserService bll=new UserService();

4,User的用户帐号表,记得给K3留个字段,防止后面连不上。

示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Linq.Expressions;
using NetDevelop.Data;
using NetDevelop.Utility;
using Framework.Container.Entitys;//多数据库支持
using Framework.Container.View;
using Framework.IService;
//using Framework.Service;
using Mes.Container.Entitys;//多数据库支持
using Mes.Container.View;
using Mes.IService;
//using Mes.Service;
using Newtonsoft.Json;
using MvcApplication.Common;
using Ninject;

namespace MvcApplication.Areas.Admin.Controllers
{
[AuthorizationAuthentication]
public class UserController : BaseController
{
#region Attribute

[Inject]
public IUserService _userService { get; set; }

public UserController()
{
this.AddDisposableObject(_userService);
}

#endregion

//
// GET: /Admin/User/

/// <summary>
/// 用户表主页
/// </summary>
/// <returns></returns>
public ActionResult Index()
{
ViewBag.theme = "default";
return View();
}

/// <summary>
/// 获取所有的用户档案
/// </summary>
/// <returns></returns>
public ActionResult GetUserListAll()
{
//查询示例:
IQueryable<User> q = _userService.Find(t => t.Id != 0);//惰性加载

List<User> list=_userService.Find(t => t.Id != 0).ToList();//立即加载

...其它处理
return Content(Json...);//返回处理后的视图;
}
}
}

注:在类特性[AuthorizationAuthentication]中,使用了反射,这里也可另用动态编译取代(只支持.net4.0以上);

NetDevelop20161217.rar
1,已将服务类的基础的公共方法单独提取出来,简化程序;
2,生产制令单(显示,增改);多条件查询与删除等未处理;

分享基于.NET MVC+EF CodeFirst+IOC+EasyUI的框架设计的更多相关文章

  1. 新年奉献MVC+EF(CodeFirst)+Easyui医药MIS系统

    本人闲来无事就把以前用Asp.net做过的一个医药管理信息系统用mvc,ef ,easyui重新做了一下,业务逻辑简化了许多,旨在加深对mvc,ef(codefirst),easyui,AutoMap ...

  2. 新年奉献MVC+EF(CODEFIRST)+EASYUI医药MIS系统(转)

    出处:http://www.cnblogs.com/chenlinzhi/p/4332628.html 本人闲来无事就把以前用Asp.net做过的一个医药管理信息系统用mvc,ef ,easyui重新 ...

  3. 基于.NET MVC的高性能IOC插件化架构

    基于.NET MVC的高性能IOC插件化架构 最近闲下来,整理了下最近写的代码,先写写架构,后面再分享几个我自己写的插件 最近经过反复对比,IOC框架选择了Autofac,原因很简单,性能出众,这篇博 ...

  4. 分享基于EF6、Unitwork、Autofac的Repository模式设计

    目录 分享基于EF6.Unitwork.Autofac的Repository模式设计 一.实现的思路和结构图 二.Repository设计具体的实现代码 三.Repository设计的具体的使用 四. ...

  5. 【Qt编程】基于Qt的词典开发系列<一>--词典框架设计及成品展示

    去年暑假的时候,作为学习Qt的实战,我写了一个名为<我爱查词典>的词典软件.后来由于导师项目及上课等原因,时间不足,所以该软件的部分功能欠缺,性能有待改善.这学期重新拿出来看时,又有很多东 ...

  6. MVC+EF(CODEFIRST)+EASYUI医药MIS系统

    https://www.cnblogs.com/chenlinzhi/p/4332628.html

  7. 基于.NET MVC的高性能IOC插件化架构(一)

    最近闲下来,整理了下最近写的代码,先写写架构,后面再分享几个我自己写的插件 最近经过反复对比,IOC框架选择了Autofac,原因很简单,性能出众,这篇博文是我的各大IOC框架的性能测试:http:/ ...

  8. Asp.Net MVC +EF CodeFirst+多层程序设计

    1.概述 这是一个基于个人博客的一个项目,虽然博客根本没必要做这么复杂的设计.但是公司有需求,所以先自己弄个项目练练手.项目需要满足下列需求 1.层与层之间需要解耦,在后期上线更新维护时不需要覆盖,只 ...

  9. 基于.NET MVC的高性能IOC插件化架构(二)之插件加载原理

    上一篇博文简单介绍了下插件化的代码组成部分:http://www.cnblogs.com/gengzhe/p/4390932.html,源码地址:https://github.com/luohuazh ...

随机推荐

  1. AngularJS and Asp.net MVC

    AngularJS 初印象------对比 Asp.net MVC 之前就早耳闻前端MVC的一些框架,微软自家的Knockout.js,google家的AngularJs,还有Backone.但未曾了 ...

  2. pearl(二分查找,stl)

    最近大概把有关二分的题目都看了一遍... 嗯..这题是二分查找...二分查找的代码都类似,所以打起来会水很多 但是刚开始打二分还是很容易写挂..所以依旧需要注意 题2 天堂的珍珠 [题目描述] 我有很 ...

  3. jQuery图片切换插件jquery.cycle.js

    Cycle是一个很棒的jQuery图片切换插件,提供了非常好的功能来帮助大家更简单的使用插件的幻灯功能 下载cycle插件并引入,此时,注意把引入它的代码放在引入jQuery主文件之后. <he ...

  4. Ubuntu环境变量设置

    在配置Ubuntu里面的JDK环境变量时,从网上找到的资料各异,在不同的文件里面配置,如/etc/environment./etc/profile,环境变量设置都是可以的.但是难免会有其它的疑问,不同 ...

  5. java生成PDF文件(itext)

    itextpdf-5.4.3.jar下载地址: http://www.kuaipan.cn/file/id_58980483773788178.htm 导入itextpdf-5.4.3.jar ToP ...

  6. 启动mysql错误解决方案,学会查看错误日志:mysql.sock丢失,mysqld_safe启动报错

    本人还是个菜鸟,下面是我的经验之谈,能解决一些问题,有不对的地方,敬请斧正. 我的是CentOS6.3+MySQL5.1.57. 重启了一次服务器后,使用> mysql -u root -p登陆 ...

  7. Castle Windsor 项目中快速使用

    Castle Windsor 项目中快速使用 新建项目如下: 一个模型类,一个接口,一个实现方法.我的目的很明确就是在UI层通过Castle 调用数据访问层的方法. 添加项目引用 CastleDemo ...

  8. javascript继承的写法

    原文链接:http://js8.in/698.html. 构造函数继承: 第一种方法是使用prototype属性: 这里也可以直接Child.prototype=new P();考虑到P构造函数的参数 ...

  9. .net 配置文件 分析 EntityName 时出错

    今天用C#读写XML文档,总出现下面的错误: 分析 EntityName 时出错.行1,位置9. 出错地方的源程序为: //...... pathEle.InnerXml = reducedStr(v ...

  10. linux前四天学习笔记

    以下是在linux培训机构所学的内容,感觉比较乱 MySQL学习笔记MySQL的安装 linux中的超级管理员rootaixocm vnc的退出: F8 MySQL的特点.优点:关系型开源.免费c++ ...