基于ASP.NET MVC框架开发Web论坛应用程序

我想通过本系列文章从头到尾构建一个完整的ASP.NET MVC论坛应用程序,最终的目的是探讨和推动使用ASP.NET MVC框架构建应用程序的最佳实践。

1、简介

在本篇中,我想先从全局方面介绍一下论坛应用程序的总体目标。在本篇中,我将讨论一下避免代码坏味道的重要性,还将讨论如何利用软件设计原则和模式来帮助你编写适合未来改变的富有弹性的代码。最后,我还将论证一下为什么我选择使用测试驱动开发方式构建本系列文章中的论坛应用程序。

2、什么样的软件是好的软件

我不想仅仅为了构建论坛应用程序而任意构建此论坛应用程序。我的目标是尽可能构建最棒的论坛应用程序。

这个目标立即引发这样一个问题:什么样的软件是好的软件?是什么导致一个应用程序比另一个应用程序更好一些或更差一些呢?在事先没有一个关于“好软件”的定义之前,我无法声明我构建了一个完美的论坛应用程序。

因此,下面是我对于“好软件”的定义。

3、好软件是设计得易于修改的软件

存在多种原因可能需要你改变软件:

1)你可能需要在一个现有软件上添加新的特征

2)你可能需要修改一个现有软件中的错误

3)你可能需要优化现有软件

4)你可能需要改进现有软件的设计

一般说来,设计糟糕的软件是难于改变的。有些软件设计得如此糟糕,以致于每个人都害怕碰一碰它。我们大家应该都使用过设计得糟糕的软件。当软件不好时,你很希望它干脆走开;甚至如果有机会的话,你可能想从头开始重新编写这款软件。

4、避免代码坏味道

Robert和Micah Martin把糟糕的软件部分描述为代码坏味道。下列代码坏味道意味着此软件的书写是相当糟糕的:

1)僵化性(Rigidity)—僵化的软件是这样的软件,当你在某个位置作一改动时即要求对系统作出相应的一系列的更改。

2)脆弱性(Fragility)—脆弱的软件是这样的软件,你在某个位置作一改动时即打断另外多处的正常运行。

3)不必要的复杂性—不必要的复杂软件是指过度设计的软件,其目的是为了处理任何可能的改变。

4)不必要的重复—不必要的重复软件中包含大量的重复性代码。

5)晦涩性—晦涩的软件是指难于理解的软件。

【注意】上述这些代码味道在Micah和Robert Martin的著名《Agile Principles,Patterns,and Practices in C#》中得到充分的描述。在此,强烈建议读者读一下这本书。

注意,上述这些代码味道都与所有的代码改变相关联。每一个这些代码味道都将妨碍代码的改变。

时间: 2024-11-03 13:17:32

基于ASP.NET MVC框架开发Web论坛应用程序的相关文章

ASP.NET MVC框架开发系列教程

本系列教程是自己在工作中使用到而记录的,如有错误之处,请给与指正 文章目录 MVC4 开篇 第一章 初识MVC4 第二章 下山遇虎(@helper) 第三章 Models模块属性详解 第四章 在MVC4.0中对脚本以及样式表的引用变化 第五章 MVC之Bundle详解 第六章 MVC之 FileResult 和 JS请求二进制文件  

基于ASP.NET AJAX技术开发在线RSS阅读器(上篇)

[注]本文测试环境:Windows XP专业版+Visual Studio 2005+整套ASP.NET AJAX框架+ASP.NET RSS Toolkit+SQL Server 2005. 一.RSS技术简介 RSS是一种描述和同步网站内容的XML格式,已经成为越来越流行的网站内容订阅技术.通过这种技术,网站可以极大地提高广大网站用户和网站数据之间的数据交互. RSS阅读软件可以分为桌面离线式和在线式两大类.有了这种工具,用户只需要添加初始其所关注的RSS网址,以后系统会自动更新相关内容,网

为ASP.NET MVC框架添加AJAX支持

