ASP.NET开发人员需要学习ASP.NET MVC么?
最近几周,在博客、Twitter和论坛上如火如荼地展开了一场讨论。讨论的内容是:开发人员是否应该使用或学习ASP.NET MVC。从“不推荐学习”到“所有ASP.NET开发人员都应该学习”,各种不同的观点层出不穷。InfoQ对其中部分讨论内容进行了总结。
Rob Conerey(SubSonic之父,目前是微软ASP.NET MVC团队的一员)解释了为什么开发人员应该学习ASP.NET MVC。在文章的开始,他称WebForms是一个“巨大的谎言”。
WebForms是个谎言,它是一个被种种谎言和欺骗所包围着的抽象机制。你对WebForms所做的一切都与Web无关 - 它帮你做了本该你自己做的事。
朋友们,这可是件大事(至少对我来说):你工作在谎言中。Web是“无”状态的,它依赖一种叫做HTML的东西,并使用另一种叫做HTTP的东西通过电缆将HTML发来发去-你需要了解它、热爱它并在骨子里感受它。
Rob列举了7个使用ASP.NET MVC的理由,或者用他的话说“避免被称为怪人的7个理由”:
可测试性
完全控制HTML
可扩展
促使你思考
易于客户端Javascript编程
可以学到新的东西
有趣
然后总结到:
结论:Web编程再一次充满了乐趣,至少对我和我的猫来说。当然这又是一个关于WebForms和MVC的比较,但是更直接一些。你几乎无法找到不学习MVC的理由 - 当然,对你来说可能还是有一两个理由,促使你继续使用WebForms。
Joe Brinkman(DotNetNuke的全职开发人员)迅速的做出了回应,批评Rob没有找到一个“好”的学习MVC的理由,并列出了他自己的:
学习一种不同的架构
强迫你熟悉HTML和HTTP
MVC促进了单元测试
MVC将使你意识到你对WebForms有多少是想当然的
Joe总结道:
你真的应该试一试MVC,但不是因为Rob所列举的那些原因。你应该尝试,MVC是因为最终你会学到一些东西,它可以使你成为更好的Web开发人员,这与你最后选择了哪个平台无关。
Rob和Joe基本上都同意,ASP.NET开发人员应该学习ASP.NET MVC,但是对于学习的原因还有争议。然而Karl Seguin持有不同的观点,他质疑道:“ASP.NET MVC是一个半成品么?”:
能够以更清晰的方式构造复杂的系统是一个好的开始,但是对于一般的Web开发,特别是与其他平台比较来说,ASP.NET MVC还是要落后很多(Perl是我能想到的唯一一个更糟糕的)。
最大的问题在于,它只是一个VC - 没有对Model的考虑、支持和相关的工具。当你将自己写的数千行repository/dal/linq/n
相关文档:
<input id = " loFile " type = " file " runat = " server " >
<form method = " post " enctype =" multipart/form-data " runat = " server ">
</form >
1.获得上传文件的名称:(关键是PostedFile类的应用)
使用Path类中的GetFileName方法,具体如下:
lstrFileName = loFile.PostedFile.FileName
......
<%
Response.Buffer = true
Response.Clear
dim url
Dim fso,fl,flsize
dim Dname
Dim objStream,ContentType,flName,isre,url1
Dim strFileName
strFileName=replace(replace(Request("file"),"\",""),"/","") '传参
strFileName="/files/"&strFileName ' 改成你你文件的存 ......
///<summary>
///<author>飞鹰@ASPCool.com</author>
///<description>本文用asp.net实现把此文推荐给好友的功能。</desciption>
///<copyright>ASP酷技术资讯网(www.ASPCool.com)</copyright>
///</summary ......
Asp.net中DataBinder.Eval用法的总结
<%# Bind("Subject") %> //绑定字段
<%# Container.DataItemIndex + 1%> //实现自动编号
<%# DataBinder.Eval(Container.DataItem, "[n]") %>
通常使用的方法(这三个性能最好)
<%# DataBinder.Eval(Container.DataItem, "ColumnName") %>
<%# DataBi ......
只能输入1个数字
表达式 ^\d$
描述 匹配一个数字
匹配的例子 0,1,2,3
不匹配的例子
只能输入n个数字
表达式 ^\d{n}$ 例如^\d{8}$
描述 匹配8个数字
匹配的例子 12345678,22223334,12344321
不匹配的例子
只能输入至少n个数字
表达式 ^\d{n,}$ 例如^\d{8, ......