几种开发方式讨论
因不懂asp.net, 自学就到一家小公司工作。公司就我一个程序员。唉都有点闭门造车。感觉很多流行的开发方式或通用的开发技巧都只能靠自己去询问去分析。感觉还是很累。
该帖希望大家能不吝啬的把自己的一些开发经验分享下。
备注:大家可以询问一些开发类的问题,对提问题和回答好的。将重分答谢。当然。分数不重要。重要的还是参与交流。
我的问题:
1.观看一个网站的开发方法,很多人使用sqlhelper类来实现数据库的操作。但自我感觉这种SQL操作方法代码量还是挺大。
我又看到了一个人是采用(比如aa.xsd).xsd数据集。然后在里面准备好SQL操作语句,它就自动有对应的操作方法出来。
然后通过
using(aaTableAdapter.dbaaTdapter ta=new aaTableAdapter.dbaaTdapter ())
{
string strTitle;
.....
aa.insertData(strTitle);
}
我对比了下。上面那种方法代码量确实减少了非常多。参数部分也基本上是傻瓜化在建立.xsd数据集的时候自动生成。不用我们在去准备什么sqlparameter。就直接好像用函数一样,把所有原始数据通过aa.insertData()传递进去就可以。
对比了下。好像用微软提供的这种SQL封装操作,ADO.NET编程似乎更加简单。但我不知道它底层是怎么处理的。另外感觉如果你觉得不灵活,好像挺难扩展的。另外这种方式有一个我非常不喜欢的那就是如果是插入操作。因表数据字段非常多。整个函数的参数好多个。程序上好难阅读。看过一些书,书推荐说一个函数最好不要超过5个参数。超过的化可以用结构体来代替。
不过怎么说感觉都不知道采用哪种方式好。另外外面公司,你们主要又是以哪种方式,或其他方式,能分享下吗?
晕倒----300分发不了。以后好的化再追加分数。看来级别还是很低,郁闷
2.脚本性过滤
网站的前台有输入的地方,肯定要防过滤。一般讲过滤我是采用这种方式:
A)非编辑器控件、纯文本框输入的,则用Server.HtmlEncode(string s)进行html代码加密。
B)涉及到编辑器控件的,就采用网上一直在用的过滤脚本函数。
但系统后台呢?大家有没有过滤。有时感觉要过滤还是不过滤。都有点把握不住。过滤了是安全了点。但感觉是自己人在用。没必要弄这些。人家也不懂脚本攻击。特别是新闻发布方面,新闻内容非常多字符,采用网上流行的过滤方法好像怕怕的。性能上似乎会有所影响。不过滤感觉心里怪怪的。
大家在开发过程中有没有过滤后台输入的脚本。
3.验证码机制
验证码相信很多人都是直接从网上一个公用的方法。其中涉及到的是验证码如何存储问题。有的人是加密存储到cookies、有的人是存储到session。但似乎现在很多的群发软件都可以识别验证码,感觉验证码都成了一种摆设。特别是在博客园看到一篇介绍如何不用输入csdn验证码就可以直接登录。感觉验证码似乎越来越不起以前的重任了。
我知道这个验证码的存储方式、混肴程度有关。另外部分抓包也感觉都是挺难防的。有网友提出了用基于IP限制时间策略。另外看部分论坛也有采用问答方式。但试问下,不是验证只用在注册页面上。再回帖过程中,难道也要用回答方式。那也太变态了。
不知道大家如何处理的,还是平时没怎么注意这个。最近是感觉自己维护的一个站点有这方面被人刷的疑问。
4.基于Forms角色验证。
有的人网站,验证会员是否已经退出去或是否已经登录。采用session或cookies来判断是否为空。以前我们这边的一个网站也是采用这种方式。但有一次。我在研究一个站的某个功能安全性时候。发现修改cookies工具实在过多。session算比较少。但如果说站点的session存储机制采用基于inproc方式,老是会出现session丢失现象。改用基于StateServer又觉得耗服务器性能。
而后面看到了Form验证机制。不过我感觉FORM角色验证机制,又似乎有点很耗。(~~~呵呵,我不了解这个底层,凭猜测说,说错了。不要批)。Form验证好像对页面每个元素,如图像啊,样式啊。都会根据web.config进行验证是否有访问的权限。这就感觉
一个页面要是复杂点。图片多点。不是会很耗验证时间。
大家觉得呢?还是有更好的验证机制。
4.URL重写URL重写可以一定情况下优化SEO。在安全性方面也相对会好一点。看过网站的很多这方面资料。有的人是用 asp风格的ISAPI.dll
然后在Http.ini文件中写对应的正则。有的人是直接在IHttpModule自己写解析URL。然后在Web.config写正则。或也在一个文件中保存正则。我曾经用过别人的后面这种用法。发现当一个站点重写页面多。那么在查找匹配重写的页面程序调试的时候感觉很让人担忧。
有这方面经验的人能给些好的方案或好一点的方法、案例吗?
5.静态页面
新版经理要求一些资讯栏目生成静态页面。提升访问速度。以前没做过。后面也学习了。看别人这方面的用法。一个是基于URL地址进行生成静态页面(我试了下,感觉太慢了)。另外一个是在信息添加、修改的时候重新生成静态页面。静态页面给我的感觉怎么说呢》?----难道aspx动态页面这么不能承受。怎么很多人都喜欢搞成静态的。可谓做静态的人喜欢页面尽量弄成动态丰富化。而搞动态的人又喜欢页面往静态页面形式开发。不过感觉有一个很大的难点。不是说每个静态页面就不可能包含动态内容的。向评论啊。用户登录啊都是个比较麻烦点。那时这方面很菜,花了很超长时间。有尝试过在Form Action=“aa.aspx”,然后通过在aa.aspx页面中进行Request.From方式进行获取静态页面的文本框文本,进行SQL操作。有点向百度一样。后面还是替换成了xmlhttprequest进行登录验证和评论。不过js功底不是很好。只能用基础简单的。但有是出错。简直是要杀人。调的很久。
自我感觉这方面效率低。大家又是如何生成静态页面、如何在静态页面中处理含有动态的内容。
6.主题与样式
以前可能在页面上基础很差、经验不过巴。老是把美工好好的页面变成乱七八遭的。后面也从中总结出了原因。也已经在某个帖中写了出来。后面就基本上再没遇到这方面问题。感觉做前台页面轻松了超多。不然最怕的还是在页面上。
问题是:论坛SP1234大师,曾提出这种方案,采用主题---Themes。可以把程序和美工严格的分开来,从而把美工的工作提升到一定的灵活性上。后面我也抽出了时间弄了下。可能对.skin不熟悉巴。一直在.master中无法使用只能在.aspx中使用。用的过程中自我感觉Vs开发设计工具不直接对主题的支持---也就是说你用主题把样式文件拷贝到主题下的时候,在用VS查看那个设计页面
的时候,页面的样式好像无法加载。页面很难堪,特别是用div+css布局的页面更是变形的难堪要命。可能也因为以前一直因为这个原因,非常惧怕这种很乱的页面巴。后面也就不大想用主题,新接触这个不久。中间可能有用错或不懂里面的功能。大家是怎么用主题的。是不是如我所说页面在Vs2005查看会很乱。只有IE浏览的时候才正常。
期待有经验的高手解答。
目前时间关系----问题先提到这。希望大家能说说自己的看法。呵呵,无论是出于提升自己还是帮助别人我想大家都是有益的。谢谢大家。~~~