Mostrando entradas con la etiqueta Definición. Mostrar todas las entradas
Mostrando entradas con la etiqueta Definición. Mostrar todas las entradas

Tipos de variables en C#

Veamos los tipos de variables en C# :

Tipo de datos de enteros
TipoAncho en bitsRangoSignificado
byte8De 0 a 255Entero sin signo de 8 bits
sbyte8De -128 a 127Entero con signo de 8 bits
short16De -32.768 a 32.767Entero corto
ushort16De 0 a 65.535Entero corto sin signo
int32De -2.147.483.648 a 2.147.483.647Entero medio
uint32De 0 a 4.294.967.295Entero medio sin signo
long64De -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807Entero largo
ulong64De 0 a 18.446.744.073.709.551.615Entero largo sin signo


Tipo de datos de punto flotante
TipoAncho en bitsRangoSignificado
float32De 1,5E-45 a 3,4E+38Punto flotante corto
double64De 5E-324 a 1,7E+308Punto flotante largo
decimal128De 1E-28 a 7,9E+28Punto flotante monetario


Tipo de datos de carácteres
TipoAncho en bitsRangoSignificado
char16De 0 a 65,535 (código Unicode)Carácter


Variables Booleanas: Solo pueden contener True o False. Su código es ‘bool’.

Constantes: Variables que tienen un valor fijo. Su código es ‘const’.

Librerías NET de clase base

System.Collections: Colecciones de objetos. Provee las interfaces para crear colecciones y listas ordenadas.

System.Collections.Generic: Clases que representan colecciones

System.Configuration: Clases e interfaces para la manipulación por código de archivos .config

System.Diagnostics: Clases para interactuar con procesos de sistema (Como el registro de eventos) y para depurar la aplicación.

System.Globalization: Clases necesarias para escribir aplicaciones para más de una cultura u idioma.

System.IO: Clases para trabajar con archivos, secuencias de datos y directorios.

System.Net: Clases para acceder a recursos de redes.

System.Relection: Clases que permiten obtener información sobre códigos administrados leyendo metadatos.

System.Resources: Clases e interfaces que permiten manipular recursos (imagen, sonido,etc) almacenados en un ensamblado.

System.Security: Clases que permiten especificar y/o conocer el contexto de seguridad.

System.ServiceProcess: Clases que permiten crear e instalar servicios.

System.Text: Clases para manipular cadenas de texto y convertir cadenas de byte en texto (o viceversa).

System.Threading: Clases para la creación de aplicaciones multihilo y gestion de los mismos.

System.Runtime.InteropServices: Clases para crear aplicaciones que interactúen con componentes COM y código no administrado.

System.Runtime.Remoting: Clases e interfaces para aplicaciones distribuidas.

System.Runtime.Serialization: Clases para serializar y deserializar objetos.

System.Data: Clases fundamentales de ADO.NET

System.Data.Common: Clases compartidas y heredadas por todos los proveedores de acceso a datos.

System.Data.SqlClient: Clases que implementan proveedor de acceso a datos para SQL server.

System.Data.OracleClient: Clases que implementan proveedor de acceso a datos para Oracle.

System.Data.OleDb: Clases para acceder a datos mediante Oledb.

Systen.Data.SqlTypes: Clases para tipos nativos de sql server.

System.Xml: Clases para trabajar con documentos xml.

System.Windows.Forms: Contiene las clases básicas para crear aplicaciones basadas en ventanas, también las clases de diálogo y las de impresión.

System.Drawing: Clases para dibujar figuras y texto, manipular imágenes, usar tramas y degradados.

System.Web.UI: Clases e interfaces para la construcción de páginas webs.

System.Web.Service: Clases para crear servicios web.

System.Windows.Forms: Contiene las clases básicas para crear aplicaciones basadas en ventanas, también las clases de diálogo y las de impresión.

System.Drawing: Clases para dibujar figuras y texto, manipular imágenes, usar tramas y degradados.

System.Web.UI: Clases e interfaces para la construcción de páginas webs.

System.Web.Service: Clases para crear servicios web.

Namespace

Un namespace o espacio de nombres es un medio para organizar las clases dentro del entorno, agrupándolas de un modo más lógico y jerárquico, permitiendo la existencia de clases con el mismo nombre en secciones distintas (ej, Casa.Factura y Trabajo.Factura)

Cuando se crea un proyecto dentro de Visual Studio .NET, este crea de forma automática un namespace con el nombre del proyecto. Si el programador quiere crear un namespace de forma explícita, puede hacerlo mediante la palabra clave Namespace dentro del código del proyecto.

Para acceder desde el código de una aplicación a una clase contenida dentro de un espacio de nombre debemos indicarlo usando la palabra clave Imports en la cabecera del módulo de código junto al nombre del namespace (Ej. Imports Casas.Duplex) y clase a la que queremos acceder; o bien usando la descripción calificada completa en cada momento que necesitemos hacer referencia a la clase.

Type Checker

Es un componente del CLR que se asegura de que las conversiones automáticas que se deban realizar durante la ejecución del programa sean válidas y estén permitidas.
En otras palabras, detecta la incompatibilidad de tipos, impidiéndonos asignar un valor de otro tipo a una variable.

