martes, 18 de noviembre de 2014

Programacion C# manejo de un Xml (Crear y Leer)

Introducción

Antes De empezar me gustaría hablar de lo que es xml para ello usare de referencia un post anterior  XML Y JSON la primera parte del post habla sobre xml y concepto a lo cual trataremos aqui


Xml


Para poder hacer manejo de un archivo xml en c# debemos llamar a uso dos namespace 




System.io como dije antes nos permite trabajar archivos (copiar, pegar ,cortar ,abrir ,elminar)
mientra que systems.xml nos permiten usar los documentos xml desde leerlo hasta crearlos 


Escribir un XML

En Concreto pasaremos a ver como seria el metodo de escribir un xml



Intanciamo la clase xmltextWriter y le decimos en su sobre carga que sera la ruta dada por el usuario  que validamos antes  y la segunda sobrecarga que la pasamos como null es el tipo de codificacion que en este caso tomara por defecto la del S.O



Se inicia el documento, este coloca la etiqueta xml con su vercion y codificacion



Declaramos que los nodos, sub nodos del xml estaran regido por identacion esto lo hacer mas amigable visualmente al usuario

Se define los espacios  por identar

Escribimos el nodo principal del documento

Escribimos los sub nodos



Cerramos el documento , el nodo principal y el archivo.

Lectura del XML


un poco de conocimiento extra...


MSDN:Representa una lista de objetos fuertemente tipados a la que se puede obtener acceso por índice. Proporciona métodos para buscar, ordenar y manipular listas.

Con el metodo add() agregamos elementos a la lista
las lista pueden ser de los tipos de datos que uno decea.



Para crear un lector del xml intanciamos la clase y en la sobrecarga le pasamos la ruta del archivo xml



Para recorrerla de principio a fin sin quedar el programa en bucle infinito ni dar error declaramos un while que terminara solo si se llega al fin del archivo en xmsr (eof = end of file)




verificamos con la propiedad booleana  (isstarelement)si el nodo que estamos ahorita es inicio de nodos


Verificamos su nombre con la propiedad name es la etiqueta que queremos leer


una vez sepamos que es el nodo que queremos leer  saltamos un nodo y agregamos a la lista  por el metodo add la lectura de indexada de cada uno de los nodos por su nombre



Cerramos el documento 

retornamos la lista que contiene la lectura de todos los nodos

Mostrando los datos de la lectura del xml

Cuando nuestro metodo termino retornamos la la lista con la lectura de los nodos ahora
veremos como podemos mostrarle al usuario los datos de la lectura de ese xml que están en una lista de string


Ejemplo


Manejo de XML


Ejercicio 


Crea tu propio xml y leelo modificando este programa



lunes, 20 de octubre de 2014

Programacion C# Control Menu

Introduccion


El control Menu permite desarrollar los menús presentados tanto estática como dinámicamente en las páginas web ASP.NET. Puede configurar el contenido del control Menu directamente en el control o puede especificar el contenido enlazando el control a un origen de datos.

 En un menú que se muestra de forma dinámica, sólo las partes que especifique son estáticas, mientras que sus elementos de menú infantil se muestran cuando el usuario hace click del ratón sobre el nodo padre.

Aplicacion

Usamos este control cuando queremos que nuestro diseño no sea desordenado y se mas amigable con el usuario. de esta amanera podemos englobar opciones de nuestra aplicación a la largo y ancho de nuestro control y mostrar los valores aparir de nodos padres e hijos de nuestro menu.

los nodos padres son los que son mostrados en la barra del menu directamente y estos pueden o no contener otros nodos que son llamados nodos hijos dentro de este menu. los nodos hijos pertenecen a un nodo padre y pueden contener a otros hijos




Para el menuSTrip existen elemento que pueden ser nodos y otros que solo seran controles a su vez los nodos o controles que pueden contener hijos pueden tener eventos  como por ejemplo evento dobleclic  evento mouseEnter entre otros vasta con revisar sus eventos en el cuadro de propiedades.

para colocarlo en el form solo basta con arrastrarlo y de imediato podremos trabajar en el





Controles que soporta el el menu 


