Programación Web Profesor: Ing. Juan Talavera Asistentes: Ing. Marcelo Alvarez Univ. Eduardo Rivas...

Preview:

Citation preview

Programación Web

Profesor: Ing. Juan Talavera

Asistentes: Ing. Marcelo Alvarez Univ. Eduardo Rivas Univ. Santiago Yegros

2008

Frameworks para el Desarrollo de Aplicaciones Web

Objetivos

Explicar lo que son los frameworks, su propósito y sus características principales.

Reconocer la importancia de la utilización de los mismos hoy en día.

Ofrecer una introducción básica a los frameworks actuales y las herramientas disponibles para los mismos.

Discutir sobre el uso conveniente de los mismos.

Contenido

Frameworks. Concepto. Características. Struts Spring MVC Java Server Faces Ruby on Rails ASPX.NET Otros frameworks Conclusiones

Concepto de Framework

En su forma más simple, un framework es un conjunto de interfaces, clases y/o componentes que cooperan entre sí de manera a resolver un tipo de problema de software específico.

Características

Posee múltiples clases o componentes, cada uno de los cuales proveen una abstracción de algún concepto en particular.

El framework define como sus abstracciones trabajarán juntos de manera a resolver el problema.

Sus componentes son reutilizables.

Utilización de patrones para la solución de problemas comunes.

Características que se encuentran en la mayoría de los frameworks actuales

Abstracción de URLs y sesiones.

Acceso a datos.

Controladores.

Autentificación y Control de Acceso.

Internacionalización.

Separación entre diseño y contenido.

Propósitos (1)

Facilitar el desarrollo de software.

Pasar más tiempo identificando requerimientos de SW que tratar con detalles de bajo nivel.

Proveer una estructura y una metodología de trabajo definida.

Propósitos (2)

Ayudar al desarrollo de software, proporcionando una estructura definida, la cual ayuda a crear aplicaciones con mayor rapidez.

Ayudar a realizar el mantenimiento del sitio gracias a la organización que se mantiene durante el desarrollo de la aplicación.

Tipos de Frameworks. Ejemplos:

Orientados a la interfaz de usuario: Java Server Faces.

Orientado a publicación de documentos: Cocoon.

Orientado a eventos: Struts, Tapestry, etc.

MVC – Model 2

Struts 1

Struts 1

Implementa la arquitectura del modelo 2 - patrón de diseño MVC.

Creada por Craig McClanahan y donada a la Apache Software Foundation en el 2000 (Actualmente pertenece a Apache Jakarta)

¿Qué proporciona Struts?

Lógica de navegación entre páginas

Binding entre java y el html

Validación de entradas

Mecanismos para el manejo y reporte de errores

Internacionalización (i18n)

Flujo de Control de Struts

Componentes Principales (1)

Actions: Posible acción a invocar. Son objetos que heredan de la clase Action donde se escribe que es lo que se hará. Por ejemplo se puede decidir invocar alguna regla de negocio y en base a su resultado mostrar la vista que corresponda.

ActionMapping: mapea las URLs a acciones (objetos). Es decir, se le da un nombre a cada Clase Action de manera que puedan ser invocadas desde el cliente como un String.

ActionServlet: El Servlet Controlador. Ejecuta acciones invoacndo al método execute() de la Clase Action.

Componentes Principales (2) ActionForm: JavaBean con propiedades que

corresponden a los controles de un formulario HTML. Los parámetros son mapeados a propiedades del bean.

El programador define un form bean extendiendo la clase org.apache.struts.action.ActionForm (o de forma declarativa usando org.apache.struts.action.DynaActionForm)

Hay que definir cada una de las propiedades en la clase y escribir los getters/setters correspondientes, siguiendo las reglas de JavaBeans.

Después de escribir el código del form bean, es necesario asociarlo con una o más acciones a través del fichero de configuración de Struts struts-config.xml

Struts-config.xml (1)

