Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La plataforma .NET
La plataforma .NET es una plataforma de desarrollo de software con especial nfasis en el
desarrollo rpido de aplicaciones, la independencia de lenguaje y la transparencia a travs
de redes.
La plataforma consta de las siguientes partes:
Independencia de lenguaje
Todos los lenguajes que conformen con los estndares .NET, sin importar cual,
podrn interoperar entre s de forma totalmente transparente, las clases podrn ser
heredadas entre unos lenguajes y otros, y se podr disfrutar de polimorfismo entre
lenguajes. Por ejemplo, si yo tengo una clase en C#, esta clase podr ser
heredada y utilizada en Visual Basic o JScript o cualquier lenguaje .NET. Todo esto
es posible por medio de una de las caractersticas de .NET llamado Common Type
System (CTS). Tambin tiene la cualidad de que se pueden incluir ms lenguajes a
la plataforma. En la actualidad existen proyectos independientes de incluir PHP,
Python, Ada y otros lenguajes en la plataforma.
Multiplataforma
El CRL
La plataforma .NET incluye un conjunto de clases especial para datos y XML que
son la base de 3 tecnologas claves: Servicios Web (Web Services), Web Forms, y
Windows Forms los cuales son poderosas herramientas para la creacin de
aplicaciones tanto para la plataforma como para el Web.
Estandarizacin
Adems de los mritos tcnicos, una de las razones del xito de la plataforma
.NET ha sido por el proceso de estandarizacin que Microsoft ha seguido (y que ha
sorprendido a ms de uno). Microsoft, en lugar de reservarse todos los derechos
sobre el lenguaje y la plataforma, ha publicado las especificaciones del lenguaje y
de la plataforma, que han sido posteriormente revisadas y ratificadas por la
Asociacin Europea de Fabricantes de Computadoras (ECMA). Esta especificacin
(que se puede descargar libremente de Internet) permite la implementacin del
lenguaje C# y de la plataforma .NET por terceros, incluso en entornos distintos de
Windows.
C# frente a Java[editar]
C# y Java son lenguajes similares, de sintaxis basada en C/C++, orientados a objetos, y
ambos incluyen las caractersticas ms importantes de los lenguajes modernos, como son
la gestin automtica de memoria y la compilacin a cdigo intermedio. Pero por supuesto,
tambin hay diferencias.
Una de las diferencias ms importantes es que C# es mucho ms cercano a C++ en
cuanto a diseo se refiere. C# toma casi todos sus operadores, palabras reservadas y
expresiones directamente de C++. Tambin se han mantenido algunas caractersticas que
en Java se han desestimado. Por ejemplo, la posibilidad de trabajar directamente con
direcciones de memoria. Si bien tanto Java como .NET proporcionan gestin automtica
de memoria, en C# es posible usar lo que se denomina "cdigo no seguro". Cuando se usa
cdigo no seguro en C# es posible operar con punteros de forma muy similar a como se
hara en C/C++, pero el cdigo que utiliza punteros se queda marcado como no seguro y
no se ejecuta en entornos en los que no tiene permisos.
C# frente a C++[editar]
Puesto que C# se ejecuta en una mquina virtual, sta se hace cargo de la gestin de
memoria y por lo tanto el uso de punteros es mucho menos importante en C# que en C++.
C# tambin es mucho ms orientado a objetos, hasta el punto de que todos los tipos
usados derivan en ltima instancia el tipo 'object'. Adems, muchos tipos se usan de forma
distinta. Por ejemplo, en C# se comprueban los lmites de los arrays antes de usarlos,
evitando as que se pueda escribir pasado el final del vector.
Al igual que Java, C# renuncia a la idea de herencia mltiple de clases presente en C++.
Sin embargo, referido a clases, C# implementa 'propiedades' del tipo de las que existen en
Visual Basic, y los mtodos de las clases son accedidos mediante '.' en lugar de '::'.
Por qu C#?[editar]
La plataforma .NET acepta varios lenguajes. Por ahora, C#, Visual Basic, C++ gestionado,
Nemerle, FORTRAN, Java, Python, etc. , y con capacidad para aceptar prcticamente
cualquier lenguaje. Entonces la pregunta es, porqu se eligi C# en lugar de cualquier
otro lenguaje?.
La razn fundamental es que C# se dise para la plataforma .NET y es capaz de utilizar
todo su potencial. Tambin es cierto que es un lenguaje "limpio" en el sentido de que al no
tener que proporcionar compatibilidad hacia atrs se ha tenido ms libertad en el diseo y
se ha puesto especial hincapi en la simplicidad. Por ejemplo, en C# hay un tipo de clase y
siempre se le aplica el recolector de basura mientras que en C++ gestionado hay dos tipos
de clases, una a la que se aplica el recolector y otra a la que no.
https://msdn.microsoft.com/es-es/library/67ef8sbd.aspx
MAIN
El mtodo Main es el punto de entrada de una aplicacin de consola de C# o una
aplicacin para Windows. (Las bibliotecas y los servicios no requieren un
mtodo Main como punto de entrada.) Cuando se inicia la aplicacin, el
mtodo Main es el primer mtodo que se invoca.
En un programa de C#, slo puede haber un punto de entrada. Si tiene ms de una
clase con un mtodo Main, debe compilar el programa con la opcin del
compilador /mainpara especificar qu mtodo Main se va a utilizar como punto de
entrada
Tipos
C# es un lenguaje fuertemente tipado. Todas las variables y constantes tienen un
tipo, al igual que toda expresin que da como resultado un valor. Cada firma de
mtodo especifica un tipo para cada parmetro de entrada y para el valor
devuelto. La biblioteca de clases .NET Framework define un conjunto de tipos
numricos integrados y tipos ms complejos que representan una amplia variedad
de construcciones lgicas, como el sistema de archivos, conexiones de red,
colecciones y matrices de objetos y fechas. Un programa tpico de C# usa los tipos
de la biblioteca de clases, as como tipos definidos por el usuario que modelan los
conceptos especficos del dominio problemtico del programa.
La informacin almacenada en un tipo puede incluir lo siguiente:
Tipos integrados
C# proporciona un conjunto estndar de tipos numricos integrados para
representar enteros, valores de punto flotante, expresiones Boolean, caracteres de
texto, valores decimales y otros tipos de datos. Tambin hay
tipos object y string integrados. Dichos tipos estn disponibles para que los utilice
en cualquier programa de C#. Para obtener ms informacin sobre los tipos
integrados, vea Tablas de referencia para tipos (Referencia de C#).
Tipo de C#
bool
System.Boolean
byte
System.Byte
sbyte
System.SByte
char
System.Char
decimal
System.Decimal
double
System.Double
float
System.Single
int
System.Int32
uint
System.UInt32
Long
System.Int64
ulong
System.UInt64
object
System.Object
short
System.Int16
ushort
System.UInt16
string
System.String
Tipos personalizados
Las construcciones struct, class, interface y enum se utilizan para crear sus propios
tipos personalizados. La biblioteca de clases de .NET Framework en s es una
coleccin de tipos personalizados proporcionada por Microsoft que puede utilizar en
sus propias aplicaciones. De forma predeterminada, los tipos usados con mayor
Tipos de valor
Los tipos de valor se derivan de System::ValueType, que a su vez se deriva
de System::Object. Los tipos que se derivan de System::ValueType tienen un
comportamiento especial en CLR. Las variables de tipo de valor contienen
directamente sus valores, lo que significa que la memoria se asigna insertndola en
cualquier contexto en el que se declare la variable. En las variables de tipo de valor
no se produce una asignacin de memoria independiente en el montn ni una
sobrecarga de recoleccin de elementos no utilizados.
Hay dos categoras de tipos de valor: struct y enum.
Los tipos numricos integrados son structs con propiedades y mtodos a los que
puede tener acceso:
C#
// Static method on type Byte.
byte b = Byte.MaxValue;
C#
byte num = 0xA;
int i = 5;
char c = 'Z';
La palabra clave struct se usa para crear sus propios tipos de valor
personalizados. Normalmente, un struct se utiliza como contenedor de un pequeo
conjunto de variables relacionadas, como se muestra en el ejemplo siguiente:
C#
public struct CoOrds
{
public int x, y;
public CoOrds(int p1, int p2)
{
x = p1;
y = p2;
}
}
Tipos de referencia
Un tipo que se define como clase, delegado, matriz o interfaz es un tipo de
referencia. Al declarar una variable de un tipo de referencia en tiempo de ejecucin,
la variable contiene el valor null hasta que se crea explcitamente una instancia del
Tipos genricos
Un tipo se puede declarar con uno o varios parmetros de tipo que actan como
marcador de posicin del tipo real (el tipo concreto) que proporcionar el cdigo
cliente al crear una instancia del tipo. Estos tipos se denominan tipos genricos. Por
ejemplo, el tipo de .NET Framework System.Collections.Generic::List<T> tiene un
parmetro de tipo al que, por convencin, se le asigna el nombre T.
Matrices
Puede almacenar distintas variables del mismo tipo en una estructura de datos de
matriz. Para declarar una matriz especifique el tipo de sus elementos.
Los elementos de una matriz pueden ser de cualquier tipo, incluido el tipo
matriz.
Los tipos de matriz son tipos de referencia derivados del tipo base
abstracto Array. Puesto que este tipo
implementa IEnumerable e IEnumerable<T>, puede utilizar la
iteracin foreach en todas las matrices de C#.
Cadenas (Gua de
programacin de C#)
Visual Studio 2013
Otras versiones
Una cadena es un objeto de tipo String cuyo valor es texto. Internamente, el texto
se almacena como una coleccin secuencial de solo lectura de objetos Char. Al final
\'
Comilla simple
\"
Comilla doble
\\
\0
Null
\a
Alerta
\b
Retroceso
\f
Avance de pgina
\n
Nueva lnea
\r
Retorno de carro
\t
Tabulacin horizontal
\U
\u
\v
Tabulacin vertical
\x
Nota
En tiempo de compilacin, las cadenas textuales se convierten en cadenas normales con las mismas secue
textual en la ventana Inspeccin del depurador, ver los caracteres de escape agregados por el compilado
ejemplo, la cadena textual @"C:\files.txt" aparecer como "C:\\files.txt" en la ventana Inspeccin.