by Olgeddie Ferrer

Hola Chicos!!gusto en saludarles.

Actualmente en las aplicaciones para garantizar una parte de la seguridad de nuestra web se recomienda utilizar algún tipo de Captcha, como el siguiente y aquí te mostrare como:

  • Para comenzar creemos un proyecto web:1
  • Yo por ejemplo utilice esta plantilla para facilitar el demo, pero por supuesto si van a personalizar su web son totalmente libres:2
  • En este caso trabajaremos sobre la vista que esta en : Views/Account/Login.cshtml:3
  • La idea en este caso es que quien se logee coloque el captcha, comenzamos agregando la referencia CaptchaMvc en nuestro proyecto :4

Allí buscamos la referencia solicitada, y la instalamos a nuestro proyecto.

  • Ahora en nuestro controller en el action correspondiente al login(agregan el usign):   7
  • Ahora en mi vista, en mi caso luego del login ya que allí lo deseo colocar:   8
  • @Captcha(5), significa que es un captcha de letras y tendrá 5 caracteres, pueden colocarle mas o menos según lo requieran.
  • y ya con eso tenemos lo siguiente en la vista:

5

  • e incluso funciona la validación del mismo:

6

 

Con eso ya esta listo y tienen implementado la funcionalidad, espero haber ayudado!!

Hola chicos, en este post les explicare como resolver un error que me salía cuando intentaba correr mi app de Xamarin (mi primera app), recuerden que para instalar este complemento deben buscar el instalador aquí.

El error que me salía cuando intentaba compilar mi primera app luego de instalar el paquete de Xamarin era:xam1

Y la solución es la siguiente, se dirigen a las propiedades de su proyecto de la siguiente manera:

xam2

En la última opción encontraran las propiedades y cambiaremos las siguientes opciones:

xam3

Recuerden que eso dependerá de que emulador tengan instalado… yo hice la prueba con v2.3 o v3.1 ya que son los que trae por defecto el SDK y me funciono bien, espero les sirva en su momento la solución. 😀

xam4

Hola amigos, muchas veces se nos presenta la situación en que debemos consolidar información nueva con otra va existente y no tenemos manera rápida de ver cuales registros ya existen y cuáles no, claro hablando desde el escenario que la data este en Excel y quieran hacer la operación allí mismo.

Bueno lo que haremos será tratar de ver que personas no existen en una lista de empleados por ejemplo buscando su cedula por un conjunto de datos, primeramente vemos que tenemos una pequeña lista de empleados:1

Ahora haremos un conjunto de datos, seleccionamos la celda que vamos a comparar que en este caso es la de cedula, nos vamos a la pestaña “formulas”, y seleccionamos “define name”, a ese conjunto le colocaremos el nombre de “cedulas”, tal y como ven en la imagen (recuerden que eso lo hacen en una hoja del documento de Excel, en otra tendrán los datos a comparar):

2

 

Ahora en la hoja 1 de nuestro documento resulta que tenemos el nuevo listado de personas tal y todo vemos, hay personas que existen en la lista vieja y otras que no, como comparar de manera rápida tomando en cuenta que tengamos más de 500 registros?, ya lo veremos:

3

 

Luego nos situamos en una nueva celda en la hoja1, y colocamos la siguiente formula:

=IF(ISNA(VLOOKUP(A6;cedulas;1;FALSE));»Ingreso»;»existente «)

Explicando la formula; estamos diciendo que busque en el conjunto de cedulas si existe el valor de A6.

4

 

Esta es una manera rápida de ubicar valores repetidos o existentes de una data que nos den y queramos hacer el proceso en Excel, si su Excel está en español pueden convertir la formula AQUI.

Saludos y espero les sea útil…

Muy buenos días chicos, esta vez les traigo como migrar los proyectos de desarrollo que tengamos en nuestro server de Team Foundation a un nuevo server, bien sea por una migración de servidor a un nuevo sistema operativo o simplemente un cambio de hardware.

