var competitive=new {technique,business}

2007/11/11

十一月

渐渐的一个月又过去了,总结一下:
1,mvc:上个星期看了scottgu关于asp.net mvc框架的一个录像,从录像中可以看出开发小组利用新的httphanler来处理请求,程序根据url来应用不同的controller和 action来处理请求,请求的页面url为action/parameter,这种对REST的实现和rails中的方式很像.这样看到 querystring的就很小了而且对搜索引擎是友好的,不过由于不支持viewstate很多现有的控件将不能使用,看录像时发现好像现在对页面模板的可视化设计支持还不是很好,看了一些structs,webwork,spring方面的资料,有以下几个问题:(1)没有看到model层,在java中不管是structs中的actionform还是webwork中的model模型,在演示中没有看到获得页面数据的部分(我漏掉了?),大多数是基于链接的演示。不知道页面发送的数据如何获得不会光靠request.params吧。(2)演示中是使用编码的方式添加controller,为什么没有使用web.config?总体上来说mvc将改变现今asp.net程序员的编程方式同时也促进.net开源社区的发展。不过asp.net ajax从展示到正式版就耗了两年,mvc框架与人们见面还需要时日。
2,大文件上传:项目中碰到了大文件上传的问题,在网上找了一阵如果不使用activex就得使用httpmodule,最后选择了Darren Johnstone的上传模块,该组件对进度条进行了很好的封装。遇到的文件重名,重命名等问题也都能靠ajax,session等技术很好的解决。不过如果要在客户端解决判断文件大小的时候还需要fso(activex)控件,对网易优盘做实验发现如果向163的网络优盘中上传几百M的文件页面会等待一段时间(网络监视工具显示有大量数据传输)后出现网页无法找到页面。另外服务器控件的的自动do_postback也是一个问题最好使用客户端控件在脚本中控制页面的submit。
3,脚本库:这几周也在看extjs控件库,感觉该控件库实现的页面效果不错但是大小和运行效率让人担忧,我在firefox上使用grid控件动不动cpu的占用率就过半不过其他控件的效率还行,如果在企业局域网内建网站可以使用。不过现在令我感到吃力的是api文档太复杂而网上的教程太分散,感觉没有学习jquery时流畅又有visualjquery这种方便的帮助工具。现在一方面应该像prototype和jquery一样有一本相关书籍出版另一方面对于这种复杂的控件需要IDE支持,不过大厂商都忙着开发自己的RIA谁会顾及他呢。
4,工具:(1)slickrun:很好用的快捷方式工具,以前我喜欢记住命令然后使用win+R,不过对于深藏文件夹的程序就麻烦了。使用slickrun让你手不离键盘。(2)foxit reader+灵格斯辞典:一个很大的优点就是内存占用很少。(3)blogjet:一个很好用但是还没发现破解的离线blog发布工具,以前用live writer beta1的时候还行,用了beta2感觉内存占用很大。blogjet对于图片上传支持比较好不过好像还不支持blogspot的图片发布api.(4)Aptana Studio:aptana终于发布了正式版,不过程序运行时动不动就200-300M的内存和虚拟内存使用率实在让我受不了。

2007/10/6

重返ubuntu

十一天公不作美,呆在家里将空着的5G重新盘装上了ubuntu。开始装了6.06LTS版,配好字体,显卡驱动后想cool一下3d,可是愣没找到dapper的beryl源,于是重装7.04版,听说beryl和compiz又合作产生了compiz fusion项目,于是决定尝试一下,一路下来麻烦不少但最后终于配好了,但是字体还是不如windows下的清晰,安装了一个ubuntustudio主题。发几张图片炫一下:

点击查看大图,大图更酷
点击查看大图,大图更酷
点击查看大图,大图更酷

2007/10/2

Script#

