1 – Presentación e introducción

Visual Studio y .NET Framework

1. Presentación

 ¡Hola! Bienvenido a Programar mola con Visual Studio, un blog donde voy a compartir todo aquello que he ido aprendiendo a lo largo de los años acerca del mundo de la programación.

El objetivo que me he marcado es ser capaz de enseñar a programar en C# (se lee “cé sharp”) a una persona que jamás lo ha hecho, por lo que no es necesario tener ningún conocimiento previo sobre el tema, ni técnico ni teórico. No obstante sí es necesario tener conocimientos básicos a nivel de usuario tales como navegar por internet, descargar e instalar programas, etc. Aún así para cualquier duda o problema que te encuentres puedes usar los comentarios del blog, estaré encantado de ayudarte.

Antes de continuar permite que me presente: mi nombre es Fher, tengo 27 años, soy Ingeniero en Informática por la Facultad de Informática de Barcelona (FIB) y llevo más de siete años trabajando como arquitecto de software, analista y programador de tecnologías .NET de Microsoft en distintas empresas. Si eres estudiante de la FIB bien sabrás que poco o nada se toca de .NET, de hecho cuando yo empecé los estudios allá por 2004 la programación que nos enseñaban se basaba en Java y creo que ahora se basa en C++.

Si nunca has programado seguramente te suenen a chino los términos .NET, Java o C++ que he mencionado antes, o los hayas escuchado alguna vez pero no tienes claro de qué va el tema… sea como sea no te preocupes pues lo iré explicando sobre la marcha aunque si quieres ampliar información tienes disponibles enlaces a Wikipedia en las mismas palabrejas raras.

.NET Framework 4.5
Logotipo del .NET Framework 4.5 de Microsoft

A pesar de mi humilde experiencia no tengo master de ningún tipo sobre tecnologías .NET y todo lo que he aprendido ha sido de forma autodidacta o por sublimación de mis compañeros de profesión a lo largo de mi trayectoria por lo que, como cualquier ser humano, me puedo equivocar. Tampoco conozco todas las posibilidades de .NET (¡¡¡ojalá!!!) y puedo proponer soluciones que quizás tenga una forma más eficiente y/o elegante de llevarse a cabo. Si te das cuenta de que existe otra forma mejor o tienes dudas sobre las soluciones que proponga no dudes en dejar un comentario en el post, siempre me gusta aprender cosas nuevas.

2. Contenido del curso

 Soy consciente (porque lo he sufrido) que la teoría de programación, aunque necesaria, puede resultar aburrida de cojones. Además estoy convencido que la teoría sin práctica no sirve absolutamente de nada. Muchas veces no he entendido la teoría hasta que la he puesto en práctica frente a un ordenador por lo que durante este curso tengo muy claro que quiero romper la barrera entre teoría y práctica y mezclarlo todo haciéndolo más ameno y entretenido.

2.1. Distribución de los capítulos

La idea inicial es que cada capítulo del curso empiece con la presentación de un problema a resolver, a modo de rompecabezas siguiendo el siguiente esquema:

1. Entender la situación para saber que se tiene y que están pidiendo. Aunque parezca una tontería es, quizás, la parte más complicada.
2. Pensar y diseñar un bosquejo de la solución, siempre es bueno tener las ideas bien claras antes de empezar a aporrear teclas.
3. Programar una solución al problema.

2.2. Contenido del curso

Mediante éste método deberíamos ser capaces de poner en práctica los siguientes elementos:

1. Elementos básicos.
2. Variables y constantes.
3. Operaciones básicas.
4. Condicionales.
5. Estructuras de datos.
6. Iteratividad.
7. Métodos.
8. Propiedades.
9. Recursividad.
10. Optimizaciones y costes en tiempo y en espacio.
11. Eventos.
12. Hilos de ejecución.

Es probable que no se siga este orden concreto, que algunos puntos se entremezclan, se complementen, se solapen o se amplíen… vamos, que voy a ir improvisando sobre la marcha en función de la evolución del curso :p

3. Tecnologías que vamos a usar