Comencemos, primero que nada ubicarse en el viejo server de Team Foundation, y seleccionar nuestra colección y presionamos “Stop Collection” como podemos apreciar en la siguiente imagen:

tf1

Luego de darle Stop, presionamos “Detach Collection” :

tf2

 

Y presionamos “Detach” y “Next” hasta que finalice el proceso y se muestre la siguiente pantalla:

tf3

Ahora que ya detuvimos la collection, nos dirijimos a SQL Server del servidor (viejo), y nos vamos a la Base de Datos correspondiente al proyecto de grupo que estamos migrando en este caso “Collection2” y generamos un .bak (respaldo completo) de dicha BD:

tf4

Ahora, SI NOS VAMOS AL SERVIDOR NUEVO y desde SQL Server vamos a restaurar la BD que respaldamos (.bak), recuerden copiar el archivo generado en la carpeta  “C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup” y proceden a restaurar.

A continuación, en EL NUEVO SERVIDOR abrimos Team Foundation Server, y vamos a presionar “Atach”, seleccionamos el Servidor y nos saldrán los proyectos de grupo que podemos atachar o incluir:

tf6

Ahora ya está listo podemos ver nuestro proyecto de grupo en el nuevo server, e incluso si accedemos de manera web podemos ver los cambios que tenían:

tf7

 

Eso fue todo, espero les sea muy útil en algún momento que hagan el proceso en sus servidores :D.

 Hola chicos, esta vez les dare una solución al momento de hacer diferente tipos de ranking o muestra de resultados, en algunas oportunidades utilizamos vistas que guardamos con la consulta del ranking y listo solo la consultamos desde nuestra aplicación, pero ya es cuestión de comodidad y forma de trabajar de cada quien.

Les diré la herramienta y sus diferentes formas de mostrar resultados, comenzamos:

  • RANK, devuelve el rango basado en el criterio de ordenación. Cuando dos filas tienen el mismo valor de la orden, se proporcionará mismo valor para las dos filas y el ranking se incrementa después de la misma sumando su posición, el criterio de orden se establece por un order by:

SELECT  RANK () OVER ( order  by  nota desc)  AS  RANK, nombre, profesion, nota FROM asistentes

rank1

SELECT  RANK () OVER ( order  by  nota asc)  AS  RANK, nombre, profesion, nota from asistentes

rank2

SELECT  RANK() OVER (PARTITION by profesion order  by  nota )  AS  RANK, nombre, profesion, nota from asistente

rank4

Otra manera de usar un rank es agrupando por un criterio y por cada criterio colocar el ranking como vemos se agrupan por profesión pero en cada una de ellas hay una posición de sus participantes.

  • DENSE_RANK, es muy similar a la anterior, lo que las hace diferente es que no guarda la posición de las columnas sino que sigue el consecutivo del ranking, como verán:

SELECT  DENSE_RANK() OVER ( order  by  nota asc)  AS  RANK, nombre, profesion, nota from asistentes

rank3

Bueno espero les sea útil en algún momento… 😀

Hola chicos, en este post les daré unos querys que son muy útiles al momento de formatear una tabla para manejarla a nuestra conveniencia y según sea el requerimiento que necesitemos, manos a la obra:

  •  Para comentar algúna línea:

–aqui tu comentario

  •  Regiones en SQL, muchas veces queremos ordenar un poco el código para tener más control y buscarlo más rápido:

 begin –Nombre de tu region

 –codigo correspondiente

  end

  •  Sustituir ID’s, algunas veces debemos consolidar información cruda y para poder lograr la escalabilidad de la aplicación necesitamos relacionar tablas con sus ids, vale destacar que al principio tendremos solo texto que debemos relacionar con sus correspondientes ID’s:

Update a

set a.campo1 =

case a.campo1

when a.campo1 then b.id

end

from tabla1 a, table2 b where a.campo1 = b.descripcion

  •  Sustituir un campo según contenga un contenido, si queremos sustituir un campo según lo que tenga escrito y no compararlo con otra tabla:

