[1] An Introduction to Simple Object Access Protocol(SOAP简单介绍)
这是一片言简意赅的介绍SOAP(Simple Object Access Protocol)的文章。SOAP已经不是什么新东西了,但这篇文章还是非常值得一读。作者Joydip Kanjilal的归纳、总结能力相当不错,在如此短小的篇幅之内将概念说得非常透彻。本文语言运用方面同样非常浅显易懂,是一片不可多得的练习英语阅读的好材料。
本文包含如下内容:
- Introduction
- What is SOAP, Anyway?
- Why is SOAP required?
- Advantages of SOAP
- Disadvantages of SOAP
- Composition of SOAP
- Anatomy of a SOAP Message
- SOAP support in Microsoft .NET
- SOAP and Web Services
- SOAP and Microsoft .NET Remoting
- References
- Conclusion
[2] Stopping hot-linking with IIS and ASP.NET(在IIS和ASP.NET应用程序中防止盗链)
原本以为“盗链”只是具有“中国特色”的东西,没想到老外也有这方面的担忧,他们将盗链叫做leeching、hot-linking或者inline-linking。这不,MVolo也正在为此郁闷,他还为此特意开发了一个ASP.NET module用来阻止站点中的图片、视频、音频等被别的站点引用。该module适用性非常广,能够应用于IIS5 (Windows 2000/XP)、IIS6 (Windows Server 2003)以及IIS7 (Windows Vista / Longhorn Server)之上。
这篇文章就介绍了如何使用这个Module实现防止盗链的功能,包括详细的配置方法、各种考虑因素等,并提供了该Module下载。作者还在该Module的应用前后做了性能测试,结果似乎非常不错:
[3] DOM events in the Microsoft AJAX Library(Microsoft AJAX Library中的DOM事件)
在以前CTP版本的Atlas中,微软采用了“万般皆下品,唯有IE高”的作风,武断地用一个浏览器兼容层将其他“标准”浏览器中的事件处理方法转变为只有IE支持的、“非标准”的方法,这篇文章对此有详细的解释。
在经历过若干CTP版本之后,微软也收到了大量的对此的抱怨、不解甚至指责,最终在Beta 版本,也就是ASP.NET AJAX中,微软只能“顺应民意”地修改了Atlas中的浏览器兼容层,将其改回了更加“标准”的处理方式。例如,在Beta版本中为某个DOM元素添加click事件的处理函数代码应该类似如下所示:
$addHandler(myDomElement, "click", someFunction);
而不是CTP版本中的:
myDomElement.attachEvent("click", someFunction);
在Beta版本中,微软还将浏览器兼容层分散在客户端脚本库的各处,而不是CTP版本中用独立的兼容文件实现,这样就避免了服务器端的参与,减轻服务器端负担的同时也让客户端脚本库能够更方便地在其他非ASP.NET 2.0平台上使用。
[4] ASP.NET AJAX--Two weeks later(ASP.NET AJAX ——两周后)
两周前的技术文章推荐中,我曾经提到过意大利知名ASP.NET技术作家Dino Esposito对ASP.NET AJAX Beta带来的巨大改变郁闷不已,甚至讲话也变得尖酸刻薄起来。
不过两周后,Dino似乎和我一样“屈服”于微软的“淫威”之下,接受了这个难以改变的事实。这篇文章就是Dino此刻的心得体会,总体说来还是非常客观的,没有什么“过激”的言辞。
Dino随后又对Beta 2版本的发布写了一篇“第一印象”,其中似乎有了些赞赏的意味。不过这篇文章的最后一句(Sorry for being repetitive writing more or less the same ideas over and over again. I'm just trying to clear my mind and clarify things before starting on a new book v1.0 book project.)还是暴露出了Dino的真实想法——版本变化不是错,可是为什么不能等我把书出版了再说呢?(博大家一笑而已,请勿当真)。
[5] ASP.NET AJAX 1.0 Beta 2 Release(ASP.NET AJAX 1.0 Beta 2发布)
作为“ASP.NET之父”,Scott的话总是那么有分量。他的这篇Blog简要却又足够概括地介绍了ASP.NET AJAX 1.0 Beta 2所带来的新特性以及相应的升级方法。新特性概括如下:
- UpdateProgress放到了核心包中提供支持
- 在不支持AJAX的浏览器中,局部更新将自动“降级”为传统的整页回送
- 简化的DOM事件支持(就是第[4]条推荐文章描述的内容)
- 客户端JavaScript本地化支持
- 客户端JavaScript对调试、跟踪支持的改善
- Safari和FireFox中对ASP.NET Web Parts拖放功能的支持
- 性能和可伸缩性的提升
关于升级步骤,在我的这篇Blog文章中已经有介绍,这里不赘。
[6] Knowledge Base Server Beta available as CommunityServer Add-In(Knowledge Base Server Beta以CommunityServer插件的形式提供下载)
Knowledge Base Server是一个CommunityServer的插件,为其提供管理知识、数据的功能。CommunityServer本来最常用的功能就是Blog和论坛,现在有了Knowledge Base Server的帮助,我们是不是能够在挖掘一下它的潜力呢?
Scott Cate的这篇Blog文章介绍了Knowledge Base Server的主要特性,包括:
- Copy Forum Post / Thread
- Knowledge Base Suggest
- Knowledge Base Terms
帖子中还提供了5段极为精彩的视频,描述这些功能的使用,非常值得一看。
[7] Creating DAL Components Using Custom ASP.NET Build Providers And Compiler Techniques(使用自定义的ASP.NET编译Provider以及编译器相关技术创建DAL组件)
不得不说这是一篇非常“有技术含量”的文章。其中引入了一种作者称为“DALC Description Language(数据访问层组件描述语言)”的新语言。下面的代码就是使用该语言描述的一个数据访问层组件:
Config { Namespace = "Parago.DAL", DatabaseType = "MSSQL", ConnectionString = "Data Source=.\SQLEXPRESS; ... " } // // DAL component for table Articles // DALC Article ( = Articles ) { Mapping { // Map just the following fields, leave others ArticleID => Id, Text1 => Text } SelectAll() SelectByAuthor(string name[CreatedBy]) SelectByCategory(int category[Category]) } DALC Category( = "Categories" ) { SelectAll() }
既然引入了一门新语言,那么编译器也自然是必不可少的。“数据访问层组件描述语言”的语法采用EBNF元语法描述,并在文中给出了该文法的定义以及相应的该语言编译器的C#实现。“数据访问层组件描述语言”的编译器是以自定义ASP.NET编译Provider的形式提供给ASP.NET使用的,配置起来也非常的简单,Web.config中加上这一段即可:
<compilation> <buildProviders> <add extension=".dal" type="Parago.DALComp.DALCompBuildProvider, DALComp.BuildProvider"/> </buildProviders> </compilation>
若你已经忘记了大学中学过的编译原理课程,或是根本不知道学习编译原理有什么用,甚至觉得这些理论的东西都是狗屁,那么这篇文章可能会让对计算机基础理论课程有一个全新的认识。
[8] Top Five Developer API's(开发者最常用的5个API)
作者在这篇文章中给出了他认为最有用的、开源或免费的、非工具、非内建的5个.NET API以及简要介绍,包括:
- Lucene.NET
- Anthem
- ORM
- NVelocity
- RSS.NET
本文一石激起千层浪,读者在下面的回复中纷纷提出自己的见解并展开了“气氛友好”而“热烈”的讨论,作者随后又添加了如下几个:
- Flickr.NET
- SgmlReader
- PowerCollections
- XML-RPC.NET
- Genghis
朋友们可以看看这些工具,说不定能在实际项目中助上我们一臂之力。