Des Arrollo

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 19

Presentacion

Nombres: Wascar #2, Richard #3, Abel #5, Engel#9


Jose #11, Angel 15#, Yosiry #18

Materia: Desarrollo de Aplicaciones

Curso: 5to de aplicaciones

Profesor(a): Yisel Garo

Instituto: Politécnico Profesor Juan Bosch

Año: 2020-2021
Indice

¿Que es C#?...................................Pag 4

Historia y Origen de C#.................Pag 5 - 8

Características……………………Pag 9 - 10

Utilidad……………………………Pag 11

Ventajas y Desventajas……………Pag 12 – 15

Sintaxis……………………………Pag 16 - 18

Frameworks……………………….Pag 19 - 20
Introduccion

C# es un programa que nos resulta interesante porque la mayor parte de su base es muy
parecida a: C y los programadores de C, C++, Java y JavaScript, se distingue bastante por si
solo y resulta muy cómodo si se tiene conocimiento previo de cualquiera de los otros lenguajes

Desarrollo | ¿Que es C#?


Es un lenguaje de programación diseñado por la conocida compañía Microsoft. Fue
estandarizado en es un poco tiempo por la ECMA e ISO Dos de las organizaciones más
importante a la hora de crear estándares como los servicios o productos.

es un lenguaje formal diseñado para que máquinas o aparatos electrónicos puedan llevar a cabo
instrucciones.

Está formado por un conjunto de símbolos y reglas tanto sintácticas como semánticas.

Proporcionar un puente para realizar las instrucciones de psicológico extensible por el humano
e instrucciones creíbles para la máquina
Desarrollo | Historia y Origen
Origen del Nombre

Que este lenguaje haya adquirido el nombre de C Sharp viene inspirado por el signo
#, este signo se pronuncia como Sharp en inglés para la notación musical. Es un
juego de palabras, puesto que “C#” musicalmente significaría “do sostenido”,
donde el signo # nos indica que una nota es un semitono más alto. Todo eso lo
podemos traducir como una metáfora sobre la superioridad del C# sobre su
antecesor, el C++. También el símbolo de sharp puede hacer una alusión a la unión
de cuatro +, siguiendo el sentido de progresión de los lenguajes C.

Historia

La evolución
2002

Antes, 2002 fue el año en el que se pudo ver la primera versión de C#, la 1.0. Aquí
se establecieron las bases del lenguaje: el uso de clases, structs, interfaces, modelo
de herencia, ciclo de vida, etc. También ocurrio el nacimiento de Microsoft .Net
Framework.

Un año más tarde y con el fin de solucionar varios problemas, salio la versión 1.2
del lenguaje C#. No obstante, lo más importante de este año fue la versión 1.1
del .Net Framework que la acompañaba. Este Runtime por fin solucionaba los
problemas de liberación de memoria del Garbage Collector.

Hasta aquí todo era muy parecido a Java. Básicamente, si cambiabas los “import”
por “using”, “java.” por “System.” y las llamadas en pascal Case por Camel Case,
todo funcionaba prácticamente igual. Exceptuando el region. Un pragma del IDE
que servía para ocultar cierto código que se autogeneraba al usar los diseñadores
visuales de formularios.

2005

Con la versión 2.0 se empezó a vislumbrar lo que es hoy en día el lenguaje gracias a


los generics, iteradores, los métodos anónimos, la covarianza y la contra varianza.
Era evidente que el uso de region era tosco. Así que para dar solución al código
generado por los diseñadores de formularios de Windows.Forms y WebForms, en
esta versión se añadieron clases que podían ser definidas en varios archivos
añadiendo la palabra clave “partial”.

2007

Este año nos encontramos con el que sin duda fue el mayor avance del lenguaje. La
versión 3.0 es con la que se consiguió adelantar a Java. A partir de aquí desde Java
se dieron cuenta de que tenían que empezar a copiar las nuevas características de
C#. Los tipos anónimos, junto con las Lambdas y el ExpresionTree, trajeron Linq.
También se incluyeron algunos detalles estéticos (o syntax-sugar), como las auto-
properties o la palabra clave var, que intentaban dar mayor limpieza al código.

Además, por estas fechas, como se habia llegado al límite de calor con respecto al
precio en los materiales de los procesadores, se empezaron a poner de moda los
multi-core. Quedando obsoleto cualquier programa que simplemente utilizara un
solo núcleo de nuestro procesador y dejando los demás en Idle.
De cara a que esto no sucediera, en el .Net Framework 3.5 se introdujo la Task
Parallel Library, que nos ayudaría a sacar provecho de estos nuevos procesadores.