exiten cuatro controles que soporta el MenuStrip y que estan disponibles para su seleccion en tiempo de diseño. todos ellos pueden ser accedido en tiempo de programación como objetos individuales sin tener que pasar por el MenuStrip que es el control que los contiene pero estos controles están anclados al menú es decir no se pueden mover de alli mas, si se puede alterar su orden.




MenuItem: 

este control tiene el comportamiento parecido de un botón con la hablilidad que puede contener nodos hijos (Es el único ) y es el mas comun de todos los controles dentro del MenuStrip


Como cualquier otro boton este puede tener el evento clic. En este caso tendremos un menuItem que sera padre de otros dos y cada uno de ellos tendra un evento clic




Fijese que entre los dos menuitem exite una barra esta es una barra de separacion la cual no ayuda visualmente a separa por ejemplo grupos de menuitems para el usuario


ComboBox: 

Este control es anclado al menu no da una lista desplegable la cual puede ser editada como cualquier otro COmboBox


Al igual que un combo box normal los items pueden ser editados tanto en diseño como en tiempo de ejecución como si nada  

TextBox:

funciona igual que un control TextBox todas sus propiedades pero con alguna limitaciones en sus eventos. Este Control esta anclado al menú



Ejemplo en ejecucion





Ejemplo


Ejercicio

intente realizar un usted mismo

Referencias y Ayuda





lunes, 13 de octubre de 2014

Analisis II Xml & Json

Xml

