• No results found

A Comparison of Open Source Application Development Frameworks for the Enterprise

N/A
N/A
Protected

Academic year: 2021

Share "A Comparison of Open Source Application Development Frameworks for the Enterprise"

Copied!
27
0
0

Loading.... (view fulltext now)

Full text

(1)

A Comparison of Open Source Application

Development Frameworks for the Enterprise

Webinar on March 12, 2008

Presented by Kim Weins, Sr. VP of Marketing at OpenLogic

and Kelby Zorgdrager, President of DevelopIntelligence

(2)

OpenLogic Vision

OpenLogic enables enterprises to

safely and successfully

acquire, use, support and control

free and open source software,

and thereby

transform their development efforts and

realize significant savings

.

(3)

OpenLogic Provides What Enterprises Need

One throat to choke

Consolidated SLA support

OpenLogic Expert Community (OXC)

Support

Provisioning

Governance

Risk reduction Indemnification

SaaS Governance platform Trusted source

Subscription to certified library Managed updates

Expert help

Training on open source packages Professional services

(4)

Want More Help?

Services

Get help with selection of an open source framework from an unbiased source.

Training

Get further training on an open source framework or other open source software.

Support

Learn about Developer or Production Support for open source frameworks and other open source you use.

Contact us

www.openlogic.com [email protected]

(5)

Developing Web Applications Faster

(6)

Application Development Framework

Software frameworks typically provide:

Standard structure / design / architectures

Streamlined / simplified abstractions for well-defined APIs

A programming model / defined application lifecycle

Software framework benefits:

Usually address / define the application architecture Reduce the amount of code developers have to write Simplify the development by hiding low-level details Allow developers to focus on “business logic”

(7)

Types of App Dev Frameworks

Three primary types of frameworks

Application – low-level

Web application – focused on web domain Enterprise – high-level architecture oriented

Application framework

Typically exist to simplify development within a specific technology, language, or operating system

Usually not “domain” specific

First came on the scene with GUI development Microsoft Foundation Classes

Enterprise architecture framework

Focused on defining modular architecture for enterprise applications Deal with large complex systems and model

(8)

Web Application Frameworks

Conceptual “extension” of an app framework

Focused on simplifying web application development

Typically built on-top-off some other platform or

framework

Two “broad” types:

Server-side

Address complexities in back-end of web application Available for Java, PHP, .NET, etc.

Client-side

Address complexities in front-end web design / applications JavaScript frameworks, Flex, Silverlight, etc.

(9)

Web Framework Explosion

Frameworks have exploded over the years

Wikipedia has over 85 web application

frameworks compared

http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

Language # of Frameworks Compared

Java 28

PHP 21

Python 8

.NET 4

(10)

Java Web Development Frameworks

“Full-stack” frameworks: SEAM, RIFE, Spring (?)

Address back-end soup-to-nuts web development Typically include MVC component

AND integration with enterprise systems

ADVANTAGES: complete stack, limited glue code DISADVANTAGES: less plug-n-play; “heavyweight”

MVC frameworks: Struts, Spring MVC, etc.

Address “page flow” and reusability in web development Focused on simplifying MVC-based web application

Limited out-of-the-box integration with “enterprise”

ADVANTAGES: pluggable architecture, “lightweight” DISADVANTAGES: glue code

(11)

MVC Diagram

MODEL

-Encapsulates business data and business rules

-Handles calls from the CONTROLLER

-Notifies VIEW of changes

CONTROLLER VIEW

-Provides business logic

-Translates user requests into calls to MODEL

-Selects VIEW for response -Displays the MODEL data

-Sends user request to CONTROLLER

-Notified by MODEL of state change Stat e Q uery Stat e C hang e Not ifica tion Ch an ge S tate User request Select View

(12)

Choosing an MVC Framework

Two types of MVC frameworks:

Action-based (aka Push-based MVC)

Data is pushed from controller to view Focused more on request flow

Struts, Spring MVC, Stripes

Which is the most “productive”?

Component-based (aka Pull-based MVC)

Data is pulled in view

Focused more on view rendering JSF, Wicket, Tapestry

(13)

Action-based MVC Frameworks

Struts 2

Part of Apache Foundation

Reworked version from Struts 1 Based on WebWork

Spring MVC 2.5

Built on-top of Spring framework Adds MVC capabilities

Supported by Spring Source

Stripes 1.5

No “backing” organization Very grassroots framework

(14)

Component-based MVC Frameworks

JSF / MyFaces 1.2

JSR 127 – Governed by JCP

Multiple vendor implementations Big Marketing Machine

Wicket 1.4

Part of Apache Foundation Heavy Java focus

Tapestry 5

Part of Apache Foundation

(15)

Choosing a Framework

The Popularity Formula

“How many Google searches?” “How many jobs on Dice?”

The Community Activity Formula

“When was the last commit/release?” “How active is the mailing list?”

The Learning Formula

“How many books?”

“How’s the documentation?”

The Architect Formula

“How clean are the results?” “How well does it scale?”

