WinForms开发人员的WebForms开发总结。

作者:黄启清(www.cnblogs.com/happyqq)

个人网站:http://mama520.cn

日期:2008-11-20

写这篇文章,我感觉确实有点是班门弄斧的感觉。(WEB开发人员可以略过)

我这个一直以来都很专注WinForms开发的人一下子跑WebForms开发了,说实话,我除了在网络安全研究方面时去看看WEB程序,还真没开发过什么大型WEB项目。^_^

好了,接下来,我就聊聊WinForms开发人员如何快速地进入到WebForms开发当中去——这也是我写这篇文章的目的所在。

(备注:文章中所介绍的内容与开发语言以及开发工具无关。)

在开发WebForms之前,WinForms开发人员必须

  1. 了解WEB应用程序的原理。(当用户浏览我们的应用程序时,浏览器首先向Web服务器发出请求,Web服务器对请求做出响应,将响应数据发送给客户端浏览器,通常是一个HTML文件,然后通过浏览器把HTML文件信息显示在屏幕上。这是最基本的网络应用原理。详细请参考http://book.51cto.com/art/200809/89317.htm))
  2. 了解常用的Browser(IE,FireFox)
  3. 了解HTML、JavaScript。
  4. 了解IIS,或者其他WEB服务器的简单配置。

 

系统设计总结:

  • 1、抽取WinForms应用的公共类,比如SQLhelper。
  • 2、抽取WinForms应用的相关Business层。其中包括SourceCode以及数据库层次部分Business部分,
  • 3、由于WinForms开发人员,对WebForms开发经验不是很足,可以先从OpenSource社区,如SourceForge,CodePlex等下载相关参考项目,以便快速应用到项目当中去。
  • 4、安全方面的考虑。
    • 保证数据库安全(不允许在WEB应用程序中使用SA(root权限)用户登陆,就算是在WinForms应用程序当中,这种错误也是不允许犯的。)
    • 保证数据库连接字串的安全(可以采用加密方式存储)
    • 登陆安全(可以采用验证码方式,我们这次WEB项目的开发中在登陆安全这方面,讨论了三种方式)
      • 1、用户名,密码,验证码(项目中采用了此方式,并且验证码是很难OCR的那种)
      • 2、用户名,密码,邮件发送码(用户在第一次登陆时,获得系统发送的随机密码到用户的登陆邮箱,然后用户才可以使用此邮件发送码登陆系统——有点像网站上激活账号的方式)
      • 3、用户名,密码,加密狗。
    • 通讯安全(我们这次项目中采用了配置Windows2003Server的HTTPS,以保证通讯方式,防止网络监听。)

系统开发总结:

  • 1、考虑全局修改的方便性,
    • 页面设计:通过引入CSS文件中样式来控制页面布局样式,而不是去为每个页面样式去写很多重复的HTML代码。
    • 脚本设计:通过引入JS文件中代码来实现想要的功能。
    • 模板设计:通过修改模板文件来统一整个风格以及引入公共的文件。(如Vs2008的模板页)
  • 2、考虎多游览器的兼容性。(WinForms开发人员一般很少会考虑这些,因为他们可能之前考虑较多是OS级别上,比如应用程序是否能够在Windows9x,Windows2000/XP,Windows Vista下正常稳定的运行。)
  • 3、在数据修改或者录入界面,不要认为锁定了控件,用户就不能够操作了。(这是WinForms开发人员最容易犯的错误,有些骇客级别的用户安全可以打破这一常规。)

比如某用户只拥有修改产品数量的权限,而且只有查看产品单价的权限(但不允许修改):

产品数量:_________________    产品单价:_____________________(此处输入框被锁定了,但是保存的时候还是以所有的用户输入控件的内容保存入到数据库当中去的,在WinForms中这样做可能不会产生什么太大的问题,但是在WebFroms中这样做,会让你的数据全部乱掉的。)

  • 4、不要把用户登陆信息保存Cookies中,这个甜饼别人也是可以吃,别人也是可以改动的。(这也是WinForms开发人员容易忽略的地方。)
  • 5、不要相信呈现给用户端的脚本验证,我们需要在后台WEB程序中也要加上相应的验证。(HTML脚本代码不允许输入数字,但是,我们却可以通过POST数据包来绕过此关,所以我们需要在后台WEB程序中再加入相关的验证,以确保数据的合法性,正确性等)
  • 6、与其他程序的交互的数据,我们可以使用生成XML给其他程序调用的方式,(可能很多朋友会推荐我使用Web Service,没错,这是一个很好的办法。)
  • 7、不要将一大堆的HTML模板代码与我们WEB应用程序捆绑在一起,我们应该使用读取HTML模板文件,并通过相关内容替换模板文件的特征字串,来达到我们相要的效果。

比如发送用户注册成功模板文件SendMail.model.txt如下:

<html code...

亲爱的<<UserName>>

您好!你的用户名<UserID>已经申请通过,请速登陆系统进行查看。<br>

UserID:<<UserID>><br>

PassWord:<<Password>><br>

      • <<SendDate>>

<html code...

  • 当我们需要对发送用户注册成功信息的样式做相应调整时,我们只需要修改此模板文件,而不要动任何WEB程序代码。
  • 8、永远别相信用户从Browser送给你的数据是合法的,正确的。

 

好了,我这名不合格的WebForms开发人员就将总结写到这了,日后有什么新的学习进展,再写吧。

下面想骂的,想说的,只管吼出来,我不会在意的,只有你们的批评才能够让我进步更快速。

posted @ 2008-11-20 00:17  HappyQQ  阅读(4505)  评论(20编辑  收藏  举报