jueves, 25 de octubre de 2007

Ciudad Real dotNetClub ya tiene Web

Ya tenemos el club dotNet Ciudad Real listo!!!






Aqui teneís la URL:



http://ciudadreal.dotnetclubs.com/



Ademas tenemos foro propio:



http://ciudadrealdotnetclub.forumcircle.com/



Algo más de información:



¿Quienes somos?


El DotNetClub de Ciudad Real es un asociación de estudiantes y profesionales que agrupa entusiastas por la tecnología .NET y está vinculado a la iniciativa DotNetClubs esponsorizada por Microsoft Ibérica.


Los objetivos de este Club son proporcionar a los miembros medios para aprender y colaborar entre nosotros los estudiantes, no sólo en nuestra propia universidad, sino también con otros estudiantes repartidos por la geografía española... ¡y más allá!



¿Cómo puedo ser miembro?


Pertenecer al Club es gratuito. Además siempre animamos a la gente a que colabore y done su conocimiento. Si eres una persona que le gusta enseñar lo que ha aprendido, relacionarse con los demás y disfrutar de la tecnología, encajas con nosotros. :D


Aquí te vamos a brindar la posibilidad de participar en proyectos, dar charlas, cursos y conferencias y sobre todo aprender algo más. Disfrutar de la facultad, ¡que no sólo se va a tratar de ir a clase!



¿Que podemos ofrecerte?


Tenemos a vustra disposición manuales, hands on labs, webcast, versiones betas de software, revistas, libros, es decir, un buen conjunto de recursos para aprender .NET. ¿A que estas esperando? ¡Pídenoslo!


Coméntanos tu proyecto y si está en nuestras manos, te ofrecemos la infraestructura necesaria para ponerlo en marcha: desde sistemas de comunicación como listas de correos hasta alojamiento, pasando por control de versiones, software, etc.


Para comunicar nuestras actividades existe una lista de correo que se describe más abajo y para resolver tus dudas técnicas hemos habilitado un foro en foros.dotnetclubs.com donde te responderán verdaderos maestros de la tecnología .NET o estudiantes como tú.

Envío de correo en Asp .net 2.0 con PassWordRecovery o CreateUserWizard

Un título demasiado largo para lo poco que se puede contar, pero eso sí, puede evitar a más de uno un quebradero de cabeza.

Cuando necesitamos que en nuestro sitio web, una vez que el usuario se ha creado una nueva cuenta se le envie un correo de esos de bienvenida y tal, necesitamos seguir estos pasos:

Añadir una entrada válida de smtp a nuestro Web.Config:


system.net>

2: mailSettings>

3: smtp>

4: network host="miserver" password="" userName=""/>

5: /smtp>

6: /mailSettings>

7: /system.net>


Configurar la propiedad CreateUserWizard.MailDefinition.From en la ventana de Propiedades o en el evento Page_Load, por ejemplo:

1: protected void Page_Load(object sender, EventArgs e)

2: {

3: CreateUserWizard1.MailDefinition.From = Administrador@misitio.com;

4: }


Nota: Es obligatorio definir esta propiedad como he comentado en el punto 2, no sirve el atributo from de smtp:

system.net>

2: mailSettings>

3: smtp from="Administrador@misitio.com"> NO FUNCIONA

4: network host="" password="" userName=""/>

5: /smtp>

6: /mailSettings>

7: /system.net>


Aunque la etiqueta anterior si que es válida para el control PasswordRecovery, de hecho sino esta definida esa etiqueta y no definimos la propiedad CreateUserWizard.MailDefinition.From en la ventana de Propiedades o en el evento Page_Load, nos encontraremos con esta excepcion:

Se debe especificar una dirección de correo electrónico en la propiedad From o en la sección system.net/mailSettings/smtp config.

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Web.HttpException: Se debe especificar una dirección de correo electrónico en la propiedad From o en la sección system.net/mailSettings/smtp config.

Cosa que no ocurre con el control CreateUserWizard

Ciao.

sábado, 20 de octubre de 2007

