从零开始编写自己的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项目,并将它设置 ...
随机推荐
- shell变量
定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名 ...
- 如何快速优化手游性能问题?从UGUI优化说起
WeTest 导读 本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法. 在之前的文 ...
- CGI与FastCGI nginx+PHP-FPM
本文转载自CGI与FastCGI 1.当我们在谈到cgi的时候,我们在讨论什么 最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html. ...
- 《JavaScript设计模式与开发实践》整理
最近在研读一本书<JavaScript设计模式与开发实践>,进阶用的. 一.高阶函数 高阶函数是指至少满足下列条件之一的函数. 1. 函数可以作为参数被传递. 2. 函数可以作为返回值输出 ...
- 微信开发 :WeixinPayInfoCollection尚未注册Mch 问题解决
在使用开源项目 SENPARC.WEIXIN SDK 调用微信支付接口的时候出现了WeixinPayInfoCollection尚未注册Mch,这个问题. 最后地解决方案是: 我这个傻逼忘了在全局Gl ...
- BPM始终服务于人,落脚于人
数字经济时代下,云计算.大数据.移动互联已经成为当下企业必须采取的武装力量.随着互联网+.中国制造2025.工业4.0等国家战略的引导与支持,无数的企业在这场数字化浪潮中使尽浑身解数,想要抓住机遇奋力 ...
- Android listview和gridview以及view的区别
GridView 可以指定显示的条目的列数. listview一般显示的条目的列数都是一列 如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView andr ...
- Android中Activity运行时屏幕方向与显示方式详解
现在我们的手机一般都内置有方向感应器,手机屏幕会根据所处位置自动进行横竖屏切换(前提是未锁定屏幕方向).但有时我们的应用程序仅限在横屏或者竖屏状态下才可以运行,此时我们需要锁定该程序Activity运 ...
- 敏捷转型历程 - Sprint3 Grooming
我: Tech Leader 团队:团队成员分布在两个城市,我所在的城市包括我有4个成员,另外一个城市包括SM有7个成员.另外由于我们的BA离职了,我暂代IT 的PO 职位.PM和我在一个城市,但他不 ...
- Linux设备管理(一)_kobject, kset,ktype分析
Linux内核大量使用面向对象的设计思想,通过追踪源码,我们甚至可以使用面向对象语言常用的UML类图来分析Linux设备管理的"类"之间的关系.这里以4.8.5内核为例从kobje ...