WinForms开发人员的WebForms开发总结

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开发人员就将总结写到这了,日后有什么新的学习进展,再写吧。

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

 

 

转载于:https://www.cnblogs.com/luoyaoquan/archive/2011/06/21/2085745.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值