También de esta versión salió otra librería llamada Reactive Extensions. Hoy por
hoy se utiliza más suport para javascript (en React o Angular), pero la librería
original era para C#.

2010

Después de unos años tan interesantes en el mundo del desarrollo de


Microsoft, 2010 nos supo un poco descafeinado. Como un año de transición. Era
como que tenían que sacar algo y decidieron llamarlo C# 4.0. Con unos pocos
detalles que se habían quedado en el tintero en versiones anteriores. Destacaríamos
la covarianza y contra varianza en generics, los parámetros opcionales.

2012

Dos años más tarde nos encontramos con una versión que básicamente solo añadía
el syntax-sugar más grande que ha visto un lenguaje de programación en la historia.
De hecho, luego fue copiado por javascript. C# 5.0 introdujo async y await, dos
palabras claves útiles. Esta característica esconde una máquina de estado en IL
(Intermediate Language, el bytecode de .Net) dentro de nuestros ensamblados. Y su
funcionalidad es hacer que la programación asíncrona pueda realizarse de la misma
forma que la secuencial, acercando un modelo de programación basado en eventos
y callbacks, a los pobres programadores que solo saben programar de forma
secuencial.
2015

Buscando la excelencia de su lenguaje bandera, Microsoft nos dio una gran cantidad
de syntax-sugar nuevos.

2017

La última gran actualización de C#, la versión 7.0. Lo más destacable de esta


versión es que vino de la mano del nuevo Runtime multi plataforma y open source
de .Net. Además de una gran cantidad de funcionalidades que venían inspiradas de
un lenguaje funcional de .Net. 

Desarrollo | Características
 Sintaxis sencilla.
 La sintaxis de C# es muy similar a Java, lo que simplifica al desarrollador a la
hora de escribir código.
 Escritura.
 En C# tienes que declarar los tipos de datos con las variables, además que
estas variables no pueden ser globales. De esta manera se reducen los errores
de compilación. Además, es un lenguaje orientado a objetos, así que obliga
que todos los métodos y propiedades estén dentro de una clase.
 Orientación a componentes. Además de ser orientado a objetos, como hemos
dicho antes, es orientado a componentes. Podemos definir propiedades sin
necesidad de crear métodos, como en Java, o usar eventos sin tratar con
punteros a funciones. Escribir código en C# es mucho más sencillo y potente
que en otros lenguajes de programación.

 Sistema de tipos unificado.


 Todos los tipos de datos sencillos de C# derivan de una clase común llamada
System.Object. De esta manera, la conversión de tipos sólo es compatible
entre los tipos más cercanos (números enteros con decimales, por ejemplo),
además de facilitar la creación de colecciones.
 CLR (Common Language Runtime). Es el núcleo de .NET, el motor que
ejecuta las aplicaciones programadas en C#, lo que ayuda a la integración del
sistema operativo o dlls externas.
 Espacio de nombres. Puedes agrupar o aislar código mediante namespaces,
parecido al package de Java.

 Polimorfismo.
 En C++ se permite la herencia múltiple, pero en C# no, aunque puedes
implementar interfaces. De esta manera se evitan complicaciones y simplifica
la escritura.
 Operadores sobrescritos. En C# puedes recodificar un operador, como puede
ser el sumatorio + o el incremento ++.
 Bibliotecas. Cualquier compilador de C# viene con un mínimo de biblioteca
de clases disponibles y que puedes usar.

 Eliminación de los problemas de DLLs.


 Aunque puedes crear dlls en .NET, no te encuentras con la problemática de la
sustitución de versiones antiguas de dlls compartidas con versiones nuevas.
Pueden existir diferentes versiones de la misma dll, simplificando la
instalación del softwasre.
 Multiplataforma. Actualmente, el lenguaje C# es de código abierto y se ha
utilizado en otros IDEs, como el proyecto Mono o Xamarin, y en múltiples
sistemas operativos, como puede ser OSx o Android.
 Integración con otros lenguajes. Cualquier lenguaje que se compile con .NET,
como la nueva versión de visual basic, puede aprovecharse para usar en tu
proyecto.
 Mejora en la gestión de memoria. Al igual que Java, en C# dispone de un
recolector de basura que destruye los objetos que no se usan en memoria.
 Tratamiento de errores. Cualquier lenguaje de programacion moderno utiliza
las excepciones para controlar los posibles errores en el código.
 Multihilo. Puedes dividir tu código en múltiples hilos de ejecución, trabajar en
