about meWedia Ajax
ASP.NET2.0设计时值得注意的几点 ... Bing ... ASP.NET ... 2 /1488 ... 2 years 1 month ago
这个Blog原本打算使用三天的时间将这次的更新完成的,但是最后却花费了我接近十天的日子。这次下来有了很多心得,下面与大家交流一下:
  1. 使用存储过程能提高性能,统一管理对数据的操作。这个优点很值得我们去使用它。但是如果你使用的是Access,问题出现了,在Access上执行存储过程太耗CPU了。本站上就有这个问题,原本设计的很好的离线操作,访问数度应该是很快的才对,但是因为耗CPU,导致Session全部丢失,需要重新读取数据,因而有些时候您访问一个页面的时候数度会突然间慢下来。
  2. 使用泛型。泛型的使用能提高对数据的管理并能很好的处理一些表现层的东西,将数据实例化。但是就同上面一样,泛型由于编译器在编译的时候相对来说还有一个中间层的翻译,因而也是狂吃CPU的。
  3. 对于大量的小型数据,我们建议使用Struct,而不使用Class。Struct在处理大量的小型数据上的性能要比Class强许多,性能也要快不少。因而不要仅仅只使用Class,很多时候Struct还是用的上的。
  4. 网站的交互性性。我们设计网站的时候一定要考虑交互性,对于一个出色的程序员,并不仅仅是编写出高效、格式良好、结构鲜明的代码,还要是一个好的设计师。要充分考虑到意外的任何情况,不要对用户造成任何数据丢失等问题,也不能因为用户的一个小的失误而导致页面更新,数据消失等问题。同时还必须要让用户一看就明白哪里该填什么,哪里是不是应该填的或必须填的。这些对于好的Web设计都是很重要的。当然如果分工合作的话就另当别论。
  5. 网页URL的可记忆性。对于一个好的网站我们需要有好的URL来记忆它。您可以看到本Blog上的URL都是很好看的,并没有出现什么?#$%等等类似的代码。
  6. 强类型DataSet的使用。强类型的DataSet可以由CS.exe自动生成,当然这样的生成产物经过我的调试,觉得并不可取。理由如下:首先,生成的cs文件很大,一个普通的cs文件居然达34K,它对DataSet, DataTable,DataColumns都重新定义过,这样,里面多余的代码就很多,而这些我们都可以通过继承而并不需要重新定义。其次,生成的cs文件中定义私有成员、公共成员、函数的书写格式可能与你的习惯不一样。比如你喜欢用大写代表属性,但是它生成的却是使用得小写,这样对于喜欢统一风格的程序员来说是很不爽的事。然后,更改起来异常麻烦,当你的数据结构哪天发生变化的时候,一大堆的问题出现了,你要重新编译该DataSet,然后更改与该DataSet所有一切相关的类和文件。这样的一个麻烦的过程是让程序员深恶痛绝的。比较好的方式还是使用自己自定义的DataSet,这样不仅让整个代码变得容易阅读,修改起来也方便。这个对CPU的损耗相对来说并没有增多。
  7. 方式使用Datalist组件可以搞定的,相信Repeater一样可以搞定,并且执行起来的性能要高的多。Datalist的好处是可以直接在template里面使用数据邦定,而不需要手动编写,Repeater却需要自己手动编写。对于初学者,没有必要考虑性能的东西,掌握使用方法才是最重要的,因而还是可以使用DataSet的。使用Repeater的好处是效率要高的多,这样能减少对CPU的损耗。有一个很好的小技巧,你可以使用DataSet完成对数据的排版和邦定,然后将代码粘贴到Repeater组件里面。这样既可以不用自己编写代码,又可以提高性能,何乐而不为呢?
  8. 可以使用自定分页。对于GridView可以使用它自身的分页技术,但是大多数情况下,我们要使用的并不是GridView,而是Datalist和Repeater,但这两个组件又不能分页。考虑到离线操作,我们建议最好使用PagedDataSource。通过对这个类的使用能很好的完成各种分页技术。但是对于大数据量的分页,我们建议还是不要只是用PagedDataSource为好,这样会导致占用内存过大而卡死,这个比对耗CPU来说的后果要严重得多。
  9. 如果您的系统是一个小的系统,那么您完全可以不用考虑上述因素。因为这个涉及到多个层次,是一种高级的应用,小的系统并不会看到预期的效果,相反比较浪费资源。我的这个Blog就属于这种浪费资源类型的。如果您的服务器使用的是超强的CPU和超大的内存,那么您完全没有这方面的顾及。良好的代码格式对于日后的维护和更新有着太大的好处,即使在性能方面有所下降,但是这个就让我们的服务器去承担吧。
好了,其实还有很多值得考虑的东西呢,目前我能想到的就这么几点,对于有一定的开发水平的人来说,可能会有所帮助的。有什么问题就发表回复就是了!
Bing ... 2 years 1 month ago
Access的查询就相当于SQLServer上面的Procedure,这个功能我也没找到相关的资料该如何使用,但是看到网上有这样的使用方法。自己慢慢摸索出来的,居然可以这样做,呵呵!
这个啊,如果是SQLServer的话还能自己设置权限,但是我在Access上的确没有找到类似的权限设置。如果需要可操作的记录,是没有办法不使用everyone的。但是可以对每个浏览的用户给与一个Cookie,然后根据他们的Cookie来判断他们是否有这样的执行权限,这样可以在一定程度上增加安全性。
daiwen ... 2 years 1 month ago
Access用存储过程?这个倒还没有用过.一直用的是MS SQL.不过最近用Access做了个东西,就遇到了问题.放到服务器后更新数据时提示:更新需要可操作的记录.查看了一下是没有对数据库目录的写入权限.和IDC联系后说不能开放everyone的写入权限,比较郁闷,不只你有没有什么解决方案,传授一下,谢谢.
Name*
Email
Website
BoldItalicUnderlineJustify LeftJustify CenterJustify RightIndentOutdentBulled ListNumbered ListInsert LineCreate LinkUnlinkInsert Face
Submit