Update a

set a.campo1 =

CASE a.campo1

 WHEN ‘lo que contenga’  THEN ‘0’

 END

from tabla1 a

where a.campo1 = ‘lo que contenga’

  •  Validar si un campo está en NULL y sustituirlo,

Update a

set a.campo1 = ISNULL(a. campo1, ‘por lo que vayas a sustituir’),

from tabla1 a

  •  Colocar la fecha actual en un campo, algunas veces hacemos el proceso automático pero necesitamos la fecha en que fue ejecutado y guardarlo en un campo:

Update a

a.campo1 = ISNULL(a. campo1, GETDATE( )),

from tabla1 a

  • Reiniciar contador de un campo Integer identity, algunas veces tenemos un id autoincrementable, hacemos pruebas insertando y bueno ese id va incrementando y así borres los registros de la tabla el continua la cuenta anterior, para reiniciar ese valor (el 0 es donde quieres comience a contar):

DBCC CHECKIDENT (tabla1, RESEED, 0)

  •  Pasar los registros de una tabla a otra, algunas veces trabajamos con tablas que no son las definitivas con el fin de formatearlas, cuando terminemos el tratamiento de esos datos y queramos pasarlos a su tabla definitiva:

 INSERT INTO tabladef SELECT * FROM tabla_temp

  •  Eliminar registros validando un campo nulo:

 DELETE FROM tabla1 WHERE  (id IS NULL)

  •  Si te sale el error datos truncados, ya sea que estas insertando desde ETL’s o desde query, es porque la longitud en un campo destino es más pequeño que el origen.

 

  •  Si te indica al momento de llenar una tabla el error de conflicto en el campo “tal” es porque tienes una relación y el campo que estas colocando no está asignado al ID de la tabla con que tiene relación, si tienes en la tabla1 el idcampo=2, entonces ese id = 2 debe estar en la tabla con la cual hagas la relación.

Saludos!! espero les sea muy util para mi lo fue!! comenten!!

Hola chicos en esta oportunidad compartiré varias utilidades que son importantes cuando queremos hacer extracción de datos, macros de validación o consolidación de información desde nuestro documento Excel:

  •  Verificar la última fila escrita:

Dim ultima As Integer

ultima = (Cells(Rows.Count, 1).End(xlUp).Row)

  •  Verificar celda vacia:

If IsEmpty(Range(val)) Then

 vacio = True

End If

  • Cambiar color de fondo de un rango de celdas:

  Range(«A1:i1»).Interior.Color = RGB(255, 255, 255)

  •  Cambiar color de letra de un rango de celdas:

 Range(«A1:i1»).Font.Color = RGB(0, 0, 0)

  •  Desbloquear hoja:

ActiveWorkbook.Unprotect («Password»)

  •  Activar hoja, para seleccionarla:

Dim sheet1 As Worksheet

Set sheet1 = ActiveWorkbook.Sheets(«hojaaseleccionar»)

Ó

sheet1.Activate

  •  Insertar columna:

Columns(«o:o»).Select

  Application.CutCopyMode = False

 Selection.Insert

  •  Eliminar celda y rodar a la izquierda

 Range(«S:s»).Select

    Selection.Delete Shift:=xlToLeft

  •  Copiar y pegar en hojas diferentes:

Worksheets(«hoja1»).Range(«e44»).Copy

 Worksheets(«hoja2»).Range(«e4»).PasteSpecial xlPasteAll

  •  Activar otro libro (abierto):

Windows(«documento.xlsx»).Activate

  • Agregar hoja y renombrarla:

Worksheets.Add.Name = «hojanueva»

  • Utilizar la fecha actual:

Worksheets(«hoja2»).Range(«e4») = Date

  • Rellenar una celda con un color amarilla:

Range(«s2»).Interior.Color = QBColor(14)

Espero les sea muy util… 😀