paralelo y sincronizándose al final.
Desarrollo | Utilidad
Es un lenguaje de programación diseñado por la conocida compañía Microsoft. Fue
estandarizado en hace un tiempo por la ECMA e ISO dos de las organizaciones más
importantes a la hora de crear estándares para los servicios o productos. El lenguaje
de programación C# está orientado a objetos.
La programación orientada a objetos es una rama de la informática que usa como su
propio nombre indica los objetos y las interacciones de estos para diseñar
aplicaciones y programas informáticos. Cabe destacar que un objeto en
programación es una entidad que combina el estado (son los datos del objeto),
comportamiento o método (las que define qué operaciones puede hacer el objeto) e
identidad (es el factor diferenciador de los otros objetos).
C# es considerado como una evolución y necesidad de ciertas circunstancias.
Evolución por sus lenguajes antecesores que son el C y el C++ y necesidad a la hora
en que la compañía tuvo problemas con la empresa creadora del lenguaje Java. Es
por lo anterior que C Sharp presenta los atributos positivos de C++, Java y Visual
Basic y los mejora otorgando un lenguaje fuerte y actualizado para los tiempos
actuales.

Desarrollo | Ventajas y Desventajas


Ventajas
Esencialmente, C# es una versión moderna de C++. Primero origina el lenguaje C y
el subsecuente C++, con su característica adición de orientación de objetos, la cual
lo llevo a convertirse en el lenguaje de facto para desarrollar aplicaciones en
Windows. Esta se utiliza principalmente para programar la infraestructura y
aplicaciones de bajo nivel.
Con C#, este nos trae el paradigma de desarrollo rápido de Visual Basic al mundo
de los desarrolladores C++, junto a unos cambios significativos. C# toma ventaja
del .NET Framework, lo que significa que tenemos acceso a un motor poderoso de
formularios, así como los desarrolladores de Visual Basic han tenido por años, tales
como nuevos tipos de datos (dato tipo decimal para la ejecución de calculaciones
financieras).

Un Lenguaje Seguro
C# es un lenguaje seguro, lo que implica varios elementos. Por ejemplo, usted no
puede utilizar variables no inicializadas. En C++, es fácil declarar una variable y
después revisar su valor; lo que sea que este en la dirección de memoria dada a esa
variable se mostraría, y esto podría causar problemas en una aplicación. En cambio,
el compilador de C# le notificará si intenta utilizar una variable antes de
inicializarla con algún valor válido.

Orientado a Objetos
Aunque muchos argumenten que C++ es orientado a objetos, C# lo supera a otro
nivel. Cualquier tipo de dato simple se puede tratar como objeto, lo que significa
que un “int” tiene métodos asociados a ello. Por ejemplo, uno puede usar el método
ToString para obtener un valor string para un int.

Más Sencillo que C++


Aunque C++ sea un lenguaje extremamente poderoso, no se considera uno sencillo
de aprender. Por ello, C# intenta simplificar la sintaxis para ser más consistente y
más lógico, junto a la eliminación de una de las características más complejas de C+
+.Ya que es un lenguaje de tipo seguro, C# no permite cualquier manipulación
directa de la memoria, por lo que los indicadores ya no son necesarios y no forman
parte del lenguaje.

Seguro pero flexible


Por otro lado, si necesita utilizar punteros, puede introducir la palabra clave
insegura para marcar un bloque de código. Esto permite que el código omita la
verificación de seguridad del marco de datos y significa que puede manipular
directamente la memoria. Esto hace que C# sea increíblemente poderoso y es una
de las ventajas de C# sobre VB.NET.

 Mejor Manejo de Memoria


El lenguaje remueve problemas de manejo de memoria al desarrollador al usar el
esquema de colección de basura de .NET. Los Items sin referencia son marcados
para la recolección de basura y el marco de datos puede reclamar esta memoria
según sea necesaria.

Comentarios XML
C# admite la introducción de comentarios XML. Lejos de ser solo otra forma de
agregar comentarios al código, los comentarios XML pueden convertirse en
documentación. Estos se colocan en formato XML y luego pueden utilizarse según
sea necesario para documentar su código. Esta documentación puede incluir código
de ejemplo, parámetros y referencias a otros temas. Finalmente, tiene sentido para
un desarrollador documentar su código, porque esos comentarios pueden
convertirse en documentación independiente del código fuente.

Mayor Accesibilidad
La creación de componentes es directa, así como es la referencia a esos
componentes en código. El espacio de nombres en C# reemplaza las molestias del
sistema COM en el cual se tenía que realizar búsquedas de registro y crear
instancias de objetos, lo que llevaba a preocuparse por cosas tales como
“Unknown” y “Dispatch”. Usando C#, simplemente importamos un nombre de
espacio y luego inicia utilizando las clases en ese componente.