Nhibertane: Hibertane para .NET

NHibernate es un proyecto para el framework de .NET paralelo a Hibernate de Java. Gestiona la persistencia de los objetos en .Net en una base de datos relacional. Dada una descripción XML de las entidades y relaciones, NHibernate generá automáticamente el codigo SQL para la gestión de la persistencia.

Esta herramienta nos permite abstraernos del nivel de persistencia y centrarnos en la lógica de negocio. Además si se combina con una herramienta como Visual Paradigm podemos obtener toda la capa persistencia incluso la BD relacionada con el diagrama de clases de nuestra aplicacion.

A mayor información :
hibernate.org

Lo que más le gusta a Bill Gates de SharePoint 2007

Según Bill lo mejor de Sharepoint serían:

















1– Aplicaciones compuestas: la multifuncionalidad de SharePoint ha sido ampliada, pues ahora no solamente es un deposito de información, sino también una plataforma de desarrollo (aunque siempre lo ha sido) y Content Manager Server (como reemplazo del actual CMS 2002). Así que SharePoint cubre ahora todo el rango de Intranet y Extranet, con posibilidades para explotar Business Inteligencia y conexiones con todo tipo de sistemas.


2 – Búsqueda y el Catalogo de Información de Negocios: La maquina de búsqueda ha sido revisada completamente, haciéndola mas rápida, eficiente y con mas posibilidades. Ahora es posible, por ejemplo, concentrar el ámbito de búsqueda con gran precisión, hacer que elementos individuales que la maquina de búsqueda ha encontrado no sean mostrados en pantalla, y la pantalla de resultados se puede configurar y personalizar de diferentes maneras.


3 – Integración con clientes: La integración con Office 2007 es aun mayor de lo que es la versión actual. Outlook puede funcionar, por ejemplo, como un “visor avanzado” para documentos si no se esta conectado a una red (Off Line), sincronizador de eventos, etc. Visual Studio Tools for Office (VSTO) tendrá un papel cada vez mas importante en la integración entre SharePoint y Office.


4 – Excel Services: Office 2007 ya no será solamente una herramienta de trabajo local, sino que podrá ser usada como un servicio. De esta forma, una hoja de calculo almacenada en SharePoint no tendrá que ser abierta por el cliente para ser recalculada, sino que el trabajo lo realiza el servidor, y cuando el cliente abre la hoja de nuevo, los nuevos datos ya habrán sido procesados.


5 – Comunidad: Wikis, Blogs y RSS han sido integrados en SharePoint, para funcionar como herramientas de comunicación comunales. Wikis pueden ser utilizados para trabajar comunitariamente en un documento, por ejemplo, Blogs puedes funcionar como medio de distribuir información en una empresa, y con RSS es la información más actual directamente accesible para cualquier usuario.

Para más infomacion sobre Sharepoint 2007 ver:

http://www.microsoft.com/latam/technet/articulos/tn/oct06-16.mspx

Un poquito de Ajax con ASP.NET

Ajax proporciona una nueva forma de hacer aplicaciones web más dinámicas, más útiles para el usuario, más atractivas, más rápidas y evitando el molesto refresco de pantalla. La forma en las que se pueden hacer con ASP.NET 2.0 es con la implementación Atlas ó con la librería libre de Ajax http://www.asp.net/ajax/.

Pues ahora quiero ver si me puedo explicar como hacer que el ComboBox sea llenado con datos desde una base de datos.

En el ejemplo de CascadingDropDown de los Control Toolkit se hace con una fuente de datos XML, y yo lo haré SQL Server 2005.

Requisitos

Empezamos con el hecho de que necesitamos ASP.NET 2.0 para poder usar estos controles con un Visual Studio 2005. En este caso utilizare el framework de Atlas aunque igualmente se podría haberse hecho con la librería de Ajax.

Debemos tener instalando el framework de Atlas que puedes encontrar en http://atlas.asp.net/

También hay que instalar el Atlas Control Toolkit y seguir estos pasos para configurar nuestros controles en Visual Studio:

