cnblogs.com

October 2006 - Posts

如何进行界面和业务逻辑分开的原型化开发
Google收购了JotSpot
   今天一早,小熊在线发布了Google将Jotspot收至麾下的消息。我随之访问JotSpot.com,果然熟悉的主页换了新颜,可爱的Google标志伴随着Jotspot一同跃入眼帘。小熊在线的报道中写道:“JotSpot公司联合创始人兼首席执行官Joe Kraus在本周二宣布了上述消息,他表示,成为Google的一部分令JotSpot获得了通往世界级数据中心和工程队伍的途径。”也许消息还足够新鲜,偶在Google上还搜索不到相关的报道。不管怎样,这个消息足以让我这个wiki狂热者兴奋好几天了。

   JotSpot作为一家在业内领先的wiki服务提供商一直备受关注。而这次,Jotspot得到Google垂青的消息再一次把Jotspot送到了聚光灯下。 我们不难预测:在未来的一个月里,JotSpot与Wiki将会成为曝光度最高的词汇之一,这也将在风平浪静的Wiki市场上掀起波澜。也许很多做技术的朋友不一定知道JotSpot,但是对于Ajax领域中的dojo框架一定不会陌生,JotSpot正是这个杰出框架的赞助者。当然,Jotspot最杰出的地方并不在于此。JotSpot在2004年由Excite.com创建,是第一家开发并且销售应用型Wiki系统的公司,同时它也为个人及小团体提供免费的Wiki服务。JotSpot对于企业应用的关注程度是相当高的,而它的主要收入也是来自于向企业出售Wiki系统或者提供Wiki托管服务。

   这次收购可以说意义非凡,毕竟Wiki这个概念要让网民认识并且接受会有个相当高的门槛。虽然维基百科的影响深远,但是更多的网民把维基百科看做是一个知识库,而非探究Wiki概念的放大镜。因此,Wiki的概念一直以来都没有得到很好的宣传和推广,反倒是“共创百科”深入人心了。尽管两者有相似之处,但是决不能划上等号。这次Google收购了JotSpot,接下来必然会有大的动作,首当其冲就是将Wiki纳入到Google的服务体系中,这无疑对Wiki的推广注入了强劲的动力,单是这个就已经让人欢呼雀跃了。除此之外,我们从JotSpot的网站中FAQ中还可以看到:在未来,Wiki还会跟Google现有的Google Docs & Spreadsheets结合起来。这更是让人值得翘首以待了。

   说到这里,大家是不是很有兴致去尝试一下呢?不过,由于JotSpot系统要往Google的系统迁移,有兴趣的朋友暂时还无法尝鲜,但是这篇来自刻录事的文章可以暂时满足一下各位的好奇心,不过年代有些久远了,呵呵~~


FantasySoft 2006-11-01 12:59 发表评论
NBearV3.0.0 Preview发布 - 全新ORM实现![11/1 更新:全面支持实体属性级联更新]
     摘要:11/1 更新:全面支持实体属性级联更新,详见下面的案例的Entity Usage UnitTests代码。

NBearV3新增/修改功能列表:
1、完全重新设计的ORM实现,支持实体继承,实体间复杂关联(一对一、一对多、多对多)及透明的级联插入、更新、删除,LazyLoad等。
2、提供用于整个开发过程的更易使用的代码生成工具,支持:实体设计代码、实体代码、实体配置文件和数据库创建脚本生成。
3、精简优化了底层数据访问代码,进行了更细致的单线程/多线程性能测试。
4、实体及关联关系可以使用任意标准的.Net Framework支持的语言,使用interface、Attribute、接口继承等语言的自然元素作为实体设计元数据,并使用VS.NET2005的类设计器进行设计。
5、自动生成的实体类是标准的class,避免了V2中基于Emit生成代码的性能损失和可能的内存泄露,集成用于强类型查询的查询代码到每个实体类,并支持标准的各种系统序列化(XML,Binary,WebService SOAP)。生成的实体类代码不  阅读全文

Teddy's Knowledge Base 2006-11-01 12:40 发表评论
Compress DataSet with .net 2.0
.NET Framework 2.0 版中新增GZipStream 类,对了就是它了!
啥也不说了,咣咣的,别整那些没用的,代码说明一切!

 1''' <summary>
 2    ''' 
 3    ''' </summary>
 4    ''' <param name="data"></param>
 5    ''' <returns></returns>
 6    ''' <remarks></remarks>
 7    Public Shared Function CompressDataSet(ByVal data As DataSet) As Byte()
 8
 9
