TinyFrame升级之一:框架概览】的更多相关文章

Atitit.提升 升级类库框架后的api代码兼容性设计指南 1. 增加api直接增加,版本号在注释上面增加1 2. 废弃api,使用主见@dep1 3. 修改api,1 4. 修改依赖import,雅瑶增加文件模式.保持兼容性..1 5. 优先选择同一个文件内的修改,因为文件多了不好管理了,编译速度也慢的了...1 5.1. 增加文件模式的优缺点2 1. 增加api直接增加,版本号在注释上面增加 2. 废弃api,使用主见@dep   3. 修改api, 先,添加一个api 方法,附件ver.…
Part I. Spring框架概览 The Spring Framework is a lightweight solution and a potential one-stop-shop for building your enterprise-ready applications. However, Spring is modular, allowing you to use only those parts that you need, without having to bring i…
由于之前的TinyFrame多于简单,并且只是说明原理,并无成型的框架出来,所以这次我把之前的知识进行了汇总,然后做出了这一版的TinyFrame框架. 整个框架的结构如下: TinyFrame.Data主要负责底层数据部分,包括EF CodeFirst需要的DomainModel,DomainMapper,DataContext:用于提供数据操作存储的Repository模式:用于提供事务控制的UnitOfWork. TinyFrame.Repository主要继承自TinyFrame.Dat…
在这个框架中,我们使用Autofac作为IOC容器,来实现控制反转,依赖注入的目的. 在程序加载的时候,我需要将系统中所有用到的接口与之对应的实现进行装载.由于用户交互部分是在TinyFrame.Web中,并且请求入口是在Application_Start方法中,所以我在这里进行了注入: 1: private void RegisterDependency() 2: { 3: var builder = new ContainerBuilder(); 4:   5: builder.Regist…
在任何框架中,缓存都是不可或缺的一部分,本框架亦然.在这个框架中,我们的缓存分为两部分:内存缓存和单次请求缓存.简单说来,就是一个使用微软提供的MemoryCache做扩展,并提供全局唯一实例:另一个使用微软提供的HttpContextBase做扩展,用户每发送一次请求,HttpContextBase都会被关联创建.先来看下接口约束: 1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: us…
首先,重构的想法来源于以下文章:Correct use of Repository and Unit Of Work patterns in ASP.NET MVC,因为我发现在我的框架中,对UnitOfWork使用了错误的设计方法,同时感谢一下文章:Generically Implementing the Unit of Work & Repository Pattern with Entity Framework in MVC & Simplifying Entity Graphs,我…
本章主要讲解如何为框架新增插件化开发功能. 在.net 4.0中,我们可以在Application开始之前,通过PreApplicationStartMethod方法加载所需要的任何东西.那么今天我们主要做的工作就集中在这个时间段: 1.将插件DLL及文件拷贝入主网站目录并编译 2.加载Plugin 首先来说说第一步,由于这步里面,我们主要拷贝DLL及文件,所以我们利用了一个List<Assembly>容器来记录所有的插件的DLL,具体代码如下: 1: using System; 2: usi…
本章我们主要讲解如何实现一个复杂的查询.由于目前TinyFrame框架已经投入到了实际的项目生产中,所以我很乐意将项目中遇到的任何问题做以记录并备忘. 这章中,我们提到的查询界面如下所示: 其中,涉及到联查,单查:对于联查部分,选中”所属区域“后,才会加载”所属基地“内容,选中”所属基地“后,才会加载”所属设备“内容,选中”所属设备“后才会加载”检索参数“内容.其他的项会在页面加载的时候就被填充了.由于复杂的查询要涉及很多表的联查,所以不可能做成通用的,所以在这里,利用代码生成器来生成复杂的查询…
在上一篇中,我列举了框架的整体结构,下面我们将一一说明: 首先需要说明的是TinyFrame.Data. 它主要用于处理数据库底层操作.包含EF CodeFirst,Repository,Unitofwork三个部分. 其中,DomainModel主要是用来存放实体类的: 1: namespace TinyFrame.Data.DomainModel 2: { 3: public class Book 4: { 5: public int ID { get; set; } 6: public s…
在开发过程中,我们经常会用到一些 GitHub或者Gitee上的开源框架来快速搭建我们的业务系统,但是当框架被我们大批量修改后,开源框架又有升级了.这时候升级框架就变得很麻烦,也不能直接直接进行合并,但是又没办法找到更新的文件一个一个的去修改.这时候可以利用到Git本身的一个diff功能,生成patch文件进行打补丁升级 这里我本地借用若依框架来展示 首先新建立一个远端仓库或者直接拉取远端最新的框架代码,我这边是新建了一个远端仓库official 然后我们切换到这个仓库下的master分支,通过…