从5月份开始就想对这两年的各个业务系统的实战应用所发现的问题及可优化的部分做一个统一的升级,用了几周终于算满意了。
这次更新主要分代码生成器及前端、后端3个部分来介绍,文字只写重点部分,更多直观变化请看视频介绍,同时最好的学习方式是升级源码。
代码生成器
1、新增WebApi的Controller的生成
类似WebForm程序中配套的ashx一般处理程序,我们WebApi2.0的后端项目所需的控制器可以根据数据库中的表一键生成。
2、增加自定义模板目录功能
设定好自定义模板的文件夹名称,比方说:Troy,那么在代码生成器的根目录下创建Troy文件夹,然后将以下四个目录全部复制到Troy文件夹即可。
有些自定义的内容更改就可以编辑Troy文件夹下的这些模板。
后端的更新
1、ToUpper和ToLower
代码生成器及业务层、Web层、WebApi层的很多地方,对于字符串的比较很多地方不统一,现在统一为StringComparison.OrdinalIgnoreCase等参数的形式。
这里参考了微软官方的推荐风格:Recommendations for String Use
When developing with the .NET Framework, keeping a few very simple recommendations in mind will suffice to solve confusion about using strings.
DO: Use StringComparison.Ordinal or OrdinalIgnoreCase for comparisons as your safe default for culture-agnostic string matching.
DO: Use StringComparison.Ordinal and OrdinalIgnoreCase comparisons for increased speed.
DO: Use StringComparison.CurrentCulture-based string operations when displaying the output to the user.
DO: Switch current use of string operations based on the invariant culture to use the non-linguistic StringComparison.Ordinalor StringComparison.OrdinalIgnoreCase when the comparison is linguistically irrelevant (symbolic, for example).
DO: Use ToUpperInvariant rather than ToLowerInvariant when normalizing strings for comparison.
DON'T: Use overloads for string operations that don't explicitly or implicitly specify the string comparison mechanism.
DON'T: Use StringComparison.InvariantCulture-based string operations in most cases; one of the few exceptions would be persisting linguistically meaningful but culturally-agnostic data.
2、BaseSystemInfo新增多个全局参数
/// /// 是否启用Windows域身份认证自动登录 /// public static bool IsWindowsAuthentication = false; /// /// 上传附件文件后缀 /// public static string UploadFileExtension = "doc,docx,xls,xlsx,ppt,pptx,txt,csv,pdf,gif,jpg,jpeg,png,bmp,rar,7z,zip,wma,mp4,msg,apk,ipa"; /// /// 上传视频文件后缀 /// public static string UploadVideoExtension = "flv,mp4,avi"; /// /// 上传音频文件后缀 /// public static string UploadAudioExtension = "mp3"; /// /// 用户角色前缀(用于用户自行管理用户和角色) /// public static string UserRolePrefix = ""; /// /// 排除用户角色前缀(用于用户自行管理用户和角色) /// public static string ExcludedUserRolePrefix = "Common";
代码定义位于DotNet.Util中,具体的用法不变,每个参数的意义和默认值请注意下。
前端升级
1、Layer全部统一到最新的3.1.1,包括英文版我们也做了更新。
Layer是我们WebApplication的弹窗的核心第三方插件,以前项目好几个业务系统因为稳定运行就没更新,这次全部升级到最新的版本。
2、devbridge/jQuery-Autocomplete从1.4.10升级到1.4.11
同样这个是我们WebApplication的核心下拉选项自动完成插件,配合我们的ashx一般处理程序使用。
3、g2升级到最新
g2是我们的可视化图表的插件,它每个版本的改变都挺大,这次也狠心升级到最新的了。
4、界面改变
权限管理页面(位于WebApplication下的Modules/Common目录下)现在都是可以多级弹窗,并且主弹窗都从右侧弹出。
5、域账号登录集成
分两种形式,第一种如下图,可以输入域账号密码进行登录。
第二种,就是开启IIS的域身份验证,取消匿名身份验证。在Login页面会自动检测当前Windows域账号,并自动登录。
6、主页面增加Tabs方式
主页面有两个,一个是Main.aspx,一个是MainTabs.aspx,因为现在流行Tabs的方式打开新页面。但喜欢老方式的还可以继续使用Main.aspx作为主页面。直接通过Web.config下的MainPage参数来配置即可。
7、中英文区分开
以前的模板写成 lang="zh-cn">现在改为
,规范一下。8、新增功能、bug修复和已不再使用的文件清理
这里太多了,就不赘述了。
升级方式
对于DotNet.Kernel和DotNet.Kernel.Plus两个项目文件夹中的项目变化,直接覆盖您的代码即可。
对于WebApplication,排除你的业务系统的代码,其它都可以直接覆盖替换。
如果Web页面自定义修改比较多,强烈建议使用Beyond Compare软件进行对比升级。
注意:如果您是英文版的WebApplication,请稍后一段时间,我们会推出单独的英文升级版本。