>.NET专家:微软正在对.NET失去信心

Image Richard Grimes, .NET 专家及作者, 从2000年.NET技术预览发布就开始研究.NET。Richard 给Dr.Dobbs杂志撰写关于.NET的文章已经超过三年,他正在退出(stepping down)并发表对.NET相关事情的评论。在他的退出讲演中,他回顾了一些.NET发展中的失策,并对这个平台的未来发出了 警告。

在摘要中,Richard 写到这个库发布的太早而且他认为它太大了,还同时给出了VB.NET只是因为市场而不是技术存在的数个原因 — 这个新的语言(对于开发人员)没有真正的说服力和好处。

Richard 指出微软自身就缺少对.NET的坚定信心,因为微软没有用.NET改写多少他们的核心产品,而只是用.NET作为一个库来扩展它的产品 线 — 实际上Office 和 Visual Studio并不是用.NET写的,而且“迄今为止,微软还没有展示(给我们)它对这个框架的任何更多的信心。”

谈论到WinFS和它从下一个版本Windows(Longhorn)的去掉时,Richard指出:“微软选择了去掉它而不是(努力)使这个技术能运转,从这之中,我怀疑这个技术将永不会再回来。”
关于Longhorn的另外外两个主要特性,Richards说:

微 软宣布在Longhorn中另外的两个.NET技术,Indigo和Avalon,将也会出现在其他版本的Windows中。Indigo是一个消息技 术,所以它能在其他版本的Windows中使用是有意义的。但是,我相信Avalon出现在其他版本的Windows中是对 Longhorn的销售缺乏信心…微软指出Longhorn将不会是.NET的大革新,这使我们有理由相信它是从PDC 2003而来。所有这些显示出微软正在对.NET失去信心
Richard 给出结论 “微软承认市场优先于技术”。

全文:Mr. Grimes’ Farewell.

>GDS网络爬虫插件kongulo简单指南

case studykongulo 是Googles Desktop Search (GDS)的一个网页爬虫插件,他可以爬行指定的网站,从而使你能在本地搜索。它和Google网页搜索的site:命令类似,好处是 google还没有收录的新内容可以马上用kongulo索引,进行本地查询,以及局域网内地文件搜索。作者:Samuel Chen, Alpha Atom

这里简单介绍一下其使用方法:…

(此文原发于alphatom.com,后网站关闭失去该文)

>Google 桌面搜索1.0发布

Image 今天,Google发布了它的桌面搜索工具1.0(英文版,其他语言还处于beta,包括中文)。新版的工具将能搜索索Doc, PDF, Excel, 图片, 声音等多种格式文件,以以及Outlook邮件, Firefox/mozzila浏览过的网页还有AOL记录。

“Google桌面搜索将google强力搜索带到了个人用户的桌面,他就像你在你电脑上所有的一切的记忆快照,就在你指尖” google产品管理副总 Jonathan Rosenberg说道。他提到将继续为全世界的用户增强扩展这个桌面搜索。

新版的Google桌面搜索除了上面说的那些外,还能帮助你查找意外删除的或者不记得放在哪里的信息。Google桌面搜索还具有插件系统,提供供了诸如象Trillian IM工具(索引Trillian,AIM, ICQ, IRC, Jabber, MSN Messenger, Rendezvous, 和 Yahoo Messenger即时通讯工具 )、Kongulo 网络爬虫(用来收集你指定网站的网页信信息,比如内网,使得可以在本地查询),Larry’s系列索引器(包括text, chm, mIRC, OpenOffice和StarOffice等)。当然,Google不会忘了提供API来让用户对它扩展。

Google桌面搜索需要WindowsXP或者Windows2000 sp3以上版本,以及500M硬盘空间,最少128M内存和至少400MHz的奔腾处里器。

下载Google Desktop Search

下载Google Desktop Search插件

>Oracle 发布EJB3.0预览

Oracle Logo small 在3月4日的TSS Java 座谈会上,Oracle 公布了一个EJB3.0的预览。除此之外,他们还提供供了15个”EJB 3 如何” 和代码示例,以及4页详细的技术白皮书。

Application Developnent Tools的首席架构师 Ted Farrell 主题(keynote)中展示了EJB3和JSF。他将这个容器嵌入到不需要部署就允许真实快速代码(real quick code)演示的JDeveloper中。他还展示了如何使用JSF渲染工具包(renderkits)将UI跨越浏览器和胖客户端和移动设备部署, 看起来真的是非常酷!

获得 EJB 3 预览 和示例代码