10        Try
11
12            Dim ser As New BinaryFormatter
13            Dim unCompressMS As New MemoryStream
14            'Binary 作为二进制内容序列化。仅可在 ADO.NET 2.0 中使用。 
15            data.RemotingFormat = SerializationFormat.Binary
16            '序列化到MemoryStream
17            ser.Serialize(unCompressMS, data)
18
19            '压缩后的MemoryStream
20            Dim compressMs As New MemoryStream
21
22            'new GZipStream
23            Dim compressedStream As New GZipStream(compressMs, CompressionMode.Compress, True)
24            '写入压缩的MemoryStream
25            compressedStream.Write(unCompressMS.ToArray, 0, unCompressMS.ToArray.Length)
26
27            Return compressMs.ToArray
28
29
30        Catch ex As ApplicationException
31            MessageBox.Show(ex.Message, "An Error occured during compression", MessageBoxButtons.OK, MessageBoxIcon.Error)
32        Finally
33
34        End Try

 1''' <summary>
 2    ''' 
 3    ''' </summary>
 4    ''' <param name="data"></param>
 5    ''' <returns></returns>
 6    ''' <remarks></remarks>
 7    Public Shared Function DecompressDataSet(ByVal data As Byte()) As DataSet
 8
 9
10        Try
11
12            Dim unCompressMS As New MemoryStream()
13            Dim compressMS As New MemoryStream(data)
14
15            Dim decompressedStream As New GZipStream(unCompressMS, CompressionMode.Decompress, True)
16
17
18            decompressedStream.Write(compressMS.ToArray, 0, compressMS.ToArray.Length)
19
20            Dim ser As New BinaryFormatter
21
22
23            Return ser.Deserialize(unCompressMS)
24
25        Catch ex As ApplicationException
26            MessageBox.Show(ex.Message, "An Error occured during decompression", MessageBoxButtons.OK, MessageBoxIcon.Error)
27        Finally
28
29        End Try
30
31    End Function

 
Sample 源码

MasterCai 2006-11-01 11:40 发表评论
NDO中的ActiveRecord 简介 2——强类型的活动记录
    内容篇幅较长,请点击这里阅读全文。

风云 2006-11-01 11:30 发表评论
Web2.0寒流
     摘要:近日又见报道,说Web2.0遭遇寒流,开始降温,这很容易让人联想到前几年的Web1.0的遭遇,真是历史的重现。  阅读全文

新型报表工具 xdesigner 2006-11-01 11:21 发表评论
MOSS 2007基础:内容类型(Content Type)之二
     摘要:上次,我们说到MOSS 2007中的内容类型。下面我们将继续该话题,更深入了解其特性。在开始之前,我们下看一下内容类型的定义。这个定义来源于"Using Content Types in Windows SharePoint Services (v3) and SharePoint Server 2007."

“在WSS v3和MOSS2007中,内容类型使我们可以以更有意义的方式定义和组织我们的业务数据。一个内容类型是一个应用到某种特定的内容的可重用的设置集合。使用内容类型以一种集中划和可重用的方式定义和管理文档或列表项的元数据和行为。同时,内容类型还允许我们将不同类型的内容存储在同一个文档库或列表中...
  阅读全文

Sunmoonfire 2006-11-01 10:04 发表评论
Visual C# 2005 - 如何取得某目录之下所有文件名称的字符串集合
     摘要:在 Visual C# 中,如果要得到某个文件所在之文件路径字符串,可以利用 My.Computer.FileSystem.GetFiles 函式来掷回。接下来,通过字符串本身的 SubString 函式,将不必要的目录路径部分去除之后,就可以得到只有文件名称的字符串。利用循环的方式,顺序将目录中所有的文件都处理过之后,就可以得到某目录之下所有的文件名称之字符串集合,程序代码如下所示...  阅读全文

章立民研究室 2006-11-01 09:22 发表评论
关于 IE 模态对话框的两个问题
showModalDialog 打开的模态对话框有不少经典的缺陷,在这里不再冗述,我只谈谈最近碰到的几个问题以及解决办法。

问题1. showModalDialog 打开一个 aspx 页面时,如果该页面在之前已经打开过一次,则自动会加载缓存中的页面,而不能显示最新数据。

解决的办法有两种:

(1). 在打开模态框时,给 url 后面多加一个随机参数,来避免页面被缓存:
var url = 'EditFlowNode.aspx?flowId=0&id=2&x=' + Math.random();
var result = window.showModalDialog(url, '', 'status:no; help:no;');

