programación web profesor: ing. juan talavera asistentes: ing. marcelo alvarez univ. eduardo rivas...
TRANSCRIPT
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.