Soporte Con Otros Lenguajes


C# tiene la habilidad de permitirle a uno de operar con cualquier otro lenguaje en la
plataforma .NET. Lo cual es algo difícil, sino imposible, con la plataforma COM.
C# también apoya el concepto de manejo de errores a través de diferentes lenguajes.
Atrás quedan los HResults, en su lugar, tiene acceso a las excepciones .NET, que
son consistentes en cualquier lenguaje .NET.
En el mercado actual, las empresas tecnológicas tienen preferencia hacia los
desarrolladores C#; manejar este lenguaje es contar con un sinfín de funciones de
valor para toda empresa. Ciertamente, no es un lenguaje para principiantes, pero
para aquellos experimentados, C# es una herramienta altamente poderosa que le
asegura un desarrollo de alta calidad.
Desarrollo | Ventajas y Desventajas
Desventajas
Las desventajas que se derivan del uso de este lenguaje de programación son:
 Permite mantener múltiples versiones de clases en forma binaria, colocándolas
en diferentes espacios de nombres.
 Se debe conseguir una versión reciente de Visual Studio .NET.
 Se deben tener algunos requerimientos mínimos del sistema para poder
trabajar adecuadamente tales como contar con Windows NT 4 o superior,
tener alrededor de 4 Gb de espacio libre para la instalación, etc.
 Para quien no está familiarizado con ningún lenguaje de programación, le
costará más trabajo iniciarse en su uso.

La excesiva libertad en la escritura de los programas puede llevar a errores en la


programación que, por ser correctos sintácticamente no se detectan a simple vista.
Por otra parte las precedencias de los operadores convierten a veces las expresiones
en pequeños rompecabezas. A pesar de todo, C ha demostrado ser un lenguaje
extremadamente eficaz y expresivo.
Desarrollo | Sintaxis

La sintaxis de C# es muy parecida a la de C, C++ y, sobre todo, Java. Para diseñar


este lenguaje, Microsoft ha decidido que todo lo que se pudiera escribir como se
escribe en C era mejor no tocarlo, y modificar o añadir únicamente aquellas cosas
que en C no tienen una relativa equivalencia. Así, por ejemplo, declarar una
variable o un puntero en C# se escribe igual que en C: 

int a;
int* pA;

Primera premisa: en C# todas las instrucciones y declaraciones deben terminar


con; (punto y coma), salvo que haya que abrir un bloque de código.
Los programas escritos en C# se organizan en clases y estructuras, de modo que
todo el código que escribas debe ir siempre dentro de una clase o bien de una
estructura, salvo la directiva using. Por eso las funciones ahora se llaman métodos,
porque serán métodos de la clase donde las pongas, y las variables y constantes
(dependiendo de dónde se declaren) pueden ser propiedades de la clase. Los que no
sepáis qué es una función, una variable o una constante no os preocupéis, que lo
veremos a su debido tiempo.
En cada aplicación que escribas en C# debes poner un método llamado Main, que
además basta con que sea static, pudiendo ser public, internal o private (veremos
estos modificadores más adelante). No importa en qué clase de tu aplicación
escribas el método Main, pero quédate con la copla: en todo programa escrito en C#
debe haber un método Main, pues será el que busque el CLR para ejecutar tu
aplicación.

A partir de aquí, lo más aconsejable es escribir el método Main en una clase que se
llame igual que el programa más las letras App. Por ejemplo, si es una calculadora,
lo más recomendable es situar el método Main en una clase que se llame
CalculadoraApp. Ahora bien, recuerda que esto no te lo exige el compilador, así
que si pones el método Main en cualquier otra clase el programa funcionará.
 
Otra cosa importante a tener en cuenta es que C# distingue las mayúsculas de las
minúsculas, de modo que una variable que se llame? Nombre? es distinta de otra
que se llame? nombre?, y un método que se llame? Abrir? será distinto de otro que
se llame ?abrir?. Adaptarte a esto será lo que más te cueste si eres programador de
Visual Basic. No obstante, verás que tiene algunas ventajas.
 
C# soporta la sobrecarga de métodos, es decir, que puedes escribir varios métodos
en la misma clase que se llamen exactamente igual, pero recuerda que la lista de
argumentos ha de ser diferente en cada uno de ellos, ya se diferencien en el número
de argumentos o bien en el tipo de dato de dichos argumentos. Esto es algo que
Visual Basic.NET también soporta (por fin), pero no sucedía así en las versiones
anteriores de dicho lenguaje.
 
También soporta la sobrecarga de operadores y conversiones definidas por el
usuario.

