31 de agosto de 2015

Test

Expresiones regulares
DataTable dt = dal.PoblarCBX_DPTO();
 DataRow dr = dt.NewRow();
 dr["Departmento"] = Convert.ToInt32("0");
 dr["Departmento"] = "-- Seleccione Departamento --";
 dt.Rows.InsertAt(dr,0);
 cbxDpto.DataSource = dt;
 cbxDpto.DisplayMember = "Departmento";
 cbxDpto.ValueMember = "Departmento";
 cbxDpto.SelectedIndex = 0;
Expresiones regulares
string DUI = @"\A[0-9]{8}(-)[0-9]{1}\Z";

string NOMBRE = @"\A((\w+)(\s?)(\w+))*\Z";

string MONEY = @"\A$?(\d{1,3},?(\d{3},?)*\d{3}(.\d{0,3})?|\d{1,3}(.\d{2})?)\Z";

string CORREO = @"\A(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@" + 
                            @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\." + 
                            @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|" +
                            @"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})\Z";

string telefono = @"\A[0-9]{8}\Z";

string telefonoGuion = @"\A[0-9]{4}(-)[0-9]{4}\Z";

string telefonoCodigo = @"\A(()[0-9]{3}())[0-9]{8}\Z";

string telefonoCodigoGuion = @"\A(()[0-9]{3}())[0-9]{4}(-)[0-9]{4}\Z";

Regex regAge = new Regex(@"^\d{2}$");

Regex regUrl = new Regex(@"^((https?|ftp)://|(www|ftp)\.)[a-z0-9-]+(\.[a-z0-9-]+)+([/?].*)?$");

Regex regCompany = new Regex(@"^[A-Z]([a-zA-Z0-9]|[- @\.#&!])*$");
Aceptar solo letras en un textbox
private void txtLetras_KeyPress(object sender, KeyPressEventArgs e){
 if (!(char.IsLetter(e.KeyChar)) && (e.KeyChar != (char)Keys.Back) && (e.KeyChar != (char)Keys.Space))
    {
    MessageBox.Show("Solo se permiten letras", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Information);
    e.Handled = true;
    return;
    }
}
Aceptar solo numeros en textbox
private void txtNumeros_KeyPress(object sender, KeyPressEventArgs e){
 if (!(char.IsNumber(e.KeyChar)) && (e.KeyChar != (char)Keys.Back))
    {
    MessageBox.Show("Solo se permiten numeros", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Information);
    e.Handled = true;
    return;
    }
}
Aceptar numeros double
private void textBox1_KeyPress(object sender, KeyPressEventArgs e){
 if (textBox1.Text.Contains(‘.’)) {
  if(!char.IsDigit(e.KeyChar)){
   e.Handled = true;
   }

  if (e.KeyChar == ‘\b’){
   e.Handled = false;
   }
  }
 else {
  if(!char.IsDigit(e.KeyChar)){
   e.Handled = true;
   }

  if(e.KeyChar==‘.’ || e.KeyChar==‘\b’)
   {
   e.Handled = false;
   }}}
Crear tabla SQL DDL con llave primaria
IF EXISTS(SELECT * FROM SYSOBJECTS WHERE TYPE ='U' AND NAME ='TIPO_USUARIO')
DROP TABLE TIPO_USUARIO
GO

CREATE TABLE TIPO_USUARIO(
idTipoUsuario int Identity(1,1),
descTipoUsuario varchar(20) NOT NULL,
CONSTRAINT PK_TIPO_USUARIO PRIMARY KEY(idTipoUsuario)
)
GO
o bien se puede especificar la llave primaria fuera de la definicion de tabla
ALTER TABLE employee ADD CONSTRAINT PK_TIPO_USUARIO PRIMARY KEY(idTipoUsuario)
Crear tabla SQL DDL con llave primaria y llave foranea
IF EXISTS(SELECT * FROM SYSOBJECTS WHERE TYPE ='U' AND NAME ='USUARIO')
DROP TABLE USUARIO
GO

