摘要
本期共有10篇文章:
- 在ASP以及非ASP.NET URL中使用ASP.NET安全验证
- 在PHP中使用Microsoft Ajax Library
- Orcas版本C#语言的新特性:自动属性、对象初始化器和集合初始化器
- ASP.NET中Session相关排错
- 优化ASP.NET 2.0 Web应用程序的执行速度
- 使用自定义Profile Provider管理网站的用户
- 在ASP.NET AJAX中访问Membership和Profile服务
- 理解ASP.NET中数据绑定控件中naming container的层次关系
- 深入研究WPF/E
- 在IIS7下建立ASP.NET 1.1环境
[1] Tip/Trick: Integrating ASP.NET Security with Classic ASP and Non-ASP.NET URLs (在ASP以及非ASP.NET URL中使用ASP.NET安全验证)
Scott Guthrie的又一篇Tip/Trick,内容不是很深入。但颇有他的风格:一步一步循序渐进,辅以插图,让人感觉清晰明了,颇具大师风范。最后还推荐了一本书,看上去似乎不错,不知有没有中文版?
[2] Microsoft Ajax Library on PHP (在PHP中使用Microsoft Ajax Library)
Microsoft Ajax Library是个与服务器端平台无关的客户端JavaScript脚本库,自然可以使用于PHP中。一些人对此非常感兴趣,并在CodePlex上发起了一个项目,提供PHP平台上类似ScriptManager控件之类的支持。
这篇文章就给出了一段小小的示例程序,依然是最经典的从客户端调用服务器端Web Service。
<?php
require_once '../../dist/MSAjaxService.php';
class HelloService extends MSAjaxService
{
function SayHello($name)
{
return "Hello, " . $name . "!";
}
}
$h = new HelloService();
$h->ProcessRequest();
?>
客户端调用:
<html>
<head>
<title>Hello, World!</title>
<script type="text/javascript" src="../../MicrosoftAjaxLibrary/MicrosoftAjax.js"></script>
<script type="text/javascript" src="HelloService.php/js"></script>
</head>
<body>
Name: <input id="name" type="text" />
<input type="button" value="Say Hello" onclick="button_click(); return false;" />
<br />
Response from server: <span id="response"></span>
</body>
<script type="text/javascript">
function button_click() {
HelloService.SayHello($get('name').value, function (result) {
$get('response').innerHTML = result;
});
}
</script>
</html>
[3] New C# "Orcas" Language Features: Automatic Properties, Object Initializers, and Collection Initializers (Orcas版本C#语言的新特性:自动属性、对象初始化器和集合初始化器)
March CTP 版本的Visual Studio以及.NET Framework "Orcas"刚刚发布,其中的几点C#语言的新特性值得我们关注,包括自动属性、对象初始化器和集合初始化器。Scott Guthrie又在第一时间将其一一列举。
我感觉最有意思,也是最有用的就是自动属性了。比如我们从前定义这样一个类,很麻烦的需要书写很多类似的重复代码:
public class Person {
private string _firstName;
private string _lastName;
private int _age;
public string FirstName {
get {
return _firstName;
}
set {
_firstName = value;
}
}
public string LastName {
get {
return _lastName;
}
set {
_lastName = value;
}
}
public int Age {
get {
return _age;
}
set {
_age = value;
}
}
}
而在Orcas版本的C#中,这样写就够了:
public class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
[4] Troubleshooting Session Related Issues in ASP.NET (ASP.NET中Session相关排错)
ASP.NET中的Session一直是让我们又爱又恨的东西,爱的是功能强大,恨的是经常出现莫名其妙的问题,而且很难重现。
本文就分析了ASP.NET中Session相关问题(最常见的就是Session突然丢失了)的各种可能的导致原因以及相应的解决对策。文章分析的句句在理,非常全面,强烈推荐给每一位ASP.NET开发者阅读!
[5] Speed Optimization in ASP.NET 2.0 Web Applications (优化ASP.NET 2.0 Web应用程序的执行速度)
性能优化是程序开发过程中永恒的主题。而对于ASP.NET 2.0这样架构复杂的应用程序来讲,找到性能的瓶颈以及知晓具体的优化措施却并不是件非常容易的事。本文就提纲挈领地分析了ASP.NET 2.0中常见的性能瓶颈,并给出了相应的一般解决方案。文章篇幅不大,内容也均为点到为止,非常适合快速阅读。
[6] Manage Web Users With Custom Profile Providers (使用自定义Profile Provider管理网站的用户)
这是Jason N. Gaylord的一篇有关自定义Profile Provider的MSDN文章,篇幅不短且都是大量的文字,读起来可能有点累。不过内容却非常吸引人,如果你已经有了一定的基础,那么坚持看完这篇文章定会让你受益匪浅。
[7] Consuming Membership and Profile Services via ASP.NET AJAX (在ASP.NET AJAX中访问Membership和Profile服务)
ASP.NET 2.0的几个应用程序服务我们都不陌生,例如Membership、Role以及Profile等。但这些应用程序服务都是建立在服务器端的,如果我们需要在Ajax应用程序的客户端对其进行访问,那么将会是个不小的挑战。不过ASP.NET AJAX在设计时就考虑到了这一点,它良好地封装了这些应用程序服务,并以简单易用的方式提供给客户端使用。本文就将介绍在ASP.NET AJAX中访问Membership和Profile服务的方法。文章循序渐进,即使没有任何基础,也能很容易地理解。
[8] Understanding the naming container hierarchy of ASP.NET databound controls (理解ASP.NET中数据绑定控件中naming container的层次关系)
某数据绑定控件中定义了一个控件,这个控件在运行时将被初始化100个实例,为什么这些似乎拥有同样ID的控件却并不冲突呢?这就是naming container的功劳……
本文深入分析了ASP.NET中数据绑定控件中naming container的设计思想以及实现原理,若你想在ASP.NET领域中百尺竿头,更进一步,那么这篇文章绝对不容错过。
[9] Mulling over WPF/E (深入研究WPF/E)
Rick Strahl的又一篇经典力作!文如其名,对WPF/E真的进行了一番mulling(研磨)。不若让我思考的并不是文章本身的内容(画外音:那你推荐个什么!?),而是为什么这位老兄能有这么强大的“功力”,似乎在各个技术领域都有着相当不俗的建树,而且也有着充分的时间写出大篇大篇的Blog……惊为天人一般的MVP,这么生猛究竟是怎样炼成的呢?
[10] How to setup ASP.NET v1.1 (Visual Studio .NET 2003) projects on IIS7 (Vista)) (在IIS7下建立ASP.NET 1.1环境)
虽然看上去有些不近人情——旧瓶装新酒?小马拉大车?但是某些时候我们还是需要这样做的。本文就讨论了在IIS7下建立ASP.NET 1.1环境所遇到的一些常见问题以及相应的解决方案。