RSS

Monthly Archives: 四月 2004

WebParts, MSIB, Framework Design…

1、不少人向我抱怨能够找到的实用的WebPart太少了,Microsoft在它的网站上其实提供了不少WebPart、Template、Tools等好东东的下载。当然,自己DIY,丰衣足食。

2、Microsoft Solution for Internet Business 2.5版发布了,MSIB里面描述了如何高质量的用Windows Server System来构建Internet站点。网管必看!

3、想知道如何设计和使用一套Framework吗?看看这里。这篇文档对Framework的一些通用原则、IoC、Spring做了简洁明了的描述,绝对推荐!(感谢文章作者,和jjx在.Net评测网上的推荐)

4、Improving .NET Application Performance and Scalability正式在MSDN上登陆了!它包含了如何在设计、编码、数据库设计、测试等各个阶段对系统的性能进行调整和优化的各种原则和指南。

 

Posted by on 2004/04/29 in 未分类

3 Comments

Tags: ,

《WalkThrough : SharePoint WebPart 入门指南 四》完成

第四辑讲述了如下内容:

将WebPart打包成(.CAB)部署到SPS服务器上;
升级已经部署的WebPart;
将WebPart打包成(.MSI)部署到SPS服务器上。

第五辑将讲到Connection WebPart了,可能是最难的部分了,心里开始有点忐忑不安…

下载:WalkThrough-WebPart4.ppt(zip打包格式)

 

Posted by on 2004/04/26 in 未分类

19 Comments

Tags:

Borland & 上海

做为一位普通的程序员或者客户,如何说服Borland做某件事(开发或支持什么什么)呢?

Danny Thorpe(Borland公司Delphi和.NET的主Architech)说,很简单,“Show us the money.”,因为“我们不会为了艺术的理由去做一个艺术品”。

这个回答着实伤害了忠实的Borland产品用户的心,有一个人回复说,其实还有一个更好的方法,就是“stop using Borland products”,而另一个人则更加尖锐的说,“Todays Borland…More comercial.More trash.Less art.Less passion.Less innovation.Less imagination.Where’s Borland before?”。

看来现在Borland要做的是如何将它过去做出的承诺尽快兑现,以安抚众多仍然支持Borland的程序员的心。

根据Borland的计划,今年第二季度,将发布Delphi 7.1,这可能是最后一个支持Win32平台的Delphi版本了(个人的猜测),Borland已经打算将未来的Delphi Win32版本集成进入Delphi.NET中,在一个统一IDE中开发.NET和Win32程序。

如果我是一个Delphi程序员,那么全部拥抱.NET也许是最明智的选择。Delphi2CS是一个很有意思的产品,它可以将Delphi7(不是同为.NET平台的Delphi8哦)的Win32项目转换成一个C#的.NET项目,将VCL控件自动转成相应的WinForms控件。

《WalkThrough : SharePoint WebPart入门指南》已经写了三辑了,感谢很多朋友的支持和鼓励。下一辑计划写比较简单的WebPart的部署(CAB方式和MSI方式),应该能够很快完成。但是以后还有一个很复杂的内容,就是Connection WebPart,现在还没有主意如何写关于它的WalkThrough,如果你有一些不错的资源,请告诉我。

明天就要去上海参加微软的MVP会议了,和其他的MVP聚聚,肯定是件很开心的事情。不过很可惜,到现在还没有机会去北京真正见见开心就好的真容,呵呵。

 

Posted by on 2004/04/22 in 未分类

6 Comments

Tags:

《WalkThrough : SharePoint WebPart 入门指南 三》完成

主要讲解了如何在WebPart中如何使用Code-Behind方式编写的User Control,并演示了如何将所有的内容(WebPart、UserControl、包括ascx文件)全部并入到一个最终的Assembly(.dll)文件中,以简化部署。

下载:WalkThrough-WebPart3.ppt(zip格式)

下一辑准备演示一下如何用(.CAB)方式和(.MSI)方式在SPS服务器上部署WebPart了。

 

Posted by on 2004/04/22 in 未分类

21 Comments

Tags:

《WalkThrough WebPart 入门指南二》完成