XML, siglas en inglés de eXtensible Markup Language ('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C) utilizado para almacenar datos en forma legible. Deriva del lenguaje SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML) para estructurar documentos grandes. A diferencia de otros lenguajes, XML da soporte a bases de datos, siendo útil cuando varias aplicaciones deben comunicarse entre sí o integrar información. 1

XML no ha nacido sólo para su aplicación para Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.

XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.

¿Para que sirve XML?


Representar información estructurada en la web (todos documentos), de modo que esta información pueda ser almacenada, transmitida, procesada, visualizada e impresa, por muy diversos tipos de aplicaciones y dispositivos.

Ventajas del XML


Es extensible: Después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicación alguna.

El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones.

Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podríamos tener una aplicación en Linux con una base de datos Postgres y comunicarla con otra aplicación en Windows y Base de Datos MS-SQL Server.

Transformamos datos en información, pues se le añade un significado concreto y los asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos.


¿Para que sirve XML?


Representar información estructurada en la web (todos documentos), de modo que esta información pueda ser almacenada, transmitida, procesada, visualizada e impresa, por muy diversos tipos de aplicaciones y dispositivos.


Características


XML es un subconjunto de SGML que incorpora las tres características más importantes de este:
  • Extensibilidad
  • Estructura
  • Validación
  • Basado en texto.
  • Orientado a los contenidos no presentación.
  • Las etiquetas se definen para crear los documentos, no tienen un significado preestablecido.
  • No es sustituto de HTML.
  • No existe un visor genérico de XML.

Estructura


Estructura




Ejemplo


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Edit_Mensaje SYSTEM "Edit_Mensaje.dtd">
 
<Edit_Mensaje>
     <Mensaje>
          <Remitente>
               <Nombre>Nombre del remitente</Nombre>
               <Mail> Correo del remitente </Mail>
          </Remitente>
          <Destinatario>
               <Nombre>Nombre del destinatario</Nombre>
               <Mail>Correo del destinatario</Mail>
          </Destinatario>
          <Texto>
               <Asunto>
                    Este es mi documento con una estructura muy sencilla 
                    no contiene atributos ni entidades...
               </Asunto>
               <Parrafo>
                    Este es mi documento con una estructura muy sencilla 
                    no contiene atributos ni entidades...
               </Parrafo>
          </Texto>
     </Mensaje>
</Edit_Mensaje>



Json


JSON, acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML.

La simplicidad de JSON ha dado lugar a la generalización de su uso, especialmente como alternativa a XML en AJAX. Una de las supuestas ventajas de JSON sobre XML como formato de intercambio de datos en este contexto es que es mucho más sencillo escribir un analizador sintáctico (parser) de JSON. En JavaScript, un texto JSON se puede analizar fácilmente usando la función eval(), lo cual ha sido fundamental para que JSON haya sido aceptado por parte de la comunidad de desarrolladores AJAX, debido a la ubicuidad de JavaScript en casi cualquier navegador web.

En la práctica, los argumentos a favor de la facilidad de desarrollo de analizadores o del rendimiento de los mismos son poco relevantes, debido a las cuestiones de seguridad que plantea el uso de eval() y el auge del procesamiento nativo de XML incorporado en los navegadores modernos. Por esa razón, JSON se emplea habitualmente en entornos donde el tamaño del flujo de datos entre cliente y servidor es de vital importancia (de aquí su uso por Yahoo, Google, etc, que atienden a millones de usuarios) cuando la fuente de datos es explícitamente de fiar y donde no es importante el no disponer de procesamiento XSLT para manipular los datos en el cliente.

Si bien es frecuente ver JSON posicionado contra XML, también es frecuente el uso de JSON y XML en la misma aplicación. Por ejemplo, una aplicación de cliente que integra datos de Google Maps con datos meteorológicos en SOAP hacen necesario soportar ambos formatos.

¿QUÉ ES Y PARA QUE SIRVE JSON?


JSON es un formato para el intercambios de datos, básicamente JSON describe los datos con una sintaxis dedicada que se usa para identificar y gestionar los datos. Una de las mayores ventajas que tiene el uso de JSON es que puede ser leído por cualquier lenguaje de programación. Por lo tanto, puede ser usado para el intercambio de información entre distintas tecnologías.

Veamos un sencillo ejemplo de JSON:

Imaginemos que tenemos una frutería  y que queremos obtener el nombre y la cantidad de fruta y verdura que tenemos. En un principio vamos a suponer que tenemos lo siguiente:

 – Fruta:

10 manzanas
20 Peras
30 Naranjas
 – Verduras

80 lechugas
15 tomates
50 pepinos


Ejemplo de JSON

 

JSON:

 {"menu": {
   "id": "file",
   "value": "File",
   "popup": {
     "menuitem": [
       {"value": "New", "onclick": "CreateNewDoc()"},
       {"value": "Open", "onclick": "OpenDoc()"},
       {"value": "Close", "onclick": "CloseDoc()"}
     ]
   }
 }
}

Ejemplo como XML:

  <menu id="file" value="File">
    <popup>
      <menuitem value="New" onclick="CreateNewDoc()" />
      <menuitem value="Open" onclick="OpenDoc()" />
      <menuitem value="Close" onclick="CloseDoc()" />
    </popup>
  </menu>

lunes, 6 de octubre de 2014

Programacion C# Data Grid View, Combo Box

Introducción

En la mayoría de los programa necesitamos trabajar con elementos como ventanas que nos muestran datos separados en columnas y filas y lista desplegables.Para este caso .net tiene su propios Controles, a las lista desplegables sera loa ComboBox y para las ventana que muestran elementos en filas y columnas tenemos los data grid view.




En ese ejercicio trabajaremos estos dos elemento asi que para ello agregaremos mas controles a nuestro form  de manera que su diceño puede quedar asi 

Combo Box

Empezaremos con este elemento pues es uno de los mas fáciles de controlar
Mas adelante adelante sus datos estarán enlazado con una base de datos.

para agregar un elemento a la combobox tenemos dos maneras una de ella es la manera grafica por la cual dandole click a la flecha del combobox no abrirá un menu contextual/editar elementos, el cual es forma lista y por cada enter sera un nuevo item en nuestro control


pero venimos a programar asi que nuestra manera sera por codigo dentro de un boton. asi que exitira un textbox y un label que nos servirá de mucho para controlar ese combobox.Tomaremos el boton "ingresar al comobobox y le crearemos el evento click. dentro de el  colocaremos este codigo 


el metodo add de la clase items solo agrega un elemento como la forma grafica ( solo texto a la lista)

pero la manera item.insert agrega un elemento con un indice,y su  segunda sobrecarga es solo el texto 

ademas de ello editaremos un eventos del combobox 


SelectionChangeCommitted  este evento nos permite ejecutar un bloque de código cuando se termina la selección de un item en el combo box. en el colocaremos esto


cuando ejecutemos este codigo un  label tendra el texto seleccionado de nuestro combobox en un label





Data Grid View 

vale una ves tengamos nuestro elemento de combo box iremos al datagrid view. Para empezar agregamos el evento load del form  y creamos un metodo no tipado para asi agregar las colunas que tendra nuestra grilla




una vez hecho esto  iremos al boton agregar a la grilla y le creamos su evento click en el colocaremos el llamado a un metodo que sera  "agregar_linea" 



Agregar_linea es un metodo que introduce valores a la grilla en forma de rows ( filas)

Vale pero algo que quiero agregar a importante en una grilla son sus propiedades



propiedades

2 Permite al usuario agregar un linea de estar en false solo podra por codigo. muy util para  controlar los valores dentro de la grilla


3 Permite al usuario borrar un fila entera en la grilla si esta true

4 cambia el color de fondo de la grilla

5 read only: esta propiedad es sumamente importante pues no permite editar  en tiempo de ejecion los valores de la grilla se recomienda esta siempre false para que estos valores esten protegidos 

al final de todo debe quedar asi =)


