Ir al contenido principal

[dev:teoria] Arquitectura

Arquitectura de tres capas

Capa de Acceso a Datos
Proporciona las funciones, que consumirá la capa de negocios, para acceder y modificar los datos, sin importar el método, tecnología o lugar en los que estos se encuentren almacenados.
En .net es muy común utilizar tecnología ADO.NET para acceder a datos almacenados mediante SQL Server.

La librería base en la que estoy trabajando, en esta capa permitirá acceder mediante un objeto, a fuentes de datos almacenadas en MySQL, MS SQL y/o PostgreSQL, devueltos en formato XML.

Capa de Lógica de Negocio
Responsable del comportamiento de la aplicación en general. Mediante la interfase de usuario (Capa de presentación) se recibe el "que" hacer con los datos, y los componentes de esta capa se encargan del "como" hacerlo.

Capa de Presentación
Esta última capa se encarga de proporcionar acceso las funcionalidades que brinda la capa de negocios. Funciona como interface entre el usuario y la aplicación. Es la herramienta que permite al usuario, administrar la aplicación.

El separar la lógica de los datos y la presentación, permite acceder a la funcionalidad de la aplicación desde cualquier interfase, brindando un abanico de posibilidades. Por ejemplo, administrar los datos desde una PC, teléfono, PDA, etc. hasta desde un sistema automatizado que altere los datos bajo cierta condición, sin intervención de una capa de presentación.

Una unica fuente de datos, compartida por cientos de clientes, de cualquier indole, tecnologia y version. Solo basta desarrollar la capa de presentacion adecuada para cada caso.

Comentarios

Entradas más populares de este blog

[links] Links para descargas de Visual Studio 2008 SP1, Framework .NET 3.5, su SP1 y Sql Server Express 2008

En el proceso de modernizacion de los entornos de desarrollo que comunmente uso para trabajar, acumule estos links de descargas, que paso a compartir para ahorarle la busqueda a algun colega:

Microsoft .NET Framework 3.5 [web] 197.12 MB

Requerimientos:Windows Server 2003Windows Server 2008Windows VistaWindows XP256 MB de RAM500 MB de espacio disponible en disco



Microsoft .NET Framework 3.5 Service Pack 1 [web] 231.5 MB

Requerimientos:Windows Server 2003Windows Server 2008Windows VistaWindows XP256 MB de RAM500 MB de espacio disponible en disco



Windows Installer 4.5 Redistributable - Español [Windows Server 2003] [web] 3.2 MB

Requerimientos:Windows Server 2003 Service Pack 1Windows Server 2008Windows VistaWindows XP Service Pack 2



Microsoft Visual Studio 2008 Service Pack 1 (iso) [web] 913.79 MB

Requerimientos:Windows Server 2003Windows Server 2008Windows VistaWindows XP1024 MB de RAM



Microsoft SQL Server 2008 Express [web] 99.2 MB

Requerimientos:Windows Server 2003 Service Pack 2Windows Server …

Pruebas de desempeño - XML Webservices

En esta oportunidad, el desacoplamiento al que llegamos nos permite traspasar las barreras de la organizacion. Nuestro servicio de suma, ahora lo proporciona un Werbservices. Por lo tanto, podria estar fuera nuestra bateria de servidores, y la aplicacion funcionaria igual. Por lo menos en resultado, no en prestaciones.
Los cambios:

Agregamos en Web services al proyecto, con este codigo en el ASMX.



using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
publicclass Servicio : System.Web.Services.WebService
{

public Servicio(){}

[WebMethod]
publiclong sumar(long n)
{
return ++n;
}

}

Incluimos la referencia WEB a nuestro WS, y estos cambios en la aplicacion.



using System;
using System.Collections.Generic;
using System.Configuration; // Agregar referencia System.Configuration 2.0
using System.IO;
using System.Text;
using System.Th…

Pruebas de desempeño - En otro DLL

Agregamos otro proyecto a la solución, del tipo libreria, en la que ubicaremos el servicio de suma.



using System;
using System.Collections.Generic;
using System.Text;

namespace Sumador
{
publicclass Servicio
{
publicstaticlong sumar(long n)
{
return ++n;
}
}
}


El código anterior modificado para esta prueba:



using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading;

namespace Tester
{
class Program
{
privatestaticbool iterar = true;
staticvoid Main(string[] args)
{
int duracion = 1000;

Console.Write("Nombre de la prueba:");
string nombre = Console.ReadLine();

Console.WriteLine();
Console.WriteLine("Presione una tecla para iniciar la prueba");
Console.ReadKey();

Console.WriteLine("Finalizar prueba cada {0} milisegundos",duracion);


short i = 0;
using(StreamWriter sw = File.AppendText(string.Format("{0}.txt",nombre.Replace(' ','_')…