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


miércoles, 24 de septiembre de 2014

Analisis Plataforma .Net

La plataforma .NET 


La plataforma .NET de Microsoft es un componente de software que puede ser añadido al sistema operativo Windows. Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programación de aplicaciones, y administra la ejecución de los programas escritos específicamente con la plataforma. Esta solución es el producto principal en la oferta de Microsoft, y pretende ser utilizada por la mayoría de las aplicaciones creadas para la plataforma Windows.

.NET Framework se incluye en Windows Server 2008, Windows Vista y Windows 7. De igual manera, la versión actual de dicho componente puede ser instalada en Windows XP, y en la familia de sistemas operativos Windows Server 2003. Una versión "reducida" de .NET Framework está disponible para la plataforma Windows Mobile, incluyendo teléfonos inteligentes.

La norma (incluido en ECMA-335, ISO/IEC 23271) que define el conjunto de funciones que debe implementar la biblioteca de clases base (BCL por sus siglas en inglés, tal vez el más importante de los componentes de la plataforma), define un conjunto funcional mínimo que debe implementarse para que el marco de trabajo sea soportado por un sistema operativo. Aunque Microsoft implementó esta norma para su sistema operativo Windows, la publicación de la norma abre la posibilidad de que sea implementada para cualquier otro sistema operativo existente o futuro, permitiendo que las aplicaciones corran sobre la plataforma independientemente del sistema operativo para el cual haya sido implementada. El Proyecto Mono emprendido por Ximian pretende realizar la implementación de la norma para varios sistemas operativos adicionales bajo el marco del código abierto.

.NET podría considerarse una respuesta de Microsoft al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java de Oracle Corporation y a los diversos framework de desarrollo web basados en PHP. Su propuesta es ofrecer una manera rápida y económica, a la vez que segura y robusta, de desarrollar aplicaciones –o como la misma plataforma las denomina, soluciones– permitiendo una integración más rápida y ágil entre empresas y un acceso más simple y universal a todo tipo de información desde cualquier tipo de dispositivo.


Elementos de la plataforma


  1. El conjunto de lenguajes de programación.
  2. La biblioteca de clases base o BCL.
  3. El entorno común de ejecución para lenguajes, o CLR por sus siglas en inglés.

Debido a la publicación de la norma para la infraestructura común de lenguajes (CLI por sus siglas en inglés), el desarrollo de lenguajes se facilita, por lo que el marco de trabajo .NET soporta ya más de 20 lenguajes de programación y es posible desarrollar cualquiera de los tipos de aplicaciones soportados en la plataforma con cualquiera de ellos, lo que elimina las diferencias que existían entre lo que era posible hacer con uno u otro lenguaje.
Algunos de los lenguajes desarrollados para el marco de trabajo .NET son: C#, Visual Basic .NET, Delphi (Object Pascal), C++, F#, J#, Perl, Python, Fortran, Prolog (existen al menos dos implementaciones, el P#1 y el Prolog.NET2 ), Cobol y PowerBuilder.


Ensamblados






Un ensamblado es un compilado EXE o DLL que contiene código CIL que se genera desde los diferentes lenguajes .NET, y que es ejecutado por el CLR. Puede contener una o varias clases al igual que uno o varios namespaces.5

Los ensamblados pueden tener diferentes decoradores que definen el entorno de ejecución de los mismos COM+, DCOM, Remoting, etc.






Biblioteca de Clases Base de .NET



  • Diagrama básico de la Biblioteca de Clases Base.
  • La Biblioteca de Clases Base (BCL por sus siglas en inglés) maneja la mayoría de las operaciones básicas que se encuentran involucradas en el desarrollo de aplicaciones, incluyendo entre otras:
  • Interacción con los dispositivos periféricos
  • Manejo de datos (ADO.NET)
  • Administración de memoria
  • Cifrado de datos
  • Transmisión y recepción de datos por distintos medios (XML, TCP/IP)
  • Administración de componentes Web que corren tanto en el servidor como en el cliente (ASP.NET)
  • Manejo y administración de excepciones
  • Manejo del sistema de ventanas
  • Herramientas de despliegue de gráficos (GDI+)
  • Herramientas de seguridad e integración con la seguridad del sistema operativo
  • Manejo de tipos de datos unificado
  • Interacción con otras aplicaciones
  • Manejo de cadenas de caracteres y expresiones regulares
  • Operaciones aritméticas
  • Manipulación de fechas, zonas horarias y periodos de tiempo
  • Manejo de arreglos de datos y colecciones
  • Manipulación de archivos de imágenes
  • Aleatoriedad
  • Generación de código
  • Manejo de idiomas
  • Auto descripción de código
  • Interacción con el API Win32 o Windows API.
  • Compilación de código

