Pages

Showing posts with label Spanish. Show all posts
Showing posts with label Spanish. Show all posts

Friday, September 1, 2017

Construye tu propio buscador en C# usando Azure Search

Azure Search es un servicio en la nube de Azure para poder hacer búsquedas indexadas sobre cualquier tipo de datos que creemos,tiene habilidades de filtrado basado en el sintaxis de  Lucene  y tiene muchas características  que esperarías de Solr o ElasticSearch.

Te mostrare como configurar tu servicio, como introducir datos y realizar búsquedas sobre esos datos. Nos saltaremos la construcción de un UI, eso lo puedes hacer usando tu tecnología favorita. Pero te mostrare el código en C# para comunicarse son el servicio de  Azure Search.


Parte 1 - Configurar tu Azure Search
Para esto necesitas una cuenta de Azure, Puedes aplicar por una cuenta gratuita para realizar tus pruebas por un periodo de tiempo. Una vez que tengas tu cuenta creada entra al portal de azure:


Una vez ahí haz click en el símbolo '+' para adicionar un nuevo servicio 
- Luego en la caja de búsqueda teclea: 'azure Search' y presiona Enter. 
- Luego haz click en 'Create'  en la parte inferior del Tab.



A continuación pongamos un nombre a nuestro servicio, el servicio puede tener mas de un indice (o tipo de datos) así que le pondremos un nombre general. Selecciona tu tipo de suscripción y haz click en  'Create'



Ahora tienes que esperar unos momentos hasta que el servicio sea deployado. Una vez creado podrás ver el servicio listado en tu dashboard. Entra al servicio haciendo click en su nombre.



Monday, August 28, 2017

Haz tu propio C# snippet para generar Unit Tests

El objetivo de los 'snippets' es evitarnos el tener que teclear lo mismo cada vez, y si tu estas actualmente haciendo Unit tests, no estas ya cansado de escribir  arrange, act y assert ?

Si eres como yo, entonce la respuesta es SI. y no solo eso sino que hay otras areas en las que podemos mejorar nuestra experiencia de programacion. Asi que toma esto como un ejemplo introductorio a los snippets, y creemos uno para nuestro unit test.

Lo que queremos lograr es que con un par de teclas podamos obtener esto:


Y que el cursor se enfoque en la parte WhatAreWeTesting (que estamos testeando)  de el nombre de la funcion para que podamos cambiarla, luego con un TAB para a la parte 'ExpectedResult' (Resultado esperado) y luego despues de un ENTER final que el cursor vaya a la linea de arrange para poder empezar a escribir nuestro codigo.

Un snippet es solo un archivo XML que tiene una estructura especifica, lo puedes crear en cualquier editor de texto, en este caso yo usare el Visual Studio Code .

Asi que abrimos cualquier Folder en VS Code:


y añadimos un nuevo archivo XML:


Tuesday, June 20, 2017

Usar Azure functions en C# con seguridad Activada

Azure functions nos permiten correr codigo 'sin-servidor'. Veremos como, y para este ejemplo simularemos el problema de tener que correr codigo cuando un pago es hecho por un cliente, el cdigo para hacerlo esta en Azure y la llamada vendria de nuestra aplicacion de pago.
Asi que para asegurarnos de no recibir llamadas fraudulentas , vamos a activar la seguridad de nuestra Azure function y te mostrare como hacer una llamada segura y revisar el log de Azure de esas llamadas. Asi que, comencemos.

Parte 1 - Azure function

Para crear nuestra funcion azure dirigete a:
portal.azure.com
e ingresa tus credenciales, si no tienes una cuenta azure, puedes obtener una cuenta de prueba gratis.

Una vez dentro del porta; haz click en el botón '+' y luego en 'Compute' y en la opción FuctionApp.



Ahora pondremos el nombre de nuestra nueva función  ‘licensefunctions’ y hacemos click en ‘Create’ (Si el nombre no esta disponible, escoge uno que veas conveniente)


Tuesday, June 6, 2017

Creacion de Proyectos .NET usando el .NET CLI

El .Net CLI o Interfaz de Linea de comandos. Son un grupo de comandos multiplataforma empaquetados como una herramienta que vien como parte de la instalacion de .NET Core.

Esto logra que tengamos el mismo conjunto de herramientas en distintos OS (Windows, Linux, IOS) y tambien nos permite programar mas facilmente an la plataforma .Net cuando no tenemos Visual Studio disponible.
Osea que podemos codificar usando cualquier IDE liviano, como Visual Studio Code, y lograr tareas que llegan a ser complicadas cuando se hacen a mano, de manera automatica.

Este conjunto de comandos nos permiten crear la base para nuestras aplicaciones basados en plantillas disponibles, bajar las dependencias del proyecto, adicionar o quitar dependencias, compilar y correr nuestras aplicaciones, etc.. 