Common Type System (CTS)

El Common Type System (CTS) o Sistema de Tipo Común es el mecanismo del CLR que permite
definir el modo en que los tipos serán creados y manipulados por el entorno de ejecución o el conjunto de reglas que han de seguir las definiciones de tipos de datos para que el CLR las acepte. Es decir, aunque cada lenguaje gestionado disponga de su propia sintaxis para definir tipos de datos, en el MSIL resultante de la compilación de sus códigos fuente se han de cumplir las reglas del CTS.

Gracias al CTS, desde un lenguaje como VB.NET, podemos instanciar un objeto de una clase escrita en C#; y hacer una llamada a uno de los métodos del objeto sin realizar conversiones de tipos en los parámetros del método, funcionando todo de forma transparente, además no permite definir o diseñar el modo en cómo el código de la aplicación será ejecutado, pero no se encarga directamente de su ejecución.

Common Intermediate Language (CIL)

Common Intermediate Language  (anteriormente llamado Microsoft Intermediate Language o MSIL) es el lenguaje de programación legible por humanos de más bajo nivel en el Common Language Infrastructure y en el .NET Framework. Los lenguajes del .NET Framework (C#,Visual Basic :Net)  compilan a CIL, el cual a su vez es ensamblado en bytecode.

CIL es un lenguaje ensamblador orientado a objetos, y está basado en pilas. Es ejecutado por una máquina virtual. Los lenguajes .NET principales son C#, Visual Basic .NET, C++/CLI, y J#.

CIL fue conocido originalmente como Microsoft Intermediate Language (MSIL) durante las versiones de prueba de los lenguajes .NET. Debido a la estandarización de C# y CLI, el bytecode es ahora conocido oficialmente como CIL. Debido a esto, CIL es frecuentemente llamado MSIL. Es posible ejecutar este lenguaje en plataformas GNU/Linux gracias al Proyecto Mono, que implementa una maquina virtual similar a la de .NET pero de software libre.

Durante la compilación de los lenguajes de programación .NET, el código fuente es convertido a código CIL en lugar de código maquina especifico del procesador. CIL es un conjunto de instrucciones independientes de la plataforma y CPU que puede ser ejecutado en cualquier ambiente que soporte el .NET Framework.

La compilación en tiempo de ejecución (JIT, just-in-time) involucra convertir el código CIL en código inmediatamente ejecutable por la CPU. La compilación JIT proporciona optimización especifica para la CPU, seguridad de tipos en tiempo de ejecución, y verificación de ensamblados.

Aquí os dejo el código de un hola mundo en CIL:

.assembly Hello {}
.method public static void Main() cil managed
{
     .entrypoint
     .maxstack 1
     ldstr "Hello, world!"
     call void [mscorlib]System.Console::WriteLine(string)
     ret
}

Y el código C# que generaría este ensamblado:

 class Hello
 {
     static void Main()
     {
         System.Console.WriteLine("Hello, world!");
     }
 }

Common Language Runtime (CLR)

El Common Language Runtime o CLR (Lenguaje común en tiempo de ejecución) es el componente de máquina virtual de la plataforma .Net de Microsoft. Es la implementación del estándar Common Language Infrastructure (CLI) que define un ambiente de ejecución para los códigos de los programas. El CLR ejecuta una forma de código intermedio (bytecode) llamada Common Intermediate Language (CIL, anteriormente conocido como MSIL -- Microsoft Intermediate Language), la implementación de Microsoft del CLI.

La herramienta de desarrollo compila el código fuente de cualquiera de los lenguajes soportados por .NET en el código intermedio. Para generarlo, el compilador se basa en la especificación CLS (Common Language Specification) que determina las reglas necesarias para crear el código compatible con el CLR.

Para ejecutarse se necesita un segundo paso, un compilador JIT (Just-In-Time) es el que genera el código máquina real que se ejecuta en la plataforma del cliente. De esta forma se consigue con .NET independencia de la plataforma de hardware. La compilación JIT la realiza el CLR a medida que el programa invoca métodos. El código ejecutable obtenido se almacena en la memoria caché del ordenador, siendo recompilado de nuevo sólo en el caso de producirse algún cambio en el código fuente.

Hay alguna implementación de .Net en sistemas operativos no windows por ejemplo, Mono.

Microsoft .NET

.NET es un proyecto de Microsoft para crear una nueva plataforma de desarrollo de software con con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una estrategia horizontal que integre todos sus productos, desde el sistema operativo hasta las herramientas de mercado.

.NET podría considerarse una respuesta de Microsoft al creciente mercado de los negocios entornos Web, como competencia a Java de Sun Microsystems. Su propuesta es ofrecer una manera rápida y económica, a la vez que segura y robusta, de desarrollar aplicaciones 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.

Para crear aplicaciones para la plataforma .NET, tanto servicios Web como aplicaciones tradicionales (aplicaciones de consola, aplicaciones de ventanas, servicios de Windows NT, etc.), Microsoft ha publicado el denominado kit de desarrollo de software conocido como .NET Framework SDK, que incluye las herramientas necesarias tanto para su desarrollo como para su distribución y ejecución y Visual Studio.NET, que permite hacer todo la anterior desde una interfaz visual basada en ventanas.