.net/c# - 文章列表
-
[翻译] ASP.NET MVC Tip #3 – 在单元测试时提供明确的视图名字
原文地址:http://weblogs.asp.net/stephenwalther/archive/2008/06/17/asp-net-mvc-tip-3-provide-explicit-view-names-when-unit-testing.aspx\n摘要:在这个Tip中,Stephen Walther解释了当控制器action需要返回一个特定的视图时,应该如何进行单元测试。他建议你如果打算建立单元测试的话,还是要明确地指出视图的名称。\nASP.NET MVC框架是一个高度可测试的框架。你可以很方便地测试MVC控制器Action,确定它是否能够返回你所期望的结果。在这个Tip中,
-
Asp.Net技巧:直接通过User Control生成HTML
对于使用User Control生成HTML的方式,大家应该已经比较熟悉了,老赵也曾经写过一篇文章(《技巧:使用User Control做HTML生成》)来描述这个做法。使用User Control进行HTML生成最大的好处就是将表现(Presentation)逻辑集中在一处,并且能够让前台开发人员使用传统的方式参与到页面开发中来。在其他方面,使用User Control生成HTML的做法直接使用了ASP.NET WebForms引擎,在开发时能够利用到ASP.NET的各种优秀实践。\n 在“我的衣橱”中大量使用了这种生成HTML的做法。不过当项目达到一定规模之后,这个方法的不足之处也慢
-
ASP.NET MVC:实现我们自己的视图引擎
在ASP.NET MVC的一个开源项目MvcContrib中,为我们提供了几个视图引擎,例如NVelocity, Brail, NHaml, XSLT。那么如果我们想在ASP.NET MVC中实现我们自己的一个视图引擎,我们应该要怎么做呢?\n我们知道呈现视图是在Controller中通过传递视图名和数据到RenderView()方法来实现的。好,我们就从这里下手。我们查看一下ASP.NET MVC的源代码,看看RenderView()这个方法是如何实现的:protected virtual void RenderView(string viewName, string masterName,
-
ASP.NET验证控件中的一些事
在我以前的一篇AJAX的文章里也讲到过验证,今天在一国外技术网站上瞎逛,看到了一篇关于验证控件的使用文章,感觉还有点技术价值,于此简单的把这个技巧性的知识点写出来和大家一起分享。由于EN水平有限,文章里多数讲解都是用我自己的话题,没有照原文进行翻译,不过百变不离其本。在ASP.NET里提供了专门用于验证的的几个常见验证控件,RequiredFieldValidator,RangeValidator,CompareValidator,CustomValidator以及ValidationSummary等,这些控件我相信大家都会使用,下面就来看看除了我们平时的使用方法外,他们的另类故事。Let&#
-
服务器控件开发 —— Control 基类(1)
要想熟练的开发服务器控件 首先需要了解asp.net 中服务器控件的生命周期。其实服务器控件的生命周期与asp.net 页面的生命周期差不多, 因为asp.net 页面其实就是间接从Control继承。 我们来看每个阶段Control控件里面都做了一些什么事情1. Instantiate : 控件被页面或者另一控件调用, 实例化。2. Initialize :3. Begin Tracking View State :\n#region internal void InitRecursive(Control namingContainer) {
-
基于.NET平台的分层架构实战(九)——数据访问层的第三种实现:基于NBear框架的ORM实现
前面的文章讨论了使用SQL语句和存储过程两种数据访问层的实现方式,这一篇里,将讨论使用ORM方式实现数据访问层的方法。 对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间
-
[翻译] ASP.NET MVC Tip #4 – 创建自定义数据控制器基类
原文地址:http://weblogs.asp.net/stephenwalther/archive/2008/06/18/asp-net-mvc-tip-4-create-a-custom-data-controller-base-class.aspx\n摘要:在这个Tip中,你将学到如何创建一个自定义控制器基类,让它能够为常见的数据库操作暴露一系列acton,如显示、插入、更新和删除数据。\n无论什么时候,你在写代码时都会发现其实你在一遍又一遍地编写着同样类型的代码,现在是时候停下来考虑一下你是否正在浪费者大量的时间。昨天,我发现在创建一个数据库驱动的ASP.NET MVC应用程序时,我的
-
ASP.NET实现防止同一用户同时登陆
背景:\n功能像咱俩上同一个QQ号,你先上去了,然后我用同样的号登陆,你的肯定就掉线了,就是这个功能.该方案只考虑了WEB服务器为一台的情况.多台以后再写一篇.\n思路:\n记录用户登陆信息[登陆时间,用户ID]\n每隔一段时间(如5秒怎么样?)检查存储的登陆信息。如果发现多个,则比较各个的登陆时间,如果自己用的登陆时间比其他的早,则提示并注销。实现:\n1.把所有登陆用户存在这个全局Application中(建议把这个Application放在基类,方便调用):\nprotected IList<IList> LoginInfo{get {if (Application[\"lo
-
基于.NET平台的分层架构实战(十)——业务逻辑层的实现
在这一篇文章中,将实现一个NGuestBook的业务逻辑层。在实际应用中,业务逻辑层是至关重要的,他承载着整个系统最核心的部分,也是客户最关注的部分。这一部分的实现,通常需要技术专家和领域专家通力合作。当然,在本文章系列的Demo中,由于业务逻辑的简单性,这里看的可能还不是很明显。在本篇文章的业务逻辑层实现中,业务逻辑层主要承担了以下职责: 1.对不同数据访问层的封装。使得表示层可以不关心具体的数据访问层。 2.业务逻辑数据的填充与转换。如管理员口令的加密。 3.核心业务的实现。这里很多业务逻辑只有一行代码,即一个业务逻辑方法恰好对应一个数据访问方法,但是也有通过
-
服务器控件开发(2)—— WebControl
上一篇里我们介绍了Control 基类, 这一篇我们来看看WebControl 类。 Asp.Net 里面的大部分控件都是从WebControl 继承的, WebControl 与 Control 相比。 提供了一系列支持控件样式的属性。 如果你的控件需要相客户端呈现HTML标签。从WebControl 继承将省去你不少的工作。 这些属性以及说明列举如下:AccessKey String The keyboard shortcut key used to set focus on the rendered HTML element. Attributes AttributeCollect