>Script Callback in ASP.NET 2.0 (脚本回调)

  • 原作者:Dino Esposito
  • 出处:codeguru
  • http://www.codeguru.com/columns/Experts/article.php/c9321/
  • 发表时间:2005-2-28 于 alphatom.com (此站点已关闭)
  • 翻译:Samuel Chen (http://SamuelChen.Net)
    让我们面对这个事实吧:Web开发人员愿意付出一切来换取一种可以让他们避免页面刷新的开发工具。想想这个常见的情景:你在一个ASP.NET页面上添加了一个grid控件(control)用来显示用户导航栏。每当用户为了显示几行新的数据而点击时,页面将回传(postback)服务器,由服务器处理后又原封不动地重现(除了grid控件(control)中的几行新数据)。这个过程导致了严重的性能问题,尤其是对于复杂的大页面。开发者们不禁要问:为什么每次处理用户事件都非要下载50Kb的内容(而且还得上传其中的相当一部分同样多次)?

    不用回传(postback)整个页面就能上传客户端数据是web开发者们一个期待已久的梦想。理想情况下,他们应该能触发客户端代码调用服务器来处理事件,并用返回的数据仅仅更新页面中受影响的部分。

    ASP.NET 1.x 以及传统的 ASP 都可以实现这个功能,但开发人员必须使用ActiveX控件(ActiveX control)或者至少是Java小程序(Java applet)来做中介(intermediary)。这种中介(intermediary)的作用是接收客户端脚本的调用,并建立一个并行而不被用户察觉的连接到某个服务器页面。服务器页面根据接收到的输入产生相应输出。输出经连接返回到客户端,客户端便可通过DHTML对象模型(Dynamic HTML object model)来更新页面显示。

    ASP.NET 2.0 抽象了建立服务器连接并解析返回数据的逻辑。ASP.NET 2.0中的脚本回调(script callback)提供了一种成熟而立即可用的机制,从而大大简化了上面的过程。更为重要的是,脚本回调(script callback)隐藏了很多实现细节并且帮我们解决了一大堆浏览器兼容性问题。

使用脚本回调(script callback)的要求

ASP.NET脚本回调(script callback)的核心包括一些客户端JavaScript,用来安并排处理程序中客户端和服务器间的数据往返。所以,使用脚本回调(script callback)的先决条件是服务段代码侦听客户端的调用。回调由客户端的中介(intermediary)处理,而用户可以继续进行操作。回调并不立即影响当前的页面,给用户造成一种假象,仿佛所有的一切都像是在传统的桌面应用程序中。因此,第二个要求就是浏览器支持DHTML并实现了高级的文档对象模型(DOM)。没有这些功能,多数下载下来的数据都没什么用。

在微软的世界里,第一次回调(callback)的实现是Remote Scripting (RS)。RS使用Java小程序(Java applet)连接服务器并要求用一个ASP页面来处理请求。另外,此ASP页面提供一个量身定做的对象模型(object model)——一种共有的通用接口—— 为了让交互启效。在ASP.NET中,总体上模型很相似,但使用的工具有所不同。

ASP.NET脚本回调(script callback)的工作原理

ASP.NET 2.0脚本回调(script callback)用XmlHttpRequest DOM对象(XmlHttpRequest DOM object)来建立连接。(对Internet Explorer来讲,脚本回调(script callback)要求版本至少是5.0) 远程调用的目标可以是某个特定的Server Control(例如,新的GridView控件(GridView control)),也可以是页面本身。通常,此目标必须是个实现了ICallbackEventHandler的对象。

下面几段向您展示怎样增强你的页面使其支持脚本回调(script callback)。

第一步是标识触发操作的HTML元素(HTML element)。典型情况下,此元素(element)是一个可供用户点击的按钮(button)或链接(link)。关键的一点是此元素(element)引发的事件不会被浏览器自动处理并导致一次回调(postback)。例如,你不能用asp:button元素(element)来触发回调(callback),因为asp:button会产生一个提交按钮(submit button)。如果你想用一次按钮点击来开始一次操作,下面的代码非常不错:


< runat=”server” id=”callbackStarter” value=”View Details” type=”button”>

这个按钮(button)——HtmlInputButton控件(HtmlInputButton control)的实例——需要一些特定的JavaScript代码来处理点击(click)事件。你可以添加如下代码到Page_Load事件中:


callbackStarter.Attributes[“onclick”] = String.Format(“JavaScript:{0}”, callbackRef);

怎样确定将事件绑定到那个脚本函数呢?要靠Page类中的GetCallbackEventReference函数。看这个例子:


string callbackRef = GetCallbackEventReference(
this, “document.all[‘cboEmployees’].value”, “UpdateEmployeeViewHandler”, “null”, “null”);

GetCallbackEventReference函数的第一个参数制定了服务器端将要处理回调的目标对象。如果传入的是this,则表示页面本身。也可以传入任何实现了ICallbackEventHandler的页面控件(page control)的引用。在任何情况下,客户端的提交动作(submit action)会提交至和标准回传(postback)机制相同的ASPX页面。

第二个参数是一个JavaScript常量表达式,表示传给服务器的输入数据。在上面的代码中,一个下拉列表(dorp-down list)当前选中元素(element)的值被传入。

第三个参数是一个用户定义在块中的JavaScript回调(callback)函数名。回调(callback)执行后,此函数最终负责页面的更新。最后两个可选参数可用来指定错误处理函数(error handler)和上下文对象(context object)。

GetCallbackEventReference函数将产生如下的脚本调用:WebForm_DoCallback( pageID, input, UpdateEmployeeViewHandler, null, null);

此函数的代码会自动下载到客户端并通过标签添加到页面响应(page’s response)中。WebForm_DoCallback 使用XmlHttpRequest DOM对象(XmlHttpRequest DOM object)回调(call back)当前页面的URL。与此同时,它会添加一些额外的隐藏域(hidden field)以便服务器区分更简单的轻量级回调(callback)请求和一般回传(postback)请求。

处理请求时,ASP.NET运行时(runtime)标识出调用的目标对象(传给GetCallbackEventReference的第一个参数),确认它实现了ICallbackEventHandler接口后调用RaiseCallbackEvent方法:


public virtual string RaiseCallbackEvent(string eventArgument){
// Do something with the input and generate the output
return ProcessTheCall(eventArgument);
}

RaiseCallbackEvent的接收参数和返回值均为字符串(string)类型。它也包含任意处理客户端输入并返回响应(response)的代码。客户端和服务器间的数据交换仅能通过字符串(string)进行。一个字符串(string)可包含任何信息,包括序列化的对象(serialized object)。其格式可由你随心所欲指地定。的返回值将被传入客户端的JavaScript回调(callback)函数(前面代码中的UpdateEmployeeViewHandler函数)。这里是其必须的原形(prototype):


function UpdateEmployeeViewHandler(result, context){
// “result” is the return value of RaiseCallbackEvent
// TO DO: Process the string and update the page using DHTML
}

上面说过,脚本回调(script callback)并不适用于所有浏览器,尽管最新的浏览器,包括Internet Explorer 5+, Netscape 6+, and Safari 1.2+都能行。Microsoft在ASP.NET 2.0中加入了两个新的browser bapabilities:SupportsXmlHttp 与SupportsCallback以便开发人员检查方案的可行性。

一条让页面刷新更快的告诫

尽管脚本回调(script callback) 定义在ASP.NET 2.0中,要使其在ASP.NET 1.1里工作也并不很困难。在ASP.NET 2.0中,很多服务器控件(server control)借助脚本回调(script callback)提供了更迅速的页面刷新。最突出的例子也许是GridView控件(GridView control),作为DataGrid的接班人,选择性地运用脚本回调(script callback)实现分页显示记录。

正如前面所说,脚本回调(script callback)依赖于文档对象模型(DOM)的XmlHttpRequest对象。在Internet Explorer中,此文档对象模型对象(DOM object)通过ActiveX控件(ActiveX control)实现——Microsoft.XmlHttp。在IE中浏览这样的页面时,你必须适当降低安全设置以允许ActiveX控件(ActiveX control)能被脚本调用。在其他以同样方式实现XmlHttpRequest文档对象模型对象(DOM object)的浏览器中,这是不必要的。事实上,基于Mozilla的浏览内置支持了HTTP请求功能器,而没用使用ActiveX控件(ActiveX control)——这也是在Internet Explorer 7.0中被寄予厚望的功能。

>Hibernate 3.0 即将发布

Hibernate Logo Hibernate 3.0 今天宣布候选版1(RC1)已经准备放出。这个全新的支持O/R/XML映射的版本包含了大量特性,全新的O/R查询功能,如Hibernate查询语言(HQL),增强的Hibernate标准查询API(HCQA)等。

  • Much more flexible O/R mapping: support for exotic association and inheritance mappings, and greater flexibility when working with legacy data.
  • Hibernate3 filters: a unique feature for working with temporal (historical), regional or permissioned data.
  • Unprecendented flexibility for mixing handwritten and generated SQL within a single application or even a single entity: full support for “derived” entities and attributes defined in the mapping document, full support for overriding any generated SQL statement with handwritten SQL, support for stored procedures.
  • Object/Relational/XML mapping: query XML directly from the database for reporting, replicate data between databases via intermediate XML, externalize entity data as XML when interacting with remote systems.
  • Enhanced ease of use: better defaulting, an unchecked exceptions model, simplified natural (and composite) key support, simplified CMT integration.
  • Enhanced Criteria query API: with full support for projection/aggregation and subselects.
  • Runtime performance monitoring: via JMX or local Java API, including a second-level cache browser.
  • Brand new AST-based HQL parser: bulk update/delete enhancement, better syntax validation.
  • JBoss EJB 3.0 preview: support for annotation-based O/R mappings, full support for EJB-QL 3.0, support for EJB 3.0 persist()/merge() lifecycle, JACC-based security model.
  • Hibernate Tools preview: a full suite of Eclipse plugins for working with Hibernate 3.0, including mapping editor, interactive query prototyping, schema reverse engineering tool.
  • Many new extension points: including a new, extensible, event-driven architecture
  • Documentation enhancements.
  • Brand new test suite, including many useful examples of exotic Hibernate mappings.
    特性详细列表

详细信息查看 Gavin King 的Blog

下载 Hibernate 3 release candidate.

>IE7 平台及Outlook Express 消息

Dave今天在IEblog上就人们对IE7的疑问进行了解答,他说到“我们看到对于IE7的宣布人们有一些问题,除了两件事我会进行澄清外,其他大多数我们都�?准备回答和讨论。”

  • Platforms(平台). 目前,我们计划在Windows XP SP2或更高版本上发布IE7,因此不仅在32位版本的 Windows XP SP2,而且在 Windows XP Professional x64 EditionWindows Server 2003 SP1 上都将很快发布。和Dean在他的关于IE7的blog上描述的一样,我们听到了用户关于支持Windows 2000的呼声,但目前关于这点还没有任何声明。IE Logo
  • Outlook Express. Outlook Express不再是IE7计划的一部分,它将成为一个独立于Internet Explorer之外单独的产品组。Outlook Express小组正忙于为绑定下一个版本Windows发布的新版Outlook Express,因此没有任何计划会在下一版Windows之前发布新版Outlook Express。Outlook Express 新闻组 是讨论该产品和反馈意见的好地方。
    同样,当我们得到更多IE7项目的消息时,将会与与大家分享详细内容。

IEblog上的原文

>C# 开源项目列表

4 StarsCSharp-Source.Net 发布了一个C#开源项目的分类列表。列表包阔了目前知道的一些项目,比如NUnit、NAnt 以及NHibernate等,同时也介绍了一些不是很知名的项目如NChart、iTextSharp和NxBRE等。这个列表全面而公正的对这些. NET领域的开源项目进行了分类,分类列表如下:

  • Open Source Aspect-Oriented Frameworks in C#
  • Open Source Bloggers in C#
  • Open Source Build Systems in C#
  • Open Source Charting & Reporting Tools in C#
  • Open Source Chat Servers in C#
  • Open Source Content Management Systems (CMS) in C#
  • Open Source Code Coverage Tools in C#
  • Open Source Forum Software in C#
  • Open Source IDEs in C#
  • Open Source Installers Generators in C#
  • Open Source Inversion of Control Containers in C#
  • Open Source Issue Tracking Software in C#
  • Open Source Logging Tools in C#
  • Open Source Network Clients in C#
  • Open Source Network Servers in C#
  • Open Source PDF Libraries in C#
  • Open Source Persistence Frameworks in C#
  • Open Source Portals in C#
  • Open Source Profilers in C#
  • Open Source Project Management Tools in C#
  • Open Source RSS & RDF Tools in C#
  • Open Source Rule Engines in C#
  • Open Source Search Engines in C#
  • Source Control Tools in C#
  • Open Source SQL Clients in C#
  • Open Source Template Engines in C#
  • Open Source Testing Tools in C#
  • Open Source Web Frameworks in C#
  • Open Source Web Mail Clients in C#
  • Open Source Web Testing Tools in C#
  • Open Source Wiki Engines in C#
  • Open Source XML Parsers in C#
    具体项目请看 CSharp-Source.Net

与此类似,还有Java-Source.Net,介绍Java下的开源项目。