DotNetcr.com
Si deseas hacer un intercambio de links con DotNetcr, escríbenos aquí
Recibe las actualizaciones vía RSS
Te invitamos a unirte en nuestras redes
   http://www.facebook.com/DotNetcr
   http://www.twitter.com/dotnetcr

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

Por rhernandez | 9/3/2005 | Visitas 7,090 | Voto 0.00
Parte V: Interfaz de Usuario (UI)
Categorías : C#
<< Regresar al Indice del Artículo

Esta capa se encarga de la presentación visual de los datos hacia los usuarios finales u operadores del sistema. También se encarga de dar las facilidades para manipular la información.

Esta aplicación puede ser desarrollada en aplicaciones de Windows (Windows-Base Application), aplicaciones Web(ASP.NET) ó aplicaciones mobiles (Mobile Application), indistintamente del "Front End" seleccionado, los componentes vistos de la parte I a la parte IV son los mismos!!!. Esa es una de las ventajas de utilizar programación en capas. Y si se modifica alguna regla de negocios o acceso a datos, la interfaz de usuario no tiene que modificarse!!!.

En esta Capa se utilizan las referencias hacia Entity.dll (parte II) y mobileBO.dll (parte IV).

Bueno, pasemos a lo interesante. Para utilizar los objetos remotos ofrecidos por el servidor de componentes(parte I) las cuales son las fachadas, se tienen que registrar con el siguiente segmento de código:

private void FrmMain_Load(object sender, System.EventArgs e)
{
ChannelServices.RegisterChannel(new TcpClientChannel());
string servidorComponentes = ConfigurationSettings.AppSettings["ServidorComponentes"].ToString();
RemotingConfiguration.RegisterActivatedClientType( typeof(mobileBO.Facade ),
"tcp://"+servidorComponentes+":9946/TestCAO");
}


Analizemos el código, lo que estamos haciendo aquí es, primero, registrando un canal de tipo Tcp, por que en el servidor también lo registramos así, luego obtenemos del archivo App.config el valor de la variable "ServidorComponentes", la cual nos da la Ip o el HostName del servidor de componentes, donde se encuentran publicadas nuestras fachadas con toda la funcionalidad para el sistema de la interfaz de usuario. Después utilizamos el método RegisterActivatedClientType de la clase RemotingConfiguration, el cual nos permite registrar la clase como remota, es decir que cuando se instancie esa clase en cualquier parte del código del sistema, la va a ir a buscar a esa Uri que le asignamos.

A continuación veremos un fragmento de código donde se utiliza la llamada a un método de la fachada para consultar una entidad para trabajar con ella en memoria:

// primero se instancia la fachada remota, si el servidor no esta listo aqui recibiremos un error de comunicación
mobileBO.Facade fachada = new mobileBO.Facade();

// buscar el estado para ver si es cambio o alta
estado = fachada.TraerEntidades(int.Parse(this.txtEstado.Text));
if (estado == null)
{
//no existe, por lo tanto se creara una instancia nueva para su posterior insercion, aqui automaticamente la entidad "estado", queda con el estatus de nueva, y al mandarse guardar se insertara en la base de datos
estado = new Entity.Entidad();
this.txtDescripcion.Text="";
this.cboPaises.SelectedIndex = -1;
}
else
{
// en esta parte, se obtienen los datos de la entidad "estado", para presentarlos, en las cajas de texto al usuario.
this.cboPaises.SelectedValue = estado.Pais.PaisId;
this.txtDescripcion.Text = estado.Descripcion;
}


Ahora veremos un fragmento de código donde se utiliza la llamada a un método de la fachada para almacenar una entidad en la base de datos:

//Instanciamos fachada remota

mobileBO.Facade fachada = new mobileBO.Facade();
listaEstados=new Entity.ListaEntidades();

//Asigno valores a la Entity entidad
estado.Estado = int.Parse(this.txtEstado.Text);
estado.Descripcion = this.txtDescripcion.Text;
estado.Pais = listaPaises.FindByPrimaryKey( int.Parse(this.cboPaises.SelectedValue.ToString()) );
listaEstados.Add(estado);
fachada.GuardarEntidad(ref listaEstados);