El archivo <struts-config> contiene dos elementos importantes que son usados para describir las acciones:

<form-beans> contiene la definición de los beans para cada formulario. Atributos importantes:

- name: identificador único para el bean.

- type: tipo del bean de formulario.

Struts-config.xml (2)

<action-mapping> contiene nuestras definiciones de acciones. Usamos un elemento <action> por cada una de las acciones que se desea definir. Cada elemento action requiere que se definan los siguientes atributos:

- path: el path a la clase action en relación al contexto de la aplicación.

- type: el nombre de la clase Action.

- name: el nombre del elemento <form-bean> asociado a la

acción.

Struts-config.xml - Ejemplo<form-beans>

<form-bean name="loginForm" type="com.empresa.LoginForm"/>

</form-beans>

<action-mappings> <action path="/inicio" forward="/jsp/inicio.jsp"/> <action path="/login" forward="/jsp/login.jsp"/> <action path="/slogin" type="com.empresa.LoginAction"

name="loginForm" scope="request" validate="true" input="/jsp/login.jsp">

<forward name="exito" path="/jsp/inicio.jsp"/> <forward name="falla" path="/jsp/login.jsp"/>

</action> </action-mappings>

Struts Tag LibrariesLa framework Struts proporciona un conjunto de 4 librerías de etiquetas, que asisten en la tarea de la creación de la vista de MVC para evitar incluir código Java en los JSPs :

Bean Tags: manejo de los beans a los que tiene acceso la página.

HTML Tags: utilizado para generar formularios HTML que interatuan con la API de Struts.

Logic Tags: permite direccionar el flujo de ejecución de la página según condiciones.

Nested Tags: permite el anidado de componentes.

Struts Tag Libraries - Ejemplo

<%@ taglib uri="/tags/struts-html" prefix="html" %>…<html:errors/><html:form action="/LogonSubmit" focus="username"><TABLE border="0" width="100%"><TR><TH align="right">Username:</TH><TD align="left"><html:text property="username"/></TD></TR><TR><TH align="right">Password:</TH><TD align="left"><html:password property="password"/></TD></TR><TR><TD align="right"><html:submit/></TD><TD align="left"><html:reset/></TD></TR></TABLE></html:form>…

Validación de Entradas

Struts provee 2 mecanismos de validación de las entradas ingresadas:

Redefiniendo el método validate() de los ActionForms

A través de lo que primero fue un plugin y luego se incorporó a la versión principal y que se denomina struts-validator.

Permite la validación tanto en el lado cliente (javascript) como el lado servidor.

Validación de Entradas - Ejemplo

<form-validation> <formset> <form name="FormInicio"> <field property="nombreusuario“ depends="required">

<arg0 key="forms.nombreusuario"/> </field> </form> </formset> </form-validation>

Definir el archivo de validación. Ejemplo: validation.xml

Manejo de Errores (1)

Se recomienda que el manejo de errores se lleve a cabo dentro del método execute() y el control se transfiera a la vista apropiada

errors.add("passphrase",new ActionError("error.passphrase.required"));

Visualización de los errores en JSP:<html:errors property=“passphrase”/>

Manejo de Errores (2)

Recursos de String

Todos los strings usados en mensajes en JSPs tanto de datos de aplicación como de errores pueden ser colocados en un archivo de recursos (ApplicationResources.properties)

Struts proporciona etiquetas personalizadas JSP tags para acceder a estos recursos:

<bean:message key="prompt.goodguess.heading"/>

Internacionalización (i18n) Struts soporta internacionalización a través de ficheros de

recursos, sus librerías de etiquetas personalizadas y Java Locales. Se pueden definir strings a visualizar y luego utilizarlos en los JSPs. Ej: ApplicationResources.properties

Otros ficheros de recursos adicionales pueden ser definidos que incluyen el idioma a usar en el nombre del fichero. Ejemplos:

ApplicationResources_es.properties

ApplicationResources_br.properties