The Pragmatist Formula

(16)

Formula Comparison

Struts 2 Spring MVC Stripes JSF Wicket Tapestry 5 Popularity (# of Google Searches / Month) 110,000 18,100 1,600 165,000 4,400 9,900 Community (Last Release Date) 1/13/09 10/31/08 3/4/09 1/19/09 2/9/09 12/4/08 Learning

(# of Books) 10ish 5ish 1 16ish 3ish 1ish

Architect (How clean?) POJOs POJO or Class Hierarcy Inheritenc e POJO or inheritence POLO + inheritence POJO

(17)

The Productivity Formula

“How rapidly can I build a RIA?”

Measuring productivity is a crapshoot:

Not all programmers learn at the same speed Not all programmers develop at the same speed

Measure against trends in RAD

Convention over configuration Scaffolding / CRUD

Inversion of Control / Dependency Injection

Measure against trends in RIA

RESTful URLs

Client-side validation AJAX

(18)

Understanding Variables of RAD

Convention over configuration

Paradigm that prefers coding conventions to XML configuration files

It’s been said “configuration is the demise of Java”

Scaffolding / CRUD

Temporary files / framework artifacts generated to aid in construction of web application

Typically generate UI, controllers, model, and CRUD operations

Inversion of Control

Paradigm that prefers dependency injection over object / service lookup

(19)

Understanding Variables of RIA

RESTful URLs

Representational state transfer

Software architecture that focuses on passing domain-specific data over HTTP without using another

“application layer”

Popularized as an alternative to SOAP / WSDL

Client-side Validation

Perform UI input field validation within browser Prevents round-tripping to backend

AJAX

Asynchronous JavaScript + XML

(20)

Action-Based RAD Comparison

Struts 2 Spring MVC Stripes

Convention over Configuration Configuration Configuration; moving towards convention Convention Configuration Files 2 – 7ish 2+ 1

Navigation Paths XML XML Java based

Scaffolding N/A 3rd Party N/A

CRUD N/A 3rd Party N/A

Inversion of Control

Yes Yes Yes

(21)

Action-Based RIA Comparison

Struts Spring MVC Stripes

REST No; A plug-in is being developed

Coming in Spring 3.0

No; need to write a custom

ActionResolver

Client-side validation

Automatic Manual Manual

(22)

Component-Based RAD Comparison

JSF Wicket Tapestry 5

Convention over Configuration

Configuration Convention Convention

Configuration Files

2+ 2 1

Navigation Paths XML Java-based Java-based

Scaffolding 3rd Party N/A UI “edit / display”

screens

CRUD N/A N/A N/A

Inversion of Control

Yes No Yes

(23)

Component-Based RIA Comparison

JSF Wicket Tapestry 5

REST No No Yes

Client-side validation

Manual Manual Automatic

(24)

And the “Winner” is…?

Stripes Struts 2 Spring MVC Tapestry JSF Wicket Popularity 6 2 3 4 1 5 Community 1 4 6 5 3 2 Learning 5 2 3 5 1 4 Architecture 3 1 2 1 2 3 RAD 1 3 2 1 3 2 RIA 2 2 1 1 3 2 Total 18 14 17 17 13 18 Productivity Total 3 5 3 2 6 4

(25)

Other Considerations

Stripes Struts 2 Spring MVC

Tapestry JSF Wicket

Open Source License

Apache 2 Apache 2 Apache 2 Apache 2 Apache 2 Apache 2

Java Version

1.5 1.5 1.4 1.5 1.5 1.5

Spring Support

Yes Yes Yes Yes Yes ?

JSF Support

No Yes Yes No Yes No

(26)

A note about Scaffolding

Scaffolding support is found in:

Groovy / Grails SEAM

RIFE

(27)

Q/A

Questions?

Contact Information:

Kelby Zorgdrager, President DevelopIntelligence LLC

http://www.developintelligence.com

http://www.developintelligence.com/learn

Kim Weins, Sr. VP Marketing OpenLogic

http://www.openlogic.com https://olex.openlogic.com

References

Related documents

In 2004, the Vietnam Law on Forest Protection and Development legalized the allocation of natural forests for communities to manage, and thus formally recognizing SF,

The central area lakes Volkerak-Zoom, Grevelingen and lake Veere, that have no or limited tidal in fl uence in the present situation, undergo the restoration of tidal amplitude

Owing to the limitations on data availability, it is not possible to make inference that additional funds under the SBCG guarantee directly help increase employment

Mindfulness practice can give teachers a tool to help de-stress and can have a positive effect not only on themselves, but also on their classroom and students (Jennings et al.,

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions. Start

Each component of the IAA will benefit from advances in clinical informatics, analytics, and the application of emerging technologies to reengineer and create the new

If, at any time, the user types in their name in the Input Field (and presses either the button or the RETURN key), the text in the Extended Text Entry changes to add their

Pennsylvania write my essay app, Illinois need thesis proposal on physical education as soon as possible research paper topics english language teaching buy dissertations online