【C# mvc5】使用mvc5 +bootstrap+EF6搭建一个权限管理系统的心得体会

使用mvc5的体会,是 业务代码都可以独立分层,比如搭配多层架构,通过controller控制器传递需要渲染的列表,按钮、接受前端返回的实体模型等。总之我觉得要在前端渲染的数据可以写在controller里,通过viewbag 或者viewdata 或者返回视图的对象里传个modal就可以了。
 
mvc5前端视图我使用的是cshtml的视图,用razor语法,可以省去许多传统的html标签,但我觉得还是少用那个语法,因为如果想要移植这个视图到其他不是c#的项目,估计就要改回来(不过可以尝试运行这个项目后,去浏览器查看渲染后的网页源码的方式移植前端代码,但还是麻烦了)。
 
mvc5的路由,我用的不深入,用的是默认的路由,这次学习码代码过程中也没机会去了解。相对于asp.net的地址,这个mvc5的更加的抽象了,从asp.net的访问地址我觉得可以看出所在文件的物理目录,但mvc5的路由,是靠域/控制器名称/action名称/参数匹配的,是和物理路径没得丝毫关系得。在mvc5中遵循默认的约定,action的名称对应者视图的名称,还要把控制器和视图文件放到对应的文件夹下。
 
最后在使用mvc5中,在App_Start下有个BundleConfig的类,这里是在前端渲染css和js脚本的。但我想说的是,通过在这个文件下绑定需要引入的js和css文件,那么我在写代码的时候就能使用css和js方法的智能提示了,这个是很方便的。
 
最后表单提交到控制器的值,完全可以通过模型接受,不用去一个个的Request的获取了,可以说是非常的方便,如果是在java的springmvc中,还得安装专门的jar包之后,才能有这个功能。
说起java,java写代码会有连接池的专门代码,但C#用sqlServer我觉得据我了解似乎就不用去考虑连接池的问题了,在网上一搜 C# 连接池 关键字 也搜不到多少相关信息。
java对数据库操作的封装也没得C# 的ado.net简单,比如就C#的DataTable 这个对象,可以说用起来非常的方便,但java原生的就没有,在java写传统的sql过于繁琐,还是C#的ado.net来的方便些。感觉C#的ado.net非常的简洁好用对于java来讲。
 
对于EntityFramework6的使用,感觉就是从写sql中解放出来了,而且使用ef更能规范对数据库表的设计,就如导航属性,一对多 ,一对一,多对多的设计,设置了外键之后,要设置级联删除这些。增删改直接操作实体,不用去一个个的为字段写sql参数了,开发的效率肯定提高了很多。这个东西我用的也不深入,18年工作时,用过一段时间,复杂点的业务会写写linq,linq写不来的也可以写sql。感觉还是需要懂点sql的才好,不知道一开始不懂sql的来用这ef会觉得好用不,我感觉一般还是的学习sql的那些概念,比如连接,分组,筛选,排序。
 
bootstrap,我的体会是他的栅栏系统,这个非常的不错,直接不用自己去写样式布局了,还有其他的导航,下拉,按钮样式,模态框,tab切换,表格,表单 这些都封装的很好。但是对表格这个如果是要深入的操作,可能就没得layui的表格强大了,需要借助基于bootstrap的table插件来做,但想做的化,网上的资料很多,我就是直接百度就把我对表格的操作实现了。还有树结构也要借助第三方插件,使用起来,要和后端交互的化,后端的节点Id是要自己改插件代码来加的,网上也有资料的。还需要注意的是bootstrap的表格响应式的化,屏幕分辨率变小,表格就会很丑的,这个也可以通过加css样式控制解决。
 
权限的表结构设计,权限在前端的渲染,权限的控制我是了解了Rabc基于角色的权限设计,在阅读别人的代码,看看视频,才有了稍微清晰的了解。自己动手从无到有,从后端到前端动手慢慢搭建出来了,感觉不是很好的是权限在前端的渲染做的不好,前端的js代码也完全是在胡乱的乱堆砌,没得规范的。写前端,感觉 用jquery去操作那些html元素,代码会有很多重复的,感觉是自己写前端不会像写后端那样灵活的去封装类了,感觉在前端面对那些html元素,使用jquery起来,我都不知道如何用js代码去封装类了,想起来也觉得奇怪。面对前端,想到什么对html元素的操作,脑子里立马就是起一个方法,要不就是jquery的click函数,感觉js没了c#那样的规矩,我的js代码就凌乱不堪了。
 
还有就是感觉做这个,前端花的时间多得多,大部分时间都在调试前端的渲染问题,后端一股脑的增删改查。我感觉要想真的对后端技术,什么redis,rabbit,kafka等队列,还有什么分词技术,三方登录,单点登录,跨域,sql优化,分库分表等等高大上的技术,没得点真实的大点的项目是学不好的吧。
但技术都是为了产品服务的,不管用不用什么先进的技术,产品对于客户来讲,做到好用就行,所以作为一个编程者,还是要把产品做好。客户买单才是最好的。 
以上就是我的心得体会,后续,在总结总结代码层面的,以免遇到同样的问题,又去百度,总结下来,直接翻看自己的博客,效率就高了。


原文地址:https://www.cnblogs.com/HelloQLQ/p/14952368.html