日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

专访.NET平台上类RoR开源项目Castle[转载]

發布時間:2024/4/17 asp.net 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 专访.NET平台上类RoR开源项目Castle[转载] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Castle Project是一個運行在.NET之上的開源項目,提供了類似流行的Ruby on Rails的MVC (Model-View-Controller)框架。Castle Project自從2003年就開始開發,并在2006年11月發布了1.0 RC2 。在這個項目臨近1.0 RC3版本發布之際,我們采訪了項目的創始人Hamilton Verissimo,談到了Castle Project是什么及未來的走向。 Castle Project 應被任何在.NET平臺上使用新方法來創建Web應用程序,感興趣或特別好奇于實現MVC的應用程序的開發人員予以關注。它試圖通過提供一系列工具和框架來讓.NET世界的開發變得更令人愉快、開心和富有成效。它提供的這些方法創建出的應用程序更具有良好的層隔離,和良好的設計。 首先我們來看一下Castle Project到底是什么: MicroKernel/Windsor?- 這是一個控制反轉(Inversion of Control,IoC)容器。實際上,Windsor僅僅是封裝了MicroKernel并提供了一些外部的配置信息和代理支持。IoC的核心思想是通過消除直接的代碼編寫并配置需要依賴的服務,來促進松散耦合設計。 Castle ActiveRecord?- 一個構建于NHibernate之上的ORM。它無需創建XML映射,并簡化了NHibernate的一些復雜基礎功能。雖然基于基類的使用是標準的方式,但這不是必要的,你可以以不同的模式來使用ActiveRecord,如Repository。 Castle MonoRail?- 一個構建于ASP.NET(不要和ASP.NET中的WebForms混淆)之上的Web框架。它以控制器作為Web應用程序中的主要角色,決定流程,委托到其他層并選取視圖來呈現,因此它只關心應用程序的流程邏輯。視圖,另一方面也只關注表現邏輯。這是和標準的WebForms模式最大的不同之處。對于那些來自其他平臺下的Web框架的人們,這是標準的選擇,可以讓你完全的控制HTML的生成,而WebForms和它的控件是無法做到的。 有一些不是頂級的但依然很重要的項目,如DynamicProxy(它允許代理接口和類,被用于好幾個開源項目中,如NHibernate和Rhino.Mocks)。NVelocity也是我們為Sourceforge上已關閉的NVelocity提供的一個分支。我們修正了幾個錯誤、添加了一些有意思的特性并進行了優化。 對于項目提供用于視圖呈現技術的看法: Castle MonoRail提供了幾個不同的視圖引擎用于開發呈現到瀏覽器的視圖。NVelocity和Brail隨著Castle發布包一起提供,盡管這樣,還有一些來自于社區的視圖引擎實現,名為AspView的項目和一個基于StringTemplate的項目。?

從這些視圖引擎的差異得出的一個事實就是,他們不具有像WebForms那樣復雜的頁面生命周期。我們也不會試圖重新創造一個有狀態的不夠清晰的Web模型。堅信Web開發是簡單的,我們也受益于簡單的方式。通過使用模型(Models)和控制器(Controllers )處理數據/狀態和流程/應用邏輯,我們就可以依靠視圖來作為簡單顯示內容的角色,由此我們不需要任何復雜的語法,使用if和foreach足夠了。但是,內容也能被重用,只須把視圖分割到不同的文件中或創建視圖組件(ViewComponents)來作為相關邏輯的視圖被顯示。 關于自從RC2發布以來的改變:
ActiveRecord和Windsor有了一些加強和錯誤修正。MonoRail被極大的改善,添加了緩存支持和JS生成。緩存能在控制器級別配置,最終是利用了ASP.NET的緩存基礎功能。JS生成是一種生成可以改變頁面的JavaScript代碼的方式。通常被用于AJAX中,可以想象一下,你有一個顯示了某些內容的頁面,用戶點擊了一個按鈕改變了一些東西的狀態。這個動作能使用JS生成功能生成JavaScript來更新頁面中的元素。 這個項目明顯和Ruby on Rails有些類似,當問到Castle Project是否是因為Ruby on Rails的流行才啟動的: Castle首先以控制反轉(IoC)容器開始的,我大概記得好像在2003年到2004之間。Castle ActiveRecord和MonoRail是在我接觸了Rails(2004年,Rails那時還非常年輕)之后才開始的。那時我決定用它(Ruby on Rails)構建一個產品,可當時除了頭痛的非標準需求外一無所有。 另外一方面而言,.NET具有很好且文檔齊備的函數庫,很多像樣的項目在各處都冒了出來。雖然我喜歡Rails,但.NET不只是框架和平臺,我會把它用于我參與的各類項目當中。 而MonoRail開始于Ruby on Rails ActionPack的移植,是從以前來自用戶的貢獻和想法中分支出來。今天它擁有自己的特征,雖然它的基礎和RoR類似,但我們支持的東西RoR不支持,反之亦然。 但問到Castle Project的未來和Hamilton看到的趨勢在那里: 覆蓋企業項目(開發)的所有方面是終極的目標。同時我們會平衡那些提供出來的產品具有一定的預見性,能讓你輕松的工作并給你一定生產力的提高。這和提供某些復雜的編輯器或代碼生成器工具有所不同,沒有了他們你就無法工作。這也就是我們的工作為什么和微軟的方式如此的不同。
Castle Project是一個開源的項目,歡迎各位開發人員參與進來。參與方式包括提交修正錯誤的補丁,或添加新特性,添加測試用例或文檔。參與的第一步是訂閱開發郵件列表,并開始參與到討論之中。 更多的信息能在Castle Project 網站或在wiki上找到。Hamilton也維護著一個有大量信息的Blog。 查看英文原文:Catching up with the Castle Project