Hola chicos!! Me imagino muchos de ustedes han querido hacer alguna vez un documento de formato .pdf que permita entrada de datos y si no lo han pensado es una manera muy elegante de hacer una planilla… comencemos:

  • Deben hacer su modelo de plantilla en Word, con el fin de que le coloquen el logo que ustedes desean y la estructura que ustedes prefieran, y lo guardan como pdf (Guardar como – extensión .pdf).
  • Deben Decargar Adobe Acrobat Professional 8.0 desde AQUÍ, allí esta las indicaciones y todo los detalles.
  • Yo hice uno bastante sencillo para el tutorial:

1

  • Ahora, abrimos Acrobat y seguimos estos pasos:
    • Quitamos el primer asistente, y seleccionamos formularios-Crear uno nuevo.
    • Aparecerá un menú donde seleccionaran la 2da opción.
    • Luego, presionar Continue, hasta que aparezca la opción de seleccionar el documento que queremos utilizar de fondo.
    • Presionamos Next, y veremos nuestro documento de fondo que creamos listo para comenzar el formato de edición.

2

  • Luego que nos abra el documento, verán del lado derecho una zona llamada :”Library”, donde seleccionaran los objetos que necesiten implementar, yo seleccione un textfield, y lo dibujan en su documento donde quieren que permita la entrada de datos:

3

 

  • Para editar propiedades y color, botón derecho sobre el objeto-Paletes, y seleccionamos layout, Font, border, y lo que quieran modificar.
  • Vale destacar que cuentan con textfield, numeric,date, email, checkbox, radiobutton, listbox,botón print, y una cantidad de elementos que nos haría presentar una planilla o formato muy elegantemente.
  • Cuando ya tengan su documento listo, presionan guardar, colocan la ubicación y el nombre que desean tenga:

4

 

  • Luego lo abren desde la ubicación que guardaron con reader ya podrán editar los campos que ustedes acaban de habilitar para ello:

5

 

Espero les haya sido de gran utilidad este articulo! Comenten y saludos!! Para descargar el archivo y lo prueben AQUÍ

Frame en Silverlight c#

Hola chicos, en esta oportunidad les traigo como cargar varias páginas contenidas en la misma página principal, lo cual es muy útil para un menú donde queremos utilizar el mismo diseño de toda la estructura de la página y que solo cambie el formulario que queremos mostrar en un área definida por nosotros.

 Esto es posible gracias al objeto “Frame”, el cual será el contenedor donde las demás páginas podrán renderizar, manos a la obra:

  • Lo primero que haremos será crear un proyecto de Silverlight :

1

  • En el MainPage.xaml colocaremos lo siguiente(sustituyen toda la etiqueta del Grid):

<Grid x:Name=»LayoutRoot» Background=»White»>

        <Grid.ColumnDefinitions>

            <ColumnDefinition Width=»67*»/>

            <ColumnDefinition Width=»233*»/>

        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>

            <RowDefinition Height=»39*»/>

            <RowDefinition Height=»211*»/>

        </Grid.RowDefinitions>

        <TextBlock Grid.Column=»1″ FontSize=»30″ TextAlignment=»Center» VerticalAlignment=»Center» > Titulo de la pagina</TextBlock>

        <StackPanel Orientation=»Vertical» Grid.Row=»1″>

            <Button x:Name=»enlace1″ Click=»enlace1_Click» Height=»30″ Margin=»5″>enlace 1</Button>

            <Button x:Name=»enlace2″ Click=»enlace2_Click» Height=»30″ Margin=»5″>enlace 2</Button>

            <Button x:Name=»enlace3″ Click=»enlace3_Click» Height=»30″ Margin=»5″>enlace 3</Button>

        </StackPanel>

        <sdk:Frame x:Name=»navContent»  Grid.Column=»1″ Grid.Row=»1″ HorizontalAlignment=»Center» HorizontalContentAlignment=»Stretch» VerticalContentAlignment=»Stretch»  Source=»pagina1″>

            <sdk:Frame.UriMapper>

                <sdk:UriMapper >

                    <sdk:UriMapping Uri=»pagina1″ MappedUri=»/page1.xaml» />

                    <sdk:UriMapping Uri=»pagina2″ MappedUri=»/page2.xaml» />

                    <sdk:UriMapping Uri=»pagina3″ MappedUri=»/page3.xaml» />

                 </sdk:UriMapper>

            </sdk:Frame.UriMapper>

         </sdk:Frame>

    </Grid>

  • Y resultara algo así:

