Rapid Application Developmentusing
Free and Open Source Frameworks
RAD Solutions Private Limited220/226, Sekhar EnclaveLane 3, Biju Pattnaik College Road, Jayadev ViharBhubaneswar 751015 [email protected]
Page 2
Freely redistributable
Why RAD
● Today's world is agile● Requirements and business rules change dynamically● New application requirements emerge everyday● Traditional software development methodologies and
tools are no more adequate● Rapid application development and maintenance is
needed!
Page 3
Freely redistributable
Moving towards RAD
● Switching from statically typed languages like Java or .Net to dynamically typed languages like Python, Ruby
● Using cutting edge MVC frameworks● Using FOSS software development tools
Page 4
Freely redistributable
Dynamically typed languages● 5-10 times more productive than Java or .NET● Features making it so productive
– Dynamically typed● Type checking is done at run-time● classes and functions are objects, can be created and
altered at runtime– No Compilation cycle– Concise– Powerful
Page 5
Freely redistributable
Why we prefer Python over Ruby and others● Popular
– Availability of Libraries, tools and frameworks– There is a good deal of free and open source
software available in Python for all kind of activities
● Faster● Some features like internationalization is
better supported
Page 6
Freely redistributable
A few references
● http://home.pacbell.net/ouster/scripting.html● http://www.ferg.org/projects/python_java_side-by-side.html● http://www.artima.com/weblogs/viewpost.jsp?thread=4639
Page 7
Freely redistributable
Leading RAD Frameworks
● Turbogears● Pylons● RoR● Django● Zope
● You may be interested to read Why I chose TurboGears
TurboGears
Page 9
Freely redistributable
Turbogears
● Rapid web development mega framework● A pack of many best-of-the-breed free and
open source frameworks for developing complete web applications
● MVC pattern● database-driven, ready-to-extend application
can be developed in minutes
Page 10
Freely redistributable
Sample application
● Let's develop a sample application in minutes!● Refer http://radisfun.com/Tutorials
Page 11
Freely redistributable
Unique features of TurboGears● Full support for SQLAlchemy – the complete ORM● Collection of best-of-the-breed components● Numerous widgets available● Identity management● Form validation● Being used by many vital products like TinyERP
Page 12
Freely redistributable
Components of Turbogears
● Database ORM: SQLAlchemy, SQLObject● Controller: CherryPy● Template engine: Genshi, Kid● Javascript/AJAX library: MochiKit● Automated testing: Nose● Others: Widgets, Identity Management,
FormEncode
Page 13
Freely redistributable
SQLALchemy
● The king of ORMs in Python● Mapper pattern – no restriction in mapping to
complex databases● Can handle composite primary keys● Powerful enough for complicated tasks● Extremely easy to use for all the basic tasks
Page 14
Freely redistributable
CherryPy
● The application server of Turbogears● A pythonic, oo web app framework● Maps URL request to Python methods● CGI variables are mapped to method
arguments
Page 15
Freely redistributable
Genshi
● The templating engine of Turbogears● Templates are well-formed XML● Supports template inheritance and XSLT-like
matching● Designer-friendly: viewable in browser
Page 16
Freely redistributable
MochiKit
● The Default JavaScript/AJAX library of Turbogears
● Pythonic JavaScript library● “ Makes JavaScript suck less”● Well-documented● Reliable (lots of automated tests)
Page 17
Freely redistributable
Others● Some other components of Turbogears are:
– Identity management● User, group, permission scheme● IP-based access control
– Widgets– Form Validation through FormEncode
For Management
Page 19
Freely redistributable
Benefits of Turbogears
● Better products can be developed much cheaper and faster
● Developed products are easily maintainable● Developers enjoy the development and
maintenance cycles● Learning curve is lesser● Customers get the “ time to market” advantage
Page 20
Freely redistributable
Benefits of Turbogears● Business processes and back office
operations can be easily automated● Web solutions can be developed quite easily● Provides agile solutions, which do not resist
change● Achieves Productivity Arbitrage
– the competitive advantage gained by delivering solutions below market price, but incurring lower delivery cost by using new technologies.
Page 21
Freely redistributable
Benefits of Turbogears
● Rapid prototyping– Customers say “ I may not know how to define my
application, but I’ ll know when I see it.” With Turbogears, the prototype could happen faster, in multiple cycles
● Iterative development is enjoyable
Page 22
Freely redistributable
Conclusion
The cutting-edge MVC RAD frameworks are the answer to the agile business solutions of
tomorrow
Page 23
Freely redistributable
References● http://sanjaypatel.blogspot.com/2007/07/why-i-chose-turbogears.html
● http://agilemanifesto.org/principles.html
● http://www.turbogears.org
● http://www.sqlalchemy.org
● http://www.cherrypy.org
● http://genshi.edgewall.org
● http://mochikit.com
Thank You!
Top Related