Crear un nuevo website con “New”… “Website…” y seleccionar el ""Atlas" Web Site" que puedes encontrar en “My Templates”

En el Toolbox hacer click derecho y seleccionar “Add Tab” y escribir “Atlas Control Toolkit”
Adentro de este tab, dar click derecho y seleccionar “Choose Items…”

En la caja de diálogo dar click en Browse y navegar a la carpeta donde contengas el archivo "AtlasControlToolkit.dll". Encontrarás uno en donde hayas descomprimido el Atlas Control Toolkit, en SampleWebsite\bin.

Tener instalada la base de datos de prueba Northwind (disponible en Microsoft Downloads).

Ahora sí, podemos empezar con este ejercicio.

Procedimiento

Página web Atlas

Debemos crear un nuevo website (si no lo has hecho ya) y recuerda seleccionar “”Atlas” Website” de la lista de Templates disponibles.

Agregar a Default.aspx tres controles DropDownList simples y llamarlos apropiadamente, por ejemplo:

ddlEmployees
ddlOrders
ddlOrderDetails

El ScriptManager se puede dejar donde está, lo usa Atlas para su funcionamiento.

Agregar un CascadingDropDown Extender del tab de Atlas ControlToolkit:

El webservice

Sí, llenaremos los DropDown de una base de datos, pero nos resultará más sencillo si esos datos los obtenemos y proveemos con un Webservice, entonces en el Solution Explorer, en el nombre del proyecto damos click derecho y seleccionamos ”Add New Item…”, y en la caja de diálogo elegimos “Webservice” y lo nombramos:

Debemos incluir la librería de Atlas y para manejar datos:

using AtlasControlToolkit;
using System.Data;
sing System.Data.SqlClient;

El Webservice nos proveerá en realidad strings que el CascadingDropDown Extender puede manipular para llenar los DropDowns. Por lo que los Webmethods que creemos, los haremos a base de estos.

Nota importante: esta solución no es nada elegante, es sólo para efectos de muestra y el connectionString nunca hay que escribirlo así en soluciones de producción.

El primero, nos regresará simplemente los empleados:

[WebMethod] public CascadingDropDownNameValue[] GetEmployees( string knownCategoryValues, string category) {
SqlConnection connection = new SqlConnection(@"Data Source=SERVER\SQLEXPRESS; Initial Catalog=Northwind; Integrated Security=True");
SqlCommand command = new SqlCommand("SELECT * FROM Employees");
command.Connection = connection; connection.Open(); SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
command.Connection.Close();
ataTable tbl = dataSet.Tables[0];
List values = new List();
foreach (DataRow dr in tbl.Rows) {
string sEmployee = (string)dr["FirstName"] + " " + dr["LastName"];
int iEmployee = (int)dr["EmployeeID"];
values.Add(new CascadingDropDownNameValue( sEmployee, iEmployee.ToString()));
}
return values.ToArray();
}

Nótense los parámetros string knownCategoryValues, string category, éstos deben permanecer tal cual para que el control de CascadingDropDown haga con ellos su “magia”. La parte importante está después de List, que es la parte que construye los valores que finalmente llenan el DropDown de Employees. Se acomoda la presentación de lo que llevará el control y también el identificador del Employee que nos servirá para buscar las órdenes en el otro DropDown, de la siguiente manera:

[WebMethod] public CascadingDropDownNameValue[] GetOrdersByEmployee( string knownCategoryValues, string category) {
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
int iEmployee;
if (!kv.ContainsKey("Employee") !Int32.TryParse(kv["Employee"], out iEmployee)) {
return null;
}
SlConnection connection = new SqlConnection(@"Data Source=SERVER\SQLEXPRESS; Initial Catalog=Northwind; Integrated Security=True");
SqlCommand command = new SqlCommand("SELECT OrderID FROM Orders WHERE EmployeeID = " + iEmployee);
command.Connection = connection;
connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(command); DataSet dataSet = new DataSet(); adapter.Fill(dataSet);
command.Connection.Close();
DataTable tbl = dataSet.Tables[0]; List values = new List();
foreach (DataRow dr in tbl.Rows) {
string sOrder = dr["OrderID"].ToString();
int iOrder = (int)dr["OrderID"];
values.Add(new CascadingDropDownNameValue( sOrder, iOrder.ToString()));
}
return values.ToArray();
}