En este Post vamos a usar Visual Studio Code para poder mostrarles facilmente los archivos creados por el CLI.
En caso de que no estes familiarizado con Visual Studio Code, necesitas crear un folder de trabajo que es donde armaras tu aplicacion, y ese folder tienes que abrirlo desde VS Code como el folder principal, esto se hace asi:
- Abre  VS Code
- Ve a File > Open Folder



Luego, seleccionas tu folder y haz click en 'Open Folder'


Una vez abierto el folder, para mostrar la terminal de consola presiona 'ctrl + `'
Y esta se abrira en la parte inferior de la ventana de trabajo en VS Code:


Thursday, June 1, 2017

BOT para resolver expresiones en C# usando el engine de Python (Bots 101)

Este ejemplo sirve como una introduccion a el uso de Microsoft Bots y su manejo de dialogos, y tambien para mostrar que podemos usar funcionalidades de Python desde C#.


Pre-requisitos

El primer paso es obtener todos los prerequisitos para crear un proyecto de tipo BOT usando el Microsoft Bot Framework en Visual Studio.
Estos pasos tambien se pueden ver en este link:

https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-quickstart

- Instala Visual Studio 2017 para Windows (Si no lo tienes puedes bajar e instalar la version community de VS 2017 gratis).

- Baja la plantilla de una aplicacion tipo Bot (Bot Application template) de aqui: 

http://aka.ms/bf-bc-vstemplate 

e instala la plantilla grabando el archivo .zip en el directorio de plantillas de  proyectos de Visual Studio 2017.Este folder esta generalmente ubicado aqui:

%USERPROFILE%\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#\

Sunday, May 21, 2017

Traducir en una Web API de ASP.Net Core con C# usando Servicios de Google

Vamos a implementar una Web API para traducir un texto en ASP.Net Core usando: No las librerias de Google API (que  tienen un costo) sino que el servicio publico de traduccion de Google. Asi que, basicamente vamos a interactuar con ese servicio como si fueramos un cliente http.

Comenzaremos creando una nueva applicacion ASP.NET Core, la llamaremos  'babel':


Luego seleccionamos que sea de tipo Web API


Cuando termine la creacion de nuestro proyecto tendremos una applicacion con un controllador de ejemplo, asi que adicionaremos el nuestro:


Wednesday, January 14, 2015

DataAnnotations Cheat Sheet (esp)

He buscado por todo lado un Cheat Sheet como este para tener todas las opciones a mano pero no pude encontrar nada. Asi que arme uno propio, espero que les sirva de ayuda:


DataAnnotations Cheat Sheet v1.0


Nombre: AssociationAttribute

Descripcion: Especifica que un miembro de la entidad representa una relación, como una relacion de llave foranea.
Uso: [Association(Name, OtherKey, ThisKey)]
Ejemplo:
[Table(Name = "Clientes")]
public partial class Cliente
{
    [Column(IsPrimaryKey = true)]
    public string ClienteID;
    // ...
    private EntitySet<Pedido> _Pedidos;
    [Association(Storage = "_Pedidos", OtherKey = "ClienteID")]
    public EntitySet<Pedido> Pedidos

    {
        get { return this._Pedidos; }
        set { this._Pedidos.Assign(value); }
    }
}

Nombre: BindableTypeAttribute
Descripcion: Especifica si es que un tipo es tipicamente usado para hacer un   binding.
Uso: [BindableType(IsBindable = bool)]
Ejemplo:
  [BindableType(IsBindable = false)]
  public enum EstadoDeEntidad
  {
    Detached = 1,
    SinCambios = 2,
    Adicionado = 4,
    Borrado = 8,
    Modificado= 16,
  }


Copiar filas en la misma tabla solo cambiando el Id (TSQL) (esp)

Vamos a analizar diferentes escenarios en los cuales necesitamos copiar/clonar filas de una tabla a esa misma tabla, Solo cambiando el valor de un campo, Que en este caso sera el campo Id, Usando Microsoft SQL Server.

Supongamos que tenemos el AntId (Id original Id de el que queremos copiar las filas, en este caso este Id puede estar en varias filas o solo en una) y el NuevoId ( El Id nuevo que queremos poner en las filas que vamos a copiar/clonar)

Caso 1 - conocemos el nombre de la tabla y de todos sus campos:

El primer caso es de una tabla de la cual sabemos de antemano su nombre y su estructura, así que podemos escribir una consulta como la siguiente:

DECLARE @OldId int
DECLARE @NuevoId int
SET @AntId =13456 -- ejem.
SET @NuevoId =45687 -- ejem.

