ASP.NET MVC+EF框架+EasyUI实现权力管理体系(10)- VSS源代码管理

 
 ASP.NET MVC+EF框架+EasyUI实现权力管连串

 
 ASP.NET MVC+EF框架+EasyUI实现权力管序列

  

  

  
(开篇)
   (1):框架搭建    (2):数据库访问层的筹划Demo   
(3):面向接口编程
  
(4
):业务逻辑层的卷入
 

  
(开篇)
   (1):框架搭建    (2):数据库访问层的计划Demo   
(3):面向接口编程
  
(4
):业务逻辑层的包裹
 

  
**
(5):前台Jquery
easyUI实现
  
(6):EF上下文实例管理
  
(7):DBSession的封装**  
(8):DBSession线程内唯一

  
**
(5):前台Jquery
easyUI实现
  
(6):EF上下文实例管理
  
(7):DBSession的封装  
(8):DBSession线程内唯一
 **

  前言:前边大家着力已经成功了一个Demo,我们在后边的权位也就是听从这一个Demo的思绪来贯彻的,只需要给底层添加东西,然后实现工作,权限的逻辑业务有点小复杂,所以我们可以先在果壳网随便看看权限方面的事体,当然我说到的时候也会在说的,先天我们就来探索一下TT模板在本项目重的选取,假使你学会了TT模板,可以大大的缩短你的代码的书写量,当然对于TT模板我也正在研商中,所以这篇写的都是基础,以后会继续在写的,上边起初前几日我们的TT模板的运用学习,谢谢大家的浏览。

  
(9):TT摸版的学习

1.为何需要T4模板

  前言:上篇博客我们对T4模版举行了简便易行的注解,这篇博客咱们最先询问一下源代码管理的东西,当然了这么些知识点我都只是简单的关系,倘诺我们需要详细学习的话可以在网易中找到很多你们需要的东西,下边我们就起头上学源代码管理器吧,我在此处要讲的是VSS

  (1)当大家项目写到第七篇最先的时候,我们日益就会有这种痛感呢,假使我们的数据库实体相当多的话,而且大家的数据库访问接口层(LYZJ.UserLimitMVC.IDAL)的接口也丰裕多,并且每个实体都对应一个RoleRepository(仓储),UserInfoRepository(仓储),重点是每个实体仓储的内容基本相同,这时候大家就想肿么办吧?假如每个都写的话,工程量大(假若有广大个表的话就要写过两个实体接口,不敢想象这是怎么着工程),而且数据库访问层(LYZJ.UserLimitMVC.IDAL)的内容也需要这么写。

1.
为啥需要源代码

  (2)上边大家来看的这段文字解说了一个问题,那么大家有咋样措施可以让系统活动的给我们去生成这么些事物呢,这时候我们就悟出了代码生成器(TT)模板。

  (1)首先我们或许会境遇这样的问题,很长日子我们一向在做某个项目,可是成功最终的时候,这么些类型出现了几许问题(解决不了),这时候咱们就老大的梦想项目可以回归到大家能运作的时候,还有就是大家做项目做了一段时间了,突然有一天我们想到前段时间大家写的代码有点问题,可以拔取更为简约的法子来贯彻,这时候我们就想怎么能够快捷的回到咱们想要修改或者另行能运作的地方,这就是源代码管理器的效用。

  (3)既然是代码生成器模板,这就需要大家自己书写模板,只要大家将模板书写好,其他的事物都会帮衬我们自动生成。

  (2)所以我们写的源代码必须要通过一个非常好的工具进行特别精良的管制,而且当大家代码出现问题的时候仍可以举行优异的回滚,回滚到某一天的某一个时间点,也就是说我们付出项目标具有的源代码都要举办保管起来,不可能说存在我们的电脑上边,这是不安全的,假使我们的种类硬盘出现问题,这可尽管总体项目的损失。

  (4)那么我们介绍的就是微软专业的变迁代码的模版,即TT模板。

2.源代码管理器(VSS)介绍

2.T4模板的创立

 (1)