La Biblioteca de Clases Base se clasifica, en cuatro grupos clave:

  • ASP.NET y Servicios Web XML
  • Windows Forms
  • ADO.NET
  • .NET

El Common Language Runtime 



El Common Language Runtime o CLR ("entorno en tiempo de ejecución de lenguaje común") es un entorno de ejecución para los códigos de los programas que corren sobre la plataforma Microsoft .NET. El CLR es el encargado de compilar una forma de código intermedio llamada Common Intermediate Language (CIL, anteriormente conocido como MSIL, por Microsoft Intermediate Language), al código de maquina nativo, mediante un compilador en tiempo de ejecución.1 No debe confundirse el CLR con una máquina virtual, ya que una vez que el código está compilado, corre nativamente sin intervención de una capa de abstracción sobre el hardware subyacente. Es una implementación del estándar Common Language Infrastructure (CLI).
Los desarrolladores que usan CLR escriben el código fuente en un lenguaje compatible con .NET, como C# o Visual Basic .NET. En tiempo de compilación, un compilador .NET convierte el código a CIL. En tiempo de ejecución, el compilador del CLR convierte el código CIL en código nativo para el sistema operativo. Alternativamente, el código CIL es compilado a código nativo en un proceso separado anterior a la ejecución. Esto acelera las posteriores ejecuciones del software debido a que la compilación de MSIL a nativo ya no es necesaria.
A pesar de que algunas implementaciones del Common Language Infrastructure se ejecutan en sistemas operativos que no sean Windows, el CLR se ejecuta solo en Microsoft Windows.

Plataforma de integración Mono



T.C.L es el nombre de un proyecto de código abierto iniciado por Ximian y actualmente impulsado por Novell (tras la adquisición de Ximian) para crear un grupo de herramientas libres, basadas en GNU/Linux y compatibles con .NET según lo especificado por el ECMA.
Mono posee importantes componentes útiles para desarrollar software:
Una máquina virtual de infraestructura de lenguaje común (CLI) que contiene un cargador de clases, un compilador en tiempo de ejecución (JIT), y unas rutinas de recolección de memoria.
Una biblioteca de clases que puede funcionar en cualquier lenguaje que funcione en el CLR (Common Language Runtime).
Un compilador para el lenguaje C#, MonoBasic (la versión para mono de Visual Basic), Java y Python.
El CLR y el Sistema de tipos común (CTS) permite que la aplicación y las bibliotecas sean escritas en una amplia variedad de lenguajes diferentes que compilen para byte code
Esto significa que si, por ejemplo, se define una clase que realice una manipulación algebraica en C#, ésta pueda ser reutilizada en cualquier lenguaje compatible con CLI. Puede crear una clase en C#, una subclase en C++ e instanciar esa clase en un programa en Eiffel.
Un sistema de objetos único, sistema de hilos, bibliotecas de clases y sistema recolector de memoria pueden ser compartidos por todos estos lenguajes.
Es un proyecto independiente de la plataforma. Actualmente Mono funciona en GNU/Linux, OpenBSD, FreeBSD, UNIX, Mac OS X, Solaris y plataformas Windows.
Existe un proyecto similar, llamado Portable.NET, es parte del proyecto dotGNU.



Arquitectura  de Mono.



Bibliotecas de clase