CREATE TABLE USUARIO(
idUsuario char(8)NOT NULL,
idTipoUsuario int NOT NULL,
nomUsuario varchar(35) NOT NULL,
habilitado bit NOT NULL,
fechaExpCarnet smalldatetime NOT NULL,
fechaVencCarnet smalldatetime NOT NULL,

CONSTRAINT PK_USUARIO_idUsuario PRIMARY KEY(idUsuario),

CONSTRAINT FK_USUARIO_idTipoUsuario FOREIGN KEY (idTipoUsuario) REFERENCES TIPO_USUARIO(idTipoUsuario)

)
GO
de nuevo puede alterarse la tabla fuera de la definicion de esta
alter table libros
  add constraint FK_libros_codigoeditorial
  foreign key (codigoeditorial)
  references editoriales(codigo)
  on update cascade
  on delete cascade;
lunes, agosto 31, 2015

25 de agosto de 2015

Creando WCF Service Library con IIS Host

Antes de empezar les dejo esta respuesta de un foro que habla acerca de la diferencia entre WCF Service Application y WCF Service Library


En esta entrada vamos a crear un proyecto WCF Service Library que se va hospedar en IIS utilizando BasicHTTPBinding y MexHTTPBinding, recuerda que este tipo de proyectos te permite hospedar el servicio en diferentes host sin al parecer ningún tipo de limitaciones, por mi parte solo he tenido el gusto de utilizar WCF en IIS así que la entrada se va tratar de eso, si quieren ver el caso en que se utiliza WCF Service Application para crear un servicio WCF y hospedarlo en IIS les dejo esta entrada

Crearemos un nuevo proyecto de tipo WCF Service Library con las especificaciones que se muestran en la imagen


si vemos nuestro Solution Explorer tendremos los siguientes archivos de los cuales vamos a eliminar los dos archivos seleccionados


para luego agregar una clase(WCFAppcs) y una interface(IWCFApp) a nuestro proyecto, el Solution Explorer muestra como debería estar de momento el proyecto


este es el código de la interface IWCFApp


este es el código de la clase WPFAppcs que implementa la interface IWPFApp


Parecería que todo esta bien y muy alegres presionamos F5 para probar nuestro sencillisimo servicio WCF recién creado y... obtenemos un bonito y llamativo mensaje de error


Para solucionarlo se debe abrir el App.config y modificar las siguientes lineas con los valores indicados en la figura


Hecho lo anterior, debemos reconstruir la aplicación(rebuild solution) y luego presionar F5 con lo cual ahora se obtiene el WCF Test Client sin ningún problema


Se debe agregar un archivo de texto al proyecto, el nombre sera WCFAppcs.svc, tomar en cuenta la extension, debe ser .svc y al abrir este archivo colocar la siguiente linea de codigo que corresponde con el namespace.clase de nuestro proyecto  <%@ ServiceHost Service="WcfApp.WCFAppcs" %>


Hecho lo anterior, se debe construir la solución antes de continuar, nos dirigimos al IIS Manager(inetmgr) y desplegamos la carpeta Sites para luego sobre Default Web Site dar click derecho y seleccionar Add Application... tal como se muestra en la imagen 


a continuación especificar Alias y la dirección física de nuestro proyecto, para el ejemplo utilizo los datos que muestro en la imagen, el Physical path corresponderá con la dirección donde tu guardaste el proyecto


Damos click en el botón OK y vemos nuestro site disponible en el IIS Manager


El ultimo paso es dar click derecho sobre nuestro proyecto(desde Solution Exporer) y en el panel izquierdo seleccionamos Build para luego cambiar el Output path de bin\Debug a solamente bin\ tal como se muestra en la figura


Por ultimo debes agregar un Web.config a tu proyecto y copiar exactamente lo que tienes en el App.config, para hacerlo fácil copia el App.config que ya tienes en el proyecto y pegalo de nuevo solo que en vez de dejar el nombre App-copy.config cambiale a Web.config...ahora si ya podemos probar el servicio desde el navegador web con la siguiente dirección http://localhost/aliaz/WCFAppcs.svc


y listo, hay personas que crean un proyecto distinto solo para agregar el WCF Service, si te parece bien puedes hacerlo asi, a mi me parece que es llenar la solución con un proyecto de mas.