Visual Studio y .NET Framework
Visual Studio y .NET Framework

Para éste curso de programación vamos a hacer uso de tecnologías de Microsoft, concretamente del .NET Framework 4.5 y de Visual Studio 2013 Express que es la versión gratuita de Visual Studio. Además para programar usaremos el lenguaje C#.

3.1. ¿Por qué éstas tecnologías?

 Pero… ¿por qué .NET Framework y Visual Studio?

Primero porque es en lo que tengo más experiencia, bien es cierto que una vez programas en un leguaje es fácil programar en cualquier otro pero todos tienen sus más y sus menos, sus detalles, etc. Yo llevo años usando tecnologías .NET y me siento cómodo con ellas, podría hacer el curso basado en Java pero seguramente diría muchas más burradas debido a la falta de experiencia.

Otro punto por el que he escogido Visual Studio es su facilidad para descargarlo, instalarlo y comenzar a trabajar, con Java sería necesario descargar primero el Java JDK, la versión correcta de Eclipse o NetBeans, no liarla con las configuraciones de los entornos, descargar plugins para trabajar con interfaces gráficas… demasiado complicado para un curso que quiero que sea para todos los públicos. Se que algunos me van a crujir por haber escogido tecnologías propietarias de Microsoft pero bueno… Oracle tiene el control de Java así que eso tampoco debería ser un problema 😉

3.2. Requisitos para seguir el curso

 Como punto en contra .NET y Visual Studio sólo está disponible para Windows pero creo que la mayoría de gente que pueda estar interesada en éste curso estará usando un sistema Windows. Es muy probable que si estás usando Linux ya sepas algo de programación y, si estás usando un Mac… bueno, me tendrás que perdonar pero tampoco hay versión de Visual Studio para ti.

Si hay muchos interesados en seguir el curso y no disponen de un ordenador con Windows podría intentar hacer una versión alternativa del curso en Java o probar con Mono que es, por resumir, una versión libre de .NET Framework para sistemas UNIX (Linux y Mac).

Dicho todo esto, si estás usando Windows (te recomiendo Windows 7 o 8.1) y quieres aprender a programar éste es tu curso, si no tienes Windows y quieres aprender a programar no te retires sin dejarme un comentario, seguro que podemos hacer algo.

4. Instalación de las herramientas

 La versión de Visual Studio que vamos a usar es la Express Windows Desktop, es gratuita y, aunque viene un poco capada respecto a la versión Professional de pago nos dará las herramientas suficientes para éste curso.

4.1. Instalación de Visual Studio Express 2013 for Windows Desktop

VS 2013 Express WDLo podemos descargar de la web oficial de Microsoft haciendo clic aquí, e introduciendo nuestras credenciales de una cuenta de Microsoft. Si eres de mi quinta seguramente tendrás cuenta de Hotmail o de XBox, si no será necesario que te des de alta. Una vez dentro te dará la opción de descargar la versión Express o la Ultimate, escoge la primera y se descargará un fichero llamado “wdexpress_full.exe” que debes ejecutar e instalar con las opciones por defecto.

Esto os instalará el Visual Studio y el .NET Framework con los que vamos a trabajar, la instalación dura una eternidad así que aprovecho para contestar la pregunta que, si no os estáis haciendo os haréis en breve: ¿Qué coño es el .NET Framework y Visual Studio?

4.2. Un poco de teoría

¡¡¡ALERTA CULTURAL!!!

Cuando veas un mensaje de “alerta cultural” significa que estás en riesgo de aprender algo interesante, pero que no es necesario para el desarrollo del curso. Te lo puedes saltar o puedes dejarlo a medias si te parece un coñazo infumable, aún así te animo a leerlo pues te puede ayudar a aclarar conceptos o entender mejor ciertas decisiones a la hora de resolver problemas.

Bien, como iba diciendo, ¿qué es el .NET Framework y Visual Studio?

4.2.1. Visual Studio

