从零开始编写自己的C#框架(1)——前言
记得十五年前自学编程时,拿着C语言厚厚的书,想要上机都不知道要用什么编译器来执行书中的例子。十二年前在大学自学ASP时,由于身边没有一位同学和朋友学习这种语言,也只能整天混在图收馆里拼命的啃书。而再后来也差不多,自学了很多不同的知识,都一直只能自己默默的克服一个又一个困难。所以这几年带一些应届生或只有一两年经验的新人时,都会同他们讲:你们现在太幸福了,有问题可以找度娘,还可以找我来解决。做为过来人,能深深的体会到刚入门的时候,没有系统的介绍和老师指导,会多走很多很多弯路和经历过不知多少不眠之夜,头发都不知白了多少根。
虽然工作了这么多年,但一直都没有将自己成长的点点滴滴记录下来,觉得非常的遗憾,很多技术现在都忘了。而在博客园注册博客也有好几年了,也一直空空的,直到去年的七月份,才尝试将自己学习SubSonic3.0的过程慢慢记录下来,然后天天上博客园来刷页面,在这个过程中从各位大牛的身上学到了很多很多东西,非常感谢大家无私的分享。
在写博的过程中,非常羡慕众多大神能写了一系列的文章,自己虽然不是个牛人,也想尝试一下,对自己这么多年的技术做一下总结,写一写一个项目无到有,到最终上线的过程,希望能给初学者一个了解的窗口。
本系列文章主要讲的就是怎么从项目的准备、需求分析、框架设计、编码、测试到服务器的部署,来讲述开发过程中的注意事项和使用相关插件来打造一个快捷开发的ORM框架(当然你也可以使用本系列中讲述的思想,使用其他插件来开发你自己的框架)。
由于近一年时间一直都在接触和使用SubSonic2.2与SubSonic3.0,也接触了不少还在使用或正在学习的朋友,所以写写如何使用SubSonic3.0来开发ORM框架,希望对大家有所帮助。虽然SubSonic插件,也有不少朋友都说它已经过时了、已经没什么人在继续使用了......不过我还是坚持自己的看法,无论是SubSonic还是其他ORM框架插件,只要适合自己的适合公司的就是最好的。当然以后项目有变动也可能会使用其它ORM插件,哈哈...
本文章适合什么朋友?
学过相关开发语言的初学者或有过一定开发经验但对开发与框架架构缺乏经验的人。
下面简单说说这个框架的特点:
在最近几年时间里,我一直在做框架开发,用不同的语言开发了几个不同的框架,要说这几个框架的共同特点是什么:那就是快,不少同事朋友使用了我的框架后,都给了正面的评价,可以减少60%以上的代码量,而开发周期也自然可以压缩50%以上的编码时间(实际上使用了T4模板或相关代码生成工具的都有这种感觉)。不但可以非常快速的完成功能开发,而且进行二次开发也非常方便快捷(除了自己几年前写的第一个框架,呵呵......),当然性能也是不错的。
目录:
从零开始编写自己的C#框架(1)——前言
从零开始编写自己的C#框架(2)——开发前的准备工作
从零开始编写自己的C#框架(3)——开发规范
从零开始编写自己的C#框架(4)——文档编写说明
从零开始编写自己的C#框架(5)——三层架构介绍
从零开始编写自己的C#框架(6)——SubSonic3.0插件介绍
从零开始编写自己的C#框架(7)——需求分析
从零开始编写自己的C#框架(8)——后台管理系统功能设计
从零开始编写自己的C#框架(9)——数据库设计与创建
从零开始编写自己的C#框架(10)——项目实施计划与甘特图
从零开始编写自己的C#框架(11)——创建解决方案
从零开始编写自己的C#框架(12)——T4模板在逻辑层中的应用(一)
从零开始编写自己的C#框架(13)——T4模板在逻辑层中的应用(二)
从零开始编写自己的C#框架(14)——T4模板在逻辑层中的应用(三)
从零开始编写自己的C#框架(15)——Web层后端登陆功能
从零开始编写自己的C#框架(16)——Web层后端父类
从零开始编写自己的C#框架(16)——Web层后端首页
从零开始编写自己的C#框架(18)——Web层后端权限模块——菜单管理
从零开始编写自己的C#框架(19)——Web层后端权限模块
从零开始编写自己的C#框架(20)——框架异常处理及日志记录
从零开始编写自己的C#框架(21)——添加分类类型页面
从零开始编写自己的C#框架(22)——添加普通列表页面
从零开始编写自己的C#框架(23)——上传组件使用说明
从零开始编写自己的C#框架(24)——测试
从零开始编写自己的C#框架(25)——网站部署
从零开始编写自己的C#框架(26)——小结
从零开始编写自己的C#框架(27)——什么是开发框架
从零开始编写自己的C#框架(28)——建模、架构与框架
从零开始编写自己的C#框架(29)——设计用例
......(待续)
(由于个人工作太忙,后面的章节等手上的项目完成的七七八八后会继续写下去)
这不是最终的目录,会在编写的过程中根据具体情况作出调整,如果想要对开发过程描述得更加具体的话,初步估计目录数量会多上2至3倍。本项目只是完成框架以及后端系统的常用功能,对前端与其他方面的内容,如果本系列很受欢迎的话会考虑继续编写实现出来。
总结
要写这一系列文章,朋友们知道后都说好大的工程啊......说的也是,要全部写完,也要好长的时间,水平有限到时也不知道会碰到多少雷区,也不清楚写出来的内容是否表达得清楚,鸭梨山大@_@,不过事情都是逼出来的,希望在写的过程中自己也能得到一个好的提升。
本系列文章会将我开发的过程说明与源代同步更新上来,如果引用了某些文章或使用了某些开源代码也会详细标明出处,其版权归原作者所有,编写本系列文章主要是对自己这么多年工作做一个总结,也希望能帮助到刚入行的朋友,谢谢你的关注,如果觉得本系列文章有帮到你,请帮忙点击推荐。
版权声明:
本文由AllEmpty原创并发布于博客园,欢迎转载,未经本人同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如有问题,可以通过1654937@qq.com 联系我,非常感谢。
发表本编内容,只要主为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:327360708 或Email给我(1654937@qq.com),大家一起探讨。
更多内容,敬请观注博客:http://www.cnblogs.com/EmptyFS/
从零开始编写自己的C#框架(1)——前言的更多相关文章
- 从零开始编写自己的C#框架(2)——开发前准备工作
没想到写了个前言就受到很多朋友的支持,大家的推荐就是我最大的动力(推荐得我热血沸腾,大家就用推荐来猛砸我吧O^-^O),谢谢大家支持. 其实框架开发大家都知道,不过要想写得通俗点,我个人觉得还是挺吃力 ...
- 从零开始编写自己的C#框架 ---- 系列文章
目录: 从零开始编写自己的C#框架(1)——前言从零开始编写自己的C#框架(2)——开发前的准备工作从零开始编写自己的C#框架(3)——开发规范从零开始编写自己的C#框架(4)——文档编写说明从零开始 ...
- [转帖] 从零开始编写自己的C#框架(27)——什么是开发框架
从零开始编写自己的C#框架(27)——什么是开发框架 http://www.cnblogs.com/EmptyFS/p/4105713.html 没写过代码 一直不清楚 框架的含义 不过看了一遍 也没 ...
- 从零开始编写自己的C#框架(25)——网站部署 【转】
服务器安全部署文档 目录1. 前言.. 3 2. 部署环境.. 3 2.1 服务器环境信息.. 3 3. 磁盘阵列配置.. 4 4. 安装操作系统.. ...
- 从零开始编写自己的C#框架(26)——小结
一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...
- 从零开始编写自己的C#框架(25)——网站部署
导航 1.关掉访问保护 2.发布网站 3.复制网站到服务器 4.添加新网站 5.设置网站访问权限 6.设置文件夹访问权限 7.控制可更新文件夹执行权限 8.设置“应用程序池”.net版本与模式 9.附 ...
- 从零开始编写自己的C#框架(20)——框架异常处理及日志记录
最近很忙,杂事也多,所以开发本框架也是断断续续的,终于在前两天将前面设定的功能都基本完成了,剩下一些小功能遗漏的以后发现再补上.接下来的章节主要都是讲解在本框架的基础上进行开发的小巧. 本框架主要有四 ...
- 从零开始编写自己的C#框架(17)——Web层后端首页
后端首页是管理员登陆后进入的第一个页面,主要是显示当前登陆用户信息.在线人数.菜单树列表.相关功能按键和系统介绍.让管理员能更方便的找到息想要的内容. 根据不同系统的需要,首页会显示不同的内容,比如显 ...
- 从零开始编写自己的C#框架(15)——Web层后端登陆功能
对于一个后端管理系统,最重要内容之一的就是登陆页了,无论是安全验证.用户在线记录.相关日志记录.单用户或多用户使用帐号控制等,都是在这个页面进行处理的. 1.在解决方案中创建一个Web项目,并将它设置 ...
随机推荐
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...
- C#多线程之线程同步篇2
在上一篇C#多线程之线程同步篇1中,我们主要学习了执行基本的原子操作.使用Mutex构造以及SemaphoreSlim构造,在这一篇中我们主要学习如何使用AutoResetEvent构造.Manual ...
- 如何利用tcpdump对mysql进行抓包操作
命令如下: tcpdump -s -l -w - dst -i eno16777736 |strings 其中-i指定监听的网络接口,在RHEL 7下,网络接口名不再是之前的eth0,而是 eno16 ...
- 深入解析Sqlite的完美替代者,android数据库新王者——Realm
写在前面: 又到一年一度七夕虐狗节,看着大家忍受着各种朋友圈和QQ空间还有现实生活中的轮番轰炸,我实在不忍心再在这里给大家补刀,所以我觉得今天不虐狗,继续给大家分享有用的. 如果你比较关心androi ...
- canvas快速绘制圆形、三角形、矩形、多边形
想看前面整理的canvas常用API的同学可以点下面: canvas学习之API整理笔记(一) canvas学习之API整理笔记(二) 本系列文章涉及的所有代码都将上传至:项目代码github地址,喜 ...
- 为什么很多SaaS企业级产品都熬不过第一年
因工作缘由,笔者与周边数位SaaS企业级应用的创始人.运营负责人有过深入接触,发现一个有趣的现象:刚起步时,蓝图远志.规划清晰,但是一路下来,却异常艰难,有些甚至熬不过第一年,就关门歇业. 2015年 ...
- SQL 提示介绍 hash/merge/concat union
查询提示一直是个很有争议的东西,因为他影响了sql server 自己选择执行计划.很多人在问是否应该使用查询提示的时候一般会被告知慎用或不要使用...但是个人认为善用提示在不修改语句的条件下,是常用 ...
- json
#json序列化,只能处理简单的数据类型,如:字典.列表.字符串,类和函数等数据类型过于复杂,不支持序列化import jsondef sayhi(name): print('hello,', nam ...
- Matrix4x4矩阵变换、欧拉角转四元数、角度转弧度
Matrix4x4 // 重置矩阵 ][]) { m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] ...
- CentOS Mono Nginx 部署 MVC4+WebApi
CentOS Mono Nginx 部署 MVC4+WebApi 经过几天的折磨,终于在CentOS上成功部署了MVC4+WebApi.Mono上的服务器推荐两种:Jexus(国产高人写的一款很牛的服 ...