Charley Blog 代码剖析【总说】

Hello,大家好,从今天开始,我会逐步讲解Charley Blog代码的各个层面。一方面是为了回顾下自己在整个开发流程中所涉及的各个知识面,另一方面也供有需要的朋友进行参考。本人推崇开源精神,所以在博客完善之后,会奉上代码。


为了让大家对代码有个清晰得认识,我打算分几个部分从不同的层次进行介绍,敬请关注。

系列介绍

    1. 总说:总览本系统,介绍本系统所使用的语言、工具、架构等。

    2. 开发伊始:项目的启动总是很激动的。在这个部分,我会介绍下自己在打算开发这个系统之后,具体开发(coding)之前所做的一些事情,包括项目计划、需求整理、架构设计、环境准备等。

    3. 基础却最重要的数据:数据是所有Web 2.0的灵魂,本系统的数据层基于EntityFramework框架搭建,其中使用了Repository、UoW模式。

    4. 核心的业务:这一层虽然核心(因为它掌管了整个系统的业务流程),但并不像其它层次那样有太多可圈可点的技术可供讨论。

    5. 优雅的MVC:接触过MVC的朋友应该都或多或少地对MVC的优点有点了解,本节按惯例也会介绍下MVC的优点,之后会通过实际的代码告诉你如何在开发中使用及一些需要注意的地方。

    6. 异常处理:合理的异常处理,能够让用户远离红色的错误页面,转而以更亲切的方式告知用户出错了。同时搭配使用日志组件,将每个错误都进行详细的记录,以便网站管理人员可以通过日志及早地发现漏洞。

    7. 头疼的页面设计:对于我这样的程序猿来说,设计的能力无限接近于0,在这部分你将会看到菜鸟是如何让这个页面出无到有的 ...

    8. 升级到ASP.NET MVC4:吸引我升级到MVC4的主要有2个原因:OAuth的支持 和 页面优化的支持。


总说

Blog 在开发之初被赋予的主要功能为:会员管理、文章管理、分类管理、权限管理、意见建议管理。另外,该项目还被寄以借此让自己对各项技术有一次更亲密接触的厚望。Blog采用了业界最为熟知的三层架构进行搭建,即表现层、业务层、数据层。同时为了进一步提高整个架构的灵活性、降低模块间的耦合度,在表现层与业务层之间,业务层与数据层之间又各增加一个接口层(教科书上怎么说的?要依赖抽象,而不是依赖具体的类),然后通过IoC注入框架将实际使用的类进行注入操作。简化的整体架构如下所示:


表现层
业务层接口
业务层
数据层接口
数据层


图 1:Blog系统基础架构


其中表现层基于Asp.NET MVC3框架(后期升级到Asp.NET MVC4),并使用了HTML 5这种新的前端开发语言,向客户端(浏览器)呈现本博客。

数据层则以EntityFramework作为基本框架,使用CodeFirst方式从代码直接生成数据库。为了尽可能减少与Sql Server数据库的耦合,使用了Repository模式,而为了多个repository操作的协调,又使用了UoW模式进行工作的协调。


开发工具:Visual Stuido 2010 及 2012,MS Sql Server 2008

开发环境:Windows 7 x64, IIS 7,.Net Framework 4.5


产品环境:Windows Server 2008 R2 标准版 SP1 64位中文版,IIS 7,MS Sql Server 2008 Express



下一步,我将向大家介绍下在Charley Blog开发开始前的一些准备工作。

文章索引

[隐 藏]

本站采用知识共享署名 3.0 中国大陆许可协议进行许可。 ©2014 Charley Box | 关于本站 | 浙ICP备13014059号