S

suazr

Usuario (Bolivia)

Primer post: 20 nov 2011Último post: 26 dic 2011
3
Posts
28
Puntos totales
9
Comentarios
Comparacion entre gestores de bases de datos
Comparacion entre gestores de bases de datos
Apuntes Y MonografiasporAnónimo11/25/2011

Muchas veces es cuando uno va a elegir un gestor de base de datos no sabe por cual optarpor eso haca les dejo unos cuadros comparativos de varios gestores para que se hagan una idea de cual es mejor a la hora de desarrollar sistemaslos invito a pasar por mi blog donde encontraran este articulo y algunas cosas mas al respectohttp://desarrollandomitesis.blogspot.com/

0
0
Capa de datos multigestor (Parte 1)
Capa de datos multigestor (Parte 1)
Apuntes Y MonografiasporAnónimo11/20/2011

Para empezar vamos a crear la capa de datos para poder conectarnos a 4 gestores de bases de datos, para lograr eso vamos a utilizar el controlador ODBC para cada gestor.El controlador ODBC es una API estándar para el acceso a datos, se caracteriza por ser independiente del origen de datos, lenguaje o sistemas operativos.No voy a seguir con mas conceptos para no aburrirlos ni aburrirme, así que pasemos a lo buenolos gestores escogidos que vamos a usar para realizar las pruebas son los siguientes-SqlServer-Oracle-MySql-Postgresspero si gustan añadir otro gestor creo q lo van a poder hacer sin ningún problema, por que por eso se caracteriza el ODBCEmpezamos creando un nuevo proyecto de biblioteca de clases en el Visual Studio.Renombramos a la clase que viene por defecto a DataProvider, y su contenido es el siguiente.using System;using System.Collections.Generic;using System.Text;namespace DAL{ public enum DataProvider { Oracle, SqlServer, MySql, PostgresSql }}El objetivo de esa clase es solamente tener una lista de los gestores con los que vamos a trabajar, de esa forma no tenemos que escribirlos a cada momento.Posteriormente nos creamos otra clase la cual nombraremos gDatos, o como uds gusten, yo por alguna razón me acostumbre a ese nombre.añadimos las siguientes librerias q son nesesarias para conectarse al ODBCusing System.Data;using System.Data.Odbc;y empezamos creándonos las 3 primeras variablesprivate System.Data.Odbc.OdbcConnection OdbcCon;private System.Data.Odbc.OdbcCommand OdbcCom;private System.Data.Odbc.OdbcDataReader OdbcDR;El primero es para realizar la conexión a ODBC Driver, el segundo es para mandar comando o consultas al gestor de base de datos, y la tercera es para leer datos devueltos en las consultasluego nos creamos las propiedades de la clase.public string ConexString{ set; get; }public string BaseDatos{ set; get; }public string Usuario{ set; get; }public string Password{ set; get; }public string Server{ set; get; }public string Puerto{ set; get; }public DataProvider TipoCon{ set; get; }No creo que haya problemas entendiendo las propiedades pero si alguien tiene duda es libre de preguntar.continuamos creando el construnctor y el primer metodopublic gDatos(string _BaseDatos, string _Usuario, string _Password, string _Server, string _Puerto, DataProvider _TipoCon){ BaseDatos = _BaseDatos; Usuario = _Usuario; Password = _Password; Server = _Server; Puerto = _Puerto; TipoCon = _TipoCon; GetConexionString();}public void GetConexionString(){ switch (TipoCon) { case DataProvider.Oracle: ConexString = "DRIVER={Microsoft ODBC for Oracle};SERVER=" + Server + ";DATABASE=" + BaseDatos + ";UID=" + Usuario + ";PWD=" + Password; break; case DataProvider.SqlServer: ConexString = "DRIVER={SQL Server};SERVER=" + Server + ";DATABASE=" + BaseDatos + ";UID=" + Usuario + ";PWD=" + Password ; break; case DataProvider.MySql: ConexString = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=" + Server + ";PORT=" + Puerto + ";DATABASE=" + BaseDatos + ";UID=" + Usuario + ";PWD=" + Password + ";OPTION=3"; break; case DataProvider.PostgresSql: ConexString = "DRIVER={PostgreSQL ANSI(x64)};SERVER=" + Server + ";PORT=" + Puerto + ";DATABASE=" + BaseDatos + ";UID=" + Usuario + ";PWD=" + Password; break; }}el constructor lo que hace es inicializar las variables con los parámetros mandados, no es necesarios mandar todos los parámetros, por ejemplo en muchos casos el puerto no es necesario y podemos enviarle vació ("".proseguimos creando una función que nos servirá para probar las conexionespublic bool TestConex(){ bool exito = false; OdbcCon = new System.Data.Odbc.OdbcConnection(ConexString); try { if (OdbcCon.State == ConnectionState.Closed) { OdbcCon.Open(); exito = true; } } catch (System.Data.Odbc.OdbcException Ex) { // aca poner alguna excepcion throw new Exception("No se pudo conectar al servidor," + "verifique que los parametros de conexion son correctos"; } return exito;}y para probar nuestro avance creamos un formulario con los siguientes componentes.En el evento load del formulario colocamos el siguiente códigoCBBProvider.Items.Add(DataProvider.MySql);CBBProvider.Items.Add(DataProvider.Oracle);CBBProvider.Items.Add(DataProvider.PostgresSql);CBBProvider.Items.Add(DataProvider.SqlServer);y por ultimo en el boton colocamos lo siguientegDatos g = new gDatos(TxtBaseDatos.Text, TxtUsuario.Text, TxtPassword.Text, TxtServidor.Text, "", (DataProvider)CBBProvider.SelectedItem);try{ if (g.TestConex()) TxtLog.AppendText("Conexion establesida a " + g.Server + "rn"; else TxtLog.AppendText("Error al conectar a " + g.Server + "rn";}catch (Exception ex){ MessageBox.Show(ex.Message);}y tendriamos lo siguientepara terminar esta primera parte paso a los posibles errores.Punto 1Verificar que la aplicación este diseñada para cualquier CPU, esto me mantuvo pensando un buen rato eso lo pueden ver en la siguiente ventana Clic derecho en el proyecto -> Propiedadesen esa ventana tienen que asegurarse que el parámetro "Destino de plataforma este en Any CPU" de lo contrario algunas conexiones no podrán realizarse.Punto 2 es posible que cuando uds lean esto las verciones de los drivers cambien, o quieran utilizar otro driver, ese parametro se cambia en función al siguiente valorEn caso de no funcionar pueden consultar al todopoderoso google por la cadena de conexión para el respectivo driverTambién se puede crear la cadena de conexión a traves del parámetro DSN que hay que configurar previamente, eso no lo voy a hacer acá por motivos que voy a explicar mas adelante.si gustan pueden pasarse por mi nuevo blog en el que voy a completar todo este proyectohttp://desarrollandomitesis.blogspot.com

10
3
Chronos, Un framework de desarrollo de aplicaciones MDI
Chronos, Un framework de desarrollo de aplicaciones MDI
Hazlo Tu MismoporAnónimo12/26/2011

Buscando en la red encontré un framework de desarrollo de aplicaciones basado en el patron de diseño Model-View-ViewModel Me atrajo su simpleza (de diseño, por q por adentro es algo complicado), y ademas es bastante completo, al descargarlo tiene un documento adjunto de como usarlo para implementar nuestras propias aplicaciones pero aca les muestro como añadir una ventanalink: Chronosuna ves descargado instalamos la extencion Chronos.VisualStudio.Extensions.vsix, luego abrimos el proyecto y nos encontramos con la siguiente estructura en el explorador de soluciones.en la carpeta Views del proyecto Chronos.Modules.Sample damos clic derecho -> agregar -> nuevo elemento y buscamos Chronos Workspace Window una ves echo eso nos crea la siguiente pantalla basicacon el siguiente codigo por debajoantes de modificar esto nos dirigimos al proyecto Chronos.Modules.Navigation mas especificamente a la clase NavigationRoutes.cs la cual luce de la siguiente formajusto debajo de la linea: public const string Companies = "Configuracion/Empresas";agregamos la siguiente : public const string Prueba = "Configuracion/Prueba";esta linea es una constante que almacena la ruta de navegaciónahora volvemos a VentanaPrueba.xaml.cs donde agregamos dos usingsusing Chronos.Modules.Navigation;using Chronos.Modules.Sample.ViewModels;luego cambiamos las lineas [MapNavigationContent("WindowNavigationRoute"][DefineViewViewModel(typeof(VentanaPrueba), typeof(VentanaPruebaViewModel))] por las siguientes[MapNavigationContent(NavigationRoutes.Prueba)][DefineViewViewModel(typeof(VentanaPrueba), typeof(VentanaPruebaModel))] si compilamos ahora nos salta el error:Error 6 No se puede encontrar el tipo o el nombre de espacio de nombres 'VentanaPruebaViewModel' (¿falta una directiva using o una referencia de ensamblado?) C:UsersCarlosDownloadsChronosv2_0-Beta3-Src_NET4_0Chronosv2sourceModulesSampleViewsVentanaPrueba.xaml.cs 28 56 Chronos.Modules.Samplelo que quiere decir que nos falta el ViewModel del proyecto, para eso nos dirigimos a la carpeta ViewModel damos clic derecho -> Agregar -> Nuevo Elemento lo que nos crea lo siguienteAhí agregamos los siguientes usingsusing System.ComponentModel;using Chronos.Modules.Navigation;using Chronos.Modules.Sample.Models;using Chronos.Presentation.Core.Windows;tambien la siguiente region#region · Command Actions · protected override void OnInquiryAction(InquiryActionResult<PruebaEntity> result){} #endregion y por ultimo cambiamos la linea:public sealed class VentanaPruebaModel : WorkspaceViewModel<ModelClass> por: public sealed class VentanaPruebaModel : WorkspaceViewModel<PruebaEntity>y eso es todo lo que hay que modificar en el ViewModel solo nos falta el Model o lo que muchos conocen como entidad, que no es mas que una clase común con unas pequeñas características, asi q nos dirigimos a la carpeta Models del proyecto Chronos.Modules.Sample y damos clic derecho -> agregar -> Nuevo Elemento, y escogemos clase, y le damos el nombre de PruebaEntity.agregamos el siguiente using:using System.ComponentModel;y cambiamos la cabesera de la clase de:class PruebaEntitya:class PruebaEntity : INotifyPropertyChanged, IDataErrorInfo y por ultimo(ahora enserio) agregamos los siguientes metodos en sus respectivas regiones#region · INotifyPropertyChanged Members · public event PropertyChangedEventHandler PropertyChanged; #endregion #region · IDataErrorInfo Members · public string Error{ get { return null; }} public string this[string columnName]{ get { return null; }} #endregion #region · ChangeTracking · protected virtual void OnPropertyChanged(String propertyName){ if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); }} #endregionCon todo eso ya deberia compilar a la perfeccion. pero obiamente todavia no podemos acceder a nuestra ventana, para solucionar eso nos dirigimos al proyeccto principal Chronos al archivo App.xaml y ubicamos el nodo<nRoute:NavigationNode Title="Configuración general">....</nRoute:NavigationNode>justo en medio en alguna parte añadimos la siguiente linea<chronos:CommandSiteMapNode Title="Prueba" SiteArea="Configuracion" Url="Configuracion/Prueba" />el parametro Url es el mismo q pusimos en el NavegationRoutes ahora si ya corre y pueden acceder a la ventana, obviamente no hace nada, pero eso lo dejamos para otro dia

18
0
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.