随笔分类 -  C#

摘要:http://www.mikesdotnetting.com/Article/117/Dependency-Injection-and-Inversion-of-Control-with-ASP.NET-MVCAs you delve more into ASP.NET MVC you start to come across a whole new way of doing things that Web Forms development didn't really expose you to. Inversion of Control (IoC) and Dependency I 阅读全文
posted @ 2012-07-30 09:26 Johnny Yan 阅读(602) 评论(0) 推荐(0) 编辑
摘要:近来发现很多ASP.NET MVC的例子中都使用了Repository模式,比如Oxite,ScottGu最近发布的免费的ASP.NET MVC教程都使用了该模式。就简单看了下。在《企业架构模式》中,译者将Repository翻译为资源库。给出如下说明:通过用来访问领域对象的一个类似集合的接口,在领域与数据映射层之间进行协调。在《领域驱动设计:软件核心复杂性应对之道》中,译者将Repository翻译为仓储,给出如下说明:一种用来封装存储,读取和查找行为的机制,它模拟了一个对象集合。使用该模式的最大好处就是将领域模型从客户代码和数据映射层之间解耦出来。我们来看下在LinqToSql中如何应用该 阅读全文
posted @ 2012-07-27 15:05 Johnny Yan 阅读(1547) 评论(0) 推荐(2) 编辑
摘要:原地址:http://blog.csdn.net/wanghao72214/archive/2009/03/08/3969594.aspx1IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是 这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在一起,协同工作,共同完成某项任务。我们可以看到,在这样的齿轮组中,如果有一个齿 阅读全文
posted @ 2012-07-27 14:54 Johnny Yan 阅读(912) 评论(1) 推荐(1) 编辑
摘要:第一部分:(摘选自http://www.cnblogs.com/HuiTai/archive/2012/07/24/MVC-12.html辉太)(这部分作者写的很详细,直接摘过来了)MVC框架支持组织一个web应用程序到的区域,每个区域代表应用程序的功能性组比如账单、客户支持,等等,这在一个大的项目是非常有用的,那里有 一套单一的文件夹,所有的控制器,视图和模型可以变得难以管理。每个MVC区域是有自己的文件夹结构,允许您分开管理。这使得它更显而易见哪个项目元素相 互关联应用程序的功能区域,这有助于多个开发人员同事处理项目而没有彼此胡想不干扰。区域是支持主要通过路由机制。我们从新新建一个MVCw 阅读全文
posted @ 2012-07-25 10:20 Johnny Yan 阅读(9337) 评论(1) 推荐(6) 编辑
摘要:在上一节中提到可以使用AuthorizeAttribute进行权限管理: [Authorize] public ActionResult TestAuthorize() { return View(); } ... 阅读全文
posted @ 2012-07-24 15:54 Johnny Yan 阅读(59789) 评论(10) 推荐(15) 编辑
摘要:ASP.NET MVC Framework支持四种不同类型的Filter:Authorization filters – 实现IAuthorizationFilter接口的属性.Action filters – 实现IActionFilter接口的属性.Result filters – 实现IResultFilter接口的属性.Exception filters – 实现IExceptionFilter接口的属性.Filter的默认的执行顺序按上面的列表中顺序进行。如验证(authorization)Filter永远都是最开始执行的,异常(exception)Filter永远都是最后执行的,当 阅读全文
posted @ 2012-07-24 15:09 Johnny Yan 阅读(14619) 评论(0) 推荐(4) 编辑
摘要:除了传统的Ajax方法之外,MVC提供了AjaxHelper类:Helper methodDescriptionAjax.ActionLinkCreates a hyperlink to a controller action that fires an Ajax request when clickedAjax.RouteLinkSimilar to Ajax.ActionLink, but generates a link to a particular route instead of a named controller actionAjax.BeginFormCreates a fo 阅读全文
posted @ 2012-07-23 14:51 Johnny Yan 阅读(13221) 评论(1) 推荐(3) 编辑
摘要:【转自】http://www.cnblogs.com/dozer/archive/2010/04/12/MVC-DataAnnotations.html 作者 Dozer今天在这里给大家介绍一下MVC的数据验证框架。在1.0版中,很多朋友提出了怎么使用客户端验证,今天找了一些资料,发现了客户端验证的方法。1、MVC中的数据验证框架有何优点?在Asp.net时代,或者没有使用MVC的验证框架,一般是在BLL层中进行数据验证,但是BLL层的返回值又只能返回一个东西,比如一个字符串,而实际情况中,数据验证是很复杂的。这时候,BLL层和网站会分离的不彻底,因为很多代码不得不在网站中写。而在MVC的数据 阅读全文
posted @ 2012-07-23 10:20 Johnny Yan 阅读(23015) 评论(8) 推荐(14) 编辑
摘要:【转自】:http://www.cnblogs.com/dengdl/archive/2011/07/14/2106849.html在做Asp.NetMVC项目中,都知道View负责页面展示数据或者提供页面收集数据,而所展示的数据或者收集的数据都是从Controller的Action中获取或提交到Controller的Action。这里的数据,可能是基础类型,或者是Model,或者是Model的部分内容,或者是集合比如List或Dictionary。数据从View传递到Controller的Action时,有几种方式,RouteData(url中的路由数据),QueryString(httpg 阅读全文
posted @ 2012-07-23 10:07 Johnny Yan 阅读(24876) 评论(2) 推荐(4) 编辑
摘要:HtmlHelper用来在视图中呈现 HTML 控件。以下列表显示了当前可用的一些 HTML 帮助器。本主题演示所列出的带有星号 (*) 的帮助器。ActionLink- 链接到操作方法。BeginForm* - 标记窗体的开头并链接到呈现该窗体的操作方法。CheckBox* - 呈现复选框。DropDownList* - 呈现下拉列表。Hidden- 在窗体中嵌入未呈现的信息以供用户查看。ListBox* - 呈现列表框。Password- 呈现用于输入密码的文本框。RadioButton* - 呈现单选按钮。TextArea- 呈现文本区域(多行文本框)。TextBox* - 呈现文本框1 阅读全文
posted @ 2012-07-23 09:32 Johnny Yan 阅读(45004) 评论(11) 推荐(10) 编辑
摘要:View主要用于呈现数据。由于Controller和相关的Service已经处理完业务逻辑并将结果打包成model实体,View只需要怎么去获得model并将其转为Html1选择需要渲染的视图在上一篇中GuestbookController:public ActionResult Create(){ return View();}默认渲染的是Views/Guestbook/Create.cshtml. 当以无参形式调用View()时, Framework推断要渲染的视图的名称应该和Action的名称一致。然后在MVC管线中,ControllerActionInvoker执行View... 阅读全文
posted @ 2012-07-17 07:06 Johnny Yan 阅读(21072) 评论(0) 推荐(3) 编辑
摘要:【转自】http://www.cnblogs.com/P_Chou/archive/2010/11/26/details-asp-net-mvc-06.html在上一篇最后,我们进行到了Action调用的“门口”:?1if(!ActionInvoker.InvokeAction(ControllerContext, actionName))在深入研究调用过程的细节前,先有一个总体的认识是很有帮助的。InvokeAction方法大致是按照这样的顺序进行的:查找action:MVC内部查找action的方法似乎有点复杂,涉及到一个ActionDescriptor的东西,但是原理上是通过反射,在以后 阅读全文
posted @ 2012-07-17 07:04 Johnny Yan 阅读(16949) 评论(0) 推荐(2) 编辑
摘要:先回顾下之前的MVC执行过程:一个HttpRequest是如何被ASP.NET和ASP.NET MVC框架执行的:经过IIS和ASP.NET处理后,Core Routing会首先根据URL匹配物理路径上的文件,如果不能匹配则由核心路由模块执行路由,路由被匹配后,MvcRouteHandler会将这个请求“带入”MVC框架,执行Controller和Action。Controller是如何被创建以及执行的呢?我们看一下MVCRouteHander的源码:View Code namespace System.Web.Mvc{ public class MvcRouteHandler : IR... 阅读全文
posted @ 2012-07-17 00:59 Johnny Yan 阅读(2231) 评论(0) 推荐(0) 编辑
摘要:本节中我们尝试创建一个MVC应用程序:GuestBook1创建数据库在本例中我们的数据库采用:SQL Server Compact。SQL Server Compact 是一种嵌入式数据库引擎,它实现了简便的数据库存储。 它不需要您运行安装过程或安装数据库服务器。 是基于bin发布的,发布时只需要将相应的dll添加到bin目录即可。更多参照:http://msdn.microsoft.com/zh-cn/library/gg606540.aspx在项目App_Data目录选择“Add”->"New Item", 选择Sql Server Compact4.0 Loca 阅读全文
posted @ 2012-07-02 15:37 Johnny Yan 阅读(7351) 评论(0) 推荐(1) 编辑
摘要:1 创建MVC项目在VS2010中,使用FIle->New Project,在Visual C#下选择Web菜单,创建MVC 4项目点击OK后,会弹出选择模板对话框。Empty模板创建简单的空项目结构,而Internet Application模板提供基础的布局和验证。Intranet Application模板和Internet Application相似,但是使用Windows身份验证。这里我们选择Internet Application。 同时我们也可以选择视图引擎,从MVC3 开始引入了Razor,同样也可以使用Web Forms(MVC 1,2中的默认选项)项目创建完成后结构如 阅读全文
posted @ 2012-07-02 09:31 Johnny Yan 阅读(5155) 评论(0) 推荐(2) 编辑
摘要:ASP.NET是一种建立动态Web应用程序的技术。它是.NET框架的一部分,可以使用任何.NET兼容的语言编写ASP.NET应用程序。相对于Java、PHP等,ASP.NET具有方便性、灵活性、性能优、生产效率高、安全性高、完整性强及面向对象等特性,是目前主流的网络编程技术之一.它可以让开发者快速高效的创建应用程序而不必关注Http,Html,Javascript等底层的详细信息。随着越来越多的企业将网站升级为APS.NET,web应用程序的复杂性不断增加,即使当初MS推出ASP.NET的时候,如何强调codebehind的优势,但是它在架构上回避不了一个问题:如果全部codebehind的话 阅读全文
posted @ 2012-06-29 17:08 Johnny Yan 阅读(11320) 评论(4) 推荐(6) 编辑
摘要:1. MVC模式 MVC模式是一种软件架构模式。它把软件系统分为三个部分:模型(Model),视图(View)和控制器(Controller)。MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。 模型(Model) “数据模型”(.. 阅读全文
posted @ 2012-06-29 17:07 Johnny Yan 阅读(6865) 评论(0) 推荐(1) 编辑
摘要:当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之路”,所以可以在这个HTTP请求传递到真正的请求处理中心(HttpHandler)之前附加一些需要的信息在这个HTTP请求信息之上,或者针对截获的这个HTTP请求信息作一些额外的工作,或者在某些情况下干脆终止满足一些条件的HTTP请求,从而可以起到一个Filter过滤器的作用。示例1:usingSystem;usingSystem.Collections.Generic;usingSyst 阅读全文
posted @ 2012-06-29 08:53 Johnny Yan 阅读(801) 评论(0) 推荐(0) 编辑
摘要:转自: http://www.cnblogs.com/stwyhm/archive/2006/08/09/471765.html 文野概述HttpHandler是一个HTTP请求的真正处理中心,也正是在这个HttpHandler容器中,ASP.NET Framework才真正地对客户端请求的服务器页面做出编译和执行,并将处理过后的信息附加在HTTP请求信息流中再次返回到HttpModule中。IHttpHandler是什么IHttpHandler定义了如果要实现一个HTTP请求的处理所必需实现的一些系统约定。HttpHandler与HttpModule不同,一旦定义了自己的HttpHandle 阅读全文
posted @ 2012-06-26 15:43 Johnny Yan 阅读(407) 评论(0) 推荐(0) 编辑
摘要:HTTP运行期HTTP运行期处理客户端应用程序(例如Web浏览器)进入的一个Web请求,通过处理它的应用程序的适当组件路由请求,然后产生响应并发回提出请求的客户端应用程序。进入的HTTP Web请求最先由IIS Web服务器接收到,它在此请求基于ASP.NET已注册处理的扩展名传送到ASP.NET ISAPI上。HTTP运行期首先创建一个HttpContext对象的实例,它包含了当前正在处理的请求信息,接着创建在处理逻辑中涉及到的所有其他组件都可以使用的上下文对象。HttpContext实例提供了对请求对象(HttpRequest类的实例)和响应对象(HttpResponse类的实例)的访问。 阅读全文
posted @ 2012-06-26 13:59 Johnny Yan 阅读(324) 评论(0) 推荐(0) 编辑