更新的功能包括: ActiveRecord
  • 不需要擴展ARBase就能支持多數據集
  • 使用新的Castle Validation實現重構驗證支持
  • InPlaceConfigurationSource.Build()
  • 添加HqlNamedQuery
  • 大量的錯誤修正
DynamicProxy
  • RC3第一次包含DynamicProxy 2(其支持泛型)
  • 比版本1快很多
MicroKernel/Windsor
  • 支持泛型集合
  • 轉而使用DynamicProxy 2
  • 添加一些小功能到IKernel和IWindsorContainer的add/resolve方法中
  • 子容器支持得以提升,但是依舊需要一些檢查——你可能會在編譯的時候得到警告
  • 添加了一個很簡單的計算(Eval)支持,你能進行配置
  • DefaultKernel 和 WindsorContainer現在都實現了IServiceProvider
MonoRail
  • 添加了緩存(Cache)支持(查看新的Cache屬性)
  • 添加IsPost/IsGet/IsPut/IsHead到Controller
  • 添加自動窗體驗證(Auto Form Validation)
  • FormHelper接近完美,依然缺乏多條選擇的支持
  • 支持一次注冊多個視圖引擎(可以和混合視圖引擎說拜拜了)——但是還不夠好,在內部還有很多不協調的情況
  • 添加了少量視圖組件
  • 添加測試控制器、視圖組件、向導的支持,而無須使用ASP.NET
  • 添加了JS生成器支持,及UpdatePage/UpdatePageTag視圖組件
  • Format支持set操作,例如$Form.Select(”price”, [1..100], “”)是用貨幣格式來顯示選擇的元素
  • 添加PaginationHelper.CreateCustomPage,其是處理分頁最優化的方式
  • 添加DiggStylePagination視圖組件,基于Alex Henderson運作
  • 添加了如下成員到SmartDispatcherController(和驗證有關):ValidationSummaryPerInstance : IDictionary、GetErrorSummary(對象實例) : ErrorSummary、HasValidationError(對象實例) : bool
  • 添加ViewComponentDetails屬性(就像ControllerDetails)
  • 添加ViewComponentParam屬性,它可以告知MonoRail把參數作為屬性綁定到你的視圖組件上——減少了重復的代碼規則
  • 添加UrlHelper/UrlBuilder概念
Aspect#
  • 已經發布
組件
  • 添加Castle.Validator
  • 添加Castle.DictionaryAdapter——對這個特性還有點拿不準
  • 加強了Binder(這是它的實現的另外一種重寫代碼)
其他
  • 創建了using.castleproject.org
  • 創建了api.castleproject.org
  • 在Castle.Services.Transaction和微軟System.Transactions之間進行了初步集成
  • 創建了Castle.Core命名空間
想得到關于Castle Project和這個版本的更多信息,可以訪問他們的網站。 中文原文: [url]http://www.infoq.com/cn/news/2007/09/castleproject[/url]




本文轉自 張善友 51CTO博客,原文鏈接:http://blog.51cto.com/shanyou/73965,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的专访.NET平台上类RoR开源项目Castle[转载]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。