代码改变世界

【收藏】本周ASP.NET英文技术文章推荐[11/26 - 12/02]

2007-10-30 10:47 by Jacky_Xu, ... 阅读, ... 评论, 收藏, 编辑

提醒:若朋友们想对英文文章进行翻译,则首先需要征得原作者的同意,以免日后导致无谓的版权纷争。以下内容节选自《中华人民共和国著作权法》:

第十条  著作权包括下列人身权和财产权:                             
    (一)发表权,即决定作品是否公之于众的权利;
    (二)署名权,即表明作者身份,在作品上署名的权利;
    (三)修改权,即修改或者授权他人修改作品的权利;    
    (四)保护作品完整权,即保护作品不受歪曲、篡改的权利;
    (五)使用权和获得报酬权,即以复制、表演、播放、展览、发行、摄制电影、电视、录像或者改编、翻译、注释、编辑等方式使用作品的权利;以及许可他人以上述方式使用作品,并由此获得报酬的权利

第十二条 改编、翻译、注释、整理已有作品而产生的作品,其著作权由改编 、翻译、注释、整理人享有,但行使著作权时,不得侵犯原作品的著作权

[0] 摘要

本期共有9篇文章:

  1. [1] ASP.NET中的强类型资源
  2. [2] 在Visual Studio Development Server以及Web Application Projects中创建子项目 3/3
  3. [3] ASP.NET案例分析:由ViewState造成的GC时的低性能、高内存使用以及高CPU占用率
  4. [4] ASP.NET中的O/R Mapping
  5. [5] 用JavaScript在基于Mozilla和IE的浏览器中画线
  6. [6] GridView的主题样式
  7. [7] 基于ASP.NET AJAX的网站展示
  8. [8] 3层Web应用程序中的双向数据绑定
  9. [9] 在ASP.NET 2.0中创建CSS友好的Web站点

 

[1] Strongly typed Resources in ASP.NET(ASP.NET中的强类型资源)

WinForm中的资源数据可以是强类型的——编译器会自动根据资源文件编译出一个辅助类来实现这个功能。而ASP.NET Web Site项目却没有这么幸运了。但ASP.NET Web Application Projects的出现似乎让我们看到了一些转机:相对于Web Site,ASP.NET Web Application Projects的编译模型更加“类似于”WinForm程序……

Rick Strahl确实是一个牛人,每一两天就会发出一片足够“重量级”的帖子,他似乎对所有的领域都非常感兴趣,且都有不错的理解。这篇文章则更是一个非常好的从发现问题到解决问题的示例。在为ASP.NET添加强类型资源的过程中,Rick Strahl逐步地分析问题,又一个个地解决,同样新问题也又不停地到来。这种钻研的精神、面对问题时思维的发散性,才是帖子所讲的技术背后最值得我们学习的东西。

 

[2] Part 3 of 3: Creating sub-projects using the Visual Studio Development Server and Web Application Projects(在Visual Studio Development Server以及Web Application Projects中创建子项目 3/3)

在开发大型的ASP.NET 2.0应用程序时,我们完全可以使用Web Application Projects在Visual Studio中将这个大型的项目分割成若干个小型项目,并相对独立地进行开发,以提高开发效率。

本篇就是介绍该特性的系列文章中的第三篇,也是最后一篇。文章写得浅显易懂,且配合了大量的插图,适合初学者学习。这个系列的三篇文章由微软公司Web工具开发团队的Group PM,Omar Khan书写,下面是Omar Khan在第一篇中对整个系列的介绍:

  1. Part 1 of 3: In this post, I’ll describe the basics on how to setup a sub-project structure using IIS.
  2. Part 2 of 3: The next post will describe intricacies with master pages, user controls, and project references when using a sub-project structure.
  3. Part 3 of 3: The final part to the series will describe how to use the same technique but with the built-in development server in Visual Studio 2005.

 

[3] ASP.NET Case Study: Bad perf, high memory usage and high CPU in GC - Death By ViewState(ASP.NET案例分析:由ViewState造成的GC时的低性能、高内存使用以及高CPU占用率)

这是一篇比较“有技术含量”的文章,作者Tess是微软公司的技术支持工程师,也是一个美女:-)。她的Blog也自然非常受欢迎(kidding),主要专注于性能、调试等内容。

在这篇文章中,Tess花费了很多的时间研究了ViewState对ASP.NET性能上的影响,特别是在大型、负载较重的情况下。Tess使用了包括察看dump文件等各种方式,最终找到了问题的所在。其中抽象问题、分析问题以及最后解决问题的步骤有条不紊,非常的理性。如果你能静下心来仔细随着Tess走完全程,相信一定会得到相当的启示的。

 

[4] Object Relational Mapping in ASP.NET 2.0(ASP.NET中的O/R Mapping)

O/R Mapping似乎已经成了当前数据持久化中不可或缺的最重要的一项技术,正是有了O/R Mapping,才将我们开发者从大量的重复或类似代码中解放出来,能够有时间专心于业务逻辑领域。

