C# es un nuevo lenguaje de programación diseñado para crear un amplio número de aplicaciones empresariales que se ejecutan en .NET Framework.
Supone una evolución de Microsoft C y Microsoft C++; es sencillo, moderno, proporciona seguridad de tipos y está orientado a objetos.
El código creado mediante C# se compila como código administrado, lo cual significa que se beneficia de los servicios de Common Language Runtime.
Estos servicios incluyen interoperabilidad entre lenguajes, recolección de elementos no utilizados, mejora de la seguridad y mayor compatibilidad entre versiones.
C# se presenta como
Visual C# en el conjunto de programas Visual Studio .NET. Visual C#
utiliza plantillas de proyecto, diseñadores, páginas de propiedades, asistentes
de código, un modelo de objetos y otras características del entorno de
desarrollo.
La biblioteca para programar en Visual C# es .NET Framework.
La biblioteca para programar en Visual C# es .NET Framework.
VENTAJAS DEL C#
Las ventajas que ofrece C# frente a otros lenguajes de programación son:
Declaraciones en el espacio de nombres: al empezar a programar algo, se puede definir una o más clases dentro de un mismo espacio de nombres.
Tipos de datos: en C# existe un rango más amplio y definido de tipos de datos que los que se encuentran en C, C++ o Java.
Atributos: cada miembro de una clase tiene un atributo de acceso del tipo público, protegido, interno, interno protegido y privado.
Pase de parámetros: aquí se puede declarar a los métodos para que acepten un número variable de parámetros. De forma predeterminada, el pase de parámetros es por valor, a menos que se use la palabra reservada ref, la cual indica que el pase es por referencia.
Métodos virtuales y redefiniciones: antes de que un método pueda ser redefinido en una clase base, debe declararse como virtual. El método redefinido en la subclase debe ser declarado con la palabra override
Propiedades: un objeto tiene intrínsecamente propiedades, y debido a que las clases en C# pueden ser utilizadas como objetos, C# permite la declaración de propiedades dentro de cualquier clase.
Inicializador: un inicializador es como una propiedad, con la diferencia de que en lugar de un nombre de propiedad, un valor de índice entre corchetes se utiliza en forma anónima para hacer referencia al miembro de una clase.
Control de versiones: C# permite mantener múltiples versiones de clases en forma binaria, colocándolas en diferentes espacios de nombres. Esto permite que versiones nuevas y anteriores de software puedan ejecutarse en forma simultánea.
Las ventajas que ofrece C# frente a otros lenguajes de programación son:
Declaraciones en el espacio de nombres: al empezar a programar algo, se puede definir una o más clases dentro de un mismo espacio de nombres.
Tipos de datos: en C# existe un rango más amplio y definido de tipos de datos que los que se encuentran en C, C++ o Java.
Atributos: cada miembro de una clase tiene un atributo de acceso del tipo público, protegido, interno, interno protegido y privado.
Pase de parámetros: aquí se puede declarar a los métodos para que acepten un número variable de parámetros. De forma predeterminada, el pase de parámetros es por valor, a menos que se use la palabra reservada ref, la cual indica que el pase es por referencia.
Métodos virtuales y redefiniciones: antes de que un método pueda ser redefinido en una clase base, debe declararse como virtual. El método redefinido en la subclase debe ser declarado con la palabra override
Propiedades: un objeto tiene intrínsecamente propiedades, y debido a que las clases en C# pueden ser utilizadas como objetos, C# permite la declaración de propiedades dentro de cualquier clase.
Inicializador: un inicializador es como una propiedad, con la diferencia de que en lugar de un nombre de propiedad, un valor de índice entre corchetes se utiliza en forma anónima para hacer referencia al miembro de una clase.
Control de versiones: C# permite mantener múltiples versiones de clases en forma binaria, colocándolas en diferentes espacios de nombres. Esto permite que versiones nuevas y anteriores de software puedan ejecutarse en forma simultánea.
DESVENTAJAS
Las desventajas que se derivan del uso de este lenguaje de programación son que en primer lugar se tiene que conseguir una versión reciente de Visual Studio .NET, por otra parte se tiene que tener algunos requerimientos mínimos del sistema para poder trabajar adecuadamente tales como contar con Windows NT 4 o superior, tener alrededor de 4 gigas de espacio libre para la pura instalación, etc.
Además para quien no está familiarizado con ningún lenguaje de programación, le costará más trabajo iniciarse en su uso, y si se quiere consultar algún tutorial más explícito sobre la programación en C# se tendría que contar además con una conexión a Internet.
Las desventajas que se derivan del uso de este lenguaje de programación son que en primer lugar se tiene que conseguir una versión reciente de Visual Studio .NET, por otra parte se tiene que tener algunos requerimientos mínimos del sistema para poder trabajar adecuadamente tales como contar con Windows NT 4 o superior, tener alrededor de 4 gigas de espacio libre para la pura instalación, etc.
Además para quien no está familiarizado con ningún lenguaje de programación, le costará más trabajo iniciarse en su uso, y si se quiere consultar algún tutorial más explícito sobre la programación en C# se tendría que contar además con una conexión a Internet.
Características principales de C#
A continuación enumeramos las principales
características que definen al lenguaje de programación C#. Algunas de
estas características no son propias del lenguaje, sino
de la plataforma .NET, aunque se listan aquí ya que tienen
una implicación directa en el lenguaje.
Sencillez de uso
C# elimina muchos elementos añadidos
por otros lenguajes y que facilitan su uso y compresión, como por ejemplo
ficheros de cabecera, o ficheros fuentes IDL 1 ... por ello que se dice que C#
es auto contenido. Además, no se incorporan al lenguaje elementos
poco útiles, como por ejemplo macros, herencia múltiple u operadores diferentes
al operador de acceso a métodos (operador punto) para acceder a miembros de
espacios de nombres.
Modernidad
Al ser C# un lenguaje de última
generación, incorpora elementos que se ha demostrado a lo largo del tiempo que
son muy útiles para el programador, como tipos decimales o
booleanos, un tipo básico string ,así como una instrución que
permita recorrer colecciones con facilidad(instrucción foreach).
Estos elementos hay que simularlos en otros lenguajes como C++ o Java.
Estos elementos hay que simularlos en otros lenguajes como C++ o Java.
Orientado a objetos
C# como lenguaje de última
generación, y de propósito general, esorientado a objetos. C# no permite
la inclusión de funciones ni variables globales que no estén incluidos
en una definición de tipos, por lo que la orientación a objetos es más
pura y clara que en otros lenguajes como C++.
Además, C# soporta todas las características del paradigma de la programación orientada a objetos, como son la
Además, C# soporta todas las características del paradigma de la programación orientada a objetos, como son la
encapsulación, la herencia y el polimorfismo
Orientado a componentes
La propia sintaxis de C# incluye
elementos propios del diseño de componentes que otros lenguajes tienen que
simular. La sintaxis de C#incluye por ejemplo formas de definir propiedades, eventos o atributos
Recolección de basura
Como ya se comentó, todo lenguaje
incluido en la plataforma .NET tiene a su disposición el recolector de
basura del CLR. Esto implica que no es necesario incluir instrucciones de
destrucción de objetos en el lenguaje.
Seguridad de tipos
C# incluye mecanismos de control de
acceso a tipos de datos, lo que garantiza que no se produzcan errores
difíciles de detectar como una acceso a memoria de ningún objeto,
por ejemplo. Para ello, el lenguaje provee de una serie de normas de sintaxis,
como por ejemplo no realizar conversiones entre tipos que no
sean compatibles. Además, no se pueden usar variables no inicializadas
previamente, y en el acceso atablas se hace una comprobación de rangos
para que no se excedan ninguno de los índices de la misma. Se puede
controlar así mismo los
desbordamientos en operaciones
aritméticas, produciéndose excepciones cuando se produzcan.
Instrucciones seguras
Para evitar errores comunes como
se producían programando en otros lenguajes, en C# se han impuesto una
serie de restricciones en el uso de instrucciones de control más comunes. Por
ejemplo, la evaluación de toda condición ha de ser una expresión
condicional y no aritmética,como ocurría por ejemplo en C o en C++. Así se
evitan errores por confusión del operador igualdad con el de asignación.
Otra restricción que se impone en la instrucción de selección switch, imponiendo que toda selectora de la
instrucción finalice con una instrucción break o goto que indique cuál es la siguiente acción a
realizar.
Unificación de tipos
En C# todos los tipos derivan
de una super clase común llamada System. Object , por lo que automáticamente heredarán
todos los miembros definidos en esta clase. Es decir, son
objetos A diferencia de Java, en C# esta característica
también se aplica para los tipos básicos.
Extensión de los operadores básicos
Para facilitar la legibilidad de
código y conseguir que los nuevos tipos de datos que se definan a través de las
estructuras estén al mismo nivel que los elementos predefinidos en el lenguaje,
al igual que C++ pero a diferencia de Java, C# permite redefinir el
significado de la mayoría delos operadores (incluidos el de la conversión)
cuando se apliquen a diferentes tipos de objetos.
Las redefiniciones de operadores se hacen
de manera inteligente, de modo que a partir de una única definición de los
operadores
++
y
-
el compilador puede
deducir automáticamente cómo ejecutarlos de manera prefija y postfija.
Definiendo operadores simples como la suma, el compilador deduce como aplicar la
versión designación compuesta (+=). Además, para asegurar la consistencia,
el compilador exige que los operadores con opuesto (como por ejemplo el
operador igualdad==y su opuesto!=) siempre se re definan por parejas.
Extensión de modificadores
C# ofrece, a través de los atributos , la posibilidad de añadir a metaplasmos del módulo resultante de la compilación de cualquier fuente información
adicional a la generada por el compilador que luego podrá ser consultada en
tiempo de ejecución a través de la biblioteca de reflexión de .NET.
Eficiente
En C#, todo el código incluye
numerosas restricciones para garantizar su seguridad, no permitiendo el uso
de punteros. Sin embargo, y a diferencia de Java, existen modificadores para
saltarse esta restricción,pudiendo manipular objetos a través de punteros.
Para ello basta identificar regiones de código con el identificador una fase , y podrán usarse en ellas punteros de forma similar a como se hace en C++. Esta característica puede resultar de utilidad en situaciones en las que se necesite gran
velocidad de procesamiento.
Compatible
Para
facilitar la migración de programadores de C++ o Java a C#, no sólo se
mantiene una sintaxis muy similar a la de los dos anteriores lenguajes, sino que
el CLR también ofrece la posibilidad de acceder código nativo escrito como
funciones sueltas no orientadas a objetos,tales como las DLLs de la API de
Win32.
Requisito
|
Enterprise Architect
|
Enterprise Developer
|
Professional
|
Academic
|
Procesador
|
PC con procesador de
tipo Pentium II, 450 MHz
Se recomienda: tipo Pentium III, 600 MHz |
Igual
|
Igual
|
Igual
|
RAM
|
Windows 2000 Professional: 96 MB; Windows 2000
Server: 192 MB; Windows XP Home: 96 MB; Windows XP Professional y Windows Server
2003: 192 MB
Se recomienda: 128 MB para 2000 Professional, 256 MB para 2000 Server, 160 MB para XP Home y 256 MB para XP Professional y Server 20031 |
Igual
|
Igual
|
Igual
|
Espacio disponible
en el disco duro
|
900 MB en la unidad
del sistema y 4,1 GB en la unidad de instalación2
|
Igual
|
Igual
|
Igual
|
Sistema operativo
|
Windows® 2000, Windows XP, Windows Server 2003
o Windows NT 4.03,4,5
|
Igual
|
Igual
|
Igual
|
Unidad de CD-ROM o
DVD-ROM
|
Requerida6
|
Requerida
|
Requerida
|
Requerida
|
Vídeo
|
800 x 600, 256
colores
Se recomienda: color de alta densidad, 16 bits |
Igual
|
Igual
|
Igual
|
Mouse (ratón)
|
Microsoft Mouse o
dispositivo señalador compatible
|
Igual
|
Igual
|
Igual
|
Requisito
|
Visual Basic
|
Visual C++
|
Visual C#
|
Visual J#
|
Procesador
|
PC con procesador de
tipo Pentium II, 450 MHz
Se recomienda: tipo Pentium III, 600 MHz |
Igual
|
Igual
|
Igual
|
RAM
|
Windows 2000 Professional: 96 MB; Windows 2000
Server: 192 MB; Windows XP Home: 96 MB; Windows XP Professional y Server
2003: 192 MB
Se recomienda: 128 MB para 2000 Professional, 256 MB para 2000 Server, 160 MB para XP Home y 256 MB para XP Professional y Server 20031 |
Igual
|
Igual
|
Igual
|
Espacio disponible
en el disco duro
|
750 MB en la unidad
del sistema y 2,5 GB en la unidad de instalación
|
Igual
|
Igual
|
Igual
|
Sistema operativo
|
Windows® 2000, Windows XP, Windows Server 2003
o Windows NT 4.03,4,5
|
Igual
|
Igual
|
Igual
|
Unidad de CD-ROM o
DVD-ROM
|
Requerida
|
Igual
|
Igual
|
Igual
|
Vídeo
|
800 x 600, 256
colores
Se recomienda: color de alta densidad, 16 bits |
Igual
|
Igual
|
Igual
|
Mouse (ratón)
|
Microsoft Mouse o
dispositivo señalador compatible
|
Igual
|
Igual
|
Igual
|
Versiones
Versiones 1.0
Versiones 2.0
Versiones 3.0
Versiones 4.0
Versiones 5.0
Especificaciones
C# es un lenguaje de
programación simple pero eficaz, diseñado para escribir aplicaciones
empresariales.
El lenguaje C# es una
evolución de los lenguajes C y C++. Utiliza muchas de las características de
C++ en las áreas de instrucciones, expresiones y operadores.
C# presenta
considerables mejoras e innovaciones en áreas como seguridad de tipos, control
de versiones, eventos y recolección de elementos no utilizados (liberación de
memoria).
C# proporciona acceso a
los tipos de API más comunes: .NET Framework, COM, Automatización y estilo C.
Asimismo, admite el modo unsafe, en el que se pueden utilizar punteros
para manipular memoria que no se encuentra bajo el control del recolector de
elementos no utilizados.
No hay comentarios:
Publicar un comentario