包含下面的内容:
在WebPart中创建可让用户修改的自定义属性;
在WebPart中访问SharePoint Object Model;

WebPart演示是一个可以根据文件的最后修改时间倒序显示文档库中所有文件的WebPart,浏览的用户可在页面的属性Panel中直接指定要显示的文档库的名称和显示文件的数量。

下载:WalkThrough-WebPart2.ppt(zip格式)

PowerPoint用起来N不顺手,大部分时间浪费在探索PowerPoint中…

 

Posted by on 2004/04/19 in 未分类

17 Comments

Tags:

SharePoint WebPart 入门指南

今天做了一个SharePoint WebPart入门指南,ppt格式,简洁明了,一看就懂(先吹一会…)。下载(zip格式)

建议大家以后可以做一些类似的WalkThrough共享,呵呵。

 

Posted by on 2004/04/15 in 未分类

42 Comments

Tags:

关于Longhorn的流言

这两天网上开始流传一则关于Longhorn的流言,内容大抵是说Microsoft为了使Longhorn在2006如期推出,计划大幅削剪WinFS(甚至有的报导说WinFS将只是NTFS+而已)。

报导的来源最初是出自《Business Week》网站上的一篇文章How Microsoft Is Clipping Longhorn

微软员工Riding Herd已经在他的Blog上正式否认了这个传言。根据他的说法,Longhorn自PDC预览版发布以后,已经在内部又发布了两个MileStone版本,并且,虽然在一些特性上的确有所删节,但是任何产品的开发过程中都会存在这样的情况,而且他所知的删节都是非常非常小的地方(“But the scope of these cuts is so small that it’s barely worth mentioning.”),WinFS几乎没有受到任何影响。

Riding Herd怀疑那篇报导的作者Jay Greene可能是因为听到了微软在一次谈话中涉及到的关于Longhorn Server的部分而产生了误解。

 

Posted by on 2004/04/14 in 未分类

3 Comments

Tags:

Maybe You Don’t Know ! – 如何比较两个引用是否指向同一个对象?

Person p1, p2;
// …
Console.WriteLine( p1 == p2 );

上面的代码用来判断p1和p2是否指向同一个对象,但有某种情况下,我们却不能保证其正确性,那就是当我们不能肯定Person类的定义中是否重载了“==”的时候。也许根据Person的定义,只要两个Person对象的ID属性相等,那么应用“==”就会返回true。

这个时候,我们应该:

Object o1 = p1;
Object o2 = p2;
Console.WriteLine( o1 == o2 );

Yes,当C#编译器发现“==”两边的对象的声明类型是Object(而不论他们的实际对象是什么)时,C#编译器都不会应用多态原则,调用实际类型中定义的“==”,而会将这两个对象(的引用)载入到堆栈,然后执行一个“ceq”指令,比较他们是否指向了同一个对象。

.NET为了方便我们,提供了一个静态的Object.ReferenceEquals(Object o1, Object o2)来判断参数中的两个引用是否指向同一个对象,它的实现是:

public static bool ReferenceEquals(object o1, object o2)
{
? return ( o1 == o2 );
}

所以,我们上面的那个代码示例可以简单的写成:

Person p1, p2;
// …
Console.WriteLine( Object.ReferenceEquals( p1, p2 ) );

 

Posted by on 2004/04/14 in 未分类

3 Comments

Tags:

ObjectSpaces in CTP & Yukon

1、ObjectSpaces in CTP

在我安装了VS2005 CTP版本以后,查看附带的.Net Fx SDK时,首先就发现了讲解ObjectSpaces相关的内容被去掉了(PDC版本中带的.Net Fx SDK文档中包含了详细的ObjectSpaces文档),原因嘛,因为CTP版本中包含的ObjectSpaces和PDC版本中的相比,发生了很大的变化:

最重要的变化,就是ObjectSpaces开始支持Generic了,PDC版本中:

ObjectReader reader = os.GetObjectReader(typeof(Customer), ““, ““ );

CTP版本中:

ObjectReader〈Customer〉 reader = os.GetObjectReader〈Customer〉(““, ““ );

其他的变化包括:新增了一个PagedObjectReader以支持分页,ObjectSpace类增加了更多的方法等等…

