许多人问关于使用dw开发asp.net出现的许多问题,如不能编译文件,dw内含的服务器行为操作失误等等。现在我将如何使用开发工具写asp.net的一些问题说明一下:
1. dw-mx开发asp.net应用程序。
dw开发动态网页的方法是从ultradev发展而来。
原来dw4.0擅长的是开发静态的html网页,方法是直接在.html文件内添加html代码,正好asp也是直接在html内添加服务器端的操作代码(使用vbscript霍javascript语言),而asp所使用的对象(就是服务器端允许你操作的项目)不多,一共只有6大对象。如request,response,server等。mm公司就把开发asp网页中经常使用的一些功能,如读取数据库,分页显示,用户登录等功能做成代码莫板。用户使用时可以用开发html的方法,直接通过命令添加这些已经编写好的代码。这样,ud即可编写asp动态页面了,同样的道理,编写cf,jsp,php等,都是在html页面中加入服务器端代码,所以ud也可以编写这些网页。
mx升级了ud的功能,加入了可以用来开发asp.net的动态页面的功能,但是mx使用的是与开发asp页面相同的方法,直接在aspx文件中加入代码。
2. asp.net的开发模式
asp.net开发动态网页,与asp完全不同。
首先,asp是把服务器端代码写入html代码中,仅仅是文件扩展名为.asp。而asp.net完全不同。它的表示层(html代码)与业务层(后台代码)是完全分离的。
即假设有一个asp.net文件aaa.aspx,这个文件仅存放表示代码html和asp.net专用的服务器控件代码,后台控制代码是存放在名为aaa.aspx.vb(使用vb.net开发,如果是c#,文件为aaa.aspx.cs)的后台代码文件中。
程序编写好以后,可以编译这个.vb文件,使之成为.dll文件,这样不但运行速度快,而且可以保护开发者的劳动成果。
其次,asp是解释型的代码,就是在asp运行的时候,服务器临时把后台代码编译成可执行代码,然后再执行;而asp.net是在编写程序的时候,就把后台代码编译了,运行的时候没有编译这个过程,所以运行速度比asp网页快得多。
再次,asp的开发语言是vbscript和javascript,他们都是解释型的脚本语言,语言本身的功能非常弱,除了一语言的基本功能如定义变量,判断,循环等,没有其他的功能。而asp.net使用的是功能完善的高级语言,这些语言全部有面向对象编程的能力,如方法重载,类的继承,接口,委托等功能。这些都是asp不具备的。
再次,asp所使用的功能非常少,只有区区的六大对象可以使用。如request,response,server,fso等。而asp.net具有.net类库的支持,只要类库支持的功能,asp.net都支持,如对流的支持,对win2k的目录服务的支持,发送邮件,ftp,等等等等。功能非常强大。
3. dw开发asp.net的缺点
根据上面说的asp.net开发模式,大家可以看出dw并不是一个开发asp.net的好工具。
首先它不支持代码分离,他的开发模式还是处在asp的开发模式上,就是说它生成的asp.net不是编译的,这样的话,开发出的asp.net网页必须在运行的时候编译运行,运行速度还没有asp快。
然后就是没有编译功能,dw不是为了开发asp.net用的,所以即使你手工实现了代码的分离,你必须在dos方士下手工以命令的方式调用.net sdk带的编译器来编译,这样如果你的代码中有错误,那么运行将失败,你必须修改代码重新编译。直到代码运行成功。如果有许多aspx及.vb文件,这样的工作将是非常非常麻烦的。
最后,也是一个最重要的内容,dw没有调试功能。这个功能是编写程序时候最重要的,专门用来防止出现逻辑错误。这个错误是你编写的代码中没有语法错误,程序运行正常,但是程序就是不按照你所想象的运行的错误。
假设你编写一个显示新闻的网页,在显示新闻中你规定了新闻的到期时间,保存在新闻数据表中的一个字段里面,这样,要排除过期的新闻,只要加上一个条件:目前时间小于到期时间。
如下面select语句:
select * from newstable where # nowdate # < newstable.stopdate
但是如果在开发的时候,把代码中的“<”号写反了,写成了“>”号,这样,显示出的新闻条目全部都是过期新闻,这样就出现麻烦了。
因为程序没有出错,没有任何出错信息表示,网页显示正常。你也不记得到底是什么地方除了毛病,是没有联接数据库?还是查询语句出错,还是显示有错误?你根本不知道哪里出了毛病。这时候就应该用到程序调试功能。
程序调试功能最主要的作用就是:可以在代码中设置断点,使程序在运行到断点所在的代码中暂停执行,并保持状态。还可以单步运行程序,你点一下鼠标执行一行代码,同时,可以随时监视你定义的变量中的内容。
如果有了这个功能,上面说的逻辑错误马上就能发现并改正。
这个调试功能就是dw没有的。
4. 用什么开发asp.net?
答案:microsoft visual studio.net
下面是抓图:
5. 好处
完全支持asp.net开发。
后台代码:vs.net直接支持asp.net的后台代码,你不需要任何特殊的操作就可以直接输入后台代码。
自动编译:你只要按一下鼠标,所有的代码文件将会打包成一个或几个(由你指定)的.dll文件。
调试支持:目前最完善的asp.net调试器,可以调试后台代码,sqlserver的存储过程,javascript脚本,html代码。可以自动监视所有的变量内容和类的调用。可以单步运行代码,可以逐过程运行代码。
开发类型多:asp.net不仅仅包括aspx窗体页面,而且包括类库,自定义服务器控件,web服务等许多类型,这些类型dw是绝对无法开发的。而vs.net都可以开发。
服务器功能支持:在vs.net里面自动包含了sql server的企业管理器,可以直接建立sqlserver的数据库、表、存储过程、函数等所有的东西。甚至可以与access数据库联系,建立表和查询等。不需要sqlserver自带的企业管理器了。所以开发asp.net时候可以使用sqlserver的开发版,不需要标准版。这样大大降低了服务器的压力。
完善的帮助:asp.net毕竟是个新东西,开发的时候肯定要帮助的支持。因为.net类库包括了成百上千的类及方法,你不可能把他们都记下来,所以开发时候如果不记得哪个类的哪个方法,那么vs.net有完善的类库帮助,可以随时察看。如果你对vb.net或c#的一个语句不明白可以查看他们的帮助或者参考。如果你对怎样使用asp.net中的datagrid控件有疑问。vs.net的帮助中含有datagrid的全部例子和参考。