El WebMethod recibe como parámetro el EmployeeID dentro de knownCategoryValues y se hace una búsqueda del identificador con el cual filtramos la sentencia SQL para obtener las órdenes.

De igual forma, se prepara lo que alimentará el próximo DropDown en la última sección donde está el foreach. El WebMethod que prepara el detalle de las órdenes se filtra por el OrderID que se seleccione y se preparan los elementos para llenar el último dropdown.

Configuración de propiedades

El código para que los CascadingDropDown trabajen se captura en la definición del control viendo la fuente HTML presionando la vista de Source:

Y las propiedades se deben llenar de la siguiente forma: (en caso de no utilizar Atlas sino la libreria de Ajax no se tiene CascadingDropDownProperties, sino añadir 3 CascadingDropDown)

cc1:CascadingDropDown ID="CascadingDropDown1" runat="server">

cc1:CascadingDropDownProperties Category="Employee" ParentControlID="" PromptText="Select Employee" SelectedValue="" ServiceMethod="GetEmployees" ServicePath="Northwind.asmx" TargetControlID="ddlEmployees" />

cc1:CascadingDropDownProperties Category="Order" ParentControlID="ddlEmployees" PromptText="Select Order" SelectedValue="" ServiceMethod="GetOrdersByEmployee" ServicePath="Northwind.asmx" TargetControlID="ddlOrders" />

cc1:CascadingDropDownProperties Category="OrderDetail" ParentControlID="ddlOrders" PromptText="Select OrderDetail" SelectedValue="" ServiceMethod="GetDetailsByOrder" ServicePath="Northwind.asmx" TargetControlID="ddlOrderDetails" />

/cc1:CascadingDropDown>

Las propiedades a tomar en consideración son ParentControlID que son para indicarle el DropDown en el que se basará el contenido del control especicado en TargetControlID. Con la propiedad ServicePath indicaremos el WebService que tiene los webMethods para alimentar el control y éste WebMethod se especifica en la propiedad ServiceMethod.

Una cosa más a considerar es que en las propiedades de la página debemos especificar que no habilite validación de eventos para que funcionen correctamente los controles. En la misma vista de Source al inicio del código deberá incluirse:


%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" EnableEventValidation="false" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" EnableEventValidation="false" %>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" EnableEventValidation="false" %>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" EnableEventValidation="false" %>Después de esto, ya se puede ejecutar esta aplicación web y veremos que al entrar a esta página se alimentará el dropdown de Employee automáticamente. Y al seleccionar el Employee, se llenará y habilitará el siguiente control y pasará lo mismo con el que sigue.

miércoles, 3 de octubre de 2007

Herramientas de testing

En este post voy a presentaros 3 herramientas que utilizo para testear mis aplicaciones. Ellas son NUnit, NUnitASP, Ncover y Web Application Stress.

Las dos primeras sirven para realizar pruebas unitarias, mientras que NCover sirve para medir la cobertura del código de la aplicación que estamos realizando. Tanto Nunit, como NCover están disponible en la versión Team System de VStudio, no obstante se tratan de herramientas de libre distribución que pueden integrarse con VS 2005.

La última de las herramientas permite medir el grado de “stress” de una aplicación web, permitiendo grabar un script que posteriormente se lanza sobre la aplicación simulando el acceso concurrente de varios usuarios durante un tiempo determinado que permite obtener tiempos de retardo y multitud de datos más

BilzTalk Server 2006

Indagando un poquito por la web he encontrado esta herramienta de Servidor que permite a medianas y a grandes empresas integrar los distintos procesos de negocios de una forma relativamente sencilla.


Pero para más información aquí les dejo este link:

