Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como c sharp

Aplicar LinQ a datos XML usando C#

Hoy voy a mostrar cómo se puede aplicar linq en datos XML junto con ejemplos de código c #. Esto se conoce como 'Linq To XML'. Supongo que ya está familiarizado con el uso básico de Linq. Si no, mi sugerencia será estudiar los conceptos básicos de Linq primero. Aquí, en este tutorial, mostraré las operaciones más básicas, como recuperar datos (seleccionar), insertar datos, borrar datos y modificar datos existentes desde y hacia el archivo xml utilizando linq. Data de muestra: Para este ejercicio simple, utilizaremos una estructura de archivo xml muy básica de la siguiente manera: Test1 Test2 Test3 Este archivo tiene un elemento raíz llamado 'estudiantes' que contiene un conjunto de elementos con la etiqueta 'estudiante', se refiere a cada estudiante en el conjunto de datos. Cada 'estudiante' tiene un atributo 'id' y un elemento interno 'nombre'. Para una estructura más comp...

Eventos de una Página Web (WebForm ASP.NET)

Este pequeño post es para aclarar algunos conceptos sobre el ciclo de vida de una página web ASP.NET (WebForm). Nota: A este post le iré agregando mas contenido poco a poco, con los propios comentarios de los lectores y mis experiencias diarias sobre el ciclo de vida y los distintos estados de una pagina. Eventos más importantes de la pagina en orden de ejecución:     PreInit     Init     Load     PreRender PreInit El evento PreInit ocurre antes de la inicialización de los controles de la pagina. Normalmente es usado para añadir dinámicamente controles a la pagina, porque añadiéndolos aquí garantizamos que a dichos controles se les apliquen adecuadamente los Skins del Theme definido (si no hemos definido ningún Theme daría un poco igual añadirlos aquí o en Init, por ejemplo). Además puede usarse para definir dinámicamente (programáticamente) la MasterPage y el Theme de la pagina. Init Este evento ocurre de...

Entendiendo los extensores en c sharp

Los métodos extensores son un recurso de C# a partir de la versión 3.0 y permite añadir métodos a tipos ya definidos sin tener que crear un tipo heredero, recompilar o modificar al tipo original de una forma muy sencilla y con una sintaxis casi idéntica a la forma tradicional de declarar un método. En otras palabras, si queremos añadirle una funcionalidad a una clase o tipo ya definido anteriormente, no tendremos que modificarla, al no ser que vayamos a usar variables privadas de la clase o cosas por el estilo. Se definen como métodos estáticos pertenecientes a una clase estática y no genérica; pero se llaman de la forma tradicional, como métodos de una instancia de una clase. Se les pasa como primer parámetro this seguido del tipo de la clase a la cual se va a añadir el método; aquí tenemos un ejemplo de añadirle un método a la clase String de .Net: public static class MyExtensions { public static int WordCount(this String str) { //Split separa la cadena en un ...

Método Parse() o los métodos de la clase Convert

Vamos arrojar un poco de luz sobre las diferencias entre utilizar el método Parse() de las estructuras de tipos de .NET o utilizar los métodos de la clase  System.Convert . En realidad parece que hacen lo mismo pero existe una gran diferencia.Supongamos que dejamos que un usuario introduzca un valor numérico por pantalla y queremos realizar cálculos con ese valor. Por lo tanto, el valor introducido por el usuario será del tipo System.String y deberemos convertirlo a un tipo de valor numérico, por ejemplo System.Int32 . En definitiva queremos saber que diferencia hay entre ejecutar estas dos lineas de código: int  valorA  =  Convert.ToInt32(valorUsuario) ; int  valorB  =  Int32.Parse(valorUsuario) ; Cuando utilizamos la segunda opción, el método Parse() , si el usuario no ha introducido ningún valor ( null ) recibiremos una excepción del tipo System.FormatException . Lo que indica que el  formato del argumento no cumple las es...

String Cuidado con ese tipo!

El tipo System.String, que como todos sabemos representa una cadena, es un tipo algo especial con el que hay que tener un poco de cuidado a la hora de menejarlo. Veamos en primer lugar una definición más o menos formal del tipo System.String: " El tipo System.String es un tipo por referencia e inmutable (de solo lectura) que representa una cadena de texto como una colección secuencial de caracteres Unicode (objetos System.Char)".  Para este artículo nos centraremos en la primera parte de la definición, es decir, en "El tipo System.String es un tipo por referencia e inmutable (de solo lectura) ...". ¿Que quiere decir que es inmutable? Un objeto inmutable es un objeto que no se puede modificar. Cuando creas, o cargas en menoria un objeto de este tipo, permanece con el mismo valor durente toda la vida del objeto. Veamos el siguiente fragmento de código:              string  miCadena  =...