Para cambiar el idioma preferido en IE: ToolsInternet OptionsLanguages

Los navegadores envían la cabecera HTTP Accept-Language en cada petición que indica cuál es el idioma preferido por el usuario.

Spring MVC

Spring MVC

Spring es un framework open source para desarrollar aplicaciones usando tecnología Java.

Como el alcance de este framework es muy amplio, generalmente se suele mezclar con otros frameworks quedando Spring como una capa intermedia en la que se basan las demás herramientas.

¿Qué permite Spring MVC? Facilidad de mantenimiento.

Separación limpia entre Controladores, Modelos y Vistas. Lo cual, a su vez, facilita el desarrollo en equipo disciplinado.

Independencia en la Vista de la aplicación.

Facilidad a la hora de testear la aplicación.

Validaciones

Facilidad de trabajar con los componentes gracias a la implementación del patrón de diseño DI "Dependency Injection"

Ejemplo de procesamiento de una solicitud en Spring MVC

Componentes Principales de Spring MVC (1)

DispatcherServlet: es la implementación del Front Controller. El cual se encarga de administrar los request.

Controlador: encapsula la lógica de navegación. Crean los componentes necesarios para manejar los request.

Vista: muestra la salida. Ej: JSP, JSTL, Velocity, FreeMarker, PDF, etc.

Componentes Principales de Spring MVC (2)

ModelAndView: creados por el controlador. Permiten asociar modelos a las vistas.

ViewResolver: permiten mapear nombres lógicos de vistas a una implementación de la misma.

HandlerMapping: interfaz utilizado por el DispatcherServlet para mapear los request a los respectivos controladores.

Spring MVC & Dependency Injection (DI)

Todos los componentes MVC son configurados en un fichero de recursos como por ej: ApplicationContext.

De este modo, todos los componentes MVC pueden ser configurados utilizando DI.

<bean id="springCheersController" class="com...web.SpringCheersController"> <property name="methodNameResolver“ ref=“springCheersMethodResolver"/> <property name="service" ref="service"/></bean>

Validación en Spring MVC (1)

public class CustomerValidator implements Validator {

public boolean supports(Class cls) { return (cls == Customer.class); }

public void validate(Object obj, Errors errors) { Customer customer = (Customer) obj; ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "required", "required"); }}

Validación en Spring MVC (2)

<bean id="customerForm" class="com.springcheers.web.CustomerForm"> <property name="formView" value="editCustomer"/> <property name="successView" value="redirect:list.htm"/> <property name="service" ref="service"/> <property name="validator" ref="customerValidator"/></bean>

Luego se debe configurar el Controlador del CustomerForm: WEB-INF/springmvc-servlet.xml

Spring MVC - EjemploDefinición del Modelo

…public class Product implements Serializable {

private String description;private Double price;public void setDescription(String s) {

description = s;}public String getDescription() {

return description;}…Getters & Setters

}

Spring MVC - EjemploDefinición del Manager

package …import …public class ProductManager implements Serializable {

private List products;

public void setProducts(List p) {products = p;

}

public List getProducts() {return products;

}}

Spring MVC - EjemploDefinición del Controlador

public class SpringappController implements Controller {protected final Log logger = LogFactory.getLog(getClass());private ProductManager prodMan;public ModelAndView handleRequest(HttpServletRequest request,

HttpServletResponse response)throws ServletException, IOException {String now = (new java.util.Date()).toString();logger.info("returning hello view with " + now);Map myModel = new HashMap();myModel.put("now", now);

myModel.put("products",getProductManager().getProducts());return new ModelAndView("hello", "model", myModel);

}…

}

Spring MVC - EjemploDefinir el controlador y manejador que utilizará la

aplicación: springapp-servlet.xml

<bean id="springappController" class="web.SpringappController">

<property name="productManager"><ref bean="prodMan"/>

</property></bean>

<bean id=" productManager " class="bus.ProductManager"><property name="productDao" ref="productDao"/>