// Inicializamos valores
MessageBox.Show("Se Guardo Correctamente!!!");
this.InicializarControles();


Por último veremos como utilizar una entidad de colección como DataSource de un control:

// creamos la intancia de la fachada remota
mobileBO.Facade fachada = new mobileBO.Facade();
Entity.ListaEntidades listaEstados=new Entity.ListaEntidades();
listaEstados = fachada.TraerEntidades();
//enlazamos los datos al DatGrid, pero pudo haber sido unComboBox, ListView o cualquier control que acepte un ICollection como DataSource
this.dtgConsultaEstados.DataSource = listaEstados;


Bueno este fue el ultimo capitulo de la arquitectura de red, muchas gracias por dedicarle tiempo en leerlo y votarlo, si necesitan ver mas ejemplos o mas codigo fuente, con mucho gusto.

Gracias y hasta la próxima.

<< Regresar al Indice del Artículo

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

using Entity.dll;
using mobileBO.dll;
using System.Runtime.Remoting.Channels ;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Tcp ;


Descargar Solución ArqSoft_ClienteUI.zip
Area de Comentarios
Por Anónimo - Fecha: 2007/03/14 02:54 PM
Sos un capo, te felicito, en serio!!!
Juan de Argentina.
Por Anónimo - Fecha: 2012/07/18 03:09 PM
Das Blog wird demne4chst multilingual. Aber die Beitre4ge veasfsre ich in englisch um damit ein grf6dferes Publikum zu erreichen. Jeder gute Entwickler sollte englisch kf6nnen. Und der Spamschutz ist cool finde ich. Ich sollte vielleicht noch hinschreiben dass die Antwort als Zahl eingegeben werden darf Aber ich werde wohl eh das Blogsystem wechseln, da dfcrfte dann ein anderes Spam-Script zum Einsatz kommen.
Por Anónimo - Fecha: 2012/07/19 10:27 AM
a2rolI , [url=http://cfzcjmbcnqcl.com/]cfzcjmbcnqcl[/url], [link=http://gvrrbutmrltc.com/]gvrrbutmrltc[/link], http://dluvjwvlwwsa.com/
Por Anónimo - Fecha: 2012/07/20 09:21 PM
GrQPJR , [url=http://cphqyrexidgk.com/]cphqyrexidgk[/url], [link=http://lbbpgrpqjeen.com/]lbbpgrpqjeen[/link], http://fewbxkuqgucz.com/
Por Anónimo - Fecha: 2015/12/17 02:59 PM
( 2012.02.16 09:22 ) : I precisely nedeed to appreciate you again. I do not know the things that I would have undertaken in the absence of the entire tactics revealed by you about this area. It absolutely was a real intimidating matter for me personally, nevertheless observing your professional approach you dealt with it made me to cry over fulfillment. Now i'm happier for your information and then hope you comprehend what a powerful job you were doing educating the others thru your web blog. I know that you haven't got to know all of us.Krosterantori
Por Anónimo - Fecha: 2015/12/17 03:28 PM
( 2012.02.15 10:53 ) : Thank you a lot for giving evyeorne remarkably special chance to read critical reviews from this web site. It's usually so pleasant and also stuffed with a good time for me personally and my office colleagues to search your blog no less than three times weekly to read through the new guidance you will have. And of course, I am just at all times fascinated with all the superb solutions you give. Selected two ideas on this page are undoubtedly the most beneficial I've ever had.Krosterantori
Por Anónimo - Fecha: 2015/12/17 05:15 PM
( 2012.02.17 20:26 ) : I must voice my affection for your kisndens supporting those who have the need for help with this particular issue. Your very own commitment to getting the message all through had been ?remarkably important and have usually helped regular people just like me to attain their dreams. Your invaluable publication means a lot to me and somewhat more to my colleagues. Thank you; from all of us.
Por Anónimo - Fecha: 2015/12/19 02:49 AM
( 2012.02.21 06:54 ) : It is appropriate time to make some plans for the futrue and it is time to be pleased. I have read this post and if I could I desire to suggest you some interesting points or advice. Maybe you are able to write next articles referring to this article. I wish to read even far more issues about it! http://ggoucsgtuvj.com [url=http://cfryuajndf.com]cfryuajndf[/url] [link=http://xiqytxbfr.com]xiqytxbfr[/link]
Por Anónimo - Fecha: 2015/12/19 02:50 AM
( 2012.02.22 13:52 ) : I didn’t had a good read by a long time. Definitely happy I found this on digg. I was speaking toehgetr with my buddies two nights ago all-around this particular issue and also I have to express you make issues really crystal clear for me. Thank you and good luck, http://jsjabfyaw.com [url=http://cvaoviohvju.com]cvaoviohvju[/url] [link=http://iiqdxityz.com]iiqdxityz[/link]
Por Anónimo - Fecha: 2015/12/19 02:53 AM
( 2012.02.11 02:36 ) : Cool blog! Is your theme custom made or did you dlonwoad it from somewhere? A theme like yours with a few simple adjustements would really make my blog jump out. Please let me know where you got your design. Bless you http://qiygocff.com [url=http://vswiemsuqtr.com]vswiemsuqtr[/url] [link=http://ulbmjma.com]ulbmjma[/link]
Por Anónimo - Fecha: 2015/12/20 02:22 PM
Wow! Great to find a post knconikg my socks off! http://ejalxnea.com [url=http://doonxc.com]doonxc[/url] [link=http://hudcuid.com]hudcuid[/link]
Por Anónimo - Fecha: 2015/12/20 02:22 PM
I must have purchased 10 books on how to deovpele a website from the ground up. Within the first 5 chapters, without fail, something integral to the entire website that they take for granted working, wouldn't work for me, and after a week or two of trying to fix the issue, I would normally give up. I repeated this process for about the past 6 months.Some background on me, I'm 28, I have a BS in computer science, but generally learned nothing in college, of business value anyway. I am lightly familiar with coding/designing, if given enough time I could read the code and tell you about what most things do in C++ or VB, (And their .net equivalents), but ask me to program something, and I wouldn't even know where to start. This is why I am heavily dependant on any programing examples in a book working This book is definitely more a designers guide to building a website, but by that, I mean it shows you how to create a website from the ground up, and every short cut possible where you can have Visual Web Developer (VWD) button, or option do the work of coding. This is like a god send for people like me, that want to learn coding, but not as badly as we want to learn how to create .NET websites. I didn't get stuck for more than a few minutes anywhere.There are no stories from the trenches that many books put in just to fill in space and bore you inbetween what you actually want to know. This book is VERY concisely written telling you what you need to know. This book does not go into great depth in any great part, it briefly touches on just about everything you could need to run your own website though and makes recommendations for either websites or books to purchase to get additional information.In conclusion, this book is great for beginners, and I would, and have recommended it to everyone I know who, similar to me, wants to create a professional looking website, that doesn't have the programing skills to make it happen. I'd imagine though, if you are above beginner level, this book would not be for you. http://nrtpfgnaw.com [url=http://xohrgsxahi.com]xohrgsxahi[/url] [link=http://wtoqllas.com]wtoqllas[/link]
Por Anónimo - Fecha: 2015/12/20 02:24 PM
The title of this book is a little milinadseg. It deals with Visual Web Developer Express Edition 2008 and does an excellent job of addressing the new features in the 2008 release as well as a valid tool for someone just starting with Visual Web Developer. It takes you through the development of a sample ASP.NET website using Access databases along with user security. It is an excellent reference as well as a tutorial approach for a begginner to intermediate web site creation. http://yztrjomehwc.com [url=http://uzxyqsgwjgf.com]uzxyqsgwjgf[/url] [link=http://yiflxppte.com]yiflxppte[/link]
Ingrese su Comentario
Comentario
Para poder votar debe estar registrado en DotNetcr.com
Solo queda registrado el primer voto enviado
Voto


Últimos Recursos
ricardo leppe t
pedrojavier
CALIN
willipinru
richard
ragomez
PER 238
MEX 236
CRI 188
COL 118
ESP 105
ARG 88