(2). 在该 asp.net 页面的 Page_Load 方法里设定不缓存:
protected void Page_Load(object sender, EventArgs e){
    Response.Expires 
= 0;
    Response.Cache.SetNoStore();
    Response.AppendHeader(
"Pragma""no-cache");
}


问题2. 模态对话框中的内容和脚本加载次序不同,导致的问题。

缘起:考虑如下页面的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

 
<head>
  
<title> new document </title>
  
<meta name="generator" content="editplus" />
  
<meta name="author" content="" />
  
<meta name="keywords" content="" />
  
<meta name="description" content="" />
 
</head>

 
<body>      
    
<input id="txt1">
    
<script type="text/javascript">
    
<!--
    alert(document.getElementById('txt1').offsetWidth);
    
//-->
    </script>
 
</body>
</html>

这个页面,如果在普通的 IE 窗口中加载时,提示的信息是 "155",而在模态对话框中执行时,其数值是 "0"。为什么会这样?

我们注意到普通窗口打开该页面时,当跳出 alert 对话框后,整个页面元素都已经正常显示了;而模态框在打开时,跳出 alert 对话框后,其背景确是一片空白;等点击“确定”后,才会显示出网页内容。
由此可以推测,模态框和普通页面在解析执行 HTML 时的次序不同:

普通页面:依次解析 body 中的元素,并随即绘制(render)解析完的元素。如果碰到 script, 则立刻执行之。

模态对话框:依次解析 body 中的元素,但并未立即绘制(render)它们。如果碰到 script, 则立刻执行之。等 body 都加载完毕后,再依次绘制其中的元素。

由于以上我们示例代码中访问到了 offsetWidth 属性,而我们可以推知,该属性一定是当元素被绘制(render)完毕后,才会自动计算出有意义的数值。所以就导致了问题中看到的现象。

之所以考虑到这个问题,其实是因为我在模态对话框中使用一个第三方控件的时候,出现了 bug,经过调试发现根源的原因在于该控件采用了常用的代码模式来输出其 HTML。也就是在一段 HTML 输出后,紧接着输出其初始化脚本。(这个问题值得 ASP.NET 控件开发者引起注意

幸运的是,我有这个控件的源代码。因此修改源代码解决了这个问题。我的解法类似于这样:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

 
<head>
  
<title> new document </title>
  
<meta name="generator" content="editplus" />
  
<meta name="author" content="" />
  
<meta name="keywords" content="" />
  
<meta name="description" content="" />
 
</head>

 
<body>      
    
<input id="txt1">
    
<script type="text/javascript">
    
<!--
    
var _document_body_onload = document.body.onload;
    document.body.onload 
= function(){
        
// 这里做你需要做的初始化动作
        alert(document.getElementById('txt1').offsetWidth);

        
if(_document_body_onload && typeof(_document_body_onload) == 'function')
            _document_body_onload();
    }
    
//-->
    </script>
 
</body>
</html>




木野狐 2006-11-01 01:41 发表评论
Windows Mobile 5.0 Smartphone与Vista同步
           最近比较爽,先买了预装了Windows Mobile 5.0Orange SPV c600(就是dopod 595),这得感谢维生素C.NET;然后又把自己的本本格了,装了个Windows Vista R2Build5744),还装了Office 2007 Beta 2,彻底被征服了。

         接下来的问题就是,如何让SmartphonePC同步。发现Sync Center只能用于同步,而Windows Mobile Device Center只能设置连接方式。到网上搜了一下,发现了两种解决方法,现记录下来,供大家参考。(这两种方法都是基于RC1的。)

 

方法1——修改注册表

         在注册表中添加这样一个键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WHOS,然后更新Windows。但这种方法我试验没有成功。

 

方法2——单独安装Mobile Device Center

         从下面的下载地址下载Mobile Device Center Beta 3,安装后用USB连接SmartphoneMobile Device Center就会自动运行。此方法试用成功。

         Microsoft Windows Mobile Device Center Beta 3 for Windows Vista (x86)下载地址



Anders Liu (lover_P) 2006-11-01 00:45 发表评论
Visual Studio“Orcas”October 2006 CTP版下载

Visual Studio Orcas October 2006 CT版可以下载了,但这次Release的是一个虚拟机的镜像,所以需要在虚拟PC上运行,文件的大小是4150.5 MB,有点太大了。

下载地址:

http://www.microsoft.com/downloads/details.aspx?familyid=82243606-D16D-445C-8949-9EE8C10CDA2E&displaylang=en

亮点如下:

·       ADO.NET 3.0 Advancements

