image.png

[Csharp] LINQ to Excel… Introducción.

 

Hola que tal, antes de profundizar en el tema de LINQ to Excel, considero necesario que veamos los términos respecto a LINQ. Languaje Integrated Query (LINQ) básicamente es un lenguaje de consultas nativas semejantes a SQL soportada por los lenguajes de la plataforma .NET.

LINQ nos proporciona los operadores de consulta estándar que nos va a permiri filtar, enumerar, etc. Su objetivo principal de LINQ es permitir que todo el código hecho en Visual Studio como pueden ser los datasets, XML u objetos de bases de datos que sean también orientados a objetos.

Para poder desarrollar nuestra aplicación de LINQ to Excel, primeramente debemos de descargar el SDK de la siguiente dirección: http://code.google.com/p/linqtoexcel/

Con el fin de ejemplificar el uso de LINQ to SQL, realizaremos un proyecto de consola dentro del entorno de desarrollo de Visual Studio (ya sea 2010 o 11 beta).

En este caso vamos a crear un documento de Microsoft Excel 2010 con la siguiente estructura.

image

Posteriormente será necesario crear una clase denominada Personas, la cual contendrá las propiedades (o bien el nombre de las columnas) de nuestro documento de Excel, tal como se mira en la siguiente codificación:

   1: namespace ConsoleApplication1

   2: {

   3:     public class Persona

   4:     {

   5:         public string Nombre { get; set; }

   6:         public string Apellidos { get; set; }

   7:     }

   8: }

 

Es necesario copiar el documento de Excel y darle la propiedad que deseamos una copia a la hora de compilar nuestro proyecto.

image

Las referencias de las Dlls que vamos a requerir son las siguientes:

  • LinqtoExcel.dll
  • Remotion.Data.Linq.dll

Posteriormente escribimos la siguiente sintaxis:

   1: using System;

   2: using System.Linq;

   3:  

   4: namespace ConsoleApplication1

   5: {

   6:     class Program

   7:     {

   8:         static void Main(string[] args)

   9:         {

  10:             //Nos permite obtener el directorio donde se encuentra nuestra aplicación, seguida del nombre del documento de Excel

  11:             var directorio = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "Ejemplo.xls");

  12:             //Utilizamos Linq to Excel y asignamos al QueryFactorio el directorio donde se encuentra nuestro documento de Excel

  13:             //para comenzar a utilizarlo.

  14:             var book = new LinqToExcel.ExcelQueryFactory(directorio);

  15:             //Realizamos un query para obtener todos los registros que se encuentran en la hoja de Excel

  16:             //Recuerde que la clase Persona contiene las propiedades (columnas) que se encuentran dentro del archivo de Excel

  17:             var qry = from x in book.Worksheet<Persona>()

  18:                       select x;

  19:             foreach(Persona p in qry)

  20:             {

  21:                 //Mandamos imprimir a consola el nombre y el apellido

  22:                 Console.WriteLine(p.Nombre + " " + p.Apellidos);

  23:             }

  24:             Console.ReadKey();

  25:         }

  26:     }

  27: }

 

Al ejecutar la aplicación verá lo siguiente:

image

Espero que haya quedado clara la explicación/

Cualquier duda o comentario es bien recibido.

Saludos.

Samuel Arellano

[Comunidades Perú] DreamSpark, Visual Studio y recursos

 

El Domingo 25 de Marzo tuve la oportunidad de estar charlando con los amigos de las comunidades de estudiantes de Perú acerca del programa Dreamspark, de Visual Studio y el sin fin de recursos que pueden encontrar en los portales de Microsoft para poder aprender y adentrarse al maravilloso mundo del desarrollo de software.

Recuerden instalar el Visual Studio 2010 y el SP1 para poder practicar amigos.

 

Saludos

Samuel Arellano

[CSharp] ¿Cómo organizar usings en nuestros proyectos C# con Visual Studio?

 

Visual Studio suele ser un IDE que nos proporciona muchísimas herramientas a nosotros los desarrolladores para crear aplicaciones de cualquier índole, desde Web, Windows, Consola, etc. Creo que a veces de tanta facilidad que nos brinda, olvidamos ciertas cuestiones como puede ser el manejo adecuado y correcto de los usings.

La primera pregunta que puede surgir es, ¿Qué es un using?. La palabra using la podemos referir a dos ámbitos:

  • Primeramente como directiva, es decir, cuando se utiliza para crear alias de los espacios de nombres o bien para realizar la importación de tipos definidos de otros espacios de nombres.

  • También puede ser utilizada como instrucción que puede definir el ámbito al final de un objeto que se destruye (Motivo para otro post).

