在今天,MVC(Model-View-Controller)设计模式与测试驱动开发方法(Test-Driven Development 简称TDD)被广泛应用于企业级WEB应用的开发中。MVC设计模式强制我们将应用分解成三个部分:模型(Model)负责业务数据的存储及管理,视图(View)负责呈现数据,并为用户提供与系统交互的界面接口,而控制器(Controller)则负责将用户动作转换成相应的业务数据集合传递给模型,或者将业务数据转换成相应的方式传递给视图。
使用MVC设计模式的一个最大的好处就是它简化了WEB应用开发中的TDD过程,因为它使我们避免了与复杂的图形用户界面(GUIs)交互。TDD需要开发者创建小粒度的单元测试用例,检测出执行失败的用例,编写代码以通过用例检测,最后要重构代码以应对需求变更。
直到2007年末,可用于ASP.NET的MVC框架只有开源框架MonoRail。而从2000年开始,Struts就成为Java平台上用于MVC架构的框架。PHP更是拥有十几种MVC框架。Ruby on Rails平台本身就自带了默认的MVC架构功能,并且其中包含一个"text/unit"库,用以整合单元测试功能。
在VS2002和VS2003中,Visual Studio开发小组仍然没有能为这个IDE提供单元测试功能和重构特性。终于,在VS2005的测试版中,单元测试功能(MSTest)被整合到 ......
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string str = "123456789";
//string str1 = Eval("str").ToString().Substring(0,3);
//说明:显然,这个写法是错的,这只能用于控件绑定的上下文中。
string str1 = str.Substring(0,5);
Response.Write("输入已经剪切过的的字符串:"+str1);
}
}
说明:这是一个页面的隐藏代码。 ......
前言
ASP.NET MVC作为微软官方的.NET平台下MVC解决方案,自诞生起就吸引了众多.NET平台开发人员的眼球。在经历了漫长Preview后,上个月微软终于发布了其beta版。应该说,通过我亲身实践,我认为这个框架的设计还是相当优秀的,至少从易用性来说,ASP.NET MVC要优于Java平台上的Struts和Struts2。使用Struts实现MVC时,除了要写一堆ActionForm、Action和ActionResult外,最头疼的莫过写于各种xml映射配置文件。Struts2虽然不用再写ActionForm,并且降低了侵入度(其实Struts2和Struts关系不大,而基本可以认为是WebWork的后续版本),但是仍无法避免xml配置文件。
ASP.NET MVC从一开始的设计思路就与Struts不同,它的映射是利用路由配置而非xml,从而大大降低了开发复杂度,并且比Struts要更直观,更容易上手。
可是,这并不表明ASP.NET MVC就是尽善尽美的。在我实践的过程中,发现某些地方使用起来还是不太方便,在这里小小论述一下。不妥之处,还请各位尽情批评。
别扭的视图:能不能不要让我承担逻辑
我个人认为,ASP.NET MVC第一个不� ......
在.net的世界里到底有什么呢?第一个是.net框架(.net Framework),现在最新的已经是4.0版本了,呵呵,但是我的netcms用的是2.0版本。第二个是.net集成开发环境,也就是我们平常看到的visual studio .net 2003 (2005 2008等)。是用来写程序和调试程序用的。当然,如果你够牛逼,你也可以用记事本或ultraedit。
先来聊一聊.net框架,学过java的朋友都知道jre(java虚拟机),实际上.net框架和jre一样都是一个虚拟机平台。这个平台构建在操作系统之上,全面接管操作系统。而后在这个平台上我们去开发我们的软件。对应windows操作系统的是.net平台,对应linux操作系统的是MONO平台(一群牛人整出来的东东)。.net框架包括两个部分:一个是CLR(公共语言运行时,也就是虚拟机)。一个是FCL(框架基础类库集)。这些类库里的类封装了文件操作、线程、XML等一系列的高级应用,我们可以用.net框架提供的7000多个类来轻松建立我们的应用程序。
我们以.net框架 3.0来看看.net的世界里有什么。从底层开始时一台裸机;其上是windows或linux操作系统;向上是CLR;在CLR上面是FCL;在FCL上是.ne ......
搜的,网络很强大的
1. Get(即使用QueryString显式传递)
方式:在url后面跟参数。
特点:简单、方便。
缺点:字符串长度最长为255个字符;数据泄漏在url中。
适用数据:简单、少量、关键的数据。
适用范围:传递给自己、传递给另一个目标页面;常用于2个页面间传递数据。
用法:例如:url后加?UserID=…,跳转到目标页面,目标页面在伺服端可用Request.QueryString["InputText"]获取其指定参数值。
2. Post
方式:通用的方式。利用form提交。
特点:最常用的方法。常用技巧是把隐秘的数据存在隐藏域中由form提交。
适用数据:大量数据,包括文件上传。
适用范围:同Get方法
用法:在客户端form指定action目标后submit、在asp.net的伺服端中使用server.Transfer(url)提交;在伺服端中用Request.Form["FormFieldID"]获取。
3. 页面对象的属性
&nbs ......
方案一:
/**//// <summary>
/// 名称:IsNumberic
/// 功能:判断输入的是否是数字
/// 参数:string oText:源文本
/// 返回值: bool true:是 false:否
/// </summary>
public bool IsNumberic(string oText)
{
try
{
int var1=Convert.ToInt32 (oText);
return true;
}
catch
{
return false;
}
}
try catch方法
例:
try
{
Convert.ToInt32("123"):
Console.Write("是数字");
}
catch(Exception ex)
{
Console.Write("非数字");
}
注:如果有很多字符串要求判断,此方法需要大量的try catch 以及finally来处理后续的程序.不建议使用此方法。
改进一下:
因为可以转int 可以转Decimal
public bool IsNumberic(string oText) ......