·       LINQ over XML (XLinq)

·       Multi-targeting

·       Improved 64bit application working set

·       Lightweight reader/writer lock with deadlock-free upgrade support.

·       A high performance trace listener which logs XML to disk in the event schema.

·       Getting VSTO and/or controls off machine policy/legacy policy migration

·       Security Platform Parity - Suite B support: AES

·       A new date time data structure that can specify an exact point in time relative to the UTC time zone.

·       New IO types that expose almost all pipe functionality provided by Windows.

·       A new high performance set collection.



TerryLee 2006-10-31 23:22 发表评论
Permission Base 0.1.1 发布
     摘要:  Permission Base是我自己维护的一个开源项目。它是一套适用于一般中小型 B/S 企业应用系统的“权限控制基础框架结构”。基于.NET 2.0平台开发;使用NHibernate作为数据映射器;除了登陆页面以外,其他全部页面都使用XMLHttpRequest方式与服务器端通信,以实现无刷新的效果。
  这个项目的目的之一是提供一个较完整的“在实际项目中使用NHibernate和XMLHttpRequest的例子”。  阅读全文

NoMagic 2006-10-31 22:00 发表评论
.NET Framework 3.0

Vista即将发布,微软 .NET 俱乐部联盟LOVE@Community 活动针对VistaOffice 2007的新技术巡展。.NET Framework 3.0 Vista 的销售来说,又多了一样优势,内建 .NET Framework 3.0 。任何的技术更新,开发工具是其次的,最重要的是平台。开发工具充其量只是加快开发速度,减少 coding 的时间,对大部分的开发人员来说,其必要性是可以讨论的,当然,开发工具越强,是可以降低初学者的进入门坎。开发平台才是真正决定技术好坏的地方,当 .NET Framework 3.0 发布出来之后, 对 VS 2003 的使用者来说,才可以真正感受到技术的更新。值得注意的是,这次使用 .NET Framework 3.0 这个名词,很多人可能会担心现有在 .NET Framework 2.0 上所开发的程序,是不是要再升级一次,答案是不需要。这只是微软玩的营销技巧,.NET Framework 3.0 就是把 .NET Framework 2.0 加上之前未做完的部分加上去,改名叫 3.0。也就是说 .NET Framework 3.0 .NET Frameeork 2.0 的精装版。

  下面介绍几篇David Chappell 写的在 MSDN .NET 3.0 系列文章。
  深入淺出 .NET Framework 3.0
     David Chappell on .NET Framework 3.0
     David Chappell on WF 
     David Chappell on WCF 
     David Chappell on WPF
     David Chappell on CardSpace    

    114也就是这个周末深圳.net俱乐部举办LOVE@Community深圳站活动。有空有兴趣的共同来体验新技术,具体参见深圳.NET俱乐部LOVE@Community 活动



自由、创新、研究、探索…… 2006-10-31 20:54 发表评论
NBearV3.0.0 Preview发布 - 全新ORM实现!
     摘要:今天发布了NBear的全新版本V3的Preview。NBearV3相对于V2作了巨大升级和改进。因此不兼容于NBearV2。

NBearV3新增/修改功能列表:
1、完全重新设计的ORM实现,支持实体继承,实体间复杂关联(一对一、一对多、多对多)及透明的级联插入、更新、删除,LazyLoad等。
2、提供用于整个开发过程的更易使用的代码生成工具,支持:实体设计、实体代码生成、实体配置文件生成和数据库创建脚本生成。
3、精简优化了底层数据访问代码,进行了更细致的单线程/多线程性能测试。
4、实体及关联关系可以使用任意标准的.Net Framework支持的语言,使用interface、Attribute、接口继承等语言的自然元素作为实体设计元数据,并使用VS.NET2005的类设计器进行设计。
5、自动生成的实体类是标准的class,集成用于强类型查询的查询代码,并支持标准的各种系统序列化(XML,Binary,WebService SOAP)。生成的实体类代码不依赖于实体设计元数据。
6、对于ServiceFactory  阅读全文

Teddy's Knowledge Base 2006-10-31 19:46 发表评论
SharePoint Web Service系列: Add或Update其他各种类型的项
     摘要:在前面,我们讨论了如何Add或Update类型为User的项。因为User类型多少比较特殊。作为SharePoint Web Service系列讨论的结束,我们将讨论各种其他类型的项如何来写。在SDK中,有如下的一张表格。我们的写法完全是依托在此基础之上...  阅读全文

Sunmoonfire 2006-10-31 19:32 发表评论
More Posts Next page »