而对于ObjectSpaces的发布,比较统一的意见是ObjectSpaces将不被作为.Net Fx 2.0的一部分发布,而是会在Whidbey正式发布后一段时间,作为一个Add-on Pack发布出来,同时ObjectSpaces还会增加一些支持WinFS的特性。可以想象未来ObjectSpaces可能还会有不小的变动。

而公认ObjectSpaces最大的弱点,就是它将只支持SqlServer(97、2000、Yukon)。在用它构建DAL时,就要考虑好以后是否会对数据源进行移植。

相关链接:
http://www.alexthissen.nl/Weblog/PermaLink.aspx?guid=5f3f1285-e24c-495b-acd0-029c6ab96f94

2、Yukon, a new platform

在DevX上有篇文章,Kiss the Middle-tier Goodbye with SQL Server Yukon,文章的内容是说Yukon由于其丰富的“编程”特性,我们已经可以将大量的处理直接写到“Database Tier”上面,而且可以获得更好的性能,也许,我们将(在一定程度上)不需要一个专门的Middle-tier了。笑脸

相关链接:
Is Yukon the end of the middle-tier?

 

Posted by on 2004/04/13 in 未分类

12 Comments

XC#、Smart Client

1、最近最轰动的新闻就是Microsoft和SUN的和解了,真让人感叹商场无常啊。不过也从一个侧面反应出Microsoft和SUN都意识到了现在Java和.NET都已经成长到谁也不可能消灭谁,在相当长的一段时间内,很可能是双方共同发展,所以,对双方最有利的做法就是维持这样的一个“两极世界”(就像冷战时期的美苏),并同时把其他冒出来的第三方力量打压下去。

当然也有Microsoft的员工不忘调侃一下McNealy,这里收录了过去McNealy对Microsoft的“经典”评价。

2、XC#

XC#是什么东东?和C#有什么联系?呵呵。XC#是基于C#的一个扩展编译器,做为VS.NET的一个Add-in,它会在C#编译器编译完成后,再用自己的编译器将自己定义的扩展符号(以Attribute形式体现)编译成标准的IL嵌入最终生成的Assembly。

XC#能完成的扩展有:混淆代码、分析并校验代码、前置条件和后置条件的支持(我认为最有价值的就是这一点)等。

比如我有一个这样的函数:
public UserInfo BuildUserInfo( String username, Int32 age)
为了保证两个参数合法,同时保证返回的UserInfo对象不为空,我们或者加上检测的代码:
if ( (username != null) && (username.Length > 0))…
或者使用断言:
Debug.Assert( username != null)…
但XC#可以让我们用更加“优雅”的语法来定义这个函数的前置和后置条件:

[ Requires(“username != null” ]  // 前置条件
[ Ensures(“result != null” ]  // 后置条件
public UserInfo BuildUserInfo( String username, Int32 age)

或者,更灵活的写法:

[reture : NotNull]
public UserInfo BuildUserInfo( [NotNull] String username, Int32 age)

是不是有点Design By Contract的味道?? XC#(最新版本是2.0,开始收费了,而前一个版本1.2是免费的。从我各自安装并查看其帮助文件上看,1.2和2.0几乎没有什么功能上的差别,但是在我试验1.2版本时,它对前至和后至条件的支持有些问题。

3、微软发布了Smart Client Architecture and Design Guide,这份指南着眼于WinForms Smart Client的架构设计。不过现在还并不完整,只包含了介绍、Offline设计和多线程设计三章。另外,LonghornBlogs上一篇The Road to Longhorn Goes Through Windows Forms也值得一读,文章解释了即使Longhorn WinFX是更好的程序架构体系,但是WinForms仍然是现阶段非常有价值的技术。

我现在只对WinForms在企业内部的分布式架构技术的选择有点头疼,因为微软推荐的ES/COM+实在不是我擅长的,但又不甘心用.Net Remoting这样的以后很可能支持度很低(MS已经表示.Net Remoting CANNOT talk with Indigo on-the-fly)的技术,WSE又担心效率不行…Indigo在完成后,会发布一个能运行在WinXP上的单独分离版本,还是挺期待的。

 

Posted by on 2004/04/06 in 未分类

2 Comments