Ejercicio hecho





martes, 30 de septiembre de 2014

Programacion C# Propiedades de los controles

Explicacion

Una propiedad es un miembro que ofrece un mecanismo flexible para leer, escribir o calcular el valor de un campo privado. Las propiedades pueden utilizarse como si fuesen miembros de datos públicos, aunque en realidad son métodos especiales denominados descriptores de acceso. Las propiedades de los controles nos permiten cambiar desde el comportamiento del control hasta lo que muestra. Existen dos formas de modificar una propiedad de un control.

de manera visual, haciéndolo por el panel de propiedades o por la sentencia.

de manera visual es sencillo daremos click derecho al control-> propiedades(panel de propiedades Asegúrate que estas viendo la pestaña de propiedades  que el icono es un engranaje ) y esa lista son todas las propiedades que tienen un control



en este post mencionaremos las tres propiedades mas comunes e importantes de cada control


  1. Text
  2. Visible
  3. Enabled
Estas propiedades y todas las demás, puede cambiar en tiempo de ejecución por una linea de código que modifique.

La propiedad Text Cambia lo que muestra el control un ejemplo de la propiedad text es la que puede mostrara un control Label: si modificas su propiedad text cambiara lo que muestra al usuario




La propiedad visible es binaria significa que es verdadera (True ) o falsa (False) y nos indica si el control sera visible al usuario en tiempo de ejecución o no

de ser true se vera y de ser false no se vera , Por defecto de visual estudio esta siempre sera true al crear el control.


 Control con propiedad visible=false

 Control con propiedad visible=true

la propiedad enabled le dice al control si se puede usar o no, ¿Que significa?, el control estará visible pero no reaccionara a ningún  evento que posea por lo tanto esta inactivo ( tampoco puede ser usado por el usuario ejemplo: el textbox no acepta acepta texto en su contenido), Al igual que la propiedad visible esta es binaria osease  solo puede ser true o false.Por defecto de visual estudio esta siempre sera true al crear el control.

False= el control no esta disponible
True= el control  esta disponible







 

En código

modificar una propiedad por código es fácil pues solo debes mencionar el control, llamar a la propiedad y luego de ello asignarle el valor que se desea (SOLO AL EJECUTAR ESAS SENTENCIA DE CODIGO).

ejemplo:



CUANDO EL EVENTO CLICK DEL BOTON SEA LLAMADO SE EJECUTARA TODO ALGORITMO DE CODIGOS QUE CONTIENE EN ESTE CASO SERA EL CAMBIO DE LAS PROPIEDADES DE LOS CONTROLES 

Ejercicio



Realize un programa donde modifique la propiedades vistas en este post en los siguientes controles


  • textbox
  • boton
  • Label
Las mismas deben ser modificada en código y en visual


NestJs Error on SecretKey for JWToken

  Imagine this you are coding happy, configuring your module has   auth.module.ts   using on your register the classic call to get env value...