<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鐵手劍譜

    上善若水
    數據加載中……
    JavaOne2005之框架論劍(評注)
    JavaOne Day4的內容之一是Web框架之間的交鋒,Struts的 下一代Shale出人意料的拔得頭籌,下面是具體的情況:
    遺憾的是SpringMVC, ROR沒有參與。 
     摘自:TSS

    Web Frameworks Shootout

    Editor’s Note: This is contributed content, and doesn’t always reflect TSS’ neutrality in such matters. TSS is made up of human editors, of course, and as such, we have biases, but we’d not express them quite this way, nor are we willing to say exactly what those biases are – and no, they’re not often what you might suspect. Let’s leave it at “each framework has its strengths and weaknesses, and each is appropriate for various uses. Thus, we’d be unwilling to stand behind any one framework over another, without detailed and specific requirements for a given implementation.

    One of the more interesting talks at Wednesday's JavaONE was the Web Frameworks Shootout hosted on the Esplande level of the Moscone center.  We’ll begin our coverage of this event with an overview of the shoot-out contenders and format.  We will then provide a brief description of the distinguishing points of each framework, followed by a collection of the top quotes and one-liners from the shoot-out.  Finally, we’ll conclude by presenting you with TheServerside.com's own scorecard of how each of the web frameworks faired in the shootout, proclaiming our winners for "Best Business Case" and "Best Technical Case".

    The Shoot-Out Contenders:

    Frameworks Present:
    JavaServer Faces, championed by Ed Burns
    Webwork, championed by Jason Carreira
    Shale, championed by David Geary
    Tapestry, championed by Howard Lewis Ship
    Wicket, championed by Eelco Hillenius

    Frameworks Conspicuously Absent:
    Struts 1.x
    SpringMVC
    Ruby on Rails

    The Shoot-Out Format:

    Round 1: Each contender gets 3 minutes to introduce their framework.

    Round 2: Questions from the moderator.

    Round 3: Questions from the audience.

    The Fight Bell: The moderator, Kevin Osborn, controls a fight-bell.  The fight-bell is rung for any “hits below the belt ” or when a contender has used their allowed amount of time.                                                                                                        

    Our Commentary:

    One of the major trends we noticed during this shootout was the intense focus on components.  Each framework introduced its own flavor of how a web component should work.  The message to the audience is that reusable web components are all the rage… the major point of contention now is what these components should look like.  We couldn’t help notice, however, that Struts was conspicuously missing.  Still, even while Struts wasn’t formally represented, it was clear all represented frameworks were struggling to free themselves from Struts’ shadow, highlighting how they were “different” and “better”.  While web-framework technology may be advancing and leaving Struts behind, Struts is still the present incumbent as the tried and true framework with thousands of successful projects under its belt.  We couldn’t help noticing that Struts doesn’t include this idea of a web component, so for developers looking for reasons to consider these other frameworks, understanding the idea of a web component is a good place to start.

    Framework Overviews (Round 1)

    JavaServer Faces (JSF)

    • Technical Features
      • First class UI component and event model (其實算起來大家還要感謝Apple的了
      • POJO Dependency Injection (aka Inversion of Control) (最近流行,有什么辦法呢?就像SARS一樣
      • Client device independence
      • Use with or without tools
      • Externalized Navigation (similar to Struts Navigation)
      • Massively Extensible (witness Shale)
      • Completely Integratable (witness JSF integrated with Spring)
      • Localizable and accessible
    • Market/Business Distinctions
      • Widespread Adoption, including Sun, Oracle, IBM, BEA, Apache, EDS (大腕支持是好,可是代價也不小阿。OS的愛好者們不喜歡)
      • Part of J2EE 5.0 (正宗!標準)
      • Large 3rd party component market (iLog, Business Objects, Oracle, Sun, IBM) (希望看到和.net組件一樣火爆的場面)
      • Industry leading tools (Sun Java Studio, Oracle JDeveloper, IBM WSAD, NitroX plugin for Eclipse, Exadel Studio)
      • Many Books Available
      • 3 pages of JSF jobs on Monster (Author’s Note: Compare this to the dozens of pages of Struts jobs on Monster)

    Webwork

    • Core Values
      • Simplicity
      • Testability (管這兩條就值得,如今TDD也流行,沒辦法,他們總希望程序員能搞定一切!) 
      • Maintainability
      • Extensibility
    • View Technology agnostic, supporting JSP, Velocity, and other view technologies (這和Spring有的一拼)
    • Maps HTTP request to a logical (interceptable) action (所以也可以不僅僅針對HTTP了,Command而已嘛)
    • Simple components via the hierarchical MVC and template mechanisms

    Shale

    • A framework built on JSF technology and Jakarta  (更上一層樓了,JSF雖好,但我吸取了Struts和Jarkarta項目的多年功力,你也沒辦法)
    • A proposal for Struts 2.0 (TSS Editor’s Note: Last we checked, there is quite a bit of uncertainty as to whether Shale will actually become Struts 2.0.) (Shale原本計劃成為Struts2德,可是....,她和JSF而且兩者都是同一個人打造的了)
    • A Struts sub-project (還在孵化培育中,所以..........看上去很美)
    • No direct connection with Struts Classic (ie Struts 1.x)  (和Struts不是一回事哦)
    • Described as JSF++:  “JSF 1.0 didn’t include everything we wanted to add due to time.  So Shale attempts to add it.  Features like client-side validation, AJAX, etc… are slated for JSF 2.0.  Meanwhile, Shale is a proving ground for those ideas.” (JSF++有意思,那么下一版本的JSF又該如何?
    • Shale Features:
      • Web Flow
      • Ajax
      • Spring and Tiles Integration (Tiles應該很快會獨立了)
      • Client and Server-side Validation  (使用Commons Validator?)
      • Tapestry-like views and parameterized Subtree   (互相學習阿)
      • Utilities: Back-Button abuse, (令人頭痛的同步問題)file-uploads, JNDI API
    • Shale’s Extension Points
      • ShalePropertyResolver
      • ShaleVariableResolver
      • DialogNavigationHandler
      • ShaleViewHandler
      • TilesViewHandler
    • “If you know nothing about JSF itself, JSF is very, very extensible.” 

    Tapestry

    • Core Values:
      • Simplicity - web applications shouldn't be rocket science!
      • Consistency - what works in pages should work in components. What works in small applications should work in large applications. Different developers should find similar solutions to similar problems. (組件,又是組件。有人問,什么是組件??我也不知道,但是在軟件開發中,組件無處不在!呵呵)
      • Efficiency - applications should be performant and scalable
      • Feedback - when things go wrong, the framework should not get in the way; in fact, it should provide useful diagnostics
    • Tools:
      • Does not require the use of tools
      • Let you use the design tools you already know.
    • New Features in Tapestry 4.0 (subset):
      • Annotations Support (也是很Fancy的東西)
      • Really excellent integration
      • Much more flexibility in terms of how you manage serverside state.  Very efficient about what it stores in the session, if anything at all.
      • Portlets Support
    • Extensibility:
      • Over 180 extension points (老大,是不是多了點
      • Built around Component Object Model with many layers
      • Terrific ability to override, change, and customize
      • Great support for component libraries which are open source and available. (這個庫由你一家操辦,力量小了吧)
    • "Tapestry is a predecessor, almost a research project, for some of the other frameworks"

    Wicket

    • Wicket is the new kid on the block.
    • "Wicket is Easy, Wicket is Elegant", Wicket is Powerful." (怎么聽都象“今年我家不收禮............”)
    • Easy to Use:
      • Simple, Consistent, Obvious
      • Reusable Component (都想這樣)
      • Non-Intrusive (這點很重要,集成嘛。。。)
      • Safe
      • Efficient/Scalable

    Noteworthy Quotes:

    Editors Note: The Q&A rounds were a bit like a peanut gallery where it was often difficult to tell which contender said which cheap-shot.  Furthermore, there was as much smack talk as there was bonafide technical commentary.  Short of who said what, what was most telling during this round was the overall interplay.  In an effort to capture this interplay without making our contenders feel their comments were misattributed, we’ve included a collection of quotes overheard during the round without necessarily attributing them to their origin.

    • "Everybody is knows that JSF is much better than Struts.  Meanwhile JSF is Neck and Neck with Tapestry"
    • "Struts is old school, so get over it."   (培養了很多人,也培養了很多框架哦,而且用戶數量也還在急劇增長,基數也大)
    • "If you need a tool like that, your framework is probably too complex."
    • "You can talk about tools, but you can't make people use them."
    • "If you want to save your Struts code-base, then JSF is the way to go." (的確二者集成比較容易)
    • “It's the fact you can extend your framework in a standard way and create an artifact that can extend this piece of functionality.  You can't really do that in Struts or Webwork.”  To which someone replied that you don’t need a fancy event model to obtain reuse in a web app.(擴展性,)

    Our Scorecard

    TSS did its best to keep score during the shoot-out.  We decided to score each of the frameworks in a 5-point scale in two separate categories:

    • Technical Features
    • Business Case

    Technical Features

    Framework

    Score

    Rational

    JavaServer Faces (JSF)

    4.8

    JSF win’s major points for it’s 1 st class support for true web components.  Our analyst felt allegations of JSFs lack of simplicity and elegance to be unmerited.  JSF is simple to use, powerful, and revolutionary.  And the existence of Shale and Spring -JSF are a testament to the true extensibility of Faces.
    (大腕們的支持,當然不同了。就如同少林武當的功夫)

    Webwork

    4.2

    Webwork’s hierarchical MVC model was revolutionary in it’s time and served as a fore-runner to many of the web-component models we are now witnessing.  However, we feel Webwork’s HMVC and template facilities are eclipsed by JSFs refinement of these ideas into JSFs truly 1 st class component model.

    Shale

    4.95

    If Shale stands taller than the other frameworks, it’s because it stands on the shoulders of giants.  (一個藍圖)By extending JSF to include advanced web-flow, AJAX support, tiles integration, and client-side validation, our judge felt that Shale represents the future of where web-frameworks need to move technically.

    Tapestry

    4.75

    Tapestry pioneered the idea of a web-component and set the bar.  The claim during the debate that “Tapestry and JSF are neck-and-neck” isn’t too far off.  However, JSF’s standardized extension points and first-class support for portlet development is a truly compelling technical case against which Tapestry can’t yet compete.  We’ll be watching this race closely.  We’d love to see Tapestry support some of the JSF standard interfaces to support interoperability… specifically we’d love to be able to write JSF components using Tapestry and to use Tapestry components as JSF components.  We’ll be eagerly watching what Howard includes in the next release.

    Wicket

    Not-Rated

    Wicket is the new kid on the block, only having reached 1.0 a few weeks prior to JavaONE.  Our judge didn’t feel it was fair to score Wicket without knowing a little more about it.  However, if Wicket is truly as simple as it claims to be we’ll certainly be keeping our eye on it.  We’d also like to extend to Wicket the same interoperability challenge we just extended to Tapestry.

    Struts

    4.2

    While Struts wasn’t formally included in the shootout, as the incumbent Struts is the framework by which all other web frameworks are judged.  When Struts was released it revolutionized the web world with it’s inclusion of data-bound controls, action event handlers, and externalized navigation.  Since then, Struts has expanded to include tiles, the Struts validator, and extensibility through dynabeans.  However, Struts has also been a victim of its own success, lacking a formal component model chiefly due to the necessity for backwards compatibility trump ing its ability continue to pioneer new ground.  This is why Craig McClanahan, the original creator of Struts, started Shale, in hopes that Shale may one day become the new defacto standard. (*Sorry, .tag files don’t count as web components, since they’re output-only reuse.)

     

    Business Case

    Framework

    Score

    Rational

    JavaServer Faces (JSF)

    3.9

    JSF is now an official Java Standard and will be an integral part of J2EE 5.0.  With endorsements from Sun, IBM, BEA, Oracle, and dozens of other companies, JSF shows a lot of promise.  However, we cannot ignore the limited numbers of deployments currently using JSF.  If JSF wants to win the heart of IT managers away from Struts, it’s going to need a plethora of success stories behind its belt.  Simply naming a few big names, such as FedEx, who have used JSF on a few select projects just doesn’t cut it here.  As strong as JSF is, we’ll be waiting to see those success stories come pouring in before we bet the business on it.  Yet, in comparison to the other frameworks presented at the shootout (remember, Struts was absent) JSF still came in first place with a score of 3.9.

    Webwork

    3.1

    When our judge stood up during the audience questions round and asked each framework for an order-of-magnitude estimate of the number of projects currently deployed using it’s framework, all the frameworks, including JSF hemmed and hawed and dodged the question.  But we simply LOVED Webwork’s answer “ Do I get to count each of Google’s server’s as its own deployment”… if GOOGLE is willing to bet the business on Webwork, that lends a huge vote of confidence.

    Shale

    1.3

    While Shale builds on top of JSF and is in many ways technically superior, it is still unproven.  From a business risk management standpoint, it’s just too new and its is future too uncertain.  Sure, the claim to fame that Shale is a proposal for Struts 2.0 sounds impressive, but that’s just it, it is just one proposal far from being adopted.  Quite frankly there are a large number of barriers which must be overcome before it’s accepted by the Struts community at large.

    Tapestry

    2.8

    Like Webwork, Tapestry is a framework that has been around the block quite a few times and is a robust, proven framework.  (It’s used to power TheServerside.com.)  Tapestry 4.0 offers a whole new set of exciting features.  Yet we feel Tapestry creator Howard Lewis Ship said it best when he described Tapestry as a “research project” for the other web frameworks.  For small elite development teams who want all the latest innovations, Tapestry is great.  For large IT shops looking for wide industry adoption, a large community of experienced developers to choose from, and hundreds of successful deployments to point to, we just don’t feel Tapestry fits the bill (yet).  Our challenge to make Tapestry play nice with JSF still stands… standards compatibility may be just what Tapestry needs to ease the minds of risk-averse IT managers.

    Wicket

    0.7

    As strong as the case for Wicket’s simplicity may be, there are still less than 5 projects using Wicket, all of which belong to Wicket’s author s.  As the new kid on the block, Wicket’s innovations are warmly welcomed.  However Wicket still has a long way to go to prove itself.

    Struts

    4.6

    With literally thousands of deployed projects using Struts, Struts has been adopted as the framework of choice by IT organizations large and small and won’t be leaving anytime soon.  Struts stuffers slightly from not being an official standard, but it’s status as a “defacto-standard” is nearly as good.  Almost every major vendor now includes Struts support in their products.  A risk-averse IT manager can’t go wrong adopting Struts.

    posted on 2005-07-05 09:31 鐵手 閱讀(2181) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 亚洲成AV人在线观看天堂无码| 亚洲国产精品成人久久蜜臀| 久久精品亚洲中文字幕无码麻豆| 中文字幕在线免费观看视频| 亚洲精品无码成人片在线观看| 日韩精品视频在线观看免费| gogo全球高清大胆亚洲| 日韩一级片免费观看| 亚洲毛片av日韩av无码| 中文字幕免费在线视频| 亚洲av永久无码精品古装片| 少妇无码一区二区三区免费| 亚洲电影在线播放| 成人免费视频软件网站| 国产综合激情在线亚洲第一页 | 亚洲成AV人片在线观看无码| 久久久精品午夜免费不卡| 久久久久亚洲AV无码永不| 四虎最新永久免费视频| 亚洲乱人伦中文字幕无码| 四虎亚洲国产成人久久精品| 国产精品免费久久久久电影网| 国产V亚洲V天堂A无码| 免费观看激色视频网站bd| 亚洲码欧美码一区二区三区| 亚洲国产精品毛片av不卡在线| a毛看片免费观看视频| 亚洲中文无码a∨在线观看| 日本高清免费网站| 国产一二三四区乱码免费| 亚洲综合色丁香麻豆| 国产乱弄免费视频| 日本免费在线观看| 亚洲日韩国产AV无码无码精品| 亚洲精品乱码久久久久久不卡| 亚洲成人免费在线| 免费国产高清毛不卡片基地| 91亚洲导航深夜福利| 免费在线观看日韩| 永久在线观看www免费视频| 美美女高清毛片视频黄的一免费|