由于编写javacript脚本没有强大的IDE支持,所以人们想出了使用编译语言代码生成js的方法,这样一来人们既可以利用IDE的检错,强类型支持等一些功能,在java方面有GWT的支持,而在.net方面还没有官方的支持,大牛Nikhil Kothari提供了Script#这个工具,使用该工具可以从c#语言生成js脚本,如果编写的的是library可以同时生成一个程序集,其实程序集提供了在其他地方使用此工具的强类型支持,使用Reflector查看核心库可以看出程序集没有实际的代码,该库只是对js类型的描述以用来提供强类型支持,在核心类上包含一个import属性,应该是在编译时提供给编译器ssc使用的以实现脚本与库的对应。由于js的类型库与C#类型库的区别所以使用该库时不能引用mscorlib。ScriptFX构建与类型库至上并提供了history management,session state,json serialization,detect brower,sheduled execution,timeout,UI等功能,此外还提供了对silverlight,ve,fso,rss等的支持,总体上来看该工具对没接触过脚本的开发人员来说是一个好消息,但是对于网络程序员来说学习js还是必须的。但是工具的设计时支持还不是很好老是丢掉最后一个"}",我使用时还与vss发生了一些小问题

2007/10/1

十一

       转眼间十一就到了,日复一日的日子里可以记录的东西并不是很多,我喜欢表达情感的文字但现实生活中自己更多的是从理性考虑一切所以只剩下了点滴的片段。
        1,数学家轶事与《美丽心灵》:在阅微堂上看到了看到一篇讲述数学家轶事的文章,文章很有趣有人为数学生有人为数学死,它想宗教一样吸引着人们,数学美哉!文章中关于nash(囚徒困境)的部分提到了这部电影。这是一部纪录nash一生的作品电影,nash的人生并不传奇但看完电影之后展现的面前的是一种关于长久的爱的美妙。
        2,歌曲:Daniel powter是一位加拿大歌手,钢琴弹得很棒,歌曲节奏明快,像bad day,free loop,song 6 都是很上口的歌曲。诗人歌手James blunt是一位出身军人家庭并曾是指挥过3万多人维和部队的上尉,吉他弹得非常好,像goodbye my lover,tears and rain等一些歌曲都像嘶喊一样令人印象深刻。
        3,非技术书籍:在阅微堂上下了一本杨大伟评的中国崛起,一看就迷上了,这本书对国内国际的局势进行了分析了并对了中国面对这些情况应该全局上如何做提了一点建议。作者作为一名留学生的拳拳爱国之心贯穿于文字之间。文章没有过多的讲述问题和解决方案的细节,但是大的方向还是对的,对于我这种技术人员看了之后不光对政治有了了解而且从中能感觉到一种从长计议的理智。关于内需刺激经济的部分很正确,就像对一个个体而言我们很长一直以来宣传不光要有内在还要会宣传自己,而今人们已经关多的将时间放在外在上而实际上我们忘记了内在才是重点,外在只是一种辅助罢了。
        4,技术方面:这个月多是与客户端打交道,对css,dom,javascript有了一定的了解,wrox的《Professional Javascript For Web Developers》一书对js,dom的讲解比较全面清晰,既不像犀牛书那样过于理论也不想技巧书那样太零碎,章节安排的很好。在css方面对盒子模型及定位有了一定了解,不过《精通css》还没看准备十一过一下。顺便说一下silverlight,虽说现今有很多像bwindow这样在网页上模仿桌面程序的库但是使用及效率上都不是恨好,我喜爱的jQuery的UI模块实现了部分功能但是对于复杂应用还是过于复杂,程序员要去自己控制客户端的变化。而对于用惯了微软rad开发环境的人员就不顺手了(vs2008 beta中引入jquery后报智能提示无法使用错误?而且引用脚本的位置影响到了程序的运行),于是对于.net实现复杂的客户端就需要silverlight(有点羡慕java程序员有一些开源基于flash的架构使用),下载了silverlight SDK和blend感觉blend的菜单太多了,感觉不是将开发与设计分离了而是合并了。对百分比拖动条的设计使用起来也不好,SDK提供的模板并不是很友好,添加xaml是要改动好几个地方。不知道微软内部的开发小组今后会不会合作实现两者的完美结合。由于国内.net程序员占多数可以肯定国内以后对silverlight的应用会比较多。不过对一些企业来讲要将系统升级为2008+ii7+.net3这种黄金搭配就需要一些成本了。
        而今看来,it行业的发展并不一定要靠光靠技术创新,改变与其相关的模式也能创造巨大的价值如同web2.0之于互联网、直销之于Dell、外包之于软件。试着改变一下生活方式,拥抱变化!