Esto quiere decir que cuando diseñes una clase puedes modificar el comportamiento
de varios de los operadores del lenguaje para que hagan cosas distintas de las que se
esperan, y quiere decir también que si usas una clase diseñada por otro
programador, uno o varios operadores pueden estar sobrecargados, por lo que es
conveniente revisar la documentación de dicha clase antes de empezar a usarla, no
sea que le intentes sumar algo, por ejemplo, y te haga cualquier cosa que no te
esperas.
De todos modos, cuando lleguemos al tema de la sobrecarga de operadores te daré
algunos consejos sobre cuándo es apropiado usar esta técnica y cuándo puede ser
contraproducente.
 
En C# no existen archivos de cabecera ni módulos de definición, así que, si
programabas en C o C++, puedes olvidarte de la directiva #include cuando cuente
tres: uno...dos...tres ¡YA! Si programabas en MODULA 2, puedes aplicarte el
cuento con el FROM ... IMPORT, aunque esta vez no voy a contar. Si programabas
en otro lenguaje no me preguntes, que no tengo ni idea. Si no sabías programar en
ningún lenguaje, mejor que no te olvides de nada, que si no la liamos. En lugar de
esto tenemos algo mucho más fácil y manejable: los espacios de nombres, de los
cuales hablaremos en la próxima entrega.
Desarrollo | Frameworks

Un entorno de trabajo (del inglés framework), o marco de trabajo es un conjunto


estandarizado de conceptos, prácticas y criterios para enfocar un tipo de
problemática particular que sirve como referencia, para enfrentar y resolver nuevos
problemas de índole similar.
En el desarrollo de software, un entorno de trabajo es una estructura conceptual y
tecnológica de asistencia definida, normalmente, con artefactos o módulos
concretos de software, que puede servir de base para la organización y desarrollo
de software. Típicamente, puede incluir soporte de programas, bibliotecas, y
un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y
unir los diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las
entidades del dominio, y provee una estructura y una especial metodología de
trabajo, la cual extiende o utiliza las aplicaciones del dominio.

Prism
Por un lado, tenemos Prism, uno de los frameworks de este tipo más antiguos, con
más solera y uno de los que están más testeados. Además, es uno de los frameworks
que recomienda Microsoft

MVVM Light Tooklit


Mvvm Light es un framework ligero para implementar un patrón de diseño MVVM
en aplicaciones en .NET Framework, bastante popular en desarrollos en WPF.
Implementar MVVM (Model View ViewModel) en WPF sin un framework nos
obliga a implementar una gran cantidad de herramientas por nosotros mismos.
Existen múltiples frameworks disponibles para facilitarnos la vida.
De entre las distintas alternativas MVVM Light, como su nombre indica, destaca
por ser un framework ligero, sencillo, y con una curva de aprendizaje suave.
Aunque adolece de ciertas características de frameworks más potentes, MVVM
Light resulta mínimamente intrusivo y, sin embargo, proporciona la mayoría de
herramientas habituales en un patrón MVVM. En esta entrada veremos un repaso
rápido de sus principales características.

MVVM Cross
Este framework se desarrolló inicialmente para Xamarin, aunque en la actualidad se
puede desarrollar también con Windows Presentación Foundation y demás.
Es un framework bastante potente, mucho más que los dos anteriores, tiene una
comunidad muy fuerte y está en constante actualización.

ReactiveUI
El más reciente, pero no por ello menos importante, es ReativeUI. Es un framework
MVVM un poco más pequeño que el resto, ya que no tiene tanto soporte, a nivel de
framework MVVM a nivel, de la comunidad, pero no por ello deja de ser bastante
potente también.
Su principal virtud es que no solo ayuda con la arquitectura MVVM, sino que
también está orientado a la programación reactiva, lo que nos permite ser más
eficientes a la hora de desarrollar código.

Conclusión

C# es un lenguaje de programación moderno que nos facilita la creación de aplicaciones sólidas


y duraderas que, aunque tenga sus raíces en los lenguajes C y los programadores de C, C++,
Java y JavaScript es un lenguaje muy natural que nos da un gran control de versiones para
asegurarnos de que los programas y las bibliotecas pueden evolucionar con el tiempo de manera
compatible y aunque siga teniendo sus aspectos negativos (que se deba de conseguir sus
versiones recientes en VisualStudio.NET y Para quien no está familiarizado con ningún
lenguaje de programación, le costará más trabajo iniciarse en su uso) Nos sigue siendo
extremadamente útil en el crear y en el usar componentes de software que nos proporcionen un
enfoque estructurado y extensible.

También podría gustarte