http://www.danysoft.com/bol/060718.htm

martes, 2 de octubre de 2007

La solucion a nuestros problemas...ASP .NET


Aqui tenemos una página que nos resuelve un montón de problemas relacionados con ASP .NET: datagrid, gridview, eliminación de filas, acceso a datos, generación de informes y muchas cosas más que nos ofrece esta página.

Toda vuestra.

lunes, 1 de octubre de 2007

Finalizo el Taller PNIS'07

Buenas...

A pesar del nombrecito finalizó con éxito el I Taller sobre Procesos de Negocios e Ingeniería de Software (PNIS) del que fuí Webmaster.

Pueden hecharle un vistazo a los papers aceptados incluso a las fotos de Zaragoza...

http://alarcos.inf-cr.uclm.es/pnis/

Herramientas ORM

En este artículo de mi blog quiero hacerles un resumen sobre algunas herramientas que nos ayudarán a la hora de crear una capa de acceso a datos para nuestras aplicaciones en .Net.

Existen distintas formas de creación de una capa de acceso a datos: se puede crear una clase "broker" siguiendo el patrón agente de BD que actúe como único punto de acceso a nuestra BD, sin embargo, esta forma de actuar suele ser válida unicamente para aplicaciones "simples". Si queremos trabajar de una forma profesional debemos adoptar algunas de las propuestas siguientes:

Una forma es crear una clase por cada tabla en la base de datos y mapearlas una a una. Esta es la forma más sencilla y es muy válida cuando tenemos una estructura de base de datos que sea muy parecida a nuestro modelo de dominio (que no se haya optimizado con particiones horizontales o uniones).

Otra forma es respetar un modelo orientado a objetos que represente los objetos del dominio del negocio. Esta es una forma más correcta de trabajar pero se hace más complejo mapear esas clases a sus tablas correspondientes.

Para realizar esta tarea existen herramientas que se llaman ORM (Object to Relational Mapper).

Un ORM muy popular es el NHibernate, se trata de una portación al .net del Hibernate de Java. Este framework se encarga de persistir nuestros objetos del negocio, también tiene un lenguaje de consultas orientado a objetos propio y es totalmente independiente de la base de datos que usemos. Y lo bueno que tiene esto es que podemos migrar de una base de datos a otra sin tocar nuestro código (simplemente cambiamos un par de cositas en un archivo de configuración). Eso sí, hay un trabajito extra, tenemos que crear archivos de configuración xml que le van a indicar a NHibernate cómo tiene que mapear cada clase a sus respectivas tablas.

NHibernate es el framework de persistencia más completo que existe en el mercado. Soporta todos los tipos de relaciones (uno a uno, uno a muchos, muchos a muchos) y puede mapear varias tablas a una clase o al revés, también permite usar herencia, transacciones, agregaciones y muchas cosas más, practicamente podemos hacer cualquier cosa que se nos ocurra. Si buscan una herramienta que les permita crecer y hacer modificaciones sin que surgan limitaciones que no se tuvieron en cuenta, la mejor opción es NHibernate.

Si los archivos de configuración de NH les parecen muy complicados, existen muchas herramientas para facilitarnos las cosas. Una que yo he probado y que me fue muy satisfactoria fue MyGeneration, este es un generador de código opensource que dispone de varias plantillas para generar las clases de acceso a datos y los archivos de configuración de NHibernate a partir de la estructura de nuestra base de datos.

Existe otro proyecto muy interesante: CastleProject (de Brasil) que se trata de un conjunto de frameworks para implementar patrones de diseño com MVC, Inversion Of Control y ActiveRecord. El framework ActiveRecord de CastleProject nos permite implementar este patrón de diseño para el acceso a datos empleando en un nivel inferior a NHibernate por lo que estaríamos usando NHibernate para la persistencia pero encapsulado en el patrón ActiveRecord y también nos olvidamos de los archivos de configuración XML ya que con este nuevo framework sólo tenemos que poner decoradores en nuestras clases (si los nombres de las propiedades se corresponden con las columnas ni siquiera es necesario usar decoradores). Con esta herramienta se simplifica mucho usar NHibernate para la persistencia.
Si volvemos al generador de código que nombre antes (MyGeneration), el mismo creador nos brinda su propio framework de persistencia: dOOdads, para trabajar con este framawork necesitamos el MyGeneration para generar todas nuestras clases y los stored procedures para los inserts, updates y deletes. Esta herramienta genera código muy legible y con una forma muy fácil de realizar consultas.