</bean>…

Spring MVC - EjemploDefinición de la Vista: hello.jsp

…<h1><fmt:message key="heading"/></h1><p><fmt:message key="greeting"/> <c:out value="${model.now}"/></p><h3>Products</h3><c:forEach items="${model.products}" var="prod">

<c:out value="${prod.description}"/> <i>$<c:out

value="${prod.price}"/></i><br><br></c:forEach>…

Spring MVC Vs. Struts

Spring MVC es muy flexible, ya que implementa toda su estructura mediante interfaces no como Struts que obliga a heredar de clases concretas tanto en sus Actions como en sus Forms.

Spring MVC no obliga a utilizar JSP, permite utilizar XLST, Velocity o implementar tu propio lenguaje para integrarlo en la Vista de la aplicación.

Los controllers de Spring MVC se configuran mediante IoC como los demás objetos.

No existen ActionForms, se enlaza directamente con los beans de negocio.

Struts 2

Struts 2

Apache Struts 2 fue originalmente conocido como WebWork 2.

Luego de trabajar de manera independiente por varios años, las comunidades de WebWork y Struts unen sus fuerzas para crear lo que hoy día conocemos como Struts2.

Algunas Mejoras en Struts 2 Soporte para Ajax.

Fácil integración con Spring & DI.

Tecnología de renderizado: JSP, Freemarker, Velocity, JasperReports, …

Los formularios son clases Java planas (POJO). No más ActionForm.

Las acciones son clases Java planas (POJO). Se puede utilizar cualquier clase como Action.

Tecnología basada en plugins. No más configuración.

Facilidad de realizar pruebas sobre las acciones

Y más…

Struts 2 en una Arquitectura Web

Arquitectura MVC de Struts 2

Ciclo de Vida de las Peticiones en Struts 2

1. El usuario envía una petición: Llega un Request.

2. El Request es interpretado por el DispatcherFilter y determina que Action y que conjunto de Interceptors invocar.

3. Cada Interceptor ejecuta sus acciones previas a la ejecución del método de Action a invocar: I18nInterceptor, ValidationInterceptor, etc.

4. Ejecución de la acción.

5. Se examina el resultado obtenido del Action y se determina el Result correspondiente.

6. Mediante el Result determinado se genera la vista.

7. La vista generada retorna al cliente.

Struts 2 - Ejemplo

http://www.appfuse.org

POJO + JPA Annotations

@Entitypublic class Person extends BaseObject { private Long id; private String firstName; private String lastName;

@Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { return this.id; }

@Column(name="first_name", length=50) public String getFirstName() { return this.firstName; }

@Column(name="last_name", length=50) public String getLastName() { return this.lastName; }

/* And setters */ }

Struts 2 - Ejemplo

http://www.appfuse.org

Action. Controlador y Modelo

public class PersonAction extends BaseAction { private GenericManager<Person, Long> personManager; private List persons;

public void setPersonManager(GenericManager<Person, Long> personManager) {

this.personManager = personManager; }

public List getPersons() { return persons;

}

public String list() { persons = personManager.getAll(); return SUCCESS;

} }

Struts 2 - Ejemplo

http://www.appfuse.org

Definición de la Vista: personList.jsp

<c:out value="${buttons}" escapeXml="false" />

<s:set name="persons" value="persons" scope="request"/>

<display:table name="persons" class="table" id="personList" export="true" pagesize="25">

<display:column property="id" href="editPerson.html" paramId="id" paramProperty="id" titleKey="person.id"/>

<display:column property=“firstName" titleKey="person.firstName"/>

<display:column property=“lastName " titleKey="person.lastName"/>

</display:table>

Struts 2 - Ejemplo

http://www.appfuse.org

Definición de la acción: struts.xml

<action name="persons" class=“...PersonAction" method="list"> <result>/WEB-INF/pages/personList.jsp</result>

</action>

Struts 2 - EjemploVista: personList.jsp