Manejo de strings en C SHARP .NET

Hola csharpedianos, En este post veremos varios metodos aplicados al manejo de caracteres con la clase string. Un string es una cadena de caracteres, y hay que saber dominar todos estos caracteres y hacer con ellos lo que nos venga en gana. Es por eso que les traigo este post donde veremos algunas cosas interesantes que podemos hacer con esta clase string.  Código en C#  public static bool Contiene(string palabra, string cadena) { for (int i = 0; i <= palabra.Length-cadena.Length; i++) //Si encontramos dos letras iguales if(palabra[i]==cadena[0]) { bool contenida = true; //Recorremos la cadena desde la posición 1 //y comparamos con la palabra a partir de //la posición donde las dos letras iguales for (int j = 1; j < cadena.Length; j++) if (palabra[i + j] != cadena[j]) contenida = false; //Si esta contenida if(contenida) return true; } //Si no está contenida return false; } public static bool EsPalindromo(string s)...

Formatos con String.Format en C#

Todas las aplicaciones que desarrollamos en algún momento necesitan formatear algún tipo de datos, y no se a ustedes pero a mi siempre se me olvidan los formatos y como obtener los resultados de una u otra forma, es por eso que decidí hacer este post, y recopilar la mayor cantidad de formatos posibles, para buscarlos cuando necesite y ustedes puedan copiarlos ;=). Para formatear cadenas existe una clase especializada en el manejo de cadenas, esta clase se llama String, su nombre completo es System.String, ya que se encuentra en el namespace System. En esta clase vamos a encontrar una función llamada Format que se encargará de reemplazar el valor de un dato (entero, real, una cadena, un carácter, hasta de un objeto), por el formato que se especifique en el parámetro. En forma general, y aunque tiene varias sobrecargas, String.Format tiene la siguiente sintaxis: Formatos para números:   Tipo ...

Obtener imagen de html o url en .NET

 Hola Csharpedianos, hace tiempo quería escribir este post pero no había encontrado un ejemplo digno de ser mostrado en nuestro blog, hasta que mi amigo Edwin Rincon [un excelente programador entre otras cosas] me dijo, "he tío mira lo que hice" e ilumino las palabras de este bendito post. La idea es crear imagenes miniatura (Thumbnail) de una pagina web, teniendo solo su url. Para que rayos me servirá eso? Pues si estas leyendo este post es porque lo necesitas para algo o si no entonces?.       Para cumplir el objetivo de obtener una imagen miniatura de una pagina web desde C#, lo primero que tenemos que hacer es descargarnos esta clase AQUÍ ). Explicare los metodos uno a uno (Que comience la fiesta): Lo primero que tenemos  es este metodo el cual se encarga de llamar los procedimientos necesarios para que nuestro resultado sea el esperado, este recibe los siguientes parametros: Url :  La url de la pagina a la cual le queremos hace...

Serializar a JSON en .NET

En este articulo vamos a mostrar un ejemplo de como conseguir serializar clases de .NET en el formato de java script: JSON . Como verán a continuación es extremadamente simple. Vamos a realizar con VS2008 un proyecto de tipo web site de ASP.NET. Utilizaremos como librería cliente jQuery, por lo que necesitamos añadimos la referencia a la librería – que podemos descargar desde el sitio oficial de jQuery http://www.jquery.com/ . Tras descargar el archivo lo incluiremos en nuestro proyecto – en mi caso he incluido el archivo en la ruta “js/lib”. < script src ="js/lib/jquery.js" type ="text/javascript"></ script > También podemos referenciar jQuery directamente desde los repositorios de Google o Microsoft. < script src ="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type ="text/javascript"></ script > < script src ="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" ...

Limpiar los Textboxs de un WebForm en C SHARP

Hola Csharpedianos, en algunas ocasiones cosas tan sencillas como limpiar todos los textbox de un formulario nos complica la vida (y mas cuando son milesss) y nos puede tomar mucho tiempo hacerlo. Aquí les traigo una forma de lograr esto con solo un método: Control strWebForm = Page.FindControl("form1"); foreach (Control strControl in strWebForm.Controls) { if (strControl.GetType().ToString().Equals("System.Web.UI.WebControls.TextBox")) { ((TextBox)strControl).Text = string.Empty; } } Aquí les dejo una apelación de ejemplo que llena y limpia todos los textbox del formulario: Descargar Aquí. Espero que lo disfruten, compartan y comenten. ;) "Si se puede imaginar... se puede programar."

Agregar referencias web y locales en Csharp

