1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
<com:TContent ID="body" >
<h1 id="201">¿Que es PRADO?</h1>
<p id="20003" class="block-content">
PRADO es una capa de programación (framework) que se basada componentes y programación dirigida por eventos, para desarrollos de aplicaciones Web en PHP 5. Las siglas PRADO significan en español Desarrollo Rapido de Aplicaciones con Programación Orientada a Objetos en PHP (<b>P</b>HP <b>R</b>apid <b>A</b>pplication <b>D</b>evelopment <b>O</b>bject-oriented).
</p>
<p id="20004" class="block-content">
El principal objetivo de PRADO es utilizar al máximo la reutilización en la programación Web. Pro reusabilidad, queremos decir no solamente reutilizar el código propio si no el de otros programadores de una manera fácil. Lo ultimo dicho es mas importante ya que evita el esfuerzo de reinventar nuevamente la rueda y además posibilita disminuir notablemente los tiempos de desarrollos. La introducción al concepto de componentes tiene este propósito.
</p>
<p id="20005" class="block-content">
Para alcanzar el propósito mencionado, PRADO estipula un protocolo para escribir y usar componentes para construir una aplicación Web. Un componente es una pieza de programa que es autocontenido (self-contained) y puede ser reutilizado con una mínima personalización del mismo. Nuevos componentes pueden ser creados por una simple composición de componentes existentes.
To achieve the above goal, PRADO stipulates a protocol of writing and using components to construct Web applications. A component is a software unit that is self-contained and can be reused with trivial customization. New components can be created by simple composition of existing components.
</p>
<p id="20006" class="block-content">
Para facilitar la interacción con componentes, PRADO implementa el paradigma de la programación dirigida (event-driven) por eventos que permite la delegación de comportamientos extensibles a los componentes.
Las actividades de los usuarios finales, tales como hacer clic en un botón de un formulario, son capturados como eventos en el lado del servidor (server events).
Metodos o funciones deben ser enlazadas a dichos eventos de tal manera que cuando los eventos sucedan, estos son invocados automáticamente para responder a dicho evento. Comparado con la programación Web tradicional en la cual los desarrolladores tienen que tratar directamente (raw) con las variables de arreglo POST y GET, la programación dirigida por eventos ayuda a los desarrolladores enfocarse mejor en las necesidades lógicas y reducir significativamente el código de bajo nivel repetitivo (low-level repetitive coding).
</p>
<p id="20007" class="block-content">
En resumen, desarrollar aplicaciones Web con PRADO principalmente involucra instantáneamente tipos de componentes predesarrollados, configurarlos mediante sus propiedades, responder a sus eventos escribiendo funciones manipuladoras de los mismos , y agrupándolos (composing them) dentro de paginas para la aplicación. Es muy similar a las Herramientas Kit de herramientas RAD de Borland Delphi y Microsoft Visual Basic, que son utilizadas para desarrollar aplicaciones (Interfaces Graficas de Usuarios, GUI) de escritorio.
</p>
<h2 id="202">¿Proque PRADO?</h2>
<p id="20008" class="block-content">
PRADO es comúnmente citado como una plataforma de progragacion (framework) única. En realidad es tan único que puede convertir una tediosa y aburrida programación en PHP en una tarea divertida (fun task). La siguiente lista es un resumen corto de las características principales de PRADO,
</p>
<ul id="prado-features" class="block-content">
<li>Reusability - Code following the PRADO component protocol are highly reusable. This benefits development teams in the long run as they can reuse their previous work and integrate other parties' work easily.</li>
<li>Event-driven programming - End-user activities, such as clicking on a submit button, are captured as server events so that developers have better focus on dealing with user interactions.</li>
<li>Team integration - Presentation and logic are separately stored. PRADO applications are themable.</li>
<li>Powerful Web controls - PRADO comes with a set of powerful components dealing with Web user interfaces. Highly interactive Web pages can be created with a few lines of code. For example, using the datagrid component, one can quickly create a page presenting a data table which allows paging, sorting, editing, and deleting rows of the data.
<li>Strong database support - Since version 3.1, PRADO has been equipped with complete database support which is natively written and thus fits seemlessly with the rest part of the PRADO framework. According to the complexity of the business objects, one can choose to use the simple PDO-based data access, or the widely known active record, or the complete business object mapping scheme SqlMap.</li>
<li>Seamless AJAX support - Using AJAX in PRADO has never been easier with its innovative active controls introduced since version 3.1. You can easily write an AJAX-enabled application without writing a single line of javascript code. In fact, using active controls is not much different from using the regular non-AJAX enabled Web controls.</li>
<li>I18N and L10N support - PRADO includes complete support for building applications with multiple languages and locales.</li>
<li>XHTML compliance - Web pages generated by PRADO are XHTML-compliant.</li>
<li>Accommodation of existing work - PRADO is a generic framework with focus on the presentational layer. It does not exclude developers from using most existing class libraries or toolkits. For example, one can AdoDB or Creole to deal with DB in his PRADO application.
<li>Other features - Powerful error/exception handling and message logging; generic caching and selective output caching; customizable and localizable error handling; extensible authentication and authorization; security measures such as cross-site script (XSS) prevention, cookie protection, etc.</li>
</ul>
<h2 id="203">What Is PRADO Best For?</h2>
<p id="20009" class="block-content">
PRADO is best suitable for creating Web applications that are highly user-interactive. It can be used to develop systems as simple as a blog system to those as complex as a content management system (CMS) or a complete e-commerce solution. Because PRADO promotes object-oriented programming through its component-based methodology, it fits extremely well for team work and enterprise development.
</p>
<p id="20011" class="block-content">
PRADO comes with a complete set of caching techniques which help accelerate PRADO Web applications to accommodate high traffic requirement. Its modular architecture allows developers to use or plug in different cache modules for different needs. The output caching enables one to selectively choose to cache part of a rendered Web page.
</p>
<h2 id="204">How Is PRADO Compared with Other Frameworks?</h2>
<p id="20012" class="block-content">
PRADO is often quoted as a unique framework. Its uniqueness mainly lies in the component-based and event-driven programming paradigm that it tries to promote. Although this programming paradigm is not new in desktop application programming and not new in a few Web programming languages, PRADO is perhaps the first PHP framework enabling it.
</p>
<p id="20013" class="block-content">
Most PHP frameworks mainly focuses on separating presentation and logic and promotes the MVC (model-view-controller) design pattern. PRADO achieves the same goal naturally by requiring logic be stored in classes and presentation in templates. PRADO does much more on aspects other than MVC. It fills lot of blank area in PHP Web programming with its component-based programming paradigm, its rich set of Web controls, its powerful database support, its flexible error handling and logging feature, and many others.
</p>
<h2 id="4004">Is PRADO Stable Enough?</h2>
<p id="20004" class="block-content">
Yes. PRADO was initially released in August 2004. Many test suites have been written and conducted frequently to ensure its quality. It has been used by thousands of developers and many Web applications have been developed based on it. Bugs and feature requests are managed through TRAC system and we have a great user community and development team to ensure all questions are answered in a timely fashion.
</p>
<h2 id="205">History of PRADO</h2>
<p id="20014" class="block-content">
The very original inspiration of PRADO came from Apache Tapestry. During the design and implementation, I borrowed many ideas from Borland Delphi and Microsoft ASP.NET. The first version of PRADO came out in June 2004 and was written in PHP 4. Driven by the Zend PHP 5 coding contest, I rewrote PRADO in PHP 5, which proved to be a wise move, thanks to the new object model provided by PHP 5. PRADO won the grand prize in the Zend contest, earning the highest votes from both the public and the judges' panel.
</p>
<p id="20015" class="block-content">
In August 2004, PRADO started to be hosted on SourceForge as an open source project. Soon after, the project site <a href="http://www.xisc.com/">xisc.com</a> was announced to public. With the fantastic support of PRADO developer team and PRADO users, PRADO evolved to version 2.0 in mid 2005. In this version, Wei Zhuo contributed to PRADO with the excellent I18N and L10N support.
</p>
<p id="20016" class="block-content">
In May 2005, we decided to completely rewrite the PRADO framework to resolve a few fundamental issues found in version 2.0 and to catch up with some cool features available in Microsoft ASP.NET 2.0. After nearly a year's hard work with over 50,000 lines of new code, version 3.0 was finally made available in April 2006.
</p>
<p id="20017" class="block-content">
Starting from version 3.0, significant efforts are allocated to ensure the quality and stability of PRADO. If we say PRADO v2.x and v1.x are proof-of-concept work, we can say PRADO 3.x has grown up to a project that is suitable for serious business application development.
</p>
<div class="last-modified">$Id: AboutPrado.page 1902 2007-05-07 04:17:37Z wei $</div></com:TContent>
|