INSERT INTO MiTabla(Id,ColumnaA,ColumnaB,ColumnaC)
SELECT @NuevoId ,ColumnaA,ColumnaB,ColumnaC
FROM MyTable WHERE Id=@AntId 


Monday, September 16, 2013

Paginacion en CodeIgniter con Terminos de Busqueda (esp)

En este artículo tratare de explicar cómo usar la librería de paginación de CodeIgniter con un termino de búsqueda de tal manera que los enlaces de la paginación sean de la manera:

Controller\accion\termino_de_busqueda\pagina.

La librería de paginación de Codeigniter nos facilita el trabajo de mostrar largas listas de datos generando los enlaces de las paginas siguientes de manera automática, pero no tiene funciones que nos permitan incluir en este listado una búsqueda dinámica y paginar esos resultados.

El problema reside en que al incluir la búsqueda en la paginación, no existe una función específica para incluir la búsqueda en los enlaces de las paginas siguientes. Como una complicación extra solucionaremos este problema paginando el resultado de una consulta de un subconjunto de datos. Y obteniendo los enlaces de la manera:

Controller\accion\id\termino de búsqueda\pagina.

Tenemos la siguiente situación:

 - Lista de Lugares.
 - Lista de Personas que pertenecen a un lugar.
 - Se desea listar las personas pertenecientes a un lugar de manera paginada y sobre ese listado poder hacer búsquedas paginadas por apellido.

Wednesday, June 5, 2013

Como configurar Codeigniter para conectarse a SQL Server 2008 (esp)

Este post es para aclarar el procedimiento para habilitar la conexión a Microsoft SQL Server desde Codeigniter ya que recientemente tuve la necesidad de hacerlo y me encontré con varios problemas y ninguna explicación clara, Para estas instrucciones tomen en cuenta que utilicé XAMPP en el servidor, pero se puede aplicar a cualquier otro stack que utilicen:

PARA WINDOWS XP

Para windows XP tenemos que limitarnos a usar php version 5.3.x, mas adelante les indicare por que, por lo tanto si usáran XAMPP, la version 1.7.3 funciona perfecto.Versiones antiguas de Xampp.

1er Paso - Instalar el SQL Native Client de Microsoft:

Para Windows XP es suficiente la versión SQL Native Cliente de 2008 para la version de el driver que instalaremos en el paso 2, pero se puede instalar la del 2012 tambien si se desea. La version del cliente para 2008 pueden descargarlo Aqui

Monday, May 27, 2013

Como reducir el registro de SQL Server 2008 (esp)

Este es un problema muy comun, el registro de SQL Server crece en exceso y puede llegar a llenar un servidor pequeño. En versiones Anteriores el problema era mas complejo, pero desde la version 2008 el reducir este archivo se puede lograr con el siguiente script 100% garantizado:

Use mi_db
GO
 
Alter Database mi_db Set Recovery Simple
GO

Alter Database mi_db Set Recovery Full
GO

DBCC SHRINKFILE ('mi_db_Registro', 1)
GO

Donde "mi_db" es el nombre de tu base de datos y "mi_db-registro" es el nombre del regsitro de tu base de datos, puedes verificarlo en las propiedades de la base de datos.

Y eso, amigo mío, ¡es todo!

Friday, May 5, 2006

Manejo de MDI childrens en VB.NET (esp)

El manejo de ventanas ha cambiado mucho desde la versión 6.0 de visual basic, en ese entonces se tenia una referencia directa a las ventanas como objetos instanciados, pero en .NEt esto ha cambiado y aunque algunos no estén de acuerdo yo creo que para mejor.
Sin embargo hay maneras de obtener una funcionalidad similar en el manejo de ventanas, en esta ocasión veremos estos principios orientados al manejo de formularios MDI.
Como sabemos las aplicaciones MDI consisten de un formulario Padre dentro el cual se despliegan las demás ventanas llamadas HIjas.
Un problema común con el que nos encontramos a veces con formularios MDI es el no poder saber si los formularios hijos ya se crearon o no, y en el caso de estar creados como pasarles un mensaje o hacer referencia a objetos dentro de estos. Además esta solución viene útil cuando se necesita que un formulario hijo se comunique con otro formulario hijo. Y para controlar que no haya formularios hijos repetidos si es que eso deseamos. Bueno la manera de implementación es la siguiente:

Primer Paso - Modulo compartido:

Como primer paso debe crear un modulo en el cual declare los objetos de los formularios a usar, por ejemplo:

Module ventanas

    Public abmacactivo As abmacactivo
    Public abmacaseguradora As abmacaseguradora
    Public abmacnumeracion As abmacnumeracion
    Public abmacseguro As abmacseguro
End Module 
 
En esta caso tendriamos cuatro ventanas que deseamos controlar.