困境

追溯到2018年5月份,是个炎热的夏天,毕业后1年7个月我提出了离职,原因是受不了原来公司过度的封装框架感觉一年多毫无进步与实施天天轰炸般的电话,偶然间出去面试了一次发现自己知识真的是比较局限,决定换个环境提升自己,5月份出去面试屡屡碰壁,还好在老同事的介绍下进了个相关行业的公司,尽管还是一样的框架一样的味道,但是还是下定决心不管工作再忙都要不断的提升自己,哪怕每天进步一点点,我相信老天不会辜负有心人,可能今天你的付出不会立刻得到回报,但总会在未来的某一天,收获悄然而至。

挣脱

下定决心学习后的第一个问题就是,我该学什么,从哪个方面入手,往大了说框架,算法,前端,往小了说图像,工具,消息推送等等,经历了一段时间的迷茫我还是决定从一个平常开发过程中自己觉得麻烦的问题入手——DB层工具,第一家公司使用的DB层是微软企业库,漫天的SQL的语句真的是痛不欲生,一个项目下来,DB类都有个小2万行出头,所以决定在微软企业库的基础上封装一个通用操作工具,就这样有了目标之后,先按照自己的想法做了一版,查找了很多资料,不断的重构优化,学习了解网上看到感觉有兴趣或者自己从来没有听说过的技术,就这样算是对自我学习有了一个入门。相信大家也有过这样的经历,想去学一项技术或者一个框架,文档教程都很齐全,但就是学不下去,我觉得可能给自己定一个目标做出一个东西会学习来更加迅速和快乐,有需求才会有产出,通过DB操作工具的造轮子,我逐渐了解了自定义的Attribute,反射,Emit,IOC,事务的传递等等平常一带而过看到却没有静下心来去真正自己理解一下的知识点,项目大家有兴趣可以去看一下https://gitee.com/grassprogramming/FastORM

自由

有了学习的兴趣之后后续恰好了解到了Vue,觉得挺便捷的,于是决定从平时使用的模态窗口入手造了一个轮子,反反复复修改测试,又完成了一个自己小作品。2018.10月份朋友介绍了个小程序的小项目做着玩,就去研究了下springboot的使用和微信开发,算是增加了自己的知识面,中间又通过Java把自己写的DB操作工具翻译了一遍,收获良多。后面觉得公司既然能封装框架那自己试试看说不定也能做到呢,后续就接触到了ASP.NET MVC,AutoFac,Redis,EntityFrameWork,ElementUI等等涉及到的技术框架,于是开始了FastExecutor编写。

收获

FastExecutor是一款适用于小型项目(后台管理类)的快速开发框架,做到了页面数据分离,但是没有使用前后端分离,因为感觉Vue的单页应用形式对于小型项目增加了部署与开发的复杂程度。框架主要包含以下几个模块

组织架构:部门管理,人员管理

权限管理:模块管理,角色管理

数据管理:快速开发平台(在线建表,生成代码),附件库的分离

常用功能:字典项,系统参数,系统日志监控

可视化定制功能:首页元件管理,定时任务可视化配置集成

框架主要技术涉及到ASP.NET MVC,自定义DB操作类,自定义IOC容器,ElementUI,Redis的全局Token认证与基于Redis订阅发布的自定义消息组件等等,在实际的开发过程中,模仿现有开源框架的一些的功能加入到自己的框架中来,我觉得是最好的学习方式。

代码地址:https://gitee.com/grassprogramming/FastExecutor

演示地址:http://demo.fastdo.club/FastExecutor    admin/1

说明文档:http://doc.fastdo.club/FastExecutorBook/#/

未来

FastExecutor框架算是对自己一年多学习成果的一个总结,完成了自己一直想做的一些事,但是这并不是终点,后续会开始.NetCore的学习,对框架进行一个技术重构和功能补充,未来希望将工作流集成到框架中,做到可视化配置和流转,最后送上自己很喜欢的一句话:种一颗树最好的时间是十年前,其次是现在,祝好!

ASP.NET MVC快速开发框架FastExecutor开发全过程感受及总结的更多相关文章

  1. ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets(转)

    jqwidgets.js: 是一个功能完整的框架,它具有专业的可触摸的jQuery插件.主题.输入验证.拖放插件.数据适配器,内置WAI-ARIA(无障碍网页应用)可访问性.国际化和MVVM模式支持. ...

  2. ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets

    jqwidgets.js: 是一个功能完整的框架,它具有专业的可触摸的jQuery插件.主题.输入验证.拖放插件.数据适配器,内置WAI-ARIA(无障碍网页应用)可访问性.国际化和MVVM模式支持. ...

  3. ASP.NET MVC快速开发框架清新简洁界面设计,有兴趣可以模仿参考

    软件的用户体验很重要,要抓住用户的心,这篇博文分享一下最近一个项目的UI设计. 我做UI设计是从用户的角度出发的,要去揣摩用户的习惯. 大部分用户都是使用windows操作系统,所以我这套软件的风格也 ...

  4. MVC 快速开发框架

    ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets jqwidgets.js: 是一个功能完整的框架,它具有专业的 ...

  5. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  7. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  8. 【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. 区块链学习笔记:DAY01 区块链的技术原理

    其实很早之前就听过区块链,也看过有关区块链的介绍,那个时候的理解主要还是一句话:分布式记账 然后开始关注比特币,听了有几年了,对于其来历.用途其实一直都是一知半解. 这次的课算是第一次以一个学员的身份 ...

  2. [Mathematics][BJTU][Calculus]Detailed explanations and proofs of the Dirac-Abel Discriminant Methods which deal with the conditional convergence

    So, today we will talk about the conditional convergence and two discriminant methods, namely Dirac- ...

  3. 深入理解 BigDecimal

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...

  4. LSI系列芯片Raid卡配置方法、管理手册

    说明 本手册适用于LSI芯片Raid卡 包括但不限于Inspur 2008/2108 Raid卡.LSI 9240/9260/9261/ 9271 等Raid卡. 不同型号的Raid卡在某些功能上的支 ...

  5. R语言计算IV值

    更多大数据分析.建模等内容请关注公众号<bigdatamodeling> 在对变量分箱后,需要计算变量的重要性,IV是评估变量区分度或重要性的统计量之一,R语言计算IV值的代码如下: Ca ...

  6. LR静态存储/动态存储/指针变量脚本说明

    在一次教程学习中,看到该知识点并记录了下来,希望与大家共同探讨学习. 一.静态存储与动态存储 静态存储变量通常是在变量定义时就分定存储单元并一直保持不变, 直至整个程序结束.动态存储变量是在程序执行过 ...

  7. java_计算个人所得税

    // import java.util.Scanner;public class Test10{ public static void main(String[] args){ // 创建Scanne ...

  8. android studio 刚安装需要配置的东西

    智能提示 调整log区域的字体 快捷键中文乱码 自动导入包 意思是创建成员变量的时候,以m开头 下载插件 提高编译的速度

  9. 推荐使用的派生方法:super().__init__()

    """ 推荐使用的派生方法:super().__init__() --super()的属性查找顺序是从当前位置开始找,根据mro列表,当前没有就往上找. super() ...

  10. Linux系统入门简介<1>

    linux系统入门简介 我们为什么要学习Linux? 在介绍Linux的历史前,我想先针对大家如何对Linux的发音说一下.我发现我身边的朋友对Linux的发音大致有这么几种: "里那克斯& ...