En nuestro ejemplo estaremos manejando a using desde el primer punto.

Cuando nosotros desarrollamos aplicaciones en .NET con Visual Studio 2010, este nos brinda ciertos espacios de nombre que considera básicos para comenzar a crear nuestros proyectos,  pero la pregunta es ¿Realmente requerimos todos esos espacios de nombres? Veamos un ejemplo sumamente básico, sí el famoso Hola Mundo en Consola.

Espero que de ahora en adelante mediante esta explicación logremos hacer un código más legible y sobre todo que sea utilizando los espacios necesarios para el funcionamiento adecuado de nuestros proyectos.

 

Saludos,

Samuel Arellano

[MS Events] Desarrollo de Aplicaciones para Facebook con .NET (C#)

El día 15 de Marzo del presente año, tuve la oportunidad de dictar una charla acerca del desarrollo de aplicaciones para Facebook, utilizando el SDK para C# de esta red social (el registro del evento en Microsoft lo encuentras Aquí.

Espero sea de utilidad este Screencasts y cualquier duda que tengan respecto al tema, no dejen de postear su comentario.

Diapositivas

También dejo el video de la charla.

[Avanet Radio] Generadores de código para proyectos en Visual Studio con C#

En este episodio traté el tema de Generación de código en proyectos desarrollados en Visual Studio con C#, compartí mi experiencia utilizando algunas herramientas y como podemos ser más productivos a la hora de desarrollar proyectos de software.

Entrando en materia, podemos comentar que el tema de generación de código viene desde la existencia de los primeros compiladores que se encontraron disponibles en el mercado.  Hoy en día, sin temor a equivocarme los generadores de código toman un papel sumamente importante dentro de la ingeniería de software, ya que se encuentran muchos de ellos, por ejemplo para generar pantallas, reportes, así como la parte de acceso a datos de nuestros proyectos. Aunque cabe destacar que la mayoría de estas herramientas son de pago, también existen herramientas gratuitas que nos pueden facilitar la generación de código como puede ser MyGeneration, NHibernate o el mismo Entity Framework que podemos tener disponible desde la versión Express de Visual Studio 2010.

Sin duda alguna la ventaja de un generador de código es poder agilizar el desarrollo de software, ahorrar tiempos , etc.

A continuación el podcast. Recuerda que tus comentarios son importantes, déjalos en el post

Recursos:

MyGeneration

SubSonic

GenCode: del buen amigo Eloy Silva (Perú)

Saludos,

Samuel Arellano

[SQL Server 2012] Características descontinuadas en SQL Server 2012

 

 

Con la llegada de SQL Server 2012, la mayoría de los desarrolladores que día a día tenemos que convivir con el motor de base de datos, así como aquellos DBA’s (Administradores de Bases de Datos), nos hacemos la pregunta de si una versión actual soportará características anteriores de versiones como 2005 o 2008.

Todo cambio tecnológico tiene su riesgo, y no obstante con las versiones de SQL Server. A continuación les comparto las características que ya no tendrán disponibles en la versión 2012.

  • Active Directory Helper Service: Los componentes que han sido removidos dentro de la parte de directorio activo son: sp_ActiveDirectory_Obj, sp_ActiveDirectory_SCP y sp_ActiveDirectory_Start. Es importante señalar que no se encuentra ninguna característica en SQL Server 2012 que sustituya a los componentes anteriormente comentados.

En el caso de Reporting Services en SQL Server de 64 bits, cabe mencionar que desde la versión SQL Server 2008 R2, el componente ya no admitía servidores basados en Itanium, los cuales se ejecutaban anteriormente en Windows Server 2003 (si mal no recuerdo). Esto es sumamente importante ya que si queremos instalar o actualizar SQL Server en un equipo con dichas características tendremos que empezar por actualizar nuestro sistema operativo por un Windows 2008 Server R2 como mínimo.

SQL-DMO de SQL Server Express Installation

Se ha eliminado este soporte que se encontraba anteriormente en las versiones de SQL Server 2008 Express, (es aquí donde entran los expertos de SQL Server, a aclarar bien esta característica jeje)

También se han eliminado ciertas herramientas que anteriormente contabamos con SQL Server 2008 como son:

  • La herramienta de configuración de superficie (SAC).
  • Se realizaron ajustes y nuevas características al componente de configuración de SQL Server, así como al Management Studio, Reporting Services, etc.

Si quieres conocer más acerca de las consideraciones a tomar en cuenta sobre la instalación o actualización de tu SQL Server, puedes encontrar más detalle en el artículo de Discontinued SQL Server Features in SQL Server 2012 del cual es basado los comentarios emitidos en este post.

Cualquier duda o comentario es bien recibido

Samuel Arellano

 

image.png

[Windows Azure] ¿Qué es Windows Azure?

 

Como definición de Windows Azure podemos decir que es la plataforma de cómputo en la nube que ofrece Microsoft. Si recordamos el post anterior de la serie de Windows Azure, podemos concluir que se trata de una nube pública de tipo plataforma como servicio (PaaS).

Podemos entender por servicio un sitio web o bien valga la redundancia, un servicio que realice el procesamiento de información. Un punto importante a considerar es que podemos acceder a los servicios o a los datos almacenados mediante una API HTTP dentro de los centros de datos de Microsoft o bien fuera de ellos. Por si fuera poco, otra de las ventajas que nos ofrece Windows Azure es que de manera transparente para el usuario nos crean 3 replicas de las aplicaciones y los datos, en caso de un conflicto (o catástrofe) se puedan recuperar de manera automática la información contenida en los centros de datos.

Los centros de datos de Microsoft proporcionan el hardware, redes y la infraestructura de hospedaje de aplicaciones y datos. Podemos decir que Microsoft cuenta con una diversidad de centros de datos los cuales contienen miles de servidores que ejecutan una versión de Hyper-V modificado para Windows Azure. Es importante explicar que Hyper-V nos proporcionará la virtualización para el servidor, siento esta una característica de ejecutar diversos Sistemas Operativos en el servidor. Como nota podemos decir que cada máquina virtual corren una versión de Windows 2008 modificada y adaptada para los servicios de cómputo en la nube.

image

 

Por otro lado podemos decir que Windows Azure proporciona kits de desarrollo para crear servicios y almacenamiento de datos que utilizan la nube. Windows Azure SDK y Tool for Visual Studio proporcionan las plantillas que se encontrarán disponibles en Visual Studio para el desarrollo sencillo de cómputo en la nube. El SDK incluye APIS para acceder a los datos y los servicios disponibles en la nube W.A. También se incluye un emulador para poder realizar pruebas de manera local.

Recurso: Descarga el SDK de Windows Azure para .NET

image

Cabe mencionar que también podemos contar con el portal de WIndows Azure el cual nos permitira realizar la publicación de nuestras aplicaciones de cómputo en la nube de Windows Azure. A su vez Windows Azure también proporciona las herramientas para los desarrolladores Open Source (PHP y Java), con los SDK’s para cada una de las diversas plataformas.

Por último podemos concluir que Windows Azure es una plataforma pensada para que aprovechemos nuestros conocimientos en desarrollo de software con tecnologías como .NET, PHP o Java, y partiendo e esos conocimientos montar nuestras aplicaciones en la nube de Microsoft. Como un toque final se puede enumerar una de las ventajas respecto a la competencia es el SLA (contrato), el cual únicamente nos dará de cargo lo que se consuma en nuestra aplicación.

 

Espero que esta información sea de utilidad.

Saludos

Samuel Arellano

[Windows 8] Recursos para el desarrollo de aplicaciones Metro en Windows 8

 

Qué tal amig@s,

Windows 8 Customer Preview ha llegado y con el un sin fin de nuevas características que pueden ser una ventaja competitiva tanto para los consumidores, así como para nosotros los Desarrolladores de Software. Un punto importante de este nuevo sistema operativo, es el cambio de paradigma respecto al escritorio tradicional, al cual estabamos sumamente acostumbrados a visualizar. Ahora debemos de entender y comprender el funcionamiento del estilo metro y de como podemos aprovechar las bondades de Windows 8 para ofrecer a los usuarios o consumidores de nuestros desarrollo, la mejor experiencia de usuario posible.

A continuación les dejo un listado de recursos, los cuales servirán de parte aguas para que puedan adentrarse al maravilloso mundo del desarrollo sobre Windows 8.

Recursos Iniciales:

* Windows 8 Customer Preview (ISO)

* SDK y Herramientas de Desarrollo

* Aprenda a crear aplicaciones estilo Metro

Recursos en Inglés para ponerse super pro a un nivel medio:

* Getting started

* Differentiating Metro style apps

                     * Tools for Metro style app development

                     * Metro style app reference

                     *  End-to-end examples and white papers

                     * Concepts and architecture

                     * Planning apps

                     * Developing basic Metro style apps

                    *

Working with tiles, badges, and toast notifications.

                                        * Selling apps

                     * Tools for Metro style app development

Espero que estos recursos les sirvan para crear su curiosidad y empiecen a desarrollar aplicaciones para Windows 8

Saludos,

Samuel Arellano