• 系统小结


    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结

    不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这块比较敢兴趣,讲不讲验证还是看大家的反映),我们应该对系统有一个小结。
    首先这是一个团队开发项目,基于接口编程,我们从EasyUI搭建系统的框架开始,开始了一个样例程序对EasyUI的DataGrid进行了操作,并实现Unity的注入到容器,使程序 
    的性能大大提升,代码质量上升,更佳利于单元测试,使用日志和异常坚固系统稳定性等等。。。。


    当然你应该觉得系统还有存在很多不足,我们应该动手来优化一下。
    下面我罗列了需要优化的项目,如果你觉得还有优化的,请提交,我将加入以后的文章中去

    1. UI方面,我们的easyui window弹出窗体,是不是没有居中,好丑啊;
    2. DataGrid虽然我在绑定时候写入了根据第一次窗体的变化去适应框架,这时你点击游览器的缩小或者扩大按钮,那么你的DataGrid变形了;
    3. JS我们在Details页面引入了JS,我们是否应该把他嵌入到_Layout_----里面去?并进行捆绑?
    4. 我们DataGrid返回的日期格式是/Date(20130450000365)你看得懂吗?
    5. 我们的BLL每次都要去实例化 DBContainer db = new DBContainer();重复操作,我们是不是应该写一个BaseBLL基类类继承
    6. 我们前端很多提示信息都一样,是不是应该封装起来,比如点击:Details时没有选择提示的“请选择要操作的记录”
    7. 工具栏的增、删、改按钮一样每次粘贴的代码也不少,我们应该扩展Mvc的HtmlHelper的封装,之后我们@html.就出来了多方便,以后还用于权限控制

    优化后的系统将可能做为最后一个发布源码的版本,如无必要以后不再提供源码下载,但所讲的内容中,将全部包含完整源码,请你将完成的系统“珍藏”起来,因 
    为这是你的劳动成果

    最后我们将接受一个更大的目标挑战,权限管理系统。我觉得这个是大家最关心的事情了,但是在此之前,我们将要补充一些知识。

    • MVC自带的过滤器用法
    • MVC路由Rotun概念

    权限系统讲完了,我们讲T4模板,导出报表和图表,文件上传,系统设置等等补充..让我们的系统拿出来就能当项目来用。
    由于接下来的东西逻辑性和编码都要比之前的复杂很多,所以更新可能会比以前慢。请大家耐心等待,谢谢园友的支持,无论多忙我都会不断的更新

    现在我们先来解决以上7个问题吧!

    1.UI方面,我们的easyui window弹出窗体,是不是没有居中,好丑啊;

      Easyui 让Window弹出居中
    2.DataGrid虽然我在绑定时候写入了根据第一次窗体的变化去适应框架,这时你点击游览器的缩小或者扩大按钮,那么你的DataGrid变形了;

      Easyui 让DataGrid适应浏览器宽度
    3.JS我们在Details页面引入了JS,我们是否应该把他嵌入到_Layout_----里面去?并进行捆绑?

      我已经进行压缩了.源码带出.
    4.我们DataGrid返回的日期格式是/Date(20130450000365)你看得懂吗?

      MVC解决Json DataGrid返回的日期格式是/Date(20130450000365)
    5.我们的BLL每次都要去实例化 DBContainer db = new DBContainer();重复操作,我们是不是应该写一个BaseBLL基类类继承

      我已经进行分离,源码带出.
    6.我们前端很多提示信息都一样,是不是应该封装起来,比如点击:Details时没有选择提示的“请选择要操作的记录”

      在App.Common加入以下类Suggestion

     View Code

      在视图中的使用

    复制代码
    $("#btnDelete").click(function () {
                var row = $('#List').datagrid('getSelected');
                if (row != null) {
                    $.messager.confirm('提示', '@Suggestion.YouWantToDeleteTheSelectedRecords', function (r) {
                            if (r) {
                                $.post("/SysSample/Delete?id=" + row.Id, function (data) {
                                    if (data.type == 1)
                                        $("#List").datagrid('load');
                                    $.messageBox5s('提示', data.message);
                                }, "json");
    
                            }
                        });
                    } else { $.messageBox5s('提示', '@Suggestion.PlaseChooseToOperatingRecords'); }
                });
    复制代码

    @Suggestion.PlaseChooseToOperatingRecords'

    7.工具栏的增、删、改按钮一样每次粘贴的代码也不少,我们应该扩展Mvc的HtmlHelper的封装,之后我们@html.就出来了多方便,以后还用于权限控制

      这个必须返回MvcHtmlString和在视图中引入命名空间。在App.Admin的Core文件夹中新建类ExtendMvcHtml

      并加入以下代码

     View Code

      并在视图中使用它,使用例子!

    复制代码
    @Html.ToolButton("btnQuery", "icon-search","查询",true)
    @Html.ToolButton("btnCreate", "icon-add", "新增",true)
    @Html.ToolButton("btnEdit", "icon-edit", "编辑", true)
    @Html.ToolButton("btnDetails", "icon-details", "详细", true)
    @Html.ToolButton("btnDelete", "icon-remove", "删除", true)
    @Html.ToolButton("btnExport", "icon-export","导出",true)
    复制代码

    迄今为止,我们7个问题已经陆续改完了,由于可能是最后一次发布源码,我想做一个不是很“人道”的事情,源码我将发布到QQ群共享37509873

    希望大家来加入Asp.net高级讨论群

     

    作者:YmNets
    出处:http://ymnets.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

     

     

     

  • 相关阅读:
    学习NAnt Build .CS+Solution+MSBuild+SVN+NUnit+NUnitReport
    每日集成CruiseControl.NET + SVN + Msbuild + NAnt
    通过spring.net中的spring.caching CacheResult实现memcached缓存
    c# 简单文件流读写CSV文件
    ajax系列之用jQuery的ajax方法向服务器发出get和post请求
    我的2016书单以及为2017年准备的书单
    微信网页开发之获取用户unionID的两种方法--基于微信的多点登录用户识别
    微信开发之分清公众平台和开放平台、公众号全局凭证和网页授权凭证
    网站实现微信登录之回调函数中登录逻辑的处理--基于yii2开发的描述
    网站实现微信登录之嵌入二维码——基于yii2开发的描述
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3439528.html
Copyright © 2020-2023  润新知