Struts 2 - Ejemplo

http://www.appfuse.org

Agregando edit() & delete() a PersonAction.java

private Person person; private Long id; …public String delete() { personManager.remove(person.getId()); saveMessage(getText("person.deleted"));

return SUCCESS; } public String edit() {

if (id != null) { person = personManager.get(id);

} else { person = new Person(); } return SUCCESS;

}

Struts 2 - Ejemplo

http://www.appfuse.org

Agregando el método save() a PersonAction.java

public String save() throws Exception {if (cancel != null)

return "cancel"; if (delete != null)

return delete();

boolean isNew = (person.getId() == null);person = personManager.save(person);

String key = (isNew) ? "person.added" : "person.updated"; saveMessage(getText(key)); if (!isNew)

return INPUT; else

return SUCCESS; }

Struts 2 - Ejemplo

http://www.appfuse.org

Definición de la acción: struts.xml

<action name="editPerson" class=“..PersonAction" method="edit"> <result>/WEB-INF/pages/personForm.jsp</result> <result name="error">/WEB-INF/pages/personList.jsp</result></action>

<action name="savePerson" class=“..PersonAction" method="save"> <result name="input">/WEB-INF/pages/personForm.jsp</result> <result name="cancel" type="redirect-action">persons</result> <result name="delete" type="redirect-action">persons</result> <result name="success" type="redirect-action">persons</result></action>

Struts 2 - Ejemplo

http://www.appfuse.org

Definición de la Vista: personForm.jsp

<s:form id="personForm" action="savePerson" method="post" validate="true">

<s:hidden name="person.id" value="%{person.id}"/>

<s:textfield key="person.firstName" required="true" cssClass="text medium"/>

<s:textfield key="person.lastName" required="true"

cssClass="text medium"/> …

</s:form>

Struts 2 - Ejemplo

http://www.appfuse.org

Vista: personForm.jsp

Java Server Faces (JSF)

Java Server Faces (JSF)

Es un framework de desarrollo basado en el patrón MVC.

Al igual que Struts, JSF pretende normalizar y estandarizar el desarrollo de aplicaciones web.

El creador de Struts (Craig R. McClanahan) también es líder de la especificación de JSF.

JSF nos ofrece un marco de trabajo que facilita el desarrollo de aplicaciones, separando las diferentes capas de una arquitectura: presentación, reglas y entidades de negocio.

JSF - Características

JSF trata la vista (el interfaz de usuario) de una forma algo diferente a lo que estamos acostumbrados en aplicaciones web. Trata de emular a Swing, VB o Delphi.

JSF es muy flexible. Por ejemplo nos permite crear nuestros propios componentes.

Un modelo de trabajo basado en componentes UI (user interface), definidos por medio de etiquetas y XML.

Asocia (de forma modular) cada componente gráfico con los datos.

Incluye la capa de control, definida de forma declarativa en archivos XML. Lo que implica control de eventos y errores.

JSF – Características (2)

Validación en cliente y en servidor. Control de mensajes y roles. Navegación. JSF proporciona un modelo de

navegación declarada, que permite enlazar en las aplicaciones una vista a otra(faces-config.xml).

JSF – Ejemplo

En el archivo faces-config.xml

Estando en la pagina inputname.jsp, si el resultado de ejecutar la misma es greeting pasamos a la pagina greeting.jsp

<navigationrule> <fromviewid>/pages/inputname.jsp </fromviewid> <navigationcase> <fromoutcome>greeting</fromoutcome> <toviewid>/pages/greeting.jsp</toviewid> </navigationcase></navigationrule>

JSF – Ejemplo (2)

Creamos luego un JSF- Manager Bean.

public class PersonBean { String personName; public String getPersonName() { return personName; } public void setPersonName(String name) { personName = name; }}

JSF – Ejemplo (3)

Entonces en nuestro archivo faces-config.xml, tendríamos que registrar el Bean.