2

  • Yo creé 3 paginas como pueden ver en la imagen: page1.xaml, page2.xaml, page3.xaml las cuales serán las que cargaran en el frame, si se fijan el frame dice : (pagina1) es porque en su propiedad Source tiene pagina1, eso significa que cargara conteniendo page1.
  • Continuamos, en el mainpage.xaml.cs, falta colocar los eventos click de los botones, para que allí coloquemos la funcionalidad para navegar, agregamos lo siguiente en el .cs:

  private void enlace1_Click(object sender, RoutedEventArgs e)

        {

            this.navContent.Navigate(new Uri(“pagina1”, UriKind.Relative));

        }

         private void enlace2_Click(object sender, RoutedEventArgs e)

        {

            this.navContent.Navigate(new Uri(“pagina2”, UriKind.Relative));

        }

         private void enlace3_Click(object sender, RoutedEventArgs e)

        {

            this.navContent.Navigate(new Uri(“pagina3”, UriKind.Relative));

        }

  • Si notan, lo que agregamos en cada botón fue:

        this.navContent.Navigate(new Uri(«pagina2», UriKind.Relative));

ya con eso tenemos un fiel ejemplo de como utilizar frame en Silverlight, adjunto el proyecto AQUÍ, espero sea de utilidad .

3

Hola chicos, en esta oportunidad compartiré con ustedes como enviar correos electrónicos desde su aplicación en C# para Silverlight, ya que estuve haciéndolo y no me funcionaba como quería ( estaba fallando el envío), pero ya funciona y quiero compartir con ustedes mi código para que no les pase lo mismo.

Comenzamos, pueden crear un servicio web desde su aplicación Silverlight o lo hacen dentro de su misma página si solo lo utilizaran una vez, para el servicio (.svc) coloquen el siguiente código:

[OperationContract]

        public int SendEmail(string subject, string text, string toAddress, string fromAddress)

        {

            int result;

            try

            {

                MailMessage message = new MailMessage();

                message.From = new MailAddress(fromAddress);

                message.Subject = subject;

                message.Body = text;

                message.IsBodyHtml = true;

                message.To.Add(new MailAddress(toAddress));

                SmtpClient server = new SmtpClient();

                server.Port = 587;

                server.Host = «smtp.gmail.com»;

                server.EnableSsl = true;

                server.UseDefaultCredentials = false;

                server.Credentials =

                  new NetworkCredential(«tucorreo@dominio.com», «contrasenia»);

                server.Timeout = 100000;

                server.Send(message);

                return result = 1;

            }

            catch (Exception)

            {

                return result = 2;

            }

Como verán, este método retorna 1 para cuando ha funcionado bien y 2 cuando por alguna razón fallo el envío, ahora bien, para utilizarlo desde sus páginas no olviden importarlo por medio del using:

using proyecto.servicio;

Así como también instanciarlo:

nombreservicio SERVICIO;

   public pagina()

        {

            InitializeComponent();

            SERVICIO = new nombreservicio ();

        }

Luego de eso, para llamarlo desde su método:

  SERVICIO.SendEmailCompleted += (g, d) =>

                       {

                           if (d.Result == 1)

                           {

                               //envio el correo

                           }

                           else

                           {

//fallo envio

                           }

                       };

SERVICIO.SendEmailAsync(«Subject», «cuerpo del mensaje», «email para», «email desde» );

Y eso fue todo, Espero les sea útil, buen dia amigos…

Nube de etiquetas

Diseña un sitio como este con WordPress.com
Comenzar