Caja de herramientas de inteligencia artificial para la academia y la investi...
Reporte_de_microsoft_visual_c#
1. ¿Qué es Microsoft Visual C#?
C# es un lenguaje de programación que se ha diseñado para compilar diversas
aplicaciones que se ejecutan en .NET Framework. C# es simple, eficaz, con seguridad de
tipos y orientado a objetos. Las numerosas innovaciones de C# permiten desarrollar
aplicaciones rápidamente y mantener la expresividad y elegancia de los lenguajes de estilo
de C.
C# (pronunciado si Sharp en inglés) 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.
Visual C# es una implementación del lenguaje C# de Microsoft. Visual Studio admite Visual
C# con un editor de código con características más completas, compilador, plantillas de
proyecto, diseñadores, asistentes de código, un depurador eficaz y fácil de usar, y otras
herramientas. La biblioteca de clases de .NET Framework ofrece acceso a numerosos
servicios de sistema operativo y a otras clases útiles y adecuadamente diseñadas que
aceleran el ciclo de desarrollo de manera significativa.
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.
¿Características de Microsoft Visual C#?
Sencillez:
elimina muchos elementos que otros lenguajes incluyen y que son
innecesarios en .NET. Por ejemplo:
El código escrito en C# es auto contenido, lo que significa que no necesita de ficheros
adicionales al propio fuente tales como ficheros de cabecera o ficheros IDL
No se incluyen elementos poco útiles de lenguajes como C++ tales como macros, herencia
múltiple o la necesidad de un operador diferente del punto (.) acceder a miembros de
espacios de nombres (::)
Modernidad:
incorpora en el propio lenguaje elementos que son muy útiles para el
desarrollo de aplicaciones y que Java o C++ tienen algo simular, como un tipo
básico decimal que permita realizar operaciones de alta precisión con reales de 128 bits
(muy útil en el mundo financiero), la inclusión de una instrucción foreach que permita
2. recorrer colecciones con facilidad y es ampliable a tipos definidos por el usuario, la inclusión
de un tipo básico string para representar cadenas o la distinción de un tipo bool específico
para representar valores lógicos.
Orientación a objetos: es un lenguaje orientado a objetos. Una diferencia de este
enfoque orientado a objetos respecto al de otros lenguajes como C++ es que el de C# es
más puro en tanto que no admiten ni funciones ni variables globales sino que todo el código
y datos han de definirse dentro de definiciones de tipos de datos, lo que reduce problemas
por conflictos de nombres y facilita la legibilidad del código.
C# soporta todas las características propias del paradigma de programación orientada a
objetos: encapsulación, herencia y polimorfismo.
Orientación a componentes: La propia sintaxis de C# incluye elementos propios
del diseño de componentes que otros lenguajes tienen mediante construcciones más o
menos
complejas.
Es
decir,
la
sintaxis
de
C#
permite
definir
cómodamente propiedades (similares a campos de acceso controlado), eventos (asociación
controlada de funciones de respuesta a notificaciones) o atributos (información sobre un
tipo o sus miembros)
Gestión automática de memoria: Todo lenguaje de .NET tiene a su disposición el
recolector de basura del CLR. Esto tiene el efecto en el lenguaje de que no es necesario
incluir instrucciones de destrucción de objetos. Sin embargo, dado que la destrucción de los
objetos a través del recolector de basura es indeterminista y sólo se realiza cuando éste se
active –ya sea por falta de memoria, finalización de la aplicación o solicitud explícita en el
fuente-.
C# también proporciona un mecanismo de liberación de recursos determinista a través de
la instrucción using.
Seguridad de tipos:
incluye mecanismos que permiten asegurar que los accesos a
tipos de datos siempre se realicen correctamente, lo que permite evita que se produzcan
errores difíciles de detectar. Para ello se toman ciertas medidas como:
Sólo se admiten conversiones entre tipos compatibles.
No se pueden usar variables no inicializadas.
Se comprueba que todo acceso a los elementos de una tabla se realice con
índices que se encuentren dentro del rango de la misma.
Se puede controlar la producción de desbordamientos en operaciones
aritméticas, informándose de ello con una excepción cuando ocurra.
A diferencia de Java, C# incluye delegados, que son similares a los punteros
a funciones de C++ pero siguen un enfoque orientado a objetos,
3. Pueden definirse métodos que admitan un número indefinido de
parámetros de un cierto tipo, y a diferencia lenguajes como C/C++, en C#
siempre se comprueba que los valores que se les pasen en cada llamada sean
de los tipos apropiados.
Instrucciones seguras: Para evitar errores muy comunes, en C# se han impuesto una
serie de restricciones en el uso de las instrucciones de control más comunes. Por ejemplo,
la guarda de toda condición ha de ser una expresión condicional y no aritmética, con lo que
se evitan errores por confusión del operador de igualdad (==) con el de asignación (=); y
todo caso de un switch ha de terminar en un break o goto que indique cuál es la siguiente
acción a realizar, lo que evita la ejecución accidental de casos y facilita su reordenación.
Sistema de tipos unificado: A diferencia de C++, en C# todos los tipos de datos que
se definan siempre derivarán, aunque sea de manera implícita, de una clase base común
llamada System.Object, por lo que dispondrán de todos los miembros definidos en ésta
clase (es decir, serán “objetos”)
Extensibilidad de tipos básicos: permite definir, a través de estructuras, tipos de
datos para los que se apliquen las mismas optimizaciones que para los tipos de datos
básicos. Es decir, que se puedan almacenar directamente en pila (luego su creación,
destrucción y acceso serán más rápidos) y se asignen por valor y no por referencia.
Extensibilidad de operadores:
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 como ejecutarlos de manera prefijas y
postfija; y definiendo operadores simples (como +), el compilador deduce cómo aplicar
su versión de asignación compuesta (+=) Además, para asegurar la consistencia, el
compilador vigila que los operadores con opuesto siempre se redefinan por parejas
Extensibilidad de modificadores:
ofrece, a través del concepto de atributos, la
posibilidad de añadir a los metadatos 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 ejecución a través de la librería de reflexión de .NET . Esto, que más
bien es una característica propia de la plataforma .NET y no de C#, puede usarse como un
mecanismo para definir nuevos modificadores.
Versionable: incluye una política de versionado que permite crear nuevas versiones de
tipos sin temor a que la introducción de nuevos miembros provoquen errores difíciles de
detectar en tipos hijos previamente desarrollados y ya extendidos con miembros de igual
nombre a los recién introducidos.
4. Eficiente: En C# todo código incluye numerosas restricciones para asegurar su seguridad
y no permite el uso de punteros. Sin embargo, y a diferencia de Java, en C# es posible
saltarse dichas restricciones manipulando objetos a través de punteros. Para ello basta
marcar regiones de código como inseguras (modificador unsafe) y podrán usarse en ellas
punteros de forma similar a cómo se hace en C++, lo que puede resultar vital para
situaciones donde se necesite una eficiencia y velocidad procesamiento muy grandes.
Compatible:
Para facilitar la migración de programadores, C# no sólo mantiene una
sintaxis muy similar a C, C++ o Java que permite incluir directamente en código escrito en
C# fragmentos de código escrito en estos lenguajes, sino que el CLR también ofrece, a
través de los llamados PlatformInvocationServices (PInvoke) También es posible acceder
desde código escrito en C# a objetos COM. Para facilitar esto, el .NET Framework
SDK incluye una herramientas llamadas tlbimp yregasm mediante las que es posible generar
automáticamente clases proxy que permitan, respectivamente, usar objetos COM desde
.NET como si de objetos .NET se tratase y registrar objetos .NET para su uso desde COM.
Finalmente, también se da la posibilidad de usar controles ActiveX desde código .NET y
viceversa. Para lo primero se utiliza la utilidad aximp, mientras que para lo segundo se usa
la ya mencionada regasm.
Desarrolladores de Microsoft Visual C#
Anders Hejlsberg nació en 1960 (algunas fuentes señalan que fue en 1961, pero durante el
TechEd 2006 en Barcelona, el propio Hejlsberg confirmó que nació en Diciembre de 1960).
Es un destacado ingeniero de software danés que co-diseñó varios lenguajes de
programación e instrumentos de desarrollo populares y comercialmente acertados.
Actualmente trabaja para Microsoft, donde es el arquitecto jefe del lenguaje de
programación C#.
5. Hejlsbergs nació en Copenhague, Dinamarca, y estudió ingeniería en la Universidad
Técnica de Dinamarca, pero nunca se graduó. Mientras estaba en la universidad, en 1981,
comenzó a escribir programas para el microordenador Nascom, incluyendo un compilador
de Pascal que se llamaba Blue Label Pascal compiler (el compilador de Pascal para el
Nascom-2). Sin embargo, pronto lo reescribió para CP/M y MS-DOS. El compilador fue
conocido inicialmente como Compas Pascal y más tarde como PolyPASCAL. Más adelante
el producto fue concedido bajo licencia a Borland, y, combinado con otras herramientas
de programación, se convirtió en el sistema Turbo Pascal. Dicho compilador se inspiró en
gran medida en el compilador Tiny Pascal, descrito en el libro "Algorithms + Data
Structures = Programs" de Niklaus Wirth, uno de los libros más influyentes en el área de
ciencias computacionales de aquel tiempo. Anders y sus colegas fundaron una tienda de
informática en Copenhague donde vendían aplicaciones de contabilidad. Su compañía,
PolyData, distribuía productos de Microsoft en Dinamarca, lo que les supuso algunos
conflictos con Borland.
Hejlsberg se convirtió en uno de los objetivos principales de Microsoft y, tras una sucesión
de ofertas, Borland no pudo igualar la oferta hecha por Microsoft. En 1996 Hejlsberg
abandonó Borland y se unió a Microsoft. Uno de sus primeros logros fue el lenguaje de
programación J++. También se convirtió en un Ingeniero distinguido y Técnico de
Microsoft. Desde 2000, ha sido el arquitecto principal del equipo que desarrolla el
lenguaje de programación C#. En 2012 Hejsberg anunció su nuevo proyecto TypeScript.
6. Versiones de Microsoft Visual C#.
Visual F#
Es un lenguaje de programación multiparadigma de código abierto, para la plataforma
.NET, que conjunta la programación funcional con las disciplinas imperativa y orientada a
objetos. Es una variante del lenguaje de programación ML y es compatible con la
implementación Objective Caml. F# fue inicialmente desarrollado por Don Syme de
Microsoft Research, pero actualmente está siendo desarrollado por la División de
Desarrolladores de Microsoft y es distribuido como un lenguaje totalmente soportado en
la plataforma .NET y Visual Studio
Visual Studio 6.0
Se lanzó en 1998 y fue la última versión en ejecutarse en la plataforma Win9x. Los
números de versión de todas las partes constituyentes pasaron a 6.0, incluyendo Visual
J++ y Visual InterDev, que se encontraban en las versiones 1.1 y 1.0 respectivamente. Esta
versión fue la base para el sistema de desarrollo de Microsoft para los siguientes 4 años,
en los que Microsoft migró su estrategia de desarrollo al .NET Framework.
Visual Studio 6.0 fue la última versión en que Visual Basic se incluía de la forma en que se
conocía hasta entonces; versiones posteriores incorporarían una versión muy diferente
del lenguaje con muchas mejoras, fruto de la plataforma .NET. También supuso la última
versión en incluir Visual J++, que proporcionaba extensiones de la plataforma Java, lo que
lo hacía incompatible con la versión de Sun Microsystems. Esto acarreó problemas legales
a Microsoft, y se llegó a un acuerdo en el que Microsoft dejaba de comercializar
herramientas de programación que utilizaran la máquina virtual de Java.
Aunque el objetivo a largo plazo de Microsoft era unificar todas las herramientas en un
único entorno, esta versión en realidad añadía un entorno más a Visual Studio 5.0: Visual
J++ y Visual Interdev se separaban del entorno de Visual C++, al tiempo que Visual FoxPro
y Visual Basic seguían manteniendo su entorno específico.
Visual C++
Visual C++ (también conocido como Mvs}C, Microsoft Visual C++) es un entorno de
desarrollo integrado (IDE) para lenguajes de programación C, C++ y C++/CLI.
Visual C++ engloba el desarrollo de aplicaciones hechas en C, C++ y C++/CLI en el entorno
Windows. Visual C++ incluye además las bibliotecas de Windows (WinApi), las bibliotecas
7. MFC y el entorno de desarrollo para .NET Framework. Visual C++ cuenta con su propio
compilador (de igual nombre) y otras herramientas como IntelliSense, TeamFoundation
Server, Debug,... Además provee de bibliotecas propias de cada versión del sistema
operativo y sockets. Como otros compiladores, se le pueden añadir nuevas bibliotecas
como DirectX, wxWidgets o SDL.
Visual FoxPro
Visual FoxPro es un lenguaje de programación procedural, orientado a objetos que posee
un Sistema Gestor de Bases de datos o Database Management System (DBMS) y Sistema
administrador de bases de datos relacionales, producido por Microsoft.
Visual FoxPro ofrece a los desarrolladores un conjunto de herramientas para crear
aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o
para la Web.
Visual InterDev
Microsoft Visual InterDev, parte de Microsoft Visual Studio 97 y 6.0, es un entorno de
desarrollo integrado (IDE) usado para crear aplicaciones web usando las tecnologías de
Microsoft Active Server Pages (Páginas de Servidor Activo o ASP). Puede completar código,
tiene herramientas de administración de servidor de base de datos y un compilador
integrado.
El IDE extenso de InterDev está compartido con Microsoft Visual J++ y es el precursor del
IDE de Microsoft Visual Studio .Net. Posteriormente, Visual Web Developer reemplazó a
InterDev en la suite de herramientas de Visual Studio.
Entre sus características se pueden enumerar:
Capacidades para el manejar datos nativos y remotos.
Flexibilidad para crear soluciones de bases de datos.
Lenguaje de Programación Orientado a objetos.
Utilización de Sentencias SQL en forma nativa.
Manejo de vistas, cursores y control completo de estructuras relacionales.
Su propio gestor de base de datos incorporado. Sin embargo, también puede
conectarse con servidores de base de datos, tales como Oracle, Microsoft SQL
Server o MySQL.
8.
Cuenta con un motor de generación de informes renovado y flexible para
soluciones más robustas.
Desde la versión 9.0, amplio soporte de XML, tanto como fuente de datos (por ej.,
servicios Web basados en XML) como por generar reportes en formato XML.
Microsoft Visual J++
Visual J++ es la ahora descontinuada implementación de Microsoft de un IDE para el
lenguaje de programación Java. Creado para la plataforma Windows, los programas
escritos en J++ pueden correr sólo en la MSJVM (Microsoft Virtual Machine for Java,
Máquina Virtual Java de Microsoft), que era el intento propietario de Microsoft de un
intérprete Java. La sintaxis, palabras clave y convenciones gramáticas de Java eran
respetadas.
Visual J++ ha sido reemplazado por J#, que es capaz de compilar código Java/J++ al
lenguaje intermedio MSIL de la plataforma .NET.
Visual C#
C# es un lenguaje de programación que se ha diseñado para compilar diversas aplicaciones
que se ejecutan en .NET Framework. C# es simple, eficaz, con seguridad de tipos y orientado
a objetos. Las numerosas innovaciones de C# permiten desarrollar aplicaciones
rápidamente y mantener la expresividad y elegancia de los lenguajes de estilo de C.
Visual C# es una implementación del lenguaje C# de Microsoft. Visual Studio admite Visual
C# con un editor de código con características más completas, compilador, plantillas de
proyecto, diseñadores, asistentes de código, un depurador eficaz y fácil de usar, y otras
herramientas. La biblioteca de clases de .NET Framework ofrece acceso a numerosos
servicios de sistema operativo y a otras clases útiles y adecuadamente diseñadas que
aceleran el ciclo de desarrollo.
Algunos de los desarrolladores de los distintos lenguajes de
programación son:
9. 1- Java (James Gosling)
2- C (Ken Thompson Left & Dennis Ritchie Right)