一.引言 本文中,我们将向你展示如何在基于ASP.NET MVC框架构建 的ASP.NET应用程序中添加一些基本的Ajax特征(例如局部更新及行为组件等概念 ). [说明]本文向你提供了有关于ASP.NET MVC框架的完整应用源码及 测试示例.在本文方案中,共有两个工程:一个是TaskList(Web应用程序), 另一个是AjaxMVC(一个提供了扩展的Ajax支持的类库).请注意,类库AjaxMVC 中提供的函数实现了一些基本的Ajax功能,例如不依赖于页面回寄的局部更新以 及关联到DOM元

探讨ASP.NET MVC框架内置AJAX支持编程技术

传统型ASP.NET Web Forms是基于同时包含了表现层和后台代码的Web页面, 所以,紧随其后出现的ASP.NET AJAX,特别是这个框架的服务器端控件并没有像 它们本应该的那样光芒四射.于是,很多跟随AJAX时髦的ASP.NET开发者只是向 ASP.NET页面中随意地放置一些UpdatePanel控件以便使其程序实现基本的AJAX支 持.实际上,这只是防止了页面的"闪烁",而根本上页面还是进行 了完整的回发,并且要经历整个页面的生存周期.为了消除ASP.NET Web Fo

将ASP.NET MVC框架应用巧妙移植到手机

客户对我们的产品质量非常满意,因此在该项目完成后又给了我们另外一个订 单,即部署客户程序到Windows智能手机设备上.但是我们项目团队成员以前都没 有这种开发经验.我们的计划是通过最小限度的修改现有程序代码,使其可以运 行在Windows智能手机上. 移动设备Web应用工具箱(Web Application Toolkit for Mobile Devices) 我们选择了微软移动设备Web应用开发工具箱作为解决方案.使用这个免费的 工具,可以轻松将基于MVC框架的Web应用扩展到移动设备上.

ASP.NET MVC案例教程(基于ASP.NET MVC beta)—第七篇:闲话ASP.NET MVC

摘要 本文作为<ASP.NET MVC案例教程>的完结篇,仅从个人角度,发表一些对ASP.NET MVC框架的看法.并且在最后会附上本系列文章的Demo下 载. 前言 写这篇文章的目的,是想总结一些东西,以帮助朋友们更好的使用这个框架.但是,我又不像把官方列举的哪些优势.功能翻译过来列举在 这里.所以,我想干脆我就纯从个人观点上对这个框架评论一下吧.说的不好的,不对的还请批评指正.^_^ ASP.NET MVC--螺旋进步的产物 对于微软为什么要推出ASP.NET MVC,我们是无从得知的,也

[转自Scott]ASP.NET MVC框架(第一部分)

英文原文地址:http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx 翻译原文地址:http://blog.joycode.com/scottgu/archive/2007/11/14/111385.aspx 两个星期前, 我在博客里讨论了ASP.NET的一个新MVC(模型.视图,控制器)框架,我们将在不久的将来作为一个可选功能来支持.该框架提供了一个结构化的模型,来加强应用中的清晰关

[转自Scott]ASP.NET MVC框架(第四部分): 处理表单编辑和提交场景

英文原文地址:http://weblogs.asp.net/scottgu/archive/2007/12/09/asp-net-mvc-framework-part-4-handling-form-edit-and-post-scenarios.aspx 翻译原文地址:http://blog.joycode.com/scottgu/archive/2007/12/10/112465.aspx 过去的几个星期内,我一直在写着讨论我们正在开发的新ASP.NET MVC框架的系列贴子.ASP.NET

现有ASP.NET MVC框架应用巧妙移植到手机

客户对产品质量非常满意,因此在项目完成后又给我们另外一个订单,即部署客户程序到Windows智能手机设备上.但是我们项目团队成员以前都没有这种开发经验.我们的计划是通过最小限度的修改现有程序代码,使其可以运行在Windo智能手机上. 移动设备Web应用工具箱(WebApplicationToolkitforMobileDevices) 我们选择了微软移动设备Web应用开发工具箱作为解决方案.使用这个免费的工具,可以轻松将基于MVC框架的Web应用扩展到移动设备上. 下载地址: http://co