viernes, septiembre 29, 2023

Utilizando .net Remoting , Programación en Capas, Programación Orientada a Objetos y patrones de programación, (SqlServer 2000 Back End) – Parte 1

<< Regresar al Indice del Artículo

La funcionalidad principal de esta aplicación, la cual correra como un servicio de windows, es exponer remotamente las fachadas a traves de un puerto TCP en este caso (que tambien pudiera ser HTTP), para sus intanciamientos remotos y asi brindar todas las funcionalidades de la capa reglas de negocios.
Esta aplicacion se debe de instalar en el equipo de computo que sera el servidor de componentes

Pasos a seguir para instalar el servidor de Componentes:

1. Copiar los 2 archivos Xml de configuración (Parametros.xml y server.exe.config) en la carpeta %WinDir%System32 de la maquina que fungira como servidor de componentes.

2. Correr el script de tablas y procedimientos para el ejemplo, para crear las tablas y procedimientos.

3. En una ventana de comandos, correr la utileria del .net framework «installutil ServidorComponenetes.exe», para instalar el servicio de windows que atendera las peticiones remotas

4. iniciar el servicio, puede ser desde la ventana de comandos con NET START «.Net Remoting»,

ó desde el panel de control, herramientas administrativas, Servicios, ahi buscar .Net Remoting, y dar iniciar.

Donde le Dijimos a la aplicacion que el servicio se llamaba «.NET Remoting»?

public static string serviceName = «.NET Remoting»;

Dentro de los atributos de la clase RemotingService.

El patrón fachada (Facade pattern, GoF)

El patrón fachada trata de simplificar la interface entre dos sistemas o componentes de software ocultando un sistema complejo detrás de una clase que hace las veces de pantalla o fachada.

La idea principal es la de ocultar todo lo posible la complejidad de un sistema, el conjunto de clases o componentes que lo forman, de forma que solo se ofrezca un (o unos pocos) punto de entrada al sistema tapado por la fachada.

Una ventaja más de usar una clase fachada para comunicar las dos partes o componentes, es la de aislar los posibles cambios que se puedan producir en alguna de las partes. Si cambias, por porner un ejemplo, el medio de comunicación o de almacenamiento de una de las partes, la otra, que por ejemplo hace la presentación, no tiene porque enterarse, y viceversa.

Este patrón es bastante fácil de explicar en palabras (aunque no estoy seguro de haberlo conseguido), pero no tanto de poner un ejemplo, al menos no uno completo. Intentaré hacerlo basándome en un caso personal.

En el trabajo teníamos un sistema de varias capas, un servidor DMS (Document Managment System), un proxy para distintos DMS escrito en C/C++ y una aplicación web desarrollada con servlets (y motores de plantillas) como interface al usuario. El aspecto más peliagudo era la comunicación entre el proxy para DMS y nuestra aplicación Java, que se producía por medio de sockets TCP/IP y mensajes XML. Podeis imaginaros que entre las clases propias de la comunicación (sockets, streams, handlers de la comunicación, etc), las clases de proceso del XML (parsers, codificadores, conversores xml a PDF, etc) y las clases de nuestro sistema (documentos, listas de resultados, etc) resultaba un sistema bastante complejo, complejidad que no era necesario que la conociera la aplicación web.

Nota:
En el archivo de configuracion Parametros.Xml esta el string de coneccion hacia la base de datos
En el archivo server.exe.config esta la configuracion del puerto TCP y los nombres de las fachadas a exponer remotamente
Finalmente en el archivo ClienteUI.exe.config esta la IP de donde se encuentra el Servidor de Componentes al cual se conectara el cliente.

Ir a parte II: Manejo de Entidades y Colecciones

<< Regresar al Indice del Artículo

Espacios de nombres usados en el código de este artículo:

using System;
using System.Diagnostics;
using System.ServiceProcess;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

Descargar solución ArqSoft_ServidorComponentes.zip




Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub

Redes Sociales

2,736FansMe gusta
326SeguidoresSeguir

Popular esta semana

SQL Server

Cómo saber la fecha que se modificó un procedimiento almacenado

Poder saber cuales objetos o procedimientos almacenados se modificaron recientemente es muy útil principalmente en bases de datos donde varios desarroladores tienen acceso
SQL Server MERGE

MERGE en SQL Server para Insert, Delete y Update con dos tablas

Ejemplo práctico usando MERGE para sincronizar dos tablas, Insert, Update y Delete en un solo query. Válido para SQL SERVER 2008 o superior.
SQL Server

Format en SQL Server (Transact-SQL)

La función Format aplica desde SQL Server 2012 en adelante. Devuelve un valor con el formato previamente indicado. Se puede utilizar para definir el formato de una fecha y hora o para retornar un numero como varchar en un formato específico.

Últimos artículos

SQL Server MERGE

MERGE in SQL Server for Insert, Delete and Update with two tables

Practical example using MERGE to synchronize two tables, Insert, Update and Delete in a single query. Valid for SQL SERVER 2008 or...

Como crear una API REST con ASP.NET Core 6.0

Crear una API REST con C# en ASP.NET es un proceso sencillo y rápido que permite exponer un conjunto de recursos a...
Machine Learning & Python

Introducción a Machine Learning en Python

Machine Learning es una rama de la inteligencia artificial que se enfoca en el desarrollo de sistemas que pueden aprender de...
SQL Server MERGE

MERGE en SQL Server, como utilizarlo de forma sencilla

El comando MERGE en SQL Server se utiliza para combinar datos de varias tablas en una sola tabla. Es útil para actualizar...