首页 技术 正文
技术 2022年11月14日
0 收藏 741 点赞 4,388 浏览 2556 个字

**注:要做工,没什么时间,等有空时会上传到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,生产制令单(显示,增改);多条件查询与删除等未处理;

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,490
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,290