Stephen Rylander所写的这篇文章是一篇O/R Mapping的入门文章。通过实际项目开发中遇到的一个持久化问题,作者分析了O/R Mapping的应用范围、使用方式,并最终给出了解决方案。不过作者选择WilsonORMapper作为O/R Mapping的框架,并没有选择NHibernate,想必一定会有他的理由吧。

若你尚不了解什么是O/R Mapping,那么显然这篇文章将最适合你不过了!

 

[5] Drawing lines in Mozilla based browsers and the Internet Explorer(用JavaScript在基于Mozilla和IE的浏览器中画线)

这篇文章讨论了两个非常有意思的东西:

  1. GUI中的画线算法:如果你曾学习过,或是还记得《计算机图形学》这门课程,那么其中第一个重要的地方就是GUI上画直线的算法。看似简单,不就是一条直线么?不过需要考虑的问题却很多,包括实现柔和的线条、性能优化等各个方面。计算机图形学中使用倒了大量的算法知识进行优化,绝对是复习算法的绝好材料。如果你已经忘记了这部分内容,那么就让我们从这篇文章中拣起来吧!
  2. 用JavaScript在浏览器中画线:JavaScript在浏览器中画线?没错,就是这个!具体的实现方式就请朋友们耐心阅读吧,这里我先卖个关子。

虽然上面这两个问题都非常有意思,不过可能在实际开发中却很难用上。不管怎样,我还是执意要推荐一下,毕竟,扎实的算法功底才是程序员之根本!

 

[6] GridThemes(GridView的主题样式)

ASP.NET中的GridView控件功能非常强大,如果写书介绍的话,300也肯定没问题。但你有没有想过有一天为其应用更加强大的主题样式呢?例如左图这样的GridView,一定会让你的表格更加受客户的青睐吧!

本文是CodeProject上的GridThemes项目的介绍文章,该项目让我们能够通过自定义的主题样式文件,为GridView指定丰富的样式。最酷的一点是:在这个自定义主题样式文件中,我们甚至可以使用if-else之类的条件判断语句!这也正是左图中表格样式如此丰富的原因。

 

让我们看看它的一个样式文件的定义:

<Theme id=”ifstitle=”Working with If conditions>
 
  <DataRow>
 
    <!-- display alternate columns with different background colors -->
    <If test=’CellIndex % 2 == 0>
      <Apply backColor=’LightGray/>
      <ElseApply backColor=’White/>
    </If>
 
    <!-- apply numeric formatting -->
    <If test=’IsNumeric>
      <Apply horizontalAlign=’Right/>
      <If test=’IsNegative>
        <Apply foreColor=’Red/>
      </If>
    </If>
 
  </DataRow>
 
</Theme>

 

[7] Showcase of Sites Powered by ASP.NET AJAX(基于ASP.NET AJAX的网站展示)

Ajax.NET Professional的作者Michael Schwarz最近找到了两个基于ASP.NET AJAX(注意:不是他自己的Ajax.NET Professional)的网站:QuotikiSmartScoreboard。于是Michael Schwarz分析了一下这两个网站使用ASP.NET AJAX所带来的网络传输量的减少。

当然,Michael Schwarz并没有太多的评论,一切都以事实数据说话,这也是一个专业人物专业的体现吧。不过只言片语中看得出来,Michael Schwarz还是对ASP.NET AJAX的性能问题颇有微词……

 

[8] Two-way data binding in 3-Tier web application(3层Web应用程序中的双向数据绑定)

数据绑定是所有ASP.NET开发者都熟悉的,不过可能很多朋友所熟悉的都是单向的,也就是从数据层到逻辑曾再到表示层。不过严格说来,“绑定”一词的定义就包含了“双向”的概念,这样说来,我们所应用的“绑定”其实根本就不算做绑定……

Eric Popivker的这篇文章讨论了典型的3层架构ASP.NET Web应用程序中双向数据绑定的实现方式。下面就是他在本文中示例程序的场景描述,可以看到,其中的一切步骤都是以“绑定”方式实现的,充分体现了“绑定”框架的强大功能:

  1. Load appropriate record from table Customer
  2. Bind customer record to Customer business object
  3. Bind Customer object properties to web control values
  4. User enters information into form and clicks on submit
  5. Bind updated web control values to Customer object
  6. Bind Customer object to a table record
  7. Save table record to table Customer

 

[9] Creating CSS Friendly Websites with ASP.NET 2.0(在ASP.NET 2.0中创建CSS友好的Web站点)

ASP.NET 2.0 CSS Friendly Control Adapters的发布确实为我们Web开发者解决了大量的ASP.NET 2.0中不符合Web标准的问题(请参考:创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布)。本文就一步步地介绍了在项目中使用ASP.NET 2.0 CSS Friendly Control Adapters的方法,比起纯粹的示例程序或是设计文档,这样教程形式的文章或许更加易于接受。

如果你对ASP.NET 2.0 CSS Friendly Control Adapters还不甚了解,那么完全可以跟随着这篇文章进行入门。