那么通过地方的讲述大家就通晓了俺们要把大家的代码举行源代码管理,那么怎么举办源代码管理吗,下面我画一张图来描述一下,如图:

  (1)首先我们在数据库访问层(LYZJ.UserLimitMVC.DAL)右键添加新建项,然后大家选用健康下边的文本模板选项(在Entity
FrameWork5.0中选择的就是TT模板帮助我们转移一些一致的类),起名为MyFirst.TT,也就是自个儿的首先个TT模板的创建,如下图所示:

   图片 1

   图片 2

 (2)遵照上图我信任我们可以见到源代码管理器的进行以及是何许来成功这个工作的,下边我再稍加的介绍点上图中并未写到的事物。

  (2)当大家创立完TT模板之后,首先大家看看的是一段引述代码,代码如下所示:

 (3)我们开发人士在源代码管理器中要求的是会动用签出文件和签入文件,那么哪些是签出文件呢?本身要对这些文件举办改动的时候要先去服务器签出,签出完成未来就足以对这一个文件举行修改了,当我们修改形成签出的公文从此,而且生成成功了,在提交给服务器,就是签入,这就是签出和签入的分别。

 1 <#@ template debug="false" hostspecific="false" language="C#" #>
 2 
 3 <#@ assembly name="System.Core" #>
 4 
 5 <#@ import namespace="System.Linq" #>
 6 
 7 <#@ import namespace="System.Text" #>
 8 
 9 <#@ import namespace="System.Collections.Generic" #>
10 
11 <#@ output extension=".txt" #>   将txt改为cs

 (4)那么下边我就以我们现在支出的权位系统如何利用源代码管理器举行一番示范,详情请继续往下看

  (3)那时候我们来看第一行里面的language=”C#”,表明大家当下采纳的编程语言是C#,最终一行的output注解是一个输出的对象,extension代表输出的后缀是怎么,在此处我们要出口类公事,所以将txt改为cs。

3.对源代码管理软件VSS的设置

3.T4模板的简单小案例

 (1)下面介绍完毕之后,大家就想把大家的代码进行源代码管理,不过怎么管理吗?当然大家率先想到的是我们需要一个条件,也就是VSS工具的装置,首先大家打开Visual
Studio,然后单击工具->选项->源代码管理,如图所示:

  (1)当我们知晓TT模板的用途的时候,这时候做为我们初学者的话,我们是不是十分迫切的想通晓TT模板是怎么样编写的呢,下边我就随便写一个循环往复的沙盘给我们演示一下神奇之处,代码如下:

   图片 3

 1 <#@ template debug="false" hostspecific="false" language="C#" #>
 2 
 3 <#@ assembly name="System.Core" #>
 4 
 5 <#@ import namespace="System.Linq" #>
 6 
 7 <#@ import namespace="System.Text" #>
 8 
 9 <#@ import namespace="System.Collections.Generic" #>
10 
11 <#@ output extension=".cs" #>
12 
13 using System;
14 
15 public class Kencery
16 
17 {
18 
19 <# for(int i=0;i<10;i++){#>
20 
21     public int HYL<#=i#>{get;set;}
22 
23 <# }#>
24 
25 }

 (2)如上图,我们就会看到源代码管理其中有一个当下源代码管理插件的下拉框,假使我们没有安装VSS的话,因该就唯有一个Visual
Studio Team Foundaton
Server,假诺我们安装了VSS的话,展现的功能应该和自身的一摸一样。

  (2)在大家WebForm的时候大家是何许来贯彻C#代码的吧?就是<%
 %>格式来兑现对C#代码的操作,而在TT模板里面我们有些扭转了一下,这就是<# 
#>。

 (3)如果大家没有设置VSS的话先去网上找一个VSS的软件如故在下边给自身留言,我将会发给我们,然后找到setup.exe文件举行设置,安装步骤我再这里不说了,傻瓜式安装,当安装到位之后大家关闭Visual
Studio重启之后我们就足以在工具->选项->源代码管理器里面来看如上图所示了。

  (3)这段代码很简短,大部分博友应该了然怎么看头?假若我们不领悟的话可以随时Q我,我们一道研讨,这里就背着了,当我们书写万TT代码的时候,然后我们单击保存的时候就会自动生成一个MyFirst.CS类,对应上面TT模板中代码生成的代码如下:

 (4)当大家设置VSS之后,这时候我们在工具里面的脚下源代码管理插件里面肯定要选用Microsoft
Visual
SourceSafe选项,然后下面我们就起初一步一步的搭建这些源代码管理了。

 1 using System;
 2 
 3 public class Kencery
 4 
 5 {
 6 
 7     public int HYL0{get;set;}
 8 
 9     public int HYL1{get;set;}
10 
11     public int HYL2{get;set;}
12 
13     public int HYL3{get;set;}
14 
15     public int HYL4{get;set;}
16 
17     public int HYL5{get;set;}
18 
19     public int HYL6{get;set;}
20 
21     public int HYL7{get;set;}
22 
23     public int HYL8{get;set;}
24 
25     public int HYL9{get;set;}
26 
27 }

4.
哪些添加项目中到源代码服务器(VSS)

  (4)在TT模板里面有很多的知识点,当然我也尚无学到,只是会点简单的东西来利用而已。这篇博客我就将我所会的都写出来了,一般境况下大家很少自己去写TT模板,直接去安装插件或者去网上搜寻来落实。

 (1)那么大家怎么将自己眼前的品类增长到源代码管理服务器中去啊?首先我们在化解方案下面用鼠标右击采用将迎刃而解方案添加到源代码管理(或者大家采取文件->选代码管理->将解决方案添加到源代码管理),打开如图所示:

4.基于数据库中的表生成所有表对应的存储

   图片 4

  (1)遵照上述的介绍我们早已大约的知情了怎么去行使TT模板,下面我们就本着那个序列来兑现一个基于数据库中的表生成所有表对应的蕴藏的TT模板,我们开拓数据库访问层(LYZJ.UserLimitMVC.DAL)里面的RoleRepository的代码,复制到我们建立的TT模板中,RoleRepsoitory中的代码如下所示:

 (2)上图的意思是充裕一个源代码管理数据库的引路,就相当于添加了一个数据库,然后单击下一步,如图所示:

 1 using System;
 2 
 3 using System.Collections.Generic;
 4 
 5 using System.Linq;
 6 
 7 using System.Text;
 8 
 9 using System.Threading.Tasks;
10 
11 using LYZJ.UserLimitMVC.IDAL;
12 
13 using LYZJ.UserLimitMVC.Model;
14 
15 
16 namespace LYZJ.UserLimitMVC.DAL
17 
18 {
19 
20     public class RoleRepository : BaseRepository<Role>, IRoleRepository
21 
22     {
23 
26     }
27 
28 }

   图片 5

  (2)然后我们新建一个TT模板I瑟维斯(Service).TT模板,将方面的代码复制到TT模板中举行修改,首先我们看上边注解的类就是我们读取出数据库中的表名再添加Repository后缀,也就是RoleRepository,然后大家后边的接轨的及仓储是稳定的,变换一下表名即可。还有前面的接口也是换掉中间的表名,一些细节的事物本身在注注释里面都写了,我们可以参考一下,最终就会改成如下的TT模板:

 (3)上图大家见到了有两个挑选,一个是Connect to
an existing database(连接一个以存在的数据库)。另一个是Create a new
database(创制一个新的数据库),那么她们有哪些分别呢?下来自己不怎么的说一下:先是即使我们拔取Connect to an existing
database单击下一步我们就会到另一个页面,在哪个地方页面里面大家可以自己选用自己机器上的某一个源代码管理库,假若是局域网的话,我们的Loaction地址这样写就好了:\\192.168.1.250\kencery.ini文件,或者我们可以一向单击Brower采纳
。但是我们因为是第一次用VSS管理工具,所以大家拔取创造一个新的数据库(Create
a new database),然后单击下一步如图所示:

<#@ template debug="false" hostspecific="true" language="C#" #>

<#@ include file="EF.Utility.CS.ttinclude"#>  //引进TT模板的命名空间

<#@ output extension=".cs" #>

<# CodeGenerationTools code = new CodeGenerationTools(this);

MetadataLoader loader = new MetadataLoader(this);

CodeRegion region = new CodeRegion(this, 1);

MetadataTools ef = new MetadataTools(this);

string inputFile = @"..\\LYZJ.UserLimitMVC.Model\\DataModel.edmx";

EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);

string namespaceName = code.VsNamespaceSuggestion();

EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);

#>

//使用TT模板生成代码的片段

using System.Data.Objects;

using LYZJ.UserLimitMVC.IDAL;

using LYZJ.UserLimitMVC.Model;



namespace LYZJ.UserLimitMVC.DAL

{

    //在这里需要一个for循环来遍历数据库中所有的表放置在下面即可,这样就实现了所有的表对应的仓储显示出来了。

<#

    //使用foreach循环遍历ItemCollection.GetItems<EntityType>集合

    foreach(EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e=>e.Name))

    { #>

        public partial class <#=entity.Name#>Repository : BaseRepository<<#=entity.Name#>>, I<#=entity.Name#>Repository

    {

    }

<#}#>

}

   图片 6

  (3)下面的这段TT模板的代码实现了将数据库访问层的实体代码全体转换成cs代码,因为我们前日实体模型中富含Role和UserInfo两张表的音信,所以最后接纳TT模板生成的代码如下所示:

 (4)上图的意趣是:让大家将数据库放到什么岗位,大家单击Browse,然后我们挑选一个途径(一般情况下大家放手C盘即可),然后我们单击下一步,将谋面世一个给数据库重新起名的文本框,我们采纳默认即可,在单击下一步如图所示:

 1 //引进TT模板的命名空间
 2 
 3 //使用TT模板生成代码的片段
 4 
 5 using System.Data.Objects;
 6 
 7 using LYZJ.UserLimitMVC.IDAL;
 8 
 9 using LYZJ.UserLimitMVC.Model;
10 namespace LYZJ.UserLimitMVC.DAL
11 
12 {
13 
14     //在这里需要一个for循环来遍历数据库中所有的表放置在下面即可,这样就实现了所有的表对应的仓储显示出来了。
15 
16     public partial class RoleRepository : BaseRepository<Role>, IRoleRepository
17 
18     {
19     }
20 
21     public partial class UserInfoRepository : BaseRepository<UserInfo>, IUserInfoRepository
22 
23     {
24     }
25 }

   图片 7

  (4)记得在模板里面和数据库访问层里面的代码在注脚类的时候都要定义成部分类,什么效益相相比较大家都知情,就不看重说了。

 (5)上图我们又见到了六个采用,他们是六个可以运用的格局,第一个形式的趣味是锁住-修改-解锁的模式(也就是同一时间只允许一个人开展修改),第二个情势的意思是拷贝-修改-合并的格局(同一时间允许五人可以对文件举办修改),一般意况下我们默认选项第一个即可,然后单击下一步-最后单击完成,当单击完成的时候弹出了如图所示的VSS登录界面:

  (5)在这边我要申明的某些就是无论大家未来再写代码或者干和写代码相关的政工的时候,只要碰着是生成的代码,我们都要定义成部分类(partial)。

    图片 8

5.小结

 (6)上图中展现了我们将源代码管理的数据库创制好了,密码默认是平素不的,用户名系统一贯自动取出来了总结机的用户名,然后我们单击OK,出现下边页面:

  (1)这篇博客我就大概的说了一下TT模版的接纳,说的不够详细,相信我们也从这一点看不出来什么,我在这客观推荐这篇博客,大家能够自己学一下TT模板的施用,真的异常有利,简单!参考资料。

   图片 9

    学习材料:http://www.cnblogs.com/lzrabbit/archive/2012/07/15/2591085.html

 (7)然后大家再单击OK按钮,会指示一个消息说我们从未改目录,是否成立此目录,我们采纳Yes,这时候就把大家脚下的缓解方案提交到数据库中去管理了。这样我们就将我们的系列增长到源到管理器里面去了。

  (2)后天我们就从头在说说源代码管理器的应用,我说的是VSS,也就是针对性项目以来一下,可能依旧讲的怎么使用,即便我们想要详细的读书的话,指出多去网上搜搜。

 (8)当大家把我们的花色增长到源代码管理之中去的时候我们的连串前边都显得加了一个锁,有小锁的话就意味着了俺们眼前项目被源代码管理器管理。这时候你再刚才所接纳的文书夹下边可以看到成千上万文本。

  (3)最终祝福大家肢体健康,远离禽流感!!

5.利用源代码服务器对项目代码进行改动

 

 (1)
经过地点的总计之后,现在我们的源代码已经被源代码管理器管理起来了,那么此时我们新建一个控制器LoginController.cs,这时候我们控制器对应的前边没有小锁,然而有一个加号,这就意味着那些项目是新加的,然后我们右键再LoginController控制器下面右键签入到源代码管理器之后,前面变成了小锁,这时候我们修改LoginController.cs的代码。

源码下载

 

   (1):总体源码下载

  

  Kencery回到本连串开篇

  

 (2)
当我们给LoginController.cs项目里面随便加个注释的时候,控制器类对应的眼前变成了小红对号,鼠标放上去的时候显得已占据的章程签出给本人,这就代码大家的这些控制器类已经签出,这时候别人就不能签出这么些文件了,只有当我修改完这些控制器类然后签入到源代码管理器中的时候外人才能够在签出。

 (3)当我们修改形成将来,我们一定要生成一下档次,如若没有任何问题的话,我们就能够将这一个控制器类签入了,在您想要签入的主宰器类下边右键选用签入,然后如下图所示:

   图片 10

 (4)如上图,就是自己签入Login控制器的时候的始末,在此处我们一般情况下都要写上诠释内容,方便我们查阅究竟干了怎样,最终单击签入,完成将来对应的控制器前面又冒出小锁评释我们签入成功了。签出也有同等,在这里我就隐瞒了。

 (5)上边我对签入和签出举办了大概的印证,其实也很粗略,没什么的,只要大家通晓签入和签出是怎么样意思就行,签出就一定于告诉源代码服务器本身要以独占的方法来修改这一个文件,签入就一定于把您改改的事物重新提交会源代码服务器。

6.使用源代码服务器对品种代码举行回滚管理

 (1)那时候大家在对Login控制器举办第二次的改动,并且重新在放置到源代码服务器里面,写上诠释。

 (2)然后大家回滚到第二次修改从前,那么怎么回滚,同样,大家挑选Login控制器右键采用查看历史记录,会弹出一个让咱们输入从哪里到哪儿的小窗体,默认不管,直接单击OK即可,如图所示:

   图片 11

 (3)如上图呈现了富有的修改记录,首先1是刚起首大家创立的,2和3分头是大家举行修改后重写签入的情节,下边大家就可以想像的看看我们的签入音讯,然后在左侧有一个Diff(相比),我们采纳第二个签入的始末,然后采纳Diff,弹出的窗体默认,单击OK,就能观看现在的代码和第二次有如何分别,如图所示:

  图片 12

 (4)那么大家怎么回滚到第二个转移的品类呢,我们看到了(2)图中有一个RollBack,然则倘诺我们回滚回去的话我们就在回滚不回来了,所以在操作的时候依然要特其余瞩目,单击RollBack,会有提醒信息,不要管,直接单击Yes,这时候大家的类别就回滚到第一次的时候了。

 7.小结

 (1)通过上面的牵线,我们发现我们我们在博客刚开端指出来的多少个问题都早就解决了吗,这就是源代码管理的好处。

 (2)下篇博客大家就真是开头对权力的剖析讲解,后日自己将伊始伊始写用户登录,希望我们可以补助,你们的支撑就是自我的重力,谢谢我们,最终很晚了上张图提提神,大家肯定要向雄鹰一样飞向远方。

   图片 13

 

    VSS软件安装包下载地址:http://pan.baidu.com/share/link?shareid=382444&uk=856815276

 

源码下载

 

   (1):完全源码下载

 

  Kencery回来本序列开篇

  

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图