昨天,我正式恢复工作状态(前几天忙着做返校后的各种准备工作)。首要的工作就是将节前做的事情“复习”一遍,毕竟一个春节过后,很多开发过程中的细节都遗失了……
然后就是抽空认真看了看网友推荐的MS的PetShop V3.X范例,果然很不错。又学到不少东西。
看着节前写的代码,觉得自己写得不够好,尝试了重写整理了一次。把文件的层次结构分的更加合理,把各个调用关系整理了一下。也学会了像MS的程序员一样,在程序代码中写入“#region”“#endregion”对,方便以后查看源代码。
然后,和信息中心的另外一名同学讨论了一下关于ASP.NET的开发方式的问题。
先说我吧,我原来是做PHP、ASP开发的。对HTML的规范还是相当熟悉的,可用了ASP.NET以后,由于是“Code-Behind”的,很多基本的页面做法就和以前大不一样了。
举个例子:
一个用户登录的登录界面。以前是:
1
<
input
type
="text"
name
="textfield"
/>
现在变成了:

1
<
asp:TextBox
id
="TextBoxUserName"
runat
="server"
></
asp:TextBox
>
然后影响是什么呢?

我们用最简单的验证用户是否输入为例:
如果还是以前的HTML,则可以用:
1
if
(form1.textfield.value
==
""
)
2
{
3
window.alert("请输入用户名。");
4
form1.textffield.focus();
5
}
但如果是后者,我们直接用一个RequiredFieldValidator即可。

2



3

4

5

现在来说说我的感觉。
在上面的例子中,如果采用前一种方法,由于是HTML的,所以,一共需要2个页面来处理。中间有一个POST参数的过程。然后由第2个页面检查后,再作出判断是否调用JS代码,提示用户。页面也有一个刷新的过程。
而如果使用验证控件,则没有刷新的问题,当前页面就能明确得提示用户。
第一种方法种,如果采用问号传值,可能不太安全。
第二种方法,如果不了解前台制作,可能谈出的验证错误信息会影响页面显示。
哪个好呢?

……
对于直接初学.NET的同学来说,如果没有ASP或者PHP的编程经历,可能会很习惯Frontpage+VisualStudio的开发方式。要什么,就拖什么。简单快捷。比如我们信息中心的另一位同学,就是这样,习惯于在上述2种软件件相互切换编辑制作。
可我就复杂了,以前我写得比较多的是PHP和ASP,甚至还写过一段时间的JSP。我是彻彻底底的用不惯Frontpage,从来都只使用Dreamweaver!而且,ASP.NET也是我大四才刚转过来的。虽然因为有过开发其它脚本语言的经历,学起来还很快,可至今我还是用不惯ASP.NET中的于ADO.NET相关的一部分东西,比如:DataList,DataGrid等。
要显示一个列表,我更习惯于自己写代码。画个Table,然后动态从数据库中读出数据即可。用MS的东西唯一的方便之处可能就是不再需要自己写分页了。因为一些数据控件已经包含了AutoPage的功能了。
仔细想一下,还是那句话,那种方式更符合实际项目的需求,就用那种方法。大多数情况下,使用MS的控件的确能够给我们节省不少的时间(而且为了实现某些功能,好像还只能使用MS的内置控件,否则,根本不好操作呢。),害处就是,我们又进一步得被MS套牢了!

可能这个也向操作系统一样吧,Windows简单易用,但根本不可自定义;Linux想怎么改就怎么改(我们信息中心的小陈,把一台Linux弄得只有一个服务,跑DNS,那台机器现在都还工作得好好的),可却比较难上手了。
我是主张多自己动手,丰衣足食的,说完全自己写代码也不现实,毕竟项目工期有限,为了保质保量完成任务,能简单点就简单点,可也不能完全跟着MS了,原理自己还是得了解才行。还是那句话,怎么方便怎么来吧……
就想到这么多了……
朋友们有什么意见就提吧。

Feedback
ASP。NET只是把HTML和JS封装成webform了,实际的东西还是那些
---
在上面的例子中,如果采用前一种方法,由于是HTML的,所以,一共需要2个页面来处理。中间有一个POST参数的过程。然后由第2个页面检查后,再作出判断是否调用JS代码,提示用户。页面也有一个刷新的过程。
---
可以在onsubmit里验证数据,也可以不刷新页面的。
DataList,DataGrid还有repeater那些一定要用好呀,自己画table,循环读数据库那是ASP的做法 回复