看来还没有老,呵呵
通宵写代码仿佛已经是很久的事情了,昨天温习了下,感觉还不错,连续工作28个小时后终于觉得有些累了(当然包括中途吃饭的时间,呵呵)。
学校的教师社区加网络硬盘系统基本完成了,现在已经放到服务器上,因为没有考虑到额外的一些因素,现在文件的下载等还有些路径问题需要解决。
整个项目是我和另外一个同事一起完成的。他主要负责教师社区那边,我就是网络硬盘这边。由于是全校性的,所以社区需要考虑的因素很多,老师的自定义主页,班级管理(区分教学班级和自然班级等),主要是提供互动性,并没有加入学籍管理等教务内容。而网络硬盘,则主要是提供校内网络存储空间,并给社区教师提供作业和课件的存储。主要考虑注册用户和匿名用户。
社区就不说了,因为从学校计科院的雏形迁移过来,而我的网络硬盘,现在已经是第三版。第一版采用ASP.NET+XML,已经做到一半的时候,被告知需要结合到教师社区,重新采用ASP开发,这个版本我偷懒了,主要是小峰帮忙。而现在这个,界面完全仿照网易的网盘,在功能上取消了网易那边每个功能都需要到新页面去的跳转,很多功能都在一个页面上完成,最多就是弹出个小窗口。
因为模仿网易的网盘,所以大致研究了下他的代码,也就是html和js了,他用jsp写的,源代码就甭想看了。可以说就js而言,他已经用得相当完满了。就说最下面的容量的统计,居然使用js写的,也给了我灵感,稍加改变同样达到了这个效果,而不是老土的用图片叠加,控制图片长度的办法。
我的实现基本不是用数据库,全部都是fso操作。当然有朋友会想到安全性问题,因为这个我牺牲了性能,采用stream方式,从非web目录读取文件信息。这样的后果就是对服务器内存占用量会相当庞大,而且上传下载都不支持断点续传。没有数据库,所以搜索考虑使用纯fso搜索(或采用IIS的全文搜索辅助),也是对服务器的考验,暂时没有实现。
最后再说说重用ASP的感受。
1、调试很不爽,因为我把逻辑代码都封装了,所以只有实现调用才能调试。也就是不能单元测试。我在网上找到了一个ASP的调试包,但是没有说明不知道怎么使用;
2、对页面状态控制能力太差,习惯性的想!IsPostBack后实现什么,但是不行;
3、对用户输入效验,两种方式:回发服务器后验证返回,或使用jscript或者vbscript。想想ASP.NET里面的验证控件就释然了,微软贴心(也可以说让开发者白痴了)的封装了js代码到控件中,成了ASP.NET的验证控件。两种方式和升级后的ASP.NET基本一样。
4、语言支持,其实ASP支持两种脚本语言,也就是javascript和vbscript,不过用前者的人比较少,说白了也就是C系和Basic系,和ASP.NET也没有什么大分别。J#和C#都应该归结到C系去;
5、类库和控件。ASP.NET的.NET框架提供了丰富的类库,而ASP只能自己开发。当然他们都可以使用第三方控件。
6、执行方式。ASP.NET说我可以编译后执行,ASP说我是解释执行。实际上ASP执行后很多东西就在内存里面了。而我们想想为什么ASP.NET站点第一次执行会很慢呢,我想也是将很多东西放到了内存里面了。那么ASP.NET的程序快在哪里呢?(11.25新增)不知道大家是否会记得.NET多了什么?对CLR!也就是说编译实际上指编译中间代码,但是到了实际运行的时候,.NET框架会根据运行的机器的不同,再将中间代码编译。说白了就是用最适合这台机器的代码来运行。
也许还没说明白,举例:一个简单的x*y+z的运算,假设x、y、z都是16位的,用汇编来说,如果我们先将z变为32位的,那么整个运行速度就会有所提高,因为x*y结果将是32位。没有明白的学习汇编吧,这个也是我最近需要扎扎实实搞明白的。
暂时写到这里。不对的请各位更正。