[一步一步MVC]第三回:MVC范例大观园

MVC是个新鲜的东西,至少为ASP .NET Web世界带来或多或少的争议,褒奖者有之,诋毁者有之。这也正常,人类的思维确实没法统一,即便是多个选择其实是件好事儿也一样。不管怎样,评说者至少应该在了解的基础上再进行评论,才显得“专业”,没有品味的找茬型选手实在不值得恭维。

作为MVC范例集锦,我将MVC发布之后业界的应用开源项目做个简单的整理,Anytao不打算对任何项目发表个人观点,因为有些项目未经本人了解,所以此处仅是one by one式的陈列,期望对学习者有些帮助而已。

NerdDinner

NerdDinner随着ScottGu、Phli几位大牛为作品《Professional ASP.NET MVC 1.0》谱写的辅助系统,同时通过一个在线系统http://www.nerddinner.com/以生动的实例来展现MVC技术,NerdDinner示例贯穿全书,尤其是第一章的Walkthrough可以让我们对MVC有个初次了解。

Contact Management

该范例是asp.net/mvc的讲解实例,因为它太简单以至于没有什么好说的,初入MVC的同学可以关注一下,安装step by step的方式构建自己的Contact Management应用。

MVC Storefront

不知为什么范例程序常常以Store来演示(例如Petshop),可能的原因是Store应用简单而全面,所以MVCStore应用也是这样一个简化示例, 我们可以研究研究。

Oxite

业界对Oxite有不少批评,Rob Conery是最尖锐的一个,作为“号称”微软MVC范例的Oxite,虽有些细可圈可点,但是离微软官方范例的角度确实还有距离。园子的代震军发表的关于两个MVC示例的思考(MVCStore和Oxite),对此进行的讨论或许可以给您以思考,从应用角度而言Oxite其实并非一无是处,很多点上还是有不错的运用,例如关于ActionFilter和IoC的应用是值得参考的。

KIGG

Kigg是Codeplex上开源项目,从项目规模上而言,Kigg属于“大块头”,以MVC为基础架构,同时设计很多技术应用,单元测试也有不错可借鉴的地方。

Ezsocio

Ezsocio至少可以是个范例,一套基于微软.NET平台的Social Network Software(SNS)系统,会用到许多最新开发技术,如ASP.NET MVC、LINQ、WCF、Unity、JQuery等,虽然还是个半成品,但是作为对于MVC学习和了解角度而言,还是“够用的”。例如以Unity为容器的IoC设计、JQuery在MVC的应用、Validation、Cryptography、Repository模式等,好了不做广告了,那只是个还没有完成的作品。

sharp-architecture

Sharp-Architecture是MVC和NHibernate应用范例,作为号称“Sharp Architecture”的应用,我想一定可以为我们呈现不一样的设计,对于了解MVC和NHibernate的人或许是个不错的选择。

fubumvc

fubumvc,可以看作是for us by us MVC,是老赵同志推荐给我的。fubumvc在了解ASP .NET MVC核心架构的基础上,表达了作者“不同意”ASP .NET MVC对于设计的理解,所以几个人凑在一起合谋了fubumvc Framework。这里,有一些关于FubuMVC和ASP .NET MVC的区别。

既然是大观园,可能以后还有补充,谁有更好的分享也可以在留言提供给我,以方便大家“有底放肆”。至于品评和讨论,还是放在以后吧。

时间: 2024-10-03 20:34:33

[一步一步MVC]第三回:MVC范例大观园的相关文章

艾伟_转载:[一步一步MVC]第六回:什么是MVC(上)?

本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时"胡搅蛮缠" [一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper [一步一步MVC]第六回:什么是MVC(上)? 引言 所谓MVC,其实就是M.V.C而已.归根揭底,

艾伟:[一步一步MVC]第一回:使用ActionSelector控制Action的选择

本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时"胡搅蛮缠" [一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper [一步一步MVC]第六回:什么是MVC(上)? ActionFilter一定是MVC控制中对于Act

艾伟_转载:[一步一步MVC]第四回:漫谈ActionLink,有时“胡搅蛮缠”

本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时"胡搅蛮缠" [一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper [一步一步MVC]第六回:什么是MVC(上)? MVC时代来临了,但是一开始是不被很多人接受的.可能

艾伟_转载:[一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper

本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时"胡搅蛮缠" [一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper [一步一步MVC]第六回:什么是MVC(上)? 对HtmlHelper进行扩展,是MVC中对于Vie

[一步一步MVC]第六回:什么是MVC(上)?

本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时"胡搅蛮缠" [一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper [一步一步MVC]第六回:什么是MVC(上)? 引言 所谓MVC,其实就是M.V.C而已.归根揭底,

艾伟_转载:[一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理

本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时"胡搅蛮缠" [一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper [一步一步MVC]第六回:什么是MVC(上)? 由问题引出 在ASP .NET MVC中,以友好的U

一步一步封装自己的HtmlHelper组件BootstrapHelper(三)_javascript技巧

前言:之前的两篇封装了一些基础的表单组件,这篇继续来封装几个基于bootstrap的其他组件.和上篇不同的是,这篇的有几个组件需要某些js文件的支持. BootstrapHelper系列文章目录 C#进阶系列--一步一步封装自己的HtmlHelper组件:BootstrapHelper C#进阶系列--一步一步封装自己的HtmlHelper组件:BootstrapHelper(二) C#进阶系列--一步一步封装自己的HtmlHelper组件:BootstrapHelper(三:附源码) 一.Nu

一步一步学EJB3.0(三):悟透会话Bean(下)

三.无状态会话Bean实例 在上一篇文章里,其实我们已经应用到了无状态会话Bean,那好,下面我们详细的来分析下上一篇文 章里给出的示例程序. 没有阅读过的朋友请点击这里阅读:<<一步一步学EJB 3.0(二):初探企业 EJB模块开发>> . 首先我们来看看接口的定义: 1 /** 2 * 远程接口 3 * @author Beniao 4 */ 5 @Remote 6 public interface HelloRemote { 7 void sayHello(String s

一步一步写算法(之 回数)

原文:一步一步写算法(之 回数) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com]     回数的概念比较好玩,就是说有这么一个字符串str, 长度为n, 现在index开始从0->index/2遍历,那么str[index] = str[n-1-index],那么这种数据就是我们通常说的回数.比如说a = "a"是回数, a = "aba"是回数, a = "strarts"也是回数