2007/9/2

杂记(2)

也没什么能够详细写的,又只能写杂记了!(房东这儿网速只是个慢啊,好不容易用傲游在不加载图片的的情况下打开了,用linux下的字符浏览器lynx的win32版本都打不开老是丢包,晕倒)。
这几天在学习jquery,感觉css+xpath选择器的灵活性太强了。程序员可以轻松的找到并操作每一个html元素。对ajax的封装,跨浏览器特性以及事件绑定等也都实现了ajax in action中所讲的adapter,facade,observer等模式(封装就是好,现在老多工作也是在不停的重复,但还没找到变化点去封装)。书中对mvc模式的理解与我的观点不同(dom是m,javascript是c,css是css),如果服务器端返回的是json,xml等那么mvc就可以分为两种,整个不是code-behind式的mvc,而是一种是服务器端的一种是客户端的,服务器端是httphandle,serverlet式的。两种方法前者适于快速开发,后者则像webservice他提供的是数据而不是页面,对于我等面对奇慢网速的人我更需要数据,比如迅雷下载其实我就需要一个名称和一个链接,如果可以调用迅雷的服务直接返回json或xml多爽啊,不过现在还没找到调用接口。
说到javascript不能不说一下编辑器,由于对库刚刚上手所以经常打错字但有时是调了半天才知道是这种低级错误,spket比较小但智能提示不足,aptant的智能提示很强,不过搞asp.net开发老在俩编辑器间切换不爽。而且java虚拟机老搞得电脑卡(sql server + vs 2005 + aptanan +ie >> 512 mb).试了一下vs 2008 express 感觉还可以不过现在还不敢在实际项目中应用。
老姐来北京签证就去了一趟颐和园,绕园逛了一圈,文化气息没感觉到多少,不过看里面一家几口散步,野营好爽啊!

2007/8/18

杂记

DataReader:当DataReader为 SequentialAccess 时不可随机访问

js调试:
1,compilation debug="true" strict="false" explicit="true"
2,IIS配置中使用ASP调试
3,在浏览器中允许客户端调试

ProcessRequestInternal的主要工作是:
1. 创建HttpContext实例。
2. 对第一次请求进行初始化(EnsureFirstRequestInit)。
在EnsureFirstRequestInit中通过调用System.Web.HttpRuntime.FirstRequestInit进行一些初始化工作,比如:将Web.Config配置读到到RuntimeConfig中,从bin目录中装载所有dll文件。
3. 创建HttpWriter实例。
4. 通过调用HttpApplicationFactory.GetApplicationInstance创建HttpApplication实例。
在HttpApplicationFactory.GetApplicationInstance中有三个关键方法:
HttpApplicationFactory._theApplicationFactory.EnsureInited();
HttpApplicationFactory._theApplicationFactory.EnsureAppStartCalled(context);
HttpApplicationFactory._theApplicationFactory.GetNormalApplicationInstance(context);

O/R MAP:
MDA代码自动生成
dlinq更像是ActivRecord由表生成对象,列对应于属性,相对于xsd仍然还需要编写BLL不知可用性如何(如IDE的支持)
linq操作的是内存,把sql语句转移到了语言中

FCKeditor:
将文件夹权限改为程序标识用户可以读写,新建Bin文件夹拷入dll文件,在测试页面测试,更改连接及上传页面Theme=""

VSS:
先要建立与服务器的连接(net use)否则报invalid handle错误

多线程:
lock实际上是monitor的行为,Monitor.Enter(object)其中object是clr为每个类维护的变量,当进入后设为正离开后为负

权限:
在配置文件中权限级别顺序执行,子文件夹优先级高

2007/7/26

PowerDesign-概念数据模型(CDM)

PowerDesign是由一位在法国的中国人带领开发的建模工具,它支持UML、CDM、PDM等多种模型。个人使用起来感觉模型比visio少,不过在数据库建模这方面功能比较强。在网上搜了一阵只找到两个CHM帮助文档,不过对概念及应用讲得不多,后来开到cnblog上有一位老兄的博客专门讲解了PowerDesign就把几个网页整理做成了一个pdf文件,希望对大家有帮助。在此感谢Kevin Yin的辛勤劳动。