<managedbean> <managedbeanname>personBean</managedbeanname> <managedbeanclass>pack.PersonBean</managedbeanclass> <managedbeanscope>request</managedbeanscope></managedbean>

JSF – Ejemplo (4)

Entonces creamos nuestro formulario inputname.jsp.

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %><%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <f:loadBundle basename="jsfks.bundle.messages" var="msg"/><html> <head> <title>Pagina de Prueba</title> </head> <body> <f:view> <h1><h:outputText value="JSF prueba"/></h1> <h:form id="helloForm"> <h:outputText value="Escribe tu nombre"/> <h:inputText value="#{personBean.personName}" /> <h:commandButton action="greeting" value="Saludame" /> </h:form> </f:view> </body></html>

JSF – Ejemplo (5)

Entonces creamos nuestro formulario greeting.jsp

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %><%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %><f:loadBundle basename="jsfks.bundle.messages" var="msg"/><html> <head>

<title>greeting page</title> </head> <body> <f:view> <h:form>

<h:outputText value="Bienvenido" />, <h:outputText value="#{personBean.personName}" /></h:form>

</f:view> </body></html>

Ruby on Rails

RoR

Ruby on Rails es un entorno de desarrollo web de código abierto que está optimizado para satisfacción de los programadores y de la productividad. Te permite escribir un buen código favoreciendo la convención antes que la configuración.

Rails está basado en estos principios de desarrollo: No te Repitas (Don’t Repeat Yourself). Convención por encima de la Configuración

(Convention Over Configuration).

RoR - Esquema

RoR - Características

Basado en la arquitectura MVC Código Limpio, compacto y legible. Brinda Abstracción de objetos Persistentes Brinda soporte para pruebas unitarias y funcionales Contiene unos generadores de código, llamados Helpers Gran integración con Ajax Dispone de Ruby Gems que permite una fácil instalación,

añadir nuevos módulos y actualización del software. Tiene soporte para varias bases de datos, como MySQL,

PostgreSQL, SQLite, Oracle, SQL Server, DB2, o Firebird.

RoR - Modelo

En las aplicaciones web orientadas a objetos sobre bases de datos, el Modelo consiste en las clases que representan a las tablas de la base de datos.

En Ruby on Rails, las clases del Modelo son gestionadas por ActiveRecord. Por lo general, lo único que tiene que hacer el programador es heredar de la clase ActiveRecord::Base, y el programa averiguará automáticamente qué tabla usar y qué columnas tiene (No siempre).

RoR – Modelo (2)

Las definiciones de las clases también detallan las relaciones entre clases con sentencias de mapeo objeto relacional.

class Persona < ActiveRecord::Base has_one :detalle has_many :telefono end

class Detalle < ActiveRecord::Base belongs_to :persona end

class Telefono < ActiveRecord::Base belongs_to :persona end

RoR - Vista

En MVC, Vista es la lógica de visualización, o cómo se muestran los datos de las clases del Controlador.

Con frecuencia en las aplicaciones web la vista consiste en una cantidad mínima de código incluido en HTML.

Existen en la actualidad muchas maneras de gestionar las vistas. El método que se emplea en Rails por defecto es usar Ruby Embebido (archivos .rhtml), que son básicamente fragmentos de código HTML con algo de código en Ruby, siguiendo una sintaxis similar a JSP

RoR - Controlador

La implementación del Controlador es manejada por el ActionPack de Rails, que contiene la clase ApplicationController.

Una aplicación Rails simplemente hereda de esta clase y define las acciones necesarias como métodos, que pueden ser invocados desde la web, por lo general en la forma http://aplicacion/ejemplo/metodo, que invoca a EjemploController#metodo, y presenta los datos usando el archivo de plantilla /app/views/ejemplo/metodo.rhtml, a no ser que el método redirija a algún otro lugar.

RoR - Ejemplo

Primeramente crearemos nuestro proyecto. $ rails prueba

Ahora supongamos que nuestra tabla personas tiene las siguientes columnas:

