Upload
sampetruda
View
1.207
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
SONATA 6507 Dumbarton Circle Fremont CA 94555 Phone: 510-742-7213 Fax: 510-791-7270 www.sonata-software.com
RICH INTERNET APPLICATION
DEVELOPMENT PLATFORMS
CURL, FLEX AND AJAX A COMPARISON
PREPARED BY
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 2 of 33
TABLE OF CONTENTS
1 EXECUTIVE SUMMARY................................................................................................................................3
2 RICH INTERNET APPLICATION (RIA) .....................................................................................................5
3 AVAILABLE SOLUTIONS..............................................................................................................................7
4 EVALUATION CRITERIA............................................................................................................................11
5 COMPARISON METHODOLOGY..............................................................................................................13
6 ANALYSIS OF IMPLEMENTATION EXPERIENCE...............................................................................16
7 DATA COMPARISON ...................................................................................................................................25
8 SCORES & RESULTS ....................................................................................................................................31
9 SUMMARY ......................................................................................................................................................32
10 TUAPPENDIX UT A...................................................................................................................................................33
11 TUAPPENDIX UT B ...................................................................................................................................................33
12 TUAPPENDIX UT C...................................................................................................................................................33
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 3 of 33
1 Executive Summary Triggered by AJAX based popular websites like Google Map, YouTube and Flickr
there is now a high demand for next generation Internet applications called RIAs.
Surveys by leading research firms indicate that enterprises are taking a closer look
at implementing RIAs as they foresee a direct or an indirect influence on their
businesses. Enterprises that embark on RIA have a challenging task at hand –
choosing the right RIA development platform. The decision is critical as there are
many options, vendors and technologies in the market with varying degrees of
support for RIA.
The objective of this research study is to evaluate three prevalent technologies,
CURL, Flex and ASP.NET AJAX (formerly ATLAS framework) by building an RIA
for Enterprises through actual development and deployment of a typical
transactional read/write Order Entry application. Order Entry applications are
widely deployed as client-server systems in numerous enterprises and hence the
results of this study will be of relevance to enterprises embarking on RIA initiatives.
In order to compare technologies, we have directed our attention to a set of
common functional parameters from a development and implementation
perspective. The application was developed in two months by three separate
resources and was based on the information provided in the evaluation pack. The
design of a typical Order Entry application was enriched to include RIA features.
We collected data on factors contributing to ease of learning, design, development
and the run time performance characteristics of the applications under different
data volume levels.
This report is targeted at decision makers and developers involved in absorption of
RIA technologies. The code samples will be handy for developers evaluating the
technologies through pilot implementation projects. The data comparisons will be
useful for decision makers while considering technologies to include in pilot
projects.
The results of the study show that CURL, Flex and ASP.NET AJAX supported
most of the RIA features required for the sample application. While CURL had all
the features required, Flex and Ajax had some limitations. At the time of writing
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 4 of 33
this report, ASP.NET AJAX requires support from 3rd party tool vendors for
advanced analytical reports.
Parameters CURL Flex ASP.NET
AJAX
Ease of Learning 7.9 8.3 8.6
Ease of Design 8.6 8.2 8.4
Ease of Development 8.8 8.1 7.6
Runtime performance 9.1 8.1 7.3
Note: The above scores are an aggregation and summary of individual scores on
multiple factors. The detailed scores on all factors are presented in Appendix A.
For detailed analysis of the study, please refer to the following sections:
HEvaluation Criteria.
HApplication Implementation detailsH
HData comparisonH
HScores H
HCode Samples
It was interesting to note that CURL required 34% less code than AJAX and 31%
less than Flex. CURL and Flex came close on run time performance with CURL
scoring a little better because of its light foot print and optimum memory utilization.
Since the study was conducted in a limited timeframe, it may be possible to
improve the technical solutions by using advance techniques appropriate for each
platform.
Each of these technologies has their unique advantages when they are positioned
in the Enterprise IT environment.
ASP.NET AJAX Flex CURL
No Plug-ins Run time Plug-In
required Run time Plug-In required
Appropriate choice for
B2C transaction
applications as there is
Appropriate choice for
solutions that require
Media content delivery.
Appropriate choice for
enriching Enterprise class
desktop applications with
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 5 of 33
no Plug-in library to be
installed in the client
side.
e.g. Product
Configurators
RIA.
A person buying a
book online is not likely
waste time to install
plug-ins in order to
make the transaction.
The user can get
simulated experience of
the product through Rich
media content.
Quick download and fast
start up of the application
Good performance on
large volumes of data.
Excellent built-in data
analysis tools.
2 Rich Internet Application (RIA) How is a RIA different and better than a traditional web application? In a
traditional web application all the activity is wrapped around client/server
architecture with a thin client. As the name suggests, all the processing is done at
the server while the client is only used to display static content. The biggest
drawback as experienced over the years with this system is that all the interaction
with the application must pass through the server, which requires data to be sent
to the server, the server to respond and then the page to reload at the client end
with the response.
RIAs on the other hand have an enhanced client side technology which can
execute instructions on the client’s computer, thereby circumventing the slow and
synchronous communication loop between the server and the client. This client
side processing technology is generally termed as client engine.
Benefits of RIA: As RIAs deploy a client engine to execute instructions at the client machine, they
are:
Richer: RIA applications provide improved UI behaviors normally not
obtainable with standard browser based web-applications.
More responsive: The interface behaviors are typically much more
responsive than those of a standard Web browser that must always interact
with a remote server.
Client/ Server Balanced: The demand for client and server computing
resources is better balanced, so that the Web server need not be the
workhorse that it is with a traditional Web application.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 6 of 33
Asynchronous: The client engine can interact with the server
asynchronously -- that is, without waiting for the user to perform an
interface action like clicking on a button or link. This option allows RIA
designers to move data between the client and the server without making
the user wait.
Network Efficient: The network traffic is significantly reduced because an
application-specific client engine is more intelligent than a standard Web
browser and has the capability to decide what/which data needs to be
exchanged with servers.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 7 of 33
3 Available Solutions Currently there are numerous RIA solutions available in the market. Few of the
solutions are:
Sl. No
Available RIA Solutions Links
1 Curl Hwww.curl.comH
2 Open Laszlo (AJAX based) Hwww.openlaszlo.orgH
3 Adobe Flex Hwww.flex.orgH
4 Nexaweb’s Enterprise Web 2.0 (AJAX based) Hwww.nexaweb.com H
5 AltioLive (Java based) Hwww.altio.com/et.cfm?eid=1264 H
6 UltraLightClient (Java based) Hwww.canoo.com/ulc/products/index.html H
7 JavaFX - Beta Hwww.sun.com/software/javafx/ H
8 Silverlight – beta Hsilverlight.net/ H
9 ASP.NET AJAX Hajax.asp.net/ H
10 DOJO (AJAX based) Hdojotoolkit.org H
11 Google web toolkit (AJAX based) Hcode.google.com/webtoolkitH
Among the RIA solutions listed above, we have narrowed down the field for
comparison to
Curl
Adobe Flex
AJAX (implemented with ASP.NET)
As enterprises expect excellent after-sales support from the solution provider, the
criterion for selecting the above platforms is entirely based on the availability of
support services around them. Hence, the solutions in beta and open-source
versions without organized support have been excluded from this study.
3.1 Curl Curl is a RIA platform, providing a powerful and effective environment for
developing complex, industrial-strength Web applications. Using Curl,
organizations can create a new class of Web-based offerings that provide all the
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 8 of 33
rich interactivity, functionality and performance of client-server applications. Curl
enables companies to implement innovative SOA and Web 2.0 strategies. It
combines program logic, graphics and text processing into one language/platform.
The Curl product set includes three elements: The Curl® Language, the Curl®
Run Time Environment and the Curl® Integrated Development Environment.
• Curl Language Designed specifically for use on the Web, the Curl programming language
supports rich text formatting and GUI layouts much like HTML, but also offers the
fast and easy presentation scripting of JavaScript and the full-featured object-
oriented programming of C++, C# and Java. Curl language supports declarative
style, scripting style, and the object-oriented style allowing developers to rapidly
prototype using scripting and also build maintainable enterprise-scale applications
using object-oriented programming.
• Curl Run Time Environment(RTE)
The execution platform for Curl applications provides an extensive collection of
built-in APIs thus reducing the size and complexity of the Curl applications. The
Curl RTE provides the following capabilities –
a) 2D and 3D graphics libraries provide access to sophisticated,
hardware-accelerated rendering capabilities; immediate mode (low-
level rendering operations) and retained mode (“scene”) operation.
b) Supports event-based interactions.
c) Built-in timers and animation features produce dynamic behaviors and
displays
d) Audio data may be created and played,
e) Access web services using HTTP or custom TCP/IP socket based
protocols.
• Curl Integrated Development Environment The Curl IDE provides a full set of tools for developing and debugging Curl
applications, enabling rapid development via a Visual Layout Editor (VLE) that
delivers advanced visual (“WYSIWYG”) functionality with application debugging,
testing & profiling features.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 9 of 33
3.2 Flex The Adobe Flex product line is another solution for delivering RIAs across the
enterprise and over the web. The Flex product line provides a programming model
(Flex framework), integrated Eclipse-based development tools (Flex Builder™),
and data integration services (Flex Data Services) that enable organizations to
deliver solutions by integrating with existing applications and websites.
• Flex framework Applications delivered with Flex execute with the help of the browser and Flash
Player runtime. Flash Player provides a consistent, cross-platform runtime that
contains virtual machine with integrated support for multilingual text display,
printing, data manipulation, motion, and multimedia. Flex provides client-side
service components that enable applications to interact with any remote server via
SOAP web services, REST services, or raw HTTP or custom socket-based
protocols.
• Flex Builder The Flex development model uses MXML for user interface design and layout and
ActionScript (an implementation of ECMAScript) for client logic. The Flex Builder
integrated development environment (IDE) provides tools for coding, debugging,
and visual user interface layout design can integrate with existing source code
management systems. In addition to this, Flex provides integrated support for unit
testing tool.
• Flex Data Services Flex Data Services extends the capabilities of the Flex client framework by
providing additional services for managing data transfer and integrating with
existing applications and infrastructure. Flex Data Services is implemented as a
Java web application and can be deployed on standard Java application servers.
The services provided by Flex Data Services integrate with the existing security
profiles defined within the Java application server. Flex Data Services can be
deployed using standard deployment tools provided with the server and can
integrate with application server clustering features. In addition, applications built
with Flex Data Services can access existing server-side session data and
application logic using standard Java APIs.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 10 of 33
3.3 AJAX The AJAX (Asynchronous JavaScript and XML) framework is a collection of
technologies – XHTML, CSS, DOM, JavaScript, XML & XMLHttpRequest objects –
which are collectively used to create interactive web applications. There are
various types of AJAX frameworks - ranging from simple frameworks (which
require extensive HTML/CSS/AJAX experience) to Component-based (which are
complex and provide out-of-the-box ready to use components and enable rapid
application development) frameworks. The Microsoft ASP.NET AJAX framework
was selected for the study since it supports visual programming and provides built-
in components thus enabling rapid application development.
Microsoft ASP.NET AJAX (previous known as ATLAS framework) enables
developers to create Web pages with familiar user interface (UI) elements. It also
provides client-script libraries that incorporate cross-browser ECMAScript
(JavaScript) and dynamic HTML (DHTML) technologies, and integrates them with
the ASP.NET 2.0 server-based development platform.
The ASP.NET AJAX client-script libraries consist of JavaScript (.js) files that
provide features for object-oriented development enabling a high level of
consistency and modularity in client scripting.
ASP.NET AJAX script libraries include the following layers:-
• A browser compatibility layer that provides compatibility across the most
frequently used browsers (including Microsoft Internet Explorer, Mozilla
Firefox, and Apple Safari) for ASP.NET AJAX scripts.
• ASP.NET AJAX core services, which include extensions to JavaScript,
such as classes, namespaces, event handling, inheritance, data types, and
object serialization.
• An ASP.NET AJAX base class library, which includes components such as
string builders and extended error handling.
• A networking layer that handles communication with Web-based services
and applications, and that manages asynchronous remote method calls.
• Support for JavaScript libraries that are either embedded in an assembly or
are provided as standalone JavaScript (.js) files. Embedding JavaScript
libraries in an assembly can make it easier to deploy applications and can
solve versioning issues.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 11 of 33
• Support for accessing server-based forms authentication and profile
information in client script. This support is also available to Web
applications that are not created by using ASP.NET, as long as the
application has access to the Microsoft AJAX Library.
• Support for release and debug modes and localization support for both
assembly-embedded and standalone JavaScript files
The ASP.NET AJAX uses Microsoft’s Visual Studio.NET IDE that enables
developers to edit, build, debug and test applications.
4 Evaluation Criteria The various factors considered while evaluating the RIA platforms have been listed
below:
Criteria Factors
Ease of Learning Availability of Self learning tools
Availability of Code Samples
Availability of Sample Applications
Vendor support for evaluation
Online developer groups /Forums
Reuse of Object Orientated Programming skills
Time to learn the language
Ease of Design Availability of IDE
Library of Smart UI widgets
Drag & Drop design capability
Customer / User defined UI Widgets
Declarative style design to reduce coding
Ease of Development Availability of IDE for Rapid Prototyping and
development
IDE supports Intellisense
Online feedback to developers
Support for debugging
Object Orientation
Support for profiling the application
Effort for development
Lines of code for implementation
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 12 of 33
Runtime support Ease of installation
Small footprint / Application download size
Initial application start up time
Restart time
Cross Browser Support
Server Round trips
Memory Utilization
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 13 of 33
5 Comparison methodology Common Application In order to capture “Developers Experience”, a common application for “Online
Purchase” was implemented using each of these technologies and gain first hand
information on development and usage experience. The application was designed
to include RIA features and several processing scenarios common in enterprise
applications.
It includes following features:
- Obtain data, transform, present, operate and submit
- Consume data services
- Change propagation and coordination
- Assembly of standard UI components (grid, form, tree, chart ...)
- Incorporate application logic (summary, aggregation)
- Specialized presentation (tabular report)
- Extension beyond standard components (min-max display pane)
Data Service Rich client applications are enabled by and are subordinate to the data services
they consume.
Different platforms have different recommendations and tradeoffs regarding data
services. While in "green field" developments it may be possible and desirable to
mandate specific protocols and formats well suited to the business requirements
and selected platforms, many (if not most) enterprise application development
scenarios must work within preexisting architectures and conventions.
Therefore, the data service selected for this study was REST (XML over HTTP) - a
"least common denominator" for web centric applications.
We recognize that different alternatives would be applicable for different
circumstances. e.g. for large data volumes, more compact formats are
appropriate; for specialized applications, specifically tailored web services are
often desirable.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 14 of 33
Key RIA features in the Application
Rich UI • Smart UI Controls
a) Tree control
b) Data grid with filter & Sort options
c) Column Chart
d) Concentric Pie Charts with tool tips
Responsiveness • Data caching and data processing at client side
with quick response
• Dynamic content display on Mouse over
Client/ Server Balance • Cache the data at client and data processed at
client side
• Access to server only for consuming Web
Services
Network Efficient • CRUD operations done on client side data with
minimal network round trips
• Web service accessed only on initial
application loading and final order confirmation.
Selection of Resources and Learning plan Resources with development experience in Web technologies but not on the
specific platforms were selected. The time for learning these tools & technologies
was compared
Code Review As the resources developed the application, the code was simultaneously
reviewed by other experienced resources so as to provide inputs on appropriate
use of the platform.
Metrics The specific metrics mentioned in the evaluation criteria were gathered during the
period common application was developed, deployed and tested in similar
hardware environments. This data is presented in X7 X.
Constraints: Time - The project to be done in 2 months
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 15 of 33
Common Data Service - All the client side implementations to consume the
same data service.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 16 of 33
6 Analysis of Implementation Experience In this section the implementation of certain features of the Order entry application
in the Curl, Flex & AJAX technologies are compared.
6.1 Grid
6.1.1 Purpose The purpose is to specify a grid for the order detail, and populate it with
relevant items from already downloaded item records. The Grid control
displays the order lines of an order selected in the Order Treeview or Order
dropdown box.
6.1.2 Curl
6.1.2.1 Screen Shot
6.1.2.2 Source Code Please refer to Appendix A - section 10.1 for the sources
6.1.3 Flex
6.1.3.1 Screen Shot
6.1.3.2 Source Code Please refer to Appendix section 10.1 for the sources
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 17 of 33
6.1.4 AJAX
6.1.4.1 Screen Shot
6.1.4.2 Source Code Please refer to Appendix section 10.1 for the sources
6.1.5 Comparison Curl
o Uses Recordset to store records o Filters data using columns defined in the recordset o Recordsets can be assigned to the RecordGrid
Flex o Uses ArrayCollection to store records o Filters using user-provided filter function o ArrayCollection can be assigned to the DataGrid
AJAX o Uses DataSet to store records o Filters using a query like syntax o DataSet can be assigned (and bound) to the Grid but the
container of the Grid has to be placed in an UpdatePanel to
update the Grid without affecting the rest of the page (partial
updates)
6.2 Bar Chart
6.2.1 Purpose The purpose is to derive summary data by aggregation from orders in a
date range, and present it in a chart. The bar chart displays the summary of
all prices per ordered item per day between the date range is displayed.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 18 of 33
6.2.2 Curl
6.2.2.1 Screen Shot
6.2.2.2 Source Code Please refer to Appendix section 10.2 for the sources
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 19 of 33
6.2.3 Flex
6.2.3.1 Screen Shot
6.2.3.2 Source Code Please refer to Appendix section 10.2 for the sources
6.2.4 AJAX
6.2.4.1 Screen Shot
6.2.4.2 Source Code Please refer to Appendix section 10.2 for the sources
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 20 of 33
6.2.5 Comparison Curl
o Uses Recordset to store data for Barchart o Creates recordset dynamically – with date & product name as
fields o Uses RecordView to filter orders within required date range
Flex o Uses XMLListCollection to store data for Barchart o Generates XML data for the records within the date range to be
added to the Barchart’s XMLListCollection o Uses an ArrayCollection to store total prices of order-lines of
those orders that are within a date range on per-product & per-
date basis AJAX
o Uses DataTable to store data for Bar chart o Queries on Orderlines DataSet to obtain order-lines relevant for
the Bar chart o The result of aggregation is also stored in a DataTable.
6.3 Tabular report
6.3.1 Purpose The purpose is to display a specialized report of an order with aggregation
of all the prices of the order-lines.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 21 of 33
6.3.2 Curl
6.3.2.1 Screen Shot
6.3.2.2 Source Code Please refer to Appendix section 10.3 for the sources
6.3.3 Flex
6.3.3.1 Screen Shot
6.3.3.2 Source Code Please refer to Appendix section 10.3 for the sources
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 22 of 33
6.3.4 AJAX
6.3.4.1 Screen Shot
6.3.4.2 Source Code
Please refer to Appendix section 10.3 for the sources
6.3.5 Comparison
Curl o Uses Table to display Report o Uses array of Records to store order-lines of the report
Flex o Uses read-only DataGrid to display Report o Uses an ArrayCollection to store order-lines of the report
AJAX o Uses asp:Table to display Report o Uses array of DataRow to store order-lines of the report
6.4 Access Web service
6.4.1 Purpose The purpose is to query the web service to obtain the complete set of
order-lines.
6.4.2 Curl
6.4.2.1 Source Code Please refer to Appendix section 10.4 for the sources
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 23 of 33
6.4.3 Flex
6.4.3.1 Source Code Please refer to Appendix section 10.4 for the sources
6.4.4 AJAX
6.4.4.1 Source Code Please refer to Appendix section 10.4 for the sources
6.4.5 Comparison Curl
o Retrieves XML data and stores in Recordset Flex
o Retrieves XML data and stores in ArrayCollection AJAX
o Retrieves XML data and stores in DataSet
6.5 Generate XML and issue HTTP POST request
6.5.1 Purpose The purpose is to generate XML data containing the order-lines that were
modified at the client and issue a HTTP POST request to the web service
to update the Database.
6.5.2 Curl
6.5.2.1 Source Code Please refer to Appendix section 10.5 for the sources
6.5.3 Flex
6.5.3.1 Source Code Please refer to Appendix section 10.5 for the sources
6.5.4 AJAX
6.5.4.1 Source Code Please refer to Appendix section 10.5 for the sources
6.5.5 Comparison Curl
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 24 of 33
o Uses XDMDocument to construct & store the XML data. The
XDMDocument is converted to string to generate the records in
XML format Flex
o Each node has to be manually created in the string format with
the right XML syntax and added to Flex XML object AJAX
o Each node has to be manually created in the string format and
sent as byte stream.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 25 of 33
7 Data Comparison During the course of the implementation, various observations were made and
development and runtime metrics were measured. These have been
presented below –
7.1 Lines of Code for the complete application
1170
1632
2465
0 500 1000 1500 2000 2500 3000
Curl
Flex
AJAX
Lines of Code
Comments: • With Object oriented design the size of code could reduce significantly
when developing large enterprise applications.
7.2 Learning effort
14.6
18.6
2.6
0.0 5.0 10.0 15.0 20.0
Curl
Flex
AJAX
Learning Effort (person-days)
Comments: • The learning effort measures the effort that was required for getting to
know the concepts of the language that were required for implementing
the application and the usage of the tools
• Since the AJAX application was implemented in the familiar ASP.NET
the learning time was significantly less.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 26 of 33
7.3 Directly supported features
Supported by Sl. no. Features Curl Flex AJAX
1 Tree control to display all orders grouped by customer and order status
Y Y Y
2 Data grid to display order lines Y Y Y
3 Filtering columns in grid Y Y Y 4 Sorting columns in grid Y Y Y
5 Bar Chart Y Y Yes - with 3rd party controls
6 Popup window pie chart
Y [Concentric
pie chart displayed]
Y [Single Pie
chart displayed]
Insufficient time to
implement
7 Concentric Pie Chart Y N Yes - with 3rd party controls
8 Tool tip with Order report Y N Could not find 3rd party tools to implement.
9 Tabular Reports Y Possible
using data grid only
Y
10 Elasticity Y Y Insufficient
time to implement
11 Enlargement/minimization of Charts, Tables and grids in Data tab
Y Y Insufficient
time to implement
12 Access REST web service Y Y Y
7.4 Application Download size
16
417
1246
0 200 400 600 800 1000 1200 1400
Curl
Flex
AJAX
Application download size(KB)
Comments: • The measurements for Curl application have been taken after packaging
it.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 27 of 33
7.5 Initial application start up time
Start-up time for various Data sizes(No. of records)
2 211
3 4
20
4 8
22
715
2817
27
4435
72
86
124
95
020406080
100120140
Curl Flex AJAX
Tim
e(se
cond
s)
1000 2000 5000 10000 20000 50000 100000
Comments: • The AJAX application stopped responding when tested for 100,000
records. Thus the data for 100,000 is not available
• Refer to Section 12.2 for the environment used for testing.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 28 of 33
7.6 Application re-start time
Restart time for various Data sizes (No. of records)
2 23 4 54 8 971413
27 2834
7060
70
120
3
14
020406080
100120140
Curl Flex AJAX
Tim
e(se
cond
s)
1000 2000 5000 10000 20000 50000 100000
Comments: • The AJAX application stopped responding when tested for 100,000
records. Thus the data for 100,000 is not available
• Refer to Section 12.2 for the environment used for testing.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 29 of 33
7.7 Memory Utilization of IE 7 (including plug-in, if applicable)
Memory Utilization for various Data sizes(No. of records)
53 2555 4460 84
5166124
6080
203
83118
436
150182
713
55 60
0100200300400500600700800
Curl Flex AJAX
Mem
ory
Util
izat
ion
(MB
)
1000 2000 5000 10000 20000 50000 100000
Comments: • The AJAX application stopped responding when tested for 100,000
records. Thus the data for 100,000 is not available
• For Curl, the memory utilization includes memory consumed by the Curl
RTE & IE together. The memory utilization of IE 7 varied between 23-
24 MB for 1,000 -100,000 records.
• Refer to 12.2 for the environment used for testing.
7.8 Server Roundtrips This section compares the amount of web-service access required in each
technology to implement the Order entry application.
Technology # of Roundtrips
AJAX One server roundtrip per order/order-line for each type
of action – add, delete, read, update
Flex One server roundtrip for each type of action – add,
delete, read, update
Curl One server roundtrip for each type of action – add,
delete, read, update
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 30 of 33
7.9 Application development effort
17.9
25.9
19.2
0.0 5.0 10.0 15.0 20.0 25.0 30.0
Curl
Flex
AJAX
Application development effort (person days)
Comments: • Due to insufficient time some of the features such as filtering & sorting
in the grid, minimizing/maximizing chart, grid & tabular report panes,
displaying popup window were not implemented in AJAX.
• Other features such as tooltips with order repots were not implemented
in AJAX due to insufficient information on the issue
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 31 of 33
8 Scores & Results The scores based on the metrics and the data collected have been displayed in the chart below. For detailed scores refer to the Appendix B
7.9
8.6
8.8
9.1
8.6
8.2
8.1
8.1
8.2
8.6
8.4
7.6
7.3
8.0
8.3
0.0 2.0 4.0 6.0 8.0 10.0
Ease of learning
Ease of Design
Ease ofDevelopment
Runtimeperformance
Overall Scores
Curl Flex ASP.NET AJAX
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 32 of 33
9 Summary
All the three contenders are exciting tools & technologies and present rich choices
for implementing RIA. The results of the study were pleasantly surprising. For one,
the scope of the application was aggressively high and the objective was to
complete as much as possible in the given time frame. These tools were easy to
learn and came with lot of powerful libraries enabling quick implementation of the
solutions much faster than solutions based on traditional Web development
paradigm.
If one has to choose any of these platforms, one should consider the nature of the
application. Each platform has its sweet spot in terms where they fit well in the
Enterprise environment. The following table gives an idea.
ASP.NET AJAX Flex CURL
No Plug-ins Run time Plug-In required Run time Plug-In required
Appropriate choice for
B2C transaction
applications as there is no
Plug-in library to be
installed in the client side.
Appropriate choice for
solutions that require
Media content delivery.
e.g. Product
Configurators
Appropriate choice for
enriching Enterprise class
desktop applications with
RIA.
A person buying a book
online is not likely waste
time to install plug-ins in
order to make the
transaction.
The user can get
simulated experience of
the product through Rich
media content.
Quick download and fast
start up of the application
Good performance on
large volumes of data.
Excellent built-in data
analysis tools.
We would recommend that an evaluation of chosen platforms is carried out before
finalizing.
RIA Development Platforms: Curl, Flex and AJAX – A Comparison
Copyright Sonata Software Page 33 of 33
The Appendices have not been included in this version of the report. If you would like a copy of the full report including the appendices please send your request to [email protected]
10 Appendix A
11 Appendix B
12 Appendix C