应用JSF、Ajax和Seam开发Portlets(1/3)
本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。
作者 Dflying Chen译者 陈黎夫 发布于 2007年9月30日 下午11时59分
在最新的第十三期微软Architecture Journal杂志中,微软公司SQL Server团队的技术主管Pablo Castro详细地介绍了微软公司REST框架——Astoria的几个重要的特性。我认为Astoria是一个非常不错的REST框架。Astoria将实体/记录的概念统一用资源来描述,且这些资源可以通过URI的结构来体现出层次。 所有的资源都可以通过统一的HTTP接口获取并进行维护,且框架也允许我们沿用传统的Web开发方法对程序进行分层或缓存。随后,Pablo解释了微软公司发起Astoria项目的原因,以及Astoria在当下流行的Web 2.0概念中的重要地位。
从服务器的角度来看,提供用于界面相关的资源显得较为易于理解,例如HTML、CSS以及图像文件等。不过提供数据却是另外一回事。至今为止,一般来讲与 数据打交道的交互过程应该发生于Web服务器和数据库服务器之间——似乎没有什么必要将数据直接暴露给运行于浏览器中的Web页面或是其他什么客户端软 件。但这个需求也恰好是Astoria框架的切入点。与其他REST框架类似的是,Astoria也允许开发者使用更加富有“语意”的URL来访问以及维护互联网上的资源。为了给出直观的案例,Astoria开发团队还特意建立了一个演示服务器,将大家熟知的Northwind数据库的访问点通过HTTP协议直接暴露了出来。例如:
http://astoria.sandbox.live.com/northwind/northwind.rse/CustomersAstoria还与微软公司的.NET框架完美地结合了起来,能够充分利用框架现有的各种强大的基础设施,Pablo说到。
http://astoria.sandbox.live.com/northwind/northwind.rse/Customers[ALFKI]/Orders
对于.NET应用程序来说,Astoria框架提供了一个运行于.NET环境下的客户端类库,该类库能够自动将从Astoria服务中取得的数据封装为.NET 中的对象。这不但大大地简化了客户端应用程序开发者的工作,也能够很方便地与现有的使用.NET对象的组件结合起来使用。不但如此,Astoria还可以支持其他非数据库类型(例如由LINQ查询语句得到)的数据源,并将其通过HTTP接口暴露出来。
Astoria用来定义数据架构的语法为实体数据模型(Entity Data Model,EDM),而EDM则已经得到了ADO.NET实体框架的内建支持。ADO.NET实体框架还提供了一个强大的映射机制,让开发者能够很容易 地将EDM架构和实际的关系型数据库映射起来。
[WebGet]随后即可使用如下的URL访问上述自定义的业务逻辑,并传递相应的参数。
public static IQueryableCustomersByCity(NorthwindEntities db, string city)
{
if (city == null || city.Length < 3)
throw new Exception(“bad city”);
var q = db.Customers.Where(“it.City = @city”, new ObjectParameter(“city”, city));
// add user-based filter condition to q
return q;
}
/MyCustomersByCity?city=Seattle在安全性方面,Pablo及其团队成员把Astoria与ASP.NET内建的认证模型集成了起来,这也让我们能够很容易地在现有项目中引入该框架。
Astoria将通过调用ASP.NET的相关API来获取用户的认证信息,因此对于那些使用ASP.NET认证机制的应用程序来说,无须任何修改即可直接应用Astoria框架。若想了解更多有关Astoria框架的信息,请参考Astoria团队的Blog 以及Pablo的Blog 。
本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。
在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。
InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!
在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。
通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。
本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。
InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。
相对于Java,.NET在持续重构方面所给与的重视仍然少为人知,大多数人对于重构是否真正属于开发过程,以及如何将其应用到开发过程中持观望态度。Danijel Arsenovski试图为你揭示这些谜题。
没有回复
回复