Id Nombre Apellido

Creamos un modelo Persona $ ruby script\generate model Persona Esto creara un archivo persona.rb

class Persona < ActiveRecord::Baseend

RoR – Ejemplo (2)

Ahora debemos crear el controlador de forma similar al modelo:

$ ruby script\generate controller Persona Esto creara un archivo persona_controller.rb

class PersonaController < ApplicationController scaffold :persona

def index render_text “Hola Mundo” endend

RoR – Ejemplo (3)

Ahora solo debemos levantar el servidor WeBring: $ ruby script\server

Y probar nuestra aplicación, en http://127.0.0.1:3000/persona/index

Ahora probaremos lo mas importante, con la simple línea scaffold:persona RoR no genera los siguiente:

Creación de Persona en http://127.0.0.1:3000/persona/new Modificación de Persona en http://127.0.0.1:3000/persona/edit Listado de Personas en http://127.0.0.1:3000/persona/list Eliminación de Persona en http://127.0.0.1:3000/persona/delete

RoR – Ejemplo (4)

Pero todo lo mostrado anteriormente se puede lograr ejecutando: $ ruby /script/generate scaffold Persona

ASPX.NET

ASP.net

ASP.NET es un framework para aplicaciones web desarrollado y comercializado por Microsoft.

ASP.NET esta construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.

ASP.net (2)

Los formularios web están contenidos en archivos con una extensión ASPX; en jerga de programación, estos archivos típicamente contienen etiquetas HTML o XHTML estático , y también etiquetas definiendo Controles Web que se procesan del lado del servidor y Controles de Usuario donde los desarrolladores colocan todo el código estático y dinámico requerido por la pagina web.

ASP.net - Características

Mejor rendimiento de su predecesor. Rapidez en la programación,

mediante el uso de diversos tipos de controles.

Servicios Web, herramientas para compartir datos entre distintos sitios.

Mayor seguridad.

ASP.net – Ejemplo Simple

<%@ Page language="VB"%> <%@ Import Namespace="System.data.oledb" %> <script runat="server"> Sub Nombre_change(sender as object, e as EventArgs) Mensaje.text = "Buenos días " + Nombre.text End sub </script> <html><body> <font face="verdana" size=2>Esta es la página </font><br> <form runat="server"> Tu nombre: <asp:TextBox id="Nombre" OnTextChanged="Nombre_change" runat="server" autopostback="true"/> <asp:label id="Mensaje" runat="server" /> </form> </body></html>

Otros Frameworks

Otros Frameworks

Tapestry

Google Web Toolking (GWT)

EJB

RIFE

Trails

Wicket

Etc, etc, etc..

En Resumen…

Los frameworks permiten:

La elección de un framework depende del tipo de aplicación a ser desarrollada.

El desarrollo ágil de aplicaciones.

Diseño reutilizable.

Mantenimiento de aplicaciones.

Tarea 4• Volver a implementar el mismo sistema desarrollado en la Tarea 2 pero esta

vez haciendo uso exclusivo de algún framework web propuesto en clase.

Fecha de entrega: Martes 02-09-2008Integrantes: 2 personas.

Entregar en un CD conteniendo:

• Directorio IMPLEMENTACION, dentro del cual estaría la estructura de directorios de la aplicación. Y un archivo esquema.sql, con el script de creación de la base de datos.

• Documento Integrates.txt, con los nombres de los integrantes del grupo.

• Documento Indicaciones.txt, con las indicaciones necesarias para hacer las pruebas a la aplicación.

• Documento Consideraciones.pdf, donde se expliquen problemas encontrados durante la implementación, y sus soluciones, así como cualquier observación que consideren relevante en relación al trabajo y las herramientas utilizadas.

OBS 1: Al igual que la Tarea 2, utilizar el gestor de base de datos PostgreSQL.

OBS 2: Se evaluará, más que nada, la correcta utilización del framework.

Recommended