Escrito por George POLIOVEI el Viernes 05 de Diciembre de 2008 a las 15:00hs
Saludos amigos y bienvenidos a esta nueva entrega de aprendiendo .NET
Antes que nada me gustar?a responder a una pregunta que formulara nuestro amigo Nacho en la tercera entrega de esta serie de notas
Nacho pregunta:
?Qu? es POO?
Me parece muy oportuno ahondar un poco sobre este tema ya que considero que es una muy buena pregunta, eso demuestra el inter?s que asume nuestro trabajo
Para no perder nuestra linea de de tratar de explicar todo lo concerniente a este tema de forma sencilla les propongo realizar un viaje al pasado, as? que p?nganse c?modos y suban a la maquina del tiempo.
Ok nos encontramos en la ?poca donde el Sistema Operativo es Unix y acaba de nacer un lenguaje inform?tico a quien lo nombraron ?C?; con este lenguaje los programadores pod?an crear aplicaciones que fueran compatibles con los Sistemas Unix, y fue tal la aceptaci?n de ?ste lenguaje por la comunidad que el propio Unix, fue rescrito en ?C?.
Pasados unos a?os t?midamente comenz? a emerger un nuevo estandar de programaci?n, la POO (Programaci?n Orientada a Objetos), al principio no tuvo mucha importancia, pero poco a poco comenz? a ganar terreno en nuestra comunidad, algo que destacar de C, era que aunque su orientaci?n era de tipo estructurado, se pod?a emular un ambiente orientado a la programaci?n con objetos, pero no era relevante, si se creaba un sistema que emulara la POO, estaba bien y sino tambi?n estaba bien, a C, no le interesaba eso, cuando la POO, se volvi? fuerte decidieron que ?C?, necesitaba una mejora o como com?nmente se conoce como una depuraci?n, fue ah? que entonces sali? a la luz ?C++?, que no era m?s que una depuraci?n de ?C?, si bien C++, ten?as una cierta compatibilidad para trabajar con clases, no fue capaz de evitar todos los inconvenientes que presentaba su primo ?C?, ya que por l?gica todas las aplicaciones que se crearan en ?C++? deber?an ser si o si compatibles con ?C?.
Ante esta situaci?n la necesidad de un nuevo lenguaje que hiciera posible la f?cil comprensi?n de aquellos colegas que acostumbraban C y C++, era necesario, naciendo en el verano del 2000 C#, todos aquellos programadores que acostumbraban C y C++, no les fue muy dif?cil manejar este nuevo lenguaje.
Aunque C#, es en definitiva familiar directo de los lenguajes que mencionamos anteriormente, no es ninguna depuraci?n de ?stos, sino que fue creado desde cero, puramente orientado a objetos y desterrando aquellas cosas complicadas que sus antiguos familiares no pod?an evitar, como el trabajo con Punteros, en C#, la gestion de memoria queda a cargo de script dise?ados espec?ficamente para tal fin, adi?s a las preocupaciones de asignar manualmente espacio en memoria o habilitar dichos espacios cuando ya no est?n en uso, los famosos MEMORY LEEK en C# pueden considerarse controlados en un 100%, pero una cosa tambi?n agradable de C#, es que no se olvido de aquellos que les gusta el trabajo a bajo nivel permitiendo el trabajo con punteros, para aquellos que todav?a los deseen.
Muy bien devuelta en el presente, gracias por haber viajado en aerol?neas El Guru Programador
POO ? Programaci?n Orientada a Objetos
?Pero que es realmente la POO?, en pocas palabras la POO, trata de llevar las cosas de la vida real a un sistema inform?tico, la POO, maneja conceptos como OBJETO, HERENCIA, ENCAPSULAMIENTO, INTERFACES, CLASES, COMPORTAMIENTOS, ATRIBUTOS ETC?
?Pero como es posible emular la vida real en un programa inform?tico?
La programaci?n estructurada se rige a trav?s de axiomas como por Ej 2 = 2; en la POO quiz?s 2 no sea igual a 2, luego vamos a ver porque a medida que avancemos en las entregas as? que no se adelanten.
Como la palabra lo dice todo nuestro c?digo o el 90 % de ?l lo dirigiremos a los objetos, los objetos se crean a partir de sus clases y ahora que lo pienso quiz?s la siguiente analog?a deje en claro a que se refiere el t?rmino ?Vida Real?.
Atenci?n: la siguiente explicaci?n quiz?s de vueltas a l mundo y hasta por ah? reciba alg?n premio o galard?n que de prestigio al Sitio
Analog?a entre un objeto y una persona
Una persona es concebida y nace
Un objeto es definido se crea
Una persona cuando nace hereda de sus padres entre otras cosas el apellido
Un objeto cuando se crea hereda de su clase entre otras cosas sus atributos .
Una persona durante su tiempo de vida crece f?sicamente
Un objeto durante su tiempo de vida puede escalar en cuerpo
Una persona viaja por el pa?s y se relaciona con otras formando su vida social
Un objeto viaja por la aplicaci?n a trav?s de su vida y se relaciona con otros objetos
Una persona es ?nica en todo sentido y se identifica por alg?n registro DNI, Nombre etc?
Un objeto es ?nico en todo sentido y se identifica por un atributo
Cuando 2 personas nacen en el mismo tiempo y del mismo vientre aunque se parezcan en todo en definitiva son diferentes.-
Cuando 2 objetos son creados de una misma clase con todos sus atributos iguales aunque se parezcan en todo en definitiva son distintos cada uno tiene su identidad
Una persona tiene comportamientos come, duerme, camina, corre, etc?
Un objeto tiene comportamientos (m?todos), se comunica con otros objetos, hace c?lculos, informa de situaciones etc?
Una persona debe hacer algo, por lo menos comer de lo contrario muere
Un objeto debe realizar alguna acci?n de lo contrario muere
Una persona cuando muere es mantenida en alg?n lugar hasta que es reducida o cremada
Un objeto cuando muere o ya no se utiliza es mantenido en memoria hasta que pasa el Garbage Collector y lo destruye por completo.
Perd?n por los 2 ?ltimos ejemplos pero creo que analog?a anterior deber?a evacuar las posibles dudas en cuanto a que es la POO. Este es una forma relacionar la POO que se me ocurri?, no es palabra santa, pero creo que es una buena analog?a y espero que los dem?s colegas del sitio puedan concordar.
Bueno Nacho esperamos que te haya servido la presente entrega y haber evacuado tu pregunta.
Siguiendo con la Entrega antes de comenzar con la primera aplicaci?n merece la pena tocar el tema NET FRAMEWORK
Si todos ya leyeron la estrella 0 de la Microsoft entonces ya sabr?n que es esto del NET FRAMEWORK, sus palabras lo dicen todo Marco de Trabajo ?ste ser? el ambiente o los l?mites que se establecer?n para las creaciones de nuestras aplicaciones, pero eso no quiere decir que podamos interoperar con otras DLL fuera de estos l?mites.-
El NET FRAMEWORK se compone de cuatro partes principales
? CLR ? Common Lenguage Runtime
? BCL ? Biblioteca de clases
? Lenguajes de Programaci?n ? Entre ellos C#
? ASP NET
CLR
Entorno com?n de ejecuci?n, como mencionamos antes para que una porci?n de c?digo pueda ser ejecutada deber? primero compilarse, el resultado implica un archivo de tipo EXE que puede ser ejecutado por los usuarios, ahora bien este entorno en particular (CLR), proporciona a nuestro resultante de la compilaci?n un conjunto de servicios de SO, permitiendo entre otras cosas hacernos la vida realmente f?cil. Un ejemplo de un servicio agregado a nuestro c?digo es la gesti?n autom?tica de memoria.-
BCL
A medida que avancen en esta profesi?n, se ir?n dando cuenta que a los integrantes de la comunidad les gusta trabajar en ocasiones con c?digos existentes y probados, pues bien aqu? .NET toma la delantera permitiendo la REUTILIZACION DE CODIGO, todas las bibliotecas (DLLs) disponibles en .NET pueden ser reutilizadas en nuestras aplicaciones y gracias al CLR, tambi?n es posible reutilizarlas desde cualquier lenguaje de programaci?n que compatibilice con .NET
LENGUAJES DE PROGRAMACION .NET
El marco de trabajo (NET FRAMEWORK), proporciona un conjunto de herramientas para la creaci?n de nuestros aplicativos, un ejemplo de ellos son los lenguajes de programaci?n creados para generar aplicaciones compatible con .NET, entre ellos se encuentran nuestro querido C#, Visual Basic .NET, VISUAL C++, JAVA NET, y muchos m?s en camino, por ejemplo no s?, si ya est? disponible pero una versi?n de Phyton, se estaba creando para ser compatible con .NET, tambi?n COBOL
ASP NET
Este es un entorno orientado a la creaci?n de aplicaciones Web, pero con muchas sorpresas como por ejemplo ASP NET permite separar el codigo fuente de la interfaz de usuario a esto se lo conoce como CODIGO DETR?S, su componente principal es el WEB FORM, mas adelante cuando tratemos con Visual Studio ver?n que simple es crear una interfaz de usuario arrastrando controles al formulario y codific?ndolos como si de una aplicaci?n Windows se tratare, y lo mejor de todo es que como el entorno ASP NET utiliza el marco de trabajo .NET FRAMEWORK tambi?n usa el compilador (JIT) esto lo vimos antes.
Bueno muchas gracias por apoyar al Sitio yo como lo har?a y lo hacen muchos miembros de la comunidad colaboro desde mi humilde posici?n escribiendo estas notas y ustedes ya expertos algunos y aquellos que se est?n iniciando colaboran leyendo y preguntando, y porque no cuando sean profesionales escribiendo tambi?n como forma de apoyar a la comunidad, un abrazo a todos y nos vemos en la siguiente entrega donde vamos a comenzar creando nuestra primera aplicaci?n con C#.
Amigos, no voy a decir que lo entendi a la primera, pero me sacó de muchas dudas luego que lo leyera en un par de ocaciones, muchas gracias espero el siguiente capitulo no se demoren por favor