Archive

Posts Tagged ‘programacion en .net’

SourceTree – Manejo de ramas

Arquitectura básica de una Aplicación MVC

mayo 6, 2016 1 comentario

Cuando desarrollamos una aplicación  medianamente compleja tenemos que considerar desde el inicio aplicar una buena arquitectura en nuestro proyecto ya que si no lo hacemos y el proyecto crece se hace insostenible y prácticamente toca volverlo hacer.

Los primero que recomiendo es nombrar nuestros proyectos de una manera simple, anteponiendo el nombre tecnico de nuestro proyecto y luego el componente al que estamos accediendo ({nombredelproyecto}.{componente})

2016-05-06_0028

La razón de hacerlo así es por que podemos diferenciar fácilmente cuales componentes son propios y cuales hacen parte de un nuget o un componente externo.

Idealmente debemos siempre utilizar una Api con un componente de datos donde lanzaremos los querys o utilizaremos el entityframework para conectarnos a la base de datos.

2016-05-06_0036

Hay 3 componentes transversales que seguramente vamos a tener que usar tanto en la Api como en el sitio Web, uno de ellos son las entidades que usan en todo el proyecto tanto simples como compuestas, por otro lado tenemos un proyecto de herramientas o utilidades que va contener diferentes métodos para temas de seguridad, encriptación, entrada y salida de datos, conexión con  servicios externos etc… y por ultimo tenemos nuestros proyecto de recursos donde vamos a tener todas la internacionalización de nuestra aplicación.

2016-05-06_0052

Para el caso de la nuestro componente de recursos recomiendo separar lo que serian las palabras principales, de los mensajes, las ayudas y textos especiales, también archivos o imágenes si las vamos a guardar ahí.

 

2016-05-06_0101

 

Para conectar nuestro sitio Web con el Api necesitamos crear un proyecto conector que los consuma y transforme la respuesta de la Api en entidades para ser usadas en el MVC por eso creamos un proyecto Services.

2016-05-06_0106

Por ultimo usando carpetas de la solución podemos agrupar los proyecto si lo queremos para que este mas ordenado.

2016-05-06_0109

 

Con esta estructura tendremos un proyecto preparado cambios y para crecer en el tiempo, pero obviamente esta estructura sigue siendo básica por lo que un proyecto mas grande requeriría de algunos cambios y componentes adicionales.

Algunos proyectos opcionales que podemos agregar:

  1. Utilidades (Utils): que contenga diferentes rutinas para limpiar textos, o para convertir formatos o incluso rutinas recursiva.
  2. Ayudantes (Helpers):  que nos permitan controlar diferente validaciones y codigo HTML desde MVC.
  3. Variables Globales(Globalvars): un proyecto que contenga constantes y variables que se carguen en ciertos instantes en el proyecto y se usen en muchas partes.
  4. Cache: Este proyecto para nuestra Api se va encargar de manejar memoria temporal para diferentes elementos que se usan constantemente en la aplicación y es ideal no buscar en la base de datos a cada momento.

En otro post espero explicar una arquitectura mas compleja y que sea funcional

Código de ejemplo Aqui!

 

 

 

 

 

 

Leer excel en silverlight

enero 11, 2013 Deja un comentario

 

Depues de buscar varios componentes para poder leer un excel en silverlight el mejor que he encontrado es este:

 

OpenFileDialog  dilgFile= new OpenFileDialog ;
FileStream a = dilgFile.File.OpenRead();

//get the stream of the file selected for user
StreamReader sr = new StreamReader(a);

//vars for excel
List workSheets;

//intizialice Excel

ExcelOpenXmlReader excelreader2007 = ExcelReaderFactory.CreateOpenXmlReader(sr.BaseStream) asExcelOpenXmlReader;

excelreader2007.WorkBookFactory = new WorkBookFactory(); 

var workBook1 = excelreader2007.AsWorkBook();

workSheets = (List<IWorkSheet>)workBook1.WorkSheets;

 

Luego podemos facilmente leer las hojas cada celda y columna de esas hojas de manera:

 

//chek campo for campo

for (int j = 0; j < workSheets[0].Columns.Count; j++)

{

string strValue = workSheets[0].Rows[i].Values[j].ToString();

}

pueden descargar el código del siguiente Link:

http://exceldatareader.codeplex.com/releases

 

Tambien sirve para asp y para aplicaciones de escritorio.

 

Que hay del Visual studio 2010?

noviembre 23, 2009 Deja un comentario

