1、使用EF,当返回的是IQueryable<T>类型,延迟加载。

2、增删改查 分页(页码,页大小,总记录数,是否升序)(两个lambda表达式,一个筛选规则,一个是排序规则(可以选择类型))

3、创建一个数据会话层,业务层和数据层解耦,
并且提供一个方法,完成所有数据的保存,实现工作单元模式,一次连接数据库,完成多个操作
(在业务层写一个删除多个数据的方法,最后SaveChanges()),
此时需要保证EF上下文是同一个,
(不用单例模式,EF上下文得不到释放,占用内存越来越大),需要线程内唯一(借助HttpContext)(CallContext)

4、数据会话层通过抽象工厂得到数据访问类(不直接new,解耦),抽象工厂通过反射创建数据访问类
(联想插件,可以通过配置文件更改)(更改程序集和命名空间-->实现更改产品族,其它什么都不用改)

5、业务基类(abstract)
puiblic IDbSession 不能直接new(直接new的话,每调用一次Bll就new一次,没必要)也要线程内唯一(DbSessionFactory)
有个抽象属性/方法,业务子类实现,就知道操作哪个Dal,遵循开放封闭原则
public abstract IBaseDal<T> CurrentDal { get; }

业务子类
public override IBaseDal<UserInfo> CurrentDal { get => CurrentDbSession.UserInfoDal }

6、日志处理(HandleErrorAttribute,AOP)(自己写也行,Log4Net),文件并发,写入队列+开启线程

7、会话状态,Memcached,(GUID模拟SessionID,返回Cookie给浏览器,重新设值,模拟滑动时间)

8、Lucene,文章->分词->索引库<-分词--<用户输入。(队列单例模式)
(管理员新增文章/删除,同时对索引库进行操作,LuceneEnumType:delete/add,先删后加(更新),不报错)

9、Quartz,统计表
(每隔一段事件truncate,统计,GUID,关键词,出现次数)和明细表(GUID,关键词,搜索时间)(autocomplete,AJAX轮询)

10、队列都能用Redis,分布式

11、Spring.Net(IOC)(实现方式:依赖注入)(屏蔽创建过程,需要A->容器(各种new)->获得A)

12、过滤器实现AOP(权限过滤(菜单权限,普通权限))(用户访问url的时候)(两种不同的情况!)
(用户-角色-权限 + 用户-权限)(用户-权限 + 用户-角色-权限)(isPass的时机)

13、前端DIV+CSS、JS、jQuery、jQueryui、easyui、ligerui、AJAX

权限表:主键、url(控制器/方法)、请求方法、图标地址、备注等
线程操作时,如果队列为空,先Sleep(3000),提高性能

所有请求,大部分是ajax,有些是iframe

提交用户勾选的角色,通过form的name,就是服务端先Request.Form.AllKeys拿到所有name,然后判断 .StartsWith("actionID_")

先清除所有用户拥有的角色,再添加

SOA、IOC、AOP、IOP

喜欢调试

为用户分配角色和权限
为角色分配权限

做个成熟的项目-->后端-->前端-->全栈

未完待续~~~

BlangenOA项目总结的更多相关文章

  1. BlangenOA项目展示(附源码)

    1. 登录界面 1.1表单校验 1.2信息有误 1.3正在登录   2.桌面 3.用户管理 3.1添加 3.2删除 3.3编辑 3.4设置用户角色 3.5设置用户权限 4.角色管理 5.权限管理(菜单 ...

  2. Fis3前端工程化之项目实战

    Fis3项目 项目目录结构: E:. │ .gitignore │ fis-conf.js │ index.html │ package.json │ README.md │ ├─material │ ...

  3. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  4. 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目

    最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...

  5. Hangfire项目实践分享

    Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...

  6. Travis CI用来持续集成你的项目

    这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...

  7. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  8. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  9. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

随机推荐

  1. [leetcode]163. Missing Ranges缺失范围

    Given a sorted integer array nums, where the range of elements are in the inclusive range [lower, up ...

  2. (一)ROS的安装与环境配置

    1.设置教程 1.1 打开system setting(系统设置)->Software&Updates(软件与更新) 1.2点击上方Other software(其他软件),点击左下角a ...

  3. discuz回贴通知插件实现-显示用户状态设置

    一.完善用户是否开启回贴通知 回贴通知插件建立模块时,指定了核心文件post_set.inc.php   1.创立好数据库 建立独立数据表(不建议直接修改原有的discuz数据库,防止discuz升级 ...

  4. 相机拍摄时最重要的三个参数——光圈、快门、ISO

    注:这篇文章我四年前发布在其他地方,现在移过来. 如果你对相机只有很少了解,那么看这篇文章再好不过啦,我结合很多资料,力图用最通俗易懂的方式进行讲解. 相机拍摄时最重要的3个参数就是——光圈.快门.I ...

  5. 2018年这些UI设计趋势正在流行,跟上必拿高薪!

    数字设计领域和时尚圈是一样的,总会有各种各样的趋势让人眼花缭乱.无论是用户界面的视觉元素,还是用户体验的细节,总有许多值得说道的新玩法和新方向.就目前来看,UI设计的大趋势是更加大胆新颖的视觉设计,通 ...

  6. seo工具

    http://tool.seowhy.com/ 一.关键词查词类工具:可以查询出更多目标客户可能搜索的词语 1.百度指数:http://index.baidu.com/ 这个工具是使用人数最多的 2. ...

  7. source Insight工程的简单使用

    本文以管理虚拟机里面的uboot为例: 1.选择project->New project->选择工程路径,假设为D:\uboot:->project has its own conf ...

  8. Java读properties文件中文乱码问题的解决方法

    java读properties文件,包含中文字符的主要有两种: 1.key中包含中文字符的(value中也有可能包含) 2.key中不包含中文字符的(value中有可能包含) 1.key中包含中文字符 ...

  9. 情感分析snownlp包部分核心代码理解

    snownlps是用Python写的个中文情感分析的包,自带了中文正负情感的训练集,主要是评论的语料库.使用的是朴素贝叶斯原理来训练和预测数据.主要看了一下这个包的几个主要的核心代码,看的过程作了一些 ...

  10. java--多线程编程简介

    1.什么时候使用多线程编程 一个任务在正常情况下是按顺序执行的,但是如果当前任务里有多个相似进程块(例如for,while语句),我们就可以考虑把这些代码块抽出来并行运行,无需阻塞 2.实现多线程的几 ...