Las bibliotecas de clase proveen un conjunto de facilidades que ayudan al desarrollo de aplicaciones. Son escritas en primer lugar en C#, pero gracias al lenguaje común de especificación (CLS), las mismas pueden ser invocadas en cualquier otro lenguaje de .NET. Las bibliotecas de clase están estructuradas en espacios de nombres (namespaces) y puestas en producción en bibliotecas compartidas denominadas assemblies o ensamblados. Cuando hablamos del framework de .NET, nos estamos refiriendo en primer lugar a las bibliotecas de clase.[JAC]
Espacios de Nombres (namespaces) y Ensamblados (assemblies)[editar]
Los espacios de nombres son un mecanismo que permite agrupar lógicamente clases similares en una estructura jerárquica, evitando así conflictos de nombres. La estructura se implementa utilizando palabras separadas por puntos. Por ejemplo, System.IO o System.Net agrupan las clases para acceso a ficheros y para comunicaciones de red, respectivamente.
Los ensamblados son el paquete físico de las librerías de clase. Son archivos con extensión.dll, como las librerías de Windows. Ejemplos de librerías son mscorlib.dll, System.dll, System.Data.dll.
Los espacios de nombres, por lo general, están compuestos por muchos ensamblados y un ensamblado puede estar compuesto de varios archivos.


Lenguaje Común de Infraestructura (CLR)


El lenguaje común de infraestructura o más comúnmente llamado Common Language Runtime (CLR) es implementado por el ejecutable de Mono. El runtime es utilizado para correr aplicaciones compiladas en .NET. Este lenguaje común de infraestructura está definido en los estándares ECMA y ECMA-335. Para ejecutar una aplicación se deberá invocar el runtime con los parámetros adecuados.
Lenguaje Común de Especificación (CLS)[editar]
Se encuentra especificado en el estándar ECMA-335 y define la interfaz con el CLR. Por ejemplo, convenciones sobre el tipo de datos que se utilizará para implementar los enumerados. El compilador Mono genera una imagen que cumple con el CLS, esta imagen está codificada en el denominado Common Intermediate Language (CIL) o Lenguaje Intermedio Común. El runtime de Mono toma dicha imagen y la ejecuta.


Mono y las patentes de Microsoft (2014)


La implementación de Mono de esos componentes de .NET no sometidos a ECMA para su estandarización ha levantado algunas preocupaciones por la posible violación de patentes de software durante la vida del proyecto. En particular, la discusión se desarrolló por si Microsoft podría o no destruir al proyecto mono mediante demandas sobre las patentes violadas.
En la actualidad existe un vivo debate sobre la (in)conveniencia de aceptar y usar Mono en la comunidad de desarrolladores de GNU/Linux. Los principales argumentos en contra de Mono son: mx
No está libre de patentes de software, y existe el riesgo de que Microsoft exija licencias para usar C# / CLI.1
Por otra parte, el proyecto Gnome está desarrollando un lenguaje alternativo, Vala, creado específicamente para desarrollar aplicaciones para Gnome, pero libre de las potenciales amenazas de Microsoft.2


Microsoft Visual Studio



Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus siglas en inglés) para sistemas operativos Windows. Soporta múltiples lenguajes de programación tales como C++, C#, Visual Basic .NET, F#, Java, Python, Ruby, PHP; al igual que entornos de desarrollo web como ASP.NET MVC, Django, etc., a lo cual sumarle las nuevas capacidades online bajo Windows Azure en forma del editor Monaco.
Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones web, así como servicios web en cualquier entorno que soporte la plataforma .NET (a partir de la versión .NET 2002). Así se pueden crear aplicaciones que se comuniquen entre estaciones de trabajo, páginas web, dispositivos móviles, dispositivos embebidos, consolas, etc.



ASP.NET 


ASP.NET es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores y diseñadores para construir sitios web dinámicos, aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de la tecnología Active Server Pages (ASP). ASP.NET esta construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.




C Sharp


C# es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.

El nombre C Sharp fue inspirado por la notación musical, donde '#' (sostenido, en inglés sharp) indica que la nota (C es la nota do en inglés) es un semitono más alta, sugiriendo que C# es superior a C/C++. Además, el signo '#' se compone de cuatro signos '+' pegados.1
Aunque C# forma parte de la plataforma .NET, ésta es una API, mientras que C# es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma. Ya existe un compilador implementado que provee el marco Mono - DotGNU, el cual genera programas para distintas plataformas como Windows, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux.


(Recopilacion de paginas, no posse autoria del bloguero)

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...