Por explicarlo de una forma muy sencilla y muy resumida Visual Studio es el programa que vamos a usar para programar, es la aplicación que nos va a permitir escribir código para que nuestro ordenador haga “cosas”. El problema está en que el ordenador no va a entender las órdenes que le damos con nuestro lenguaje de programación ya que está pensado para humanos… por desgracia el ordenador solamente entiende el “código máquina” o “ensamblador”. Ahí es donde entra el .NET Framework.

4.2.2. .NET Framework

El .NET Framework se encarga (entre otras cosas y mediante su máquina virtual) de traducir nuestro programa en lenguaje humano a lenguaje máquina. A ese acto de traducción se le llama compilar.

¿Ya está instalado el Visual Studio? No, ¿verdad?. Pues sigamos con un poquito más de teoría :p

4.2.3. Máquina virtual

Hemos visto por ahí el concepto de máquina virtual, entre paréntesis, como si no fuera importante… pues más bien todo lo contrario. Verás, existe un lenguaje de programación llamado C (simple y llanamente la letra “cé”) que es el lenguaje de programación favorito a la hora de programar sistemas operativos o aplicaciones que requieren una gran rapidez entre otras cosas. Cuando una persona programa una aplicación en C necesita compilarla para que se pueda ejecutar, necesita usar un compilador de C para que traduzca el código del programador en una aplicación en código ensamblador para que el ordenador la pueda hacer funcionar.

Diagrama ensamblador

¿Y de qué depende la compilación? Pues entre otras cosas del sistema operativo y del microprocesador del ordenador (que viene a ser el cerebro, el que hace los cálculos y permite que todo funcione).

Imaginemos que tenemos un ordenador con Windows y con un microprocesador de marca Intel, hacemos un programa cualquiera, lo compilamos y lo ejecutamos con éxito. Nuestro programa es tan bueno que nuestra amiga Paola nos lo pide para usarlo en su ordenador con Linux y microprocesador marca AMD… ¿sabes que pasará cuando Paola ejecute el programa en su ordenador? Pues seguramente obtendrá un error o, en el mejor de los casos, no pasará nada… Si Paola quiere usar nuestro programa necesita el código fuente del mismo (el que nosotros hemos programado) para compilarlo en su propio ordenador con un compilador de C compatible para Linux.

¿Cómo va el Visual Studio… aún instalando verdad? Pues seguimos un poquito más que ya casi acabamos.

Bien, hemos visto que para que Paola pueda usar nuestro programa le hemos tenido que dar el código fuente… pero ¿y si en el código fuente hay contraseñas u otros secretos que no queremos que Paola tenga? ¿Como podríamos hacer un programa para que funcione en todos lados sin tener el fuente? Ahí es donde entra en juego la máquina virtual.

Si hubiéramos hecho el programa en Java, el compilador de java nos hubiera entregado un ejecutable en “código intermedio” o “byte code”. Éste código no lo entiende el ordenador, sino la máquina virtual.

Para que el nuevo programa funcione tanto en nuestro ordenador como en el de Paola debemos tener instalada la máquina virtual de Java (que existe para Windows, Linux y Mac entre otros). La máquina virtual traduce el código intermedio en código máquina para que el ordenador en el que está instalada lo entienda y el programa funcione.

Diagrama maquina virtualPues bién, el .NET Framework incorpora una máquina virtual que funciona de ésta manera, salvo porque sólamente existen versiones para sistemas Windows

¡¡¡FIN DE LA ALERTA CULTURAL!!!

5. Resumen

Bien, ya hemos visto que el curso es para todos los públicos (con un mínimo de conocimientos a nivel de usuario), que vamos a aprender a programar con Visual Studio en lenguaje C# y que nos lo vamos a pasar de puta madre.

La instalación de VS ya debería haber acabado por lo que te invito a que lo ejecutes, seguramente te preguntará sobre qué tipo de configuración quieres aplicar por lo que te recomiendo que escojas “Visual C# development settings”.

Pues bién, en la próxima sesión comenzaremos a hacer nuestras primeras incursiones en el mundo de la programación, hasta entonces te invito a que te familiarices con VS y su interfaz.

Saludos, gracias y hasta la próxima.

Anuncios

2 comentarios en “1 – Presentación e introducción

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s