本周ASP.NET英文技术文章推荐[很久以前 - 02/26]:Immutability、InterpolationMode、CompositingQuality、性能优化、单点登录、Spring.NET、Facebook、MySQL、Web Deployment Tool
摘要
好久没写了,不为自己找借口,不管怎样,还是要继续捡起来。本期共有9篇文章:
- C#中的不可变类型
- 使用System.Drawing生成缩略图时应采用什么样的InterpolationMode和CompositingQuality
- ASP.NET性能优化点滴
- ASP.NET 2.0中的单点登录实现
- 将Spring.NET集成至ASP.NET Web站点中
- 为Facebook开发应用程序
- 一步一步学习在ASP.NET中使用MySQL
- ASP.NET Menu和SiteMap根据安全性配置的自动截取
- Microsoft Web Deployment Tool - Tech Preview 1
[1] Immutability in C# (C#中的不可变类型)
这是一篇总结性质的文章——C#中的有一些类型是不可变的,也就是说,一旦创建好了对象,其中的值就再也不能够被改变了。Patrick Smacchia说,这样做有如下的好处:
- They simplify multithreaded programming.
- They can be used as hashtable keys.
- They simplify state comparison.
更多的好处以及具体的实现方法,我记得在Effective C#中讲得很明白,有兴趣的朋友不妨看看。
这篇文章聚合了很多关于C#中的不可变类型的内容,包括为什么引入这个东西,什么时候应该使用,怎么使用等等。虽然不是什么新鲜的东西,加深下印象也无妨。
[2] What InterpolationMode and CompositingQuality to use when generating thumbnails via System.Drawing (使用System.Drawing生成缩略图时应采用什么样的InterpolationMode和CompositingQuality)
看上去似乎和ASP.NET没什么直接关系,不过实际上,生成缩略图这个功能还是ASP.NET中非常常用到的。这篇文章中就给出了一个测试用的程序,比较了各种不同nterpolationMode和CompositingQuality下的缩略图生成情况。还图文并茂给出了各个结果,下面就是结果的一部分:
有这方面需求的朋友不妨看看,根据需要优化一下程序中生成缩略图的方法。
[3] ASP.NET Performance Tips (ASP.NET性能优化点滴)
非常不错的一篇文章,没有太多高深的内容,都是一些点滴之处。不过无论什么时候,程序性能优化方面值得考虑的东西总是太多。往往鱼和熊掌不可兼得,或是牵一发而动全身。这篇文章的做法也不是金科玉律,执行时候还需要具体问题具体分析。
文章中给出了如下一些点滴:
- Return Multiple Recordset
- Paged Data access
- Using Cache API (Programmatic way of caching)
- Per-request caching
- Page output caching
- Kernel Caching (Only with IIS 6.0)
- Connection pooling
- Using GZip compression
- Server Control View State
- Trim the page size
- Using Page.IsPostBack to Minimize Redundant Processing
- Using Server.Transfer instead of Response.Redirect
- Avoid Using Page.DataBind, instead call data bind on specific control
- Minimize Calls to DataBinder.Eval
- Disable unnecessary session state
- Use SqlDataReader to visit the Read-Only Data instead of DataSet
- Use of server controls
[4] Understanding Single Sign-On in ASP.NET 2.0 (ASP.NET 2.0中的单点登录实现)
单点登录的文章和讨论很多,什么XX Passport,XX ID的不计其数。不过这篇文章中作者独辟蹊径,居然通过固定了不同ASP.NET应用程序的machineKey为同一个的方法实现了单点登录……实在令人唏嘘不已。
文章还自带一个小小的示例程序,不过听到了这个machineKey方法之后,示例程序也就显得非常简单了。
[5] Integrating Spring .NET with ASP .NET web site (将Spring.NET集成至ASP.NET Web站点中)
Spring (Spring.NET)如雷贯耳,很好很强大,这篇文章就通过示例程序演示了将其与ASP.NET集成的方法。
配置啊配置,一大坨的配置文件慢慢写……慢慢配置吧
[6] Developing an Application for Facebook (为Facebook开发应用程序)
非死不可(Facebook)最近如日中天,其良好的扩展性吸引了众多开发者的目光,更是搞出了一个名为Facebook Markup Language的语言。这篇文章用一个示例程序演示了FBML以及非死不可应用程序的种种概念理念。茶余饭后的时候可以随便尝试一下。
[7] A Step-by-Step Guide To Using MySQL with ASP.NET (一步一步学习在ASP.NET中使用MySQL)
MySQL虽说不是微软的产品,不过其良好的性能、简单的使用以及免费的特性(与SQL Server比起)仍旧非常吸引人。这个系列文章就介绍了在ASP.NET中使用MySQL的方法。
实际上,ASP.NET本身并没有对数据库有什么硬性的规定,有了Provider,随便一个数据库基本上都能够与其完美配合。不过通过这个系列文章大概了解一下MySQL倒是个不错的主意:
- 第一篇文章介绍了MySQL的一些基础知识,包括安装、配置、创建数据库、表等等;
- 第二篇文章介绍了在MySQL中管理用户权限,以及ASP.NET连接MySQL的一些常见操作;
- 第三篇文章介绍了开发过程中可能遇到的一些常见问题、1.1和2.0中不同的连接、处理方法等等;
- 第四篇文章介绍了使用MySQL中存储过程的方法,当前,前提是我们的MySQL必须为5.0以上版本。
不过看这架势,作者好像还是没有收笔的意思,让我们继续拭目以待吧。
[8] ASP.NET Menu and SiteMap Security Trimming (ASP.NET Menu和SiteMap根据安全性配置的自动截取)
(标题的翻译还真是让人头疼)有些网站的导航栏中,匿名用户是一个样,登录之后多出几个链接,若你是管理员,那么还能有更多的选项。本来以为这些都需要手工实现,没想到ASP.NET 2.0中已经内建了支持(孤陋寡闻了)。
只要在配置site map的时候添加这一串就好了:
<siteMap enabled="true">
<providers>
<clear/>
<add siteMapFile="Web.sitemap" name="AspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true"/>
</providers>
</siteMap>
随后ASP.NET将在运行时自动检查当前用户的角色,然后根据配置文件中每个角色能够访问的不同页面动态地决定他能够在导航菜单上看到哪些选项。
[9] Microsoft Web Deployment Tool - Tech Preview 1 - x86 (Microsoft Web Deployment Tool - Tech Preview 1)
这个可是微软公司官方的一款Web应用程序的部署工具的预览版本,绝对是雪中送炭阿!支持如下的特性:
- Synchronization and Snapshot of IIS 6.0/IIS 7.0
- Migration from IIS 6.0
- Analysis of IIS 6.0 Installed Features
- Troubleshooting and Validation Features
想使用这个东西,要满足如下条件:
- You must be using Windows Server 2003 or Windows Server 2008.
- The .NET 2.0 Framework SP1 or greater must be installed.
- Internet Information Services 6.0 or 7.0 must be installed in order to perform operations on IIS.
- You must install the tool as an administrator. If User Access Control (UAC) is enabled, you must use the “Run as Administrator” option when installing.