Hola a todos quisiera preguntarles que opinan del visual studio 2010, ha recibido muchas críticas de parte y parte.

La mayoría aseguran que esta es una versión con muchas mejoras y que nos hará la vida mucho más fácil a todos los desarrolladores para grandes proyectos de software. Sin embargo para las empresas sobretodo las Pymes es muy precipitada una nueva versión de la plataforma, estar comprando licencias es muy costoso y estar capacitando a los empleados resulta ser algo tedioso y costoso.

Que opinan ustedes?? Por favor dejen su comentario y respondan la encuesta.


 

 

Generación de archivos con C# .Net

Generación de archivos con C# .Net


Este es uno de los aspectos más básicos y útiles de la programación, casi todas las aplicaciones necesitan generar archivos o leer archivos del sistema operativo para alguna configuración o para implementar algún sistema de seguridad.

Para poder entender este procedimiento tengamos en cuenta algunas características de .Net:

–      Primero .Net es 100% orientada a objetos por esta razón casi todos los procedimientos implican invocar clases y declarar objetos de estas clases para proceder.

–      Otra característica es la utilización de NameSpace. Qué son? Básicamente identificadores que permiten el acceso a colecciones de clases y métodos.

–      Para este ejemplo podemos crear un proyecto de consola que más sencillo, aunque este procedimiento se aplica a casi cualquier tipo de proyectos de C# .Net

Imagen 1

Yo le puse como nombre ConsolaPrueba el proyecto aparecerá con el siguiente código:

using System;
using System.Collections.Generic;
using System.Text;  // Estos son los NameSpace

namespace ConsolaPrueba // creacion de un namespace para el proyecto
{
   class Program // la clase basica
  {     
        static void Main(string[] args) // metodo principal
         {
         }
  }
}

Tengamos en cuenta que lo primero que tenemos que hacer es incluir en la lista de namespace System.IO ( ósea agregar using System.IO;)  este identifica todas las clases que permiten generar y leer archivos entre otras.

Que código implementamos?.

Que hace el programa?.

Diseñaremos algo bien sencillo y los que deseen pueden mejorarlo con algunos ejercicios que propongo más adelante.

Digamos al usuario que ingrese un texto que será guardado.

Con el siguiente código:

Console.WriteLine(“Ingrese información a guardar “+Environment.NewLine);

¿Qué es eso?

La clase console tiene un método llamado WriteLine que permite imprimir en pantalla y la clase Environment tiene un método llamado NewLine que genera una salto de línea.

Nota: pueden solo escribir cw y presionar la tecla Tab 2 veces.

Ahora creemos el objeto de la clase diseñada para generar archivos. En realidad existen varias clases pero la más fácil de manejar es una llamada StreamWriter.

Agregamos entonces el siguiente código:

StreamWriter oArchivo = new StreamWriter(@"C:\Prueba.txt");

El Constructor de esta clase tiene varias sobrecargas pero la que utilizaremos será la que nos solicita ingresar un path o ruta del archivo, la ruta más sencilla “C:\”  J.  Y el nombre del archivo quise ponerle Prueba.txt.

Pues entonces que nos falta?.

Solo tenemos que leer la información que ingrese el usuario y guardarla :).

Agregamos entonces el siguiente código:

string info = Console.ReadLine();
oArchivo.Write(info);
oArchivo.Close();
Console.WriteLine(Environment.NewLine);
Console.WriteLine("Archivo guardado!");
Console.Read();

Qué es eso?

Pues bueno primero declaramos una variable tipo string (cadena de caracteres) llamada info donde con el método ReadLine de la clase console, se guardara la información que ingrese el usuario.

Luego con el método Write escribimos en el archivo que creamos y después invocamos el método Close. Por que?. Por que todo lo que escribamos en el archivo se guarda en una memoria temporal cuando le damos Close se transmite a la ruta que le habíamos dado.

Luego imprimimos una línea para que se separe el texto y por ultimo le ponemos el método Read() para que espere que se presione una tecla.

Sera que funciona?.

Creo que todos deben tener lo siguiente :

Imagen 2

Entonces……. Hay que probarlo.

Imagen 3

Imagen 4

Imagen 5

Listo ahora que funciona puede mejorarlo, como por ejemplo pidiendo ingresar la ruta donde se guardara el archivo y también la extensión.

Si desean leer archivos solo deben utilizar la clase StreamReader, con el método Read.

Recuerden que este procedimiento se realizaría de la misma manera en otros tipos de proyectos como WinForms.

Espero que les sirva.

Miguel Angel Teheran