Una referencia es un acceso a un recurso (Componente, Biblioteca de clases) o a servicios web para acceder a sus metodos, variables o tipos de datos publicos, los cuales realizan operaciones especificas dependiendo de los datos que pasemos o los metodos que llamemos. Hay varios tipos de referencias pero aqui solo veremos 2, las web que utilizamos para llamar webservices y las locales que utilizamos para llamar dll. Para agregar una referencia a una dll local lo que tenemos que hacer es lo siguiente: En el Explorador de soluciones , seleccione la solución a la que desee agregar la referencia. (Si no ve la solución en el Explorador de soluciones , seleccione Opciones en el menú Herramientas , haga clic en Proyectos y soluciones y, a continuación, haga clic en Mostrar solución siempre.   Click derecho sobre la solucion => Agregar Referencia (Add Reference). En la ventana que aparece escogemos la pestaña Explorar (Browse) y buscamos la ruta donde esta la dll que quere...

Forzar la descarga de un archivo desde Csharp

 En muchas ocasiones queremos que nuestro sistema descargue un archivo pdf o cualquier archivo  automaticamente y no se abra en el navegador ya sea porque es un requerimiento o nuestra conciencia nos dice que debe ser asi, sea cual sea el motivo aqui les dejo un codigo para que puedan descargar cualquier tipo de archivo.  Este metodo lo podran colocar en cualquier clase y descargar el archivo sin importar de que pagina sea llamado,  lo pueden colocar en una clase Utilidades por ejemplo.  Y es el siguiente: static public void Download(string patch) { System.IO.FileInfo toDownload = new System.IO.FileInfo(HttpContext.Current.Server.MapPath(patch)); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + toDownload.Name); HttpContext.Current.Response.AddHeader("Content-Length", toDo...

Encriptar y desencriptar columna en sql server y asp.net

Hola Csharpedianos, nevegando un poco por la red (como suelo hacerlo por 9 horas diarias de lunes a viernes) me encontre con algo muy interesante y que necesitaba por cierto y se trata de como encriptar y desencriptar una columna en sql server. Esto lo pueden utilizar para contraseñas, tarjetas de credito o lo que quieran. Les cuento que he copiado y pegado el post de la web cjorellana.net para ahorrarme lo de escribir, ademas de eso se trata este blog, compartir informacion. ;) Acá les proporciono un ejemplo de como crear una tabla de usuarios con el campo de Contraseña encriptado, luego veremos desde una pagina aspnet como podemos validar el usuario contra dicha tabla. 1.) Crear el master key /* Crea la key master */ USE northwind GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'SQLAuthority' GO 2.) Crear el certificado de encriptacion /* Crea certificado de encriptacion */ CREATE CERTIFICATE EncryptTestCert WITH SUBJECT = 'SQLAuthority...

Consejos de usabilidad que intentaré seguir.

 Navegando en internet (asi como cuando uno navega), encontre un articulo muy interesante en la pagina de auxilioblog y como la esencia de internet es comaprtir la informacion lo he copiado sin su permiso para compartirlo con ustedes (todo lo que hago por el blog) exponiendome a que me bloqueen o me demanden. Pero como dice una frase celebre que define este blog: "El Conocimiento es un Don Divino que se incrementa a medida que se COMPARTE.". El articulo trata sobre usabilidad y como mejorar nuestra web .  Aqui se los dejo: 1.- Las caras captan la atención de los usuarios: El mapa de eye traking muestra como los usuarios fijan su atención en la cara del bebe Eye-tracking heat map of a baby looking directly at us, from the UsableWorld study . Eye-Tracking mapa de calor de un bebé que mira directamente a nosotros, desde el estudio UsableWorld . Cuando el bebé mira hacia el contenido aumentan los usuarios que se fijan el título y el texto Nos fijamos en l...

Acceder a archivos y carpetas de la aplicacion en c#

Muchas  veces necesitamos acceder a las distintas carpetas que de nuestra aplicación en tiempo de ejecución, ya sea para saber si existe  un archivo, copiarlo, borrarlo, moverlo, listar lo que tiene cierta carpeta o para lo que sea que queramos hacer esto. Para acceder a las carpetas de la aplicación necesitaremos el espacio de nombres System.IO : “El espacio de nombres System.IO contiene tipos que permiten leer y escribir en los archivos y secuencias de datos, así como tipos que proporcionan compatibilidad básica con los archivos y directorios.”. “Utilice la clase Directory para operaciones típicas como copiar, mover, cambiar de nombre, crear y eliminar directorios. También puede utilizar la clase Directory para obtener y establecer información de DateTime relacionada con la creación, el acceso y la escritura de un directorio.” Dependiendo de nuestra necesidad podremos usar las clases para hacer lo que queramos con las carpetas y archivos dentro de la aplicación...