Saludos.

RIIS: Revista Iberoamericana de IGS

Ya esta en explotación la nueva revista del Grupo Alarcos!!!

http://alarcos.inf-cr.uclm.es/riis/

La revista pretende ser un foro abierto de presentación e intercambio de noticias, actividades, experiencias, desarrollos, proyectos, resúmenes, etc.; así como para la publicación de artículos científico-técnicos de calidad relevante sobre las diferentes áreas de la Ingeniería del Software.

Se pretende establecer un medio que permita una mayor intercomunicación, expansión y publicación de resultados entre distintos equipos de investigación y/o desarrollo, que permita su mayor conocimiento mutuo y potenciación. Adicionalmente, se pretende fortalecer el desarrollo de las diferentes áreas de la Ingeniería del Software y un mayor conocimiento de la misma en las diferentes universidades y centros de investigación y desarrollo. A fin de conseguir una mayor expansión y acceso a la publicación, su contenido será libremente accesible por Internet.

Los diversos contenidos relacionados con la Ingeniería del Software y tópicos tratados en la revista serán, en general, los referentes a:

- Artículos Científico-Técnicos sobre desarrollos, investigación, enseñanza, productos, etc.
- Resúmenes de seminarios, conferencias, congresos, etc.
- Monografías (números especiales sobre un tema concreto) que agrupen a varios artículos y tengan uno o más editores invitados.
- Resúmenes de tesis doctorales, tesis de maestría, proyectos de investigación, etc.
- Noticias.

Los artículos se clasificarán en diferentes secciones, adaptando las áreas temáticas que propone el SWEBOK (IEEE Computer Society, SWEBOK 2004):

- Ingeniería de requisitos
- Tecnología de procesos.
- Desarrollo de software orientado a aspectos.
- Casos de estudio en empresas.
- Patrones de diseño
- Líneas de productos software
- Calidad, Medición y estimación de productos y procesos
- Métodos formales aplicados a la Ingeniería del Software
- Generación automática del software
- Ingeniería del Software basada en componentes
- Ingeniería de modelos
- Mantenimiento software
- Prueba, verificación y validación
- Ingeniería Web
- Arquitecturas orientadas a servicios
- Cambio y evolución del software
- Arquitectura software

Esperemos que tenga un gran éxito...

OOWS (método Orientado a Objetos para Soluciones Web)

Uno de los temas que está siendo objeto de un intenso trabajo de investigación es el desarrollo de métodos de producción de software que permitan construir aplicaciones web complejas con comportamiento dinámico, que sean compatibles con los estándares metodológicos y notacionales más extendidos en la actualidad (en particular UML) y que establezcan cómo diseñar y desarrollar aplicaciones web basadas en SW XML para integrar aplicaciones existentes, realizar comercio electrónico y ofrecer funcionalidad a través del web.

Una decisión importante a la hora de abordar un proyecto será la de qué metodología de desarrollo Software debemos utilizar y no siempre se ha de aplicar la misma para todo tipo de proyectos, sino que será conveniente realizar un análisis de las necesidades del mismo para determinar que metodología es la más apropiada.

En este post quiero presentaros una metodología propuesta en la Universidad de Valencia denominada OOWS bastante adecuada para aplicaciones WEB basadas en Servicios Web (SW) XML y donde cobra bastante importancia la presentación de la información, navegavibilidad y usabilidad de la aplicacion Web:

El desarrollo de aplicaciones Web implica gestionar esencialmente:

- Requisitos de navegación dentro de la aplicación.
- Presentación de la información.
- Gestión de la información (filtrados, búsquedas, estadísticas,etc),
- Tratamiento de usuarios: Gran cantidad de tipos de usuarios (taxonomías), adapactación/personalización, etc.
- Más los requisitos funcionales de las aplicaciones “clásicas”

Otros métodos se centran en la especificación de requisitos funcionales pero dejan a un lado los requisitos navegacionales y de presentación que en este tipo de aplicaciones son una parte bastante importante.

Cabe mencionar que lo mas importante en el desarrollo de una aplicación, es el uso adecuado de una metodología que administre y garantice el cumplimiento de los requerimientos especificados al inicio del proyecto, por medio del uso de alguna tecnología (lenguajes de programación, hardware, sistemas distribuidos, etc) apropiada.

PUD es una metodología bastante estructurada, lo cual permiten poseer un universo de documentación a cada elemento significativo del proyecto (documentos de análisis, de diseño, de construcción, de implementación). El concepto de hito en PUD es un concepto que provee de elementos tangibles (artefactos), que permiten decidir si el trabajo realizado hasta el momento es el adecuado o no, y si se han superado las necesidades de cada fase definida en la metodología.
En algunos equipos de desarrollo, el desconocimiento de dicha estructura desvía el concepto fundamental de hito, al simple hecho de cumplir con cierta documentación (ó conjunto de artefactos), lo cual implica un gasto grande de los recursos para una conjunto enorme de documentación que solo sirve para ser archivada.

Desventaja 1: Si el conjunto de documentos y artefactos no son concebidos tal y como se plantea en PUD, dicha documentación solo servirá para ser archivada lo cual no genera valor respecto a la calidad del desarrollo, y evoluciona en problemas mas complejos (aplicación que no satisface los requerimientos, diseño de la estructura no coincide con la estructura final de la aplicación, etc.)

Desventaja 2: Es necesario incluir a más personas en el equipo de desarrollo: especialistas en los diseños y evolución de casos de uso, de los modelos de análisis y diseño, de los modelos de implementación, etc.

Cabe indicar que la tendencia es a reducir cada vez más los equipos de desarrollo, y no solo por una simple política de reducción de costos, sino a la reducción de la complejidad asociada a la comunicación entre los miembros del equipo.

Desventaja 3: lo mas importante en el desarrollo de un producto informático es el propio de desarrollo, en PUD se gasta posiblemente demasiado tiempo para pasar a la fase de desarrollo.

En cuanto a XP considero que se trata de una metodología demasiado ligera y que quizá se adecuaba mejor a proyectos más simples

Este método (OOWS) aborda de forma sistemática el modelado conceptual de aplicaciones web introduciendo técnicas de especificación de requisitos funcionales y navegacionales, propone una arquitectura software multinivel basada en servicios web, e introduce un conjunto de reglas que permiten transformar las abstracciones conceptuales en cada uno los componentes software que implementan los niveles de la arquitectura, haciendo uso intensivo de patrones de diseño.

Esta metodología pretende desarrollar métodos de producción de software que permitan construir aplicaciones web complejas con comportamiento dinámico, que sean compatibles con los estándares metodológicos y notacionales más extendidos en la actualidad (en particular UML) y que establezcan cómo diseñar y desarrollar aplicaciones web basadas en SW XML para integrar aplicaciones existentes, realizar comercio electrónico y ofrecer funcionalidad a través del web.


Presentacion

Hola a todos!

Bienvenido a mi blog personal, en este espacio voy a mostrar información, ideas, ejemplos, noticias, herramientas, novedades, etc... que espero que sea útil para alquien :). En especial, tengo bastante interés por el desarrollo software y me estoy especializando en el desarrollo de aplicaciones Web con .NET.

Entre mis próximos comentarios intentaré desarrollar algunos temas y herramientas que me han parecido bastantes interesantes... acceso a datos con NHibertane, MyGeneration, AjGenesis, Ajax, Dundas charts, NAnt, Orcas, Blend, Silverlight, tortoiseSVN entre otras cosillas...pero poco a poco.