Git.Framework 是近几年工作的一些工作经验总结,虽不能和某些知名的框架相提并论,但是还是比较实用的。此框架经过三年多的升级和维护,已经具有较强的实用性,在此记录该框架的使用操作方式,贡献给公司第一线开发的技术人员们,感谢你们所付出的努力。
一. 框架由来
前几年我都是在互联网公司工作,做什么大型B2B,B2C网站。至于有多大就不提了,但是在其间做开发人员使用的技术的确比较辛苦,那个时候公司使用的技术还比较落后,最起码我是这么认为的,开发效率很低,一层不变的开发模式,Copy到想吐的代码。我是从事.NET技术开发的,当时公司还是使用的.NET2.0开发的,要知道2.0 和 3.0 差别还是挺大的,最起码在语法上。
据说公司的框架是参考某个大型B2C网站的,据说当时公司某技术君就是从那里面出来的,使用微软企业库(Enterprise Library) , 于是一个B2C网站+ SNS社区 几乎所有的数据访问操作都是写的SQL语句,而且都是配置在某个文件夹的配置文件中。做过B2C或者SNS方面开发的可以想象得到有多少个SQL语句,当时我估计也有好几千个吧。于是我就想在原有的技术框架上改进这个操作,经过世事变迁最终改的体无完肤也就是现在所谓的的框架(Git.Framework)了。
二. 写SQL语句复杂在哪里
先给大家看看当时我们的SQL语句的写法,以及如何配置:
<dataCommand name="User.UpdateAllBase" database="Git" commandType="Text"> <commandText> <![CDATA[ UPDATE [Gas_BasicCenter].[dbo].[User_Base] SET [UserName] = @UserName ,[Email] = @Email ,[Password] = @Password ,[RegisterDate] = @RegisterDate ,[RegisterIp] = @RegisterIp ,[Status] = @Status ,[RegisterApplicationID] = @RegisterApplicationID ,[ActiveDate] = @ActiveDate ,[LastLoginDate] = @LastLoginDate ,[LastLoginApplicationID] = @LastLoginApplicationID ,[RegisterSource] = @RegisterSource ,[AuditStatus] = @AuditStatus ,[IsLogin] = @IsLogin ,[LoginCount] = @LoginCount ,[LastLoginIp] = @LastLoginIp ,[AuditUser] = @AuditUser ,[AuditDate] = @AuditDate ,[IsDeleted] = @IsDeleted ,[OLDApplicationID] = @OLDApplicationID ,[OLDID] = @OLDID ,[RowGuid] = @RowGuid ,[IMNum] = @IMNum ,[Phone] = @Phone ,[IsEmailValidate] = @IsEmailValidate ,[IsPhoneValidate] = @IsPhoneValidate ,[StepNum] = @StepNum ,[SaleCode]=@SaleCode ,[PasswordIM]=PasswordIM ,[ActiveIP]=@ActiveIP ,[CompanyType]=@CompanyType Where UserId=@UserId ]]> </commandText> <parameters> <param name="@UserId" dbType="Int32" direction="Input"/> <param name="@UserName" dbType="String" direction="Input"/> <param name="@Email" dbType="String" direction="Input"/> <param name="@Password" dbType="String" direction="Input"/> <param name="@RegisterDate" dbType="DateTime" direction="Input"/> <param name="@RegisterIp" dbType="String" direction="Input"/> <param name="@Status" dbType="Int32" direction="Input"/> <param name="@RegisterApplicationID" dbType="Int32" direction="Input"/> <param name="@ActiveDate" dbType="DateTime" direction="Input"/> <param name="@LastLoginDate" dbType="DateTime" direction="Input"/> <param name="@LastLoginApplicationID" dbType="Int32" direction="Input"/> <param name="@RegisterSource" dbType="Int32" direction="Input"/> <param name="@AuditStatus" dbType="Int32" direction="Input"/> <param name="@IsLogin" dbType="Int16" direction="Input"/> <param name="@LoginCount" dbType="Int32" direction="Input"/> <param name="@LastLoginIp" dbType="String" direction="Input"/> <param name="@AuditUser" dbType="String" direction="Input"/> <param name="@AuditDate" dbType="DateTime" direction="Input"/> <param name="@IsDeleted" dbType="Int16" direction="Input"/> <param name="@OLDApplicationID" dbType="Int32" direction="Input"/> <param name="@OLDID" dbType="Int32" direction="Input"/> <param name="@RowGuid" dbType="String" direction="Input"/> <param name="@IMNum" dbType="String" direction="Input"/> <param name="@Phone" dbType="String" direction="Input"/> <param name="@IsEmailValidate" dbType="Int32" direction="Input"/> <param name="@IsPhoneValidate" dbType="Int32" direction="Input"/> <param name="@StepNum" dbType="Int32" direction="Input"/> <param name="@SaleCode" dbType="String" direction="Input"/> <param name="@PasswordIM" dbType="String" direction="Input"/> <param name="@ActiveIP" dbType="String" direction="Input"/> <param name="@CompanyType" dbType="Int32" direction="Input"/> </parameters> </dataCommand>