El Segundo Aire del Pelos

Monday, March 27, 2006

Tarea 3 - 5. Ya merito

Bueno... despues de un rato de no postear en este blog, hoy lo retomamos... mil disculpas si alguien lo ha leido, y se le hizo que me tarde, pero he tenido un chorro de trabajo... y no habia tenido tiempo... pero espero hoy adelantarle bastante... El primer tema que debemos tratar, ya se habia tratado en un post anterior, así que solo lo vamos a recordar...

Procesamiento en el cliente vs procesamiento en el servidor

Como mencionamos en el post anterior, la diferencia básica entre estos dos tipos de procesamientos, además de el lugar donde se efectua, va a ser el performance que se obtenga... el cual tambien tiene otros costos. En el caso del procesamiento en el cliente, el performance es mucho más alto, sin embargo, no es adecuado para todo tipo de aplicaciones y/o necesidades, ademas de que será muy dependiente del Navegador que este instalado en el cliente. En el caso del procesamiento en el servidor, el performance será un poco más bajo, aunque con la tecnología existente en nuestros días, esto puede llegar a no ser significativo. Por ejemplo, con tecnologías como .NET, la desventaja de performance del procesamiento en el servidor, puede no ser tan amplia.

Bueno, no me voy a extender mucho en este tema... si les interesa verlo a mas detalle, chequense el post que menciono al principio de este mensaje.

El siguiente tema que debemos tratar es...

Formularios HTML

Bueno... en palabras sencillas, un Formulario HTML es la herramienta que se utiliza en HTML para recolectar información por parte del usuario de nuestro sitio. Recuerdan esos sitios donde pueden poner su nombre, dirección, teléfono, etc. y que al final tienen dos botones, uno para mandar la información (submit) y otro para cancelar? pues esos son los formularios HTML. En realidad, no es tan simple, ya que tienen un buen de diferentes elementos que se pueden utilizar para recolectar información, seleccionar alguna opción, etc. Así que, antes de meternos en cuestiones de código HTML, etc. primero vamos a listar y definir cada uno de estos elementos:


  • Text Box (Caja de Texto).- Un text box es utilizado para teclear información en el, y luce de la siguiente forma:



  • Check Box.- Es un control que sirve para escoger una o mas opciones dentro de una lista. Al estar seleccionado se "checa". Este es un ejemplo de una lista de Check Boxes:
Opcion 1
Opcion 2
Opcion 3

  • Radio Button.- Permite escoger SOLO UNA opción dentro de una lista de opciones. Una lista de Radio Buttons luciria de la siguiente manera:

Opción A

Opción B

Opción C

Opción D

  • Drop Down List (Lista Desplegable).- Despliega una lista de opciones al hacer click sobre el objeto, permitiendo seleccionar una de las opciones. Luce de la siguiente forma:


  • List Box (Lista Desplegada).- Las opciones ya estan desplegadas en la lista, por lo tanto, ocupa un mayor espacio. Así se veria:



  • Scrolling Text (Area de Texto).- En este caso, el texto que se va a teclear puede tener varias lineas, no solamente una. Este es un ejemplo:

  • Command Buttons (Botones).- Existen normalmente solo dos botones en cada forma, uno para mandar la información (Submit) y otro para cancelar (Reset). Así es como se ven estos botones:


Ok... estos son los elementos utilizados en una forma... primero que nada, queria que los conocieran... ahora vamos a platicar un poco de como se usan... porque se supone que ya explique para que sirven... Además nos vamos a meter un poco con sus propiedades, y con el HTML que se usa para ellos.

Lo primero, es decir que la forma en si, aunque no se ve físicamente en la página web, es el "contenedor" de todos los demas controles. Esta definida por los tags
<form>
...
</form>
Dentro de estos tags deben ir todos los demás elementos de la forma, como text boxes, listas, botones, etc.
Perfecto... ahora vamos a repasar cada uno de los elementos que explicamos al principio... como este no es un curso de HTML, va a ser "por encimita"... solo voy a mencionar los tags que se utilizan, y algunas de las propiedades. Bueno, antes que nada, es importante mencionar que existe un tag que engloba a cuatro tipoS de objetos (Text Box, Check Box, Radio Button y Command Button)... suena complicado, pero no es asi... el tag al que me refiero es <INPUT> y lo que determina que tipo de control se despliega, es el atributo TYPE. Dependiendo del valor de este atributo, será el tipo de control desplegado. Yo se que suena medio complicado, pero no es así... al final de la explicación de todos los objetos, voy a poner un código HTML utilizando todos los objetos, y despues como se vería en pantalla, para que lo puedan comparar.
En el caso del Drop Down List, y del List Box, también se utiliza el mismo tag <SELECT> y la diferencia entre ellos dos será el valor del atributo SIZE, al cual se le debe asignar el valor 1 si se desea un Drop Down, y cualquier valor mayor que 1 si se desea un List Box.
En el caso del Scrolling Text, se utiliza el tag <TEXTAREAgt; utilizando los atritbutos ROWS y COLS para definir el número de renglones y columnas que tendrá, respectivamente. Ok, estos son los diferentes objetos que se pueden utilizar en una forma...
Bueno, como les comentaba, este no es un curso de HTML... existen un buen de atributos de cada objeto (y mas objetos, también, como por ejemplo, tablas) que se pueden usar... ya dependerá del interés de cada quien el ponerse a buscar y estudiarlos... lo que si les puedo decir es que existen dos atributos bien importantes, y que los tienen casi todos los objetos: NAME y VALUE... por lo pronto recuerdenlos, porque más adelante verán porque son importantes.
Ahora les voy a poner el ejemplo del código HTML de una forma, con varios de estos elementos, para que lo puedan analizar... además, debajo del código pondre como se verá la forma en la página.
<form>
<div align="center"><center><table border="1" width="100%">
<tr>
<td><p align="center"><font size="4"><strong>Datos
Personales:</strong></font></p>
<table border="0">
<tr>
<td valign="top"><strong>Nombre:</strong></td>
<td><input type="text" size="25"
name="Nombre"></td>
</tr>
<tr>
<td valign="top"><strong>Apellido:</strong></td>
<td><input type="text" size="25"
name="Apellido"></td>
</tr>
<tr>
<td valign="top"><strong>Edad:</strong></td>
<td><select name="edad" size="1">
<option>12-18</option>
<option>19-25</option>
<option>25-35</option>
<option>35-50</option>
<option selected>Seleccione una Edad:</option>
</select></td>
</tr>
<tr>
<td valign="top"><strong>Profesión:</strong></td>
<td><input type="text" size="25"
name="profesion"></td>
</tr>
<tr>
<td valign="top"><strong>No. de hijos:</strong></td>
<td><select name="hijos" multiple size="4">
<option>0</option>
<option>1-3</option>
<option>3-6</option>
<option>> 6</option>
</select></td>
</tr>
<tr>
<td valign="top"><strong>Edo. Civil:</strong></td>
<td><input type="radio" checked
name="EdoCivil" value="V1">Soltero<p><input
type="radio" name="EdoCivil" value="V2">Casado</p>
<p><input type="radio" name="EdoCivil"
value="V3">Viudo</p>
<p><input type="radio" name="EdoCivil"
value="V4">Divorciado</p>
</td>
</tr>
<tr>
<td valign="top"><strong>Fecha de Nacimiento:</strong></td>
<td><select name="dia" size="1">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select><select name="mes" size="1">
<option>Enero</option>
<option>Febrero</option>
<option>Marzo</option>
<option>Abril</option>
<option>Mayo</option>
<option>Junio</option>
<option>Julio</option>
<option>Agosto</option>
<option>Septiembre</option>
<option>Octubre</option>
<option>Noviembre</option>
<option>Diciembre</option>
</select><input type="text" size="6"
name="ano" value="19"></td>
</tr>
<tr>
<td valign="top"><strong>Idiomas:</strong></td>
<td><input type="checkbox" checked
name="espanol" value="ON">Español<p><input
type="checkbox" name="ingles" value="ON">Inglés</p>
<p><input type="checkbox" name="italiano"
value="ON">Italiano</p>
<p><input type="checkbox" name="aleman"
value="ON">Alemán</p>
</td>
</tr>
<tr>
<td valign="top"><strong>Experiencia
Profesional:</strong></td>
<td><textarea name="Experiencia" rows="8"
cols="25">Escriba aquí su experiencia profesional</textarea></td>
</tr>
<tr>
<td><input type="submit" name="B1"
value="Submit"><input type="reset" name="B2"
value="Reset"></td>
<td> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</center></div>
</form>

Y así se veria en la página:









Datos
Personales:









































Nombre:
Apellido:
Edad:
Profesión:
No. de hijos:
Edo. Civil:Soltero

Casado

Viudo

Divorciado

Fecha de Nacimiento:
Idiomas:Español

Inglés

Italiano

Alemán

Experiencia
Profesional:





Con esto terminamos la explicación de lo que es una forma, y sus elementos... lo único que nos falta es definir... para que demonios sirve una forma???
Ah verdad... que dijeron, este guey nos tiro un choro enorme, y no nos dice para que sirve todo este desma... bueno... les explicaré el porque... primero que nada, porque es un punto dentro de nuestros temas que se tratará mas adelante... y segundo, porque primero era necesario entender que demonios es una forma...
Una vez dada esta explicación, dejenme les digo que el uso principal que se le da a una forma, es el de recolectar datos... Por ejemplo, digamos que quieres registrar a un nuevo usuario de tu sitio... para esto, necesitas información como el Nombre, Dirección, ID de Usuario, Password... y tal vez estado civil (Casado o Feliz... digo, Soltero), Preferencias, etc... toda esta información puede ser recopilada utiizando una forma, con los diferentes objetos que ya se explicaron anteriormente. Una vez que se tienen, estos datos pueden ser procesados de diferentes formas... por medio de un script en ASP, por ejemplo y agregados a una base de datos, etc. Como??? eso lo veremos más adelante... solo les digo que en ese caso, son muy importantes los atributos NAME y VALUE...
Finalmente, solo quiero comentarles que parte de esta información la saque de este sitio, y de este otro... existen muchos mas, pero estos dos son los que mas me gustaron. De hecho, les recomiendo que les den una leida, para que les queden más claros los conceptos.


Wednesday, March 15, 2006

Tarea 3 - 4 Javascript

Ok, el post anterior estuvo larguito, así que trataremos de hacer este post mas corto... el temas es:

Javascript

Javascript es un lenguaje de programación... ven, les dije que iba a estar mas corto... nos vemos en el próximo post...

No se crean... ahí va en serio... algunos autores opinan que Javascript no es un lenguaje de programación, sino de scripts... pero para efectos prácticos, y para no hacernos pelotas, no seremos tan puristas y diremos que Javascript es un lenguaje de programación.... punto, al cabo este es mi blog, y yo digo que pex...
Lo primero, es que Java y Javascript no son lo mismo... Java es un lenguaje de programación mucho mas amplio y poderoso.
Un poquito de historia... Javascript fue inventado por un empleado de Netscape llamado Brendan Eich, y apareció por primera vez en el Netscape Navigator 2.0.
Como habiamos mencionado anteriormente, Javascript es un lenguaje para crear páginas dinámicas del lado del cliente. Es decir, el código escrito en Javascript es interpretado y ejecutado por el Navegador en el cliente (por supuesto, si el navegador es compatible con Javascript). Es mayormente utilizado para crear efectos especiales e interactividad en las páginas web, y tiene la particularidad de que se puede reaccionar a eventos de objetos. Es decir, se puede tomar alguna acción (como desplegar un mensaje) al hacer click sobre un botón. Y con la ventaja de que al ejecutarse en el cliente, el performance es mucho mejor, ya que no debe viajar al servidor para ser ejecutado.
Otra ventaja muy grande es que permite interactuar con el sistema, haciendo cosas como desplegar pequeñas ventanas (mas conocidos en el mundo Windows como "Message Boxes"), abrir otras ventanas y manejar sus propiedades (tamaño, posición, etc.) , o inclusive obtener la fecha y hora actuales.
Finalmente, quiero mencionar que el código de Javascript se inserta dentro y enmedio del código HTML, simplemente encerrado por unos tags especiales. Es por esto que les mencionaba anteriormente que es tan importante conocer el lenguaje HTML. a continuación les pongo un pequeño código de HTML y Javascript, solo para que vayan viendo como se ve.



<html>
<head>
<script language="LiveScript">
function pushbutton() {
alert("Hola!");
}
</script>
</head>
<body>
<form>
<input type="button" name="Button1" value="Presióneme"
onclick="pushbutton()">
</form>
</body>
</html>


Este código declara una función, la cual simplemente despliega una ventana con el Texto "Hola". Esta función es luego llamada al hacer click en un botón (usando el evento "onclick")

Bueno, ya solo me resta contarles mis secretos... es decir, darle los links de donde saque esta información... primero que nada, de DesarrolloWeb.com, que ya es uno de mis fuentes preferidas. De aquí también saque información, y trae algunos buenos ejemplos.
Y claro, la mejor forma es buscandolo tu mismo... en cualquier buscador, si se hace una busqueda por "Javascript", inmediatamente arrojará un madral (esto quiere decir muchos) de resultados, muchos de los cuales serán manuales y tutoriales... así que, manos a la obra...


Tarea 3 - 3. Lo que sigue

Chido... vamos ahora a darle a la siguiente parte de la tarea 3... sin más preambulos, les presento a las

Páginas estáticas vs páginas dinámicas

Hace rato hablamos sobre HTML, que es un lenguaje para escribir páginas Web (de hecho se podria decir que es EL lenguaje, ya que, hasta ahora, siempre se ha usado, y creo que se seguirá utilizando). Sin embargo, HTML tiene limitaciones, que desde un principio fueron un gran obstaculo. La principal limitante es que una página creada en HTML es estática, es decir, no cambia... si yo hago una página, con una foto, y una descripción de lo que esta en esa foto, si por alguna razón quiero cambiar algún elemento de mi página, como por ejemplo, la descripción, entonces tengo que cambiar directamente el código HTML que escribí originalmente. Esto es una gran limitante, ya que no puedo hacer uso de elementos que hacen más rica mi experiencia en la web, como por ejemplo acceso a base de datos, contenido personalizado, multimedia, etc.
Para solucionar este inconveniente, por ahí se empezaron a desarrollar nuevas tecnologías, cuyo objetivo era poder desarrollar la contrapartida, es decir, páginas dinámicas... la característica principal de estas páginas dinámicas, es que su contenido puede variar en cualquier momento, sin necesidad de modificar el código que las genera... como hacerlo??? obteniendo datos de una Base de Datos, por ejemplo.
Un buen ejemplo de la diferencia entre Páginas Dinámicas y Páginas Estáticas, y que nos remarca la ventaja de las primeras, seriá un catálogo en linea... vamos a suponer que yo tengo una floreria, y quiero poner el catálogo de todos los arreglos florales que tengo disponibles, en linea. Si quisiera hacer esto por medio de HTML puro (Páginas Estáticas) lo que tendría que hacer es generar un archivo HTML para cada uno de mis arreglos, donde incluyera la fotografía del mismo, asi como su descripción y precio. Si en algun momento quisiera modificar alguno de estos datos, tendría que ir directamente al archivo HTML, y modificarlo (el precio, por ejemplo).
En cambio, utilizando Páginas Dinámicas, puedo lograr lo mismo con mucho menos trabajo, y de una forma mas flexible. Lo que necesitaria hacer, es, primero que nada, tener la información de cada uno de mis arreglos en una base de datos. Después, solo necesitaria desarrollar UNA página, la cual tendria un apartado para la fotografía, otro para la descripción, y finalmente uno más para el precio. Esta página se utlizaria SIEMPRE que se quisiera desplegar un arreglo, ya que, dinámicamente, va a obtener la información de la base de datos, y la desplegará dependiendo del arreglo que se desee mostrar. Y lo mejor de todo!!! si quiero modificar el precio de alguno de mis arreglos, no necesito modificar la página, sino que solamente lo modifico en la base de datos. Mas chido, no???
Espero que este haya sido un buen ejemplo, y ayude a clarificar la diferencia entre páginas estáticas y dinámicas.
Ahora... como se logra generar una página dinámica? Bueno, existen varias formas. Primero que nada, es importante hacer mención que existen dos tipos de páginas dinámicas: del lado del cliente, y del lado del servidor.

  • Del lado del Cliente.- Pueden estar basadas en scripts escritos en lenguajes como Javascript o VB Script. La ventaja que tienen es que son mucho mas rapidas, ya que no tienen que ir al servidor a recolectar información, o para ser ejecutadas... la desventaja, es que dependen grandemente del navegador donde se ejecutan. Existen otras tecnologías (porque en realidad no son lenguajes de programación) como Flash, las cuales también ayudan a generar páginas dinámicas del lado del cliente.
  • Del lado del Servidor.- En este caso, todo el procesamiento se hace en el servidor. Vamos a tratar de explicar mejor esta situación. Cuando se hace una llamada a una página en un servidor, si esta es una simple página en HTML, lo que el servidor hace es que transmite el código HTML, el cual es interpretado por el Navegador en el cliente, y cuyo resultado será que se despliegue la página en cuestión. Por otro lado, cuando el cliente (el navegador) hace una llamada a una página dinámica que esta en un servidor, lo que sucede es que el servidor interpreta el código y lo ejecuta (sin importar el lenguaje en que este escrito) y con los resultados genera código HTML, que es lo que finalmente envia al cliente. Por ejemplo, volviendo a nuestro caso de la floreria, vamos a suponer que una persona consulta el catálogo en linea, y pide la información del arreglo floral llamado "Primaveral", haciendo un click en un link en el sitio. Lo que sucedera es que el servidor va a procesar la página dinámica, va a ir a buscar en la base de datos la fotografía, la descripción y el precio del arreglo, y generará un código HTML con esta información, que es la que finalmente será procesada por el navegador, y desplegada en la pantalla del usuario.


El diagrama anterior trata de explicar graficamente este proceso.

Ok... esto nos deja claro (espero!!!) lo que son las páginas dinámicas... Ahora, como podemos crear este tipo de páginas??? como ya lo mencione, para el lado del cliente, se puede usar Javascript, por ejemplo... para el lado del servidor, existen varios lenguajes como PERL, ASP (Active Server Pages), PHP o JSP (Java Server Pages) o lo más nuevo, ASP.NET. Una de las ventajas más grandes que tiene utilizar estos lenguajes, es que al ser ejecutadas en el servidor, los scripts nunca estan disponibles para el cliente, por lo que no se podrá accesar a nuestro código, a diferencia de cuando se utilizan scripts del lado del cliente.
Una forma de identificar el tipo de página, es por la extensión del archivo... las paginas estaticas tienen extensión .htm o .html, mientras las dinámicas tendrán diferente extensión, dependiendo del lenguaje en que se hayan escrito (.asp, .jsp, php, etc. donde etc. significa etcetara... no crean que es otra extensión)
Es importante mencionar que para poder ejecutar los scripts, el servidor debe de tener instaladas las herramientas necesarias... de otra forma, cuando un cliente le pida ejecutar una página dinámica, no podrá hacerlo.
Finalmente, quiero mencionar, aunque no me voy a extender en esto, que existen otras formas de crear páginas dinámicas, como el DHTML (Dynamic HTML) o CSS (Cascade Style Sheets). Para serles honesto, desconozco estas tecnologías, por lo cual no los trataremos hasta en un futuro.
Buscando en la red para documentar mas este blog, me encontre este manual, el cual se me hace muy bueno para explicar estos conceptos, sobre todo si no los tienes muy claros... y bueno, en realidad consulte dos manuales, el anterior y este, que también esta bastante interesante... de hecho, ese sitio esta muy chido... creo que lo voy a poner en las ligas de mi blog...

Monday, March 13, 2006

Tarea 3 - 2. Descripciones Breves

Ok... seguimos con conceptos sobre Internet y Web... en este post vamos a cubrir varios de los puntos de la tarea 3, ya que todo lo que se pide son descripciones breves:

Breve descripción de HTTP

HTTP significa "Hyper Text Transfer Protocol" o "Protocolo de Transferencia de Hipertexto". Es decir, es un estandard para la transferencia de datos. La particularidad de estos datos, es que se deben de formatear en forma de hipertexto. Ok, ahora viene la pregunta, que es hipertexto?
Bueno, en este caso voy a utilizar la definición exacta de Wikipedia, ya que me parece bastante clara:

Un hipertexto es un documento digital o no, que se puede leer de manera no secuencial. Un hipertexto tiene los siguientes elementos: secciones, enlaces o hipervínculos y anclajes. Las secciones o nodos son los componentes del hipertexto o hiperdocumento. Los enlaces son las uniones entre nodos que facilitan la lectura secuencial o no secuencial del documento. Los anclajes son los puntos de activación de los enlaces.

Los hipertextos pueden contener otros elementos, pero los tres anteriores son los mínimos y suficientes. Otros elementos adicionales pueden ser: sumarios e índices. En este sentido, se habla, por ejemplo, de hipertextos de grado 1, 2, etc., según tengan la cantidad de elementos necesarios. Actualmente, la mejor expresión de los hipertextos son las páginas web navegables (conceptos tomados de L. Codina).

Conviene mencionar también, que HTTP es un protocolo tipo Cliente-Servidor, y que es un protocolo sin estado, lo cual significa que no guarda ningun tipo de información sobre conexiones anteriores, por lo cual, al terminar la conexión, los datos se perderán.
Ok, el requerimiento era "Breve Descripción", y ya me estoy extendiendo mucho... así que para resumir, HTTP es el protocolo utilizado en Internet para transferir datos. Si quieren un poco más de detalles, pueden checar la definición en Wikipedia, que es de donde saque esta información.

Breve descripción de HTML

HTML es el acrónimo de de "Hyper Text Markup Language" o "Lenguaje de Formato de Documentos de Hipertexto". El HTML es tanto un estandard como un lenguaje, es decir, existe un estandard HTML, el cual define las características del lenguaje HTML. Hablando específicamente del lenguaje, este es un lenguaje de marcas, diseñado para desplegar archivos en hipertexto. La característica principal de HTML es que formatea texto e imagenes, basado en "etiquetas", las cuales definen el texto o imagenes que encierran. Estas etiquetas siempre irán en pares, una abriendo y otra cerrando... por ejemplo, para indicar que un texto es el titulo, se utiliza la etiqueta "title".
Es bien importante conocer bien aunque sea las etiquetas básicas de HTML, porque muchas veces necesitaremos editar o analizar código HTML durante el desarrollo de nuestros sitios web.
Otra vez, esta información la tome de Wikipedia... si quieren saber mas, chequense este link.

Breve descripción de CGI

CGI significa "Common Gateway Interface", y es un estandard para transferir datos entre el servidor y el cliente, por medio de un programa o aplicación. Normalmente CGI se utiliza indistintamente para denominar aplicaciones de tipo CGI, o "CGI Scripts". Estos scripts se utilizan para dar contenido dinámico a las páginas web, y fue de los primeros métodos para lograr este objetivo... Los scripts CGI pueden ser escritos en Perl, C++, VB y otros lenguajes.

Breve descripción de Cookies

Se denomina "Cookies" o "Galletas" a pequeños archivos de texto que son almacenados por el cliente, a petición del servidor, a traves del navegador. El uso de estos archivos es principalmente el de recordar información del usuario, como por ejemplos sus preferencias, nombre, etc. Estos archivos se empezaron a utilizar ya que HTTP es un protocolo sin estado, y no retiene ninguna información. Ha existido una polémica acerca del uso de las "cookies" y los riesgos de seguridad, sin embargo, se ha trabajado intensamente en minimizarlos. Este artículo da una buena explicación de las cookies.

Bueno, hasta aquí con las descripciones "breves", que yo se que no quedaron tan breves, pero espero que si hayan quedado claras... nos vemos en la siguiente entrega...


Sunday, March 12, 2006

Tarea 3 - 1 Que es un Sitio Web?

Bueno, empecemos con la tarea 3... la primer pregunta, como de costumbre, parece bien sencilla, pero una vez que uno empieza a pensarle, se complica poco a poco...

¿Qué es un sitio de web?

Ok, creo que antes de explicar que es un Sitio Web, tenemos que explicar que es Web...
Primero que nada, hay que dejar bien claro que, contrario a lo que mucha gente cree, WWW (o World Wide Web) e Internet NO son lo mismo... Normalmente todos usamos estos dos términos indistintamente, pero es importante definirlos bien...
Internet es, básicamente, una red de redes... es decir, son un madral de computadoras conectadas entre sí, compartiendo información en base a un protocolo común (no manches, se oye chido... y me cae que me lo invente yo, no lo copie de ningún lado).
Por otro lado, WWW es la herramienta o serie de herramientas que se utilizan para poner toda esta información al alcance de todos los usuarios... por medio de Web Browsers o Navegadores.
El siguiente paso sería... y como se hace esta información disponible??? pues por medio de una Página Web, que es el conjunto de texto, imágenes, multimedia, etc. que se despliegan en la computadora.
Finalmente, un Sitio Web es el conjunto organizado y coherente de una o más páginas web, las cuales estan relacionadas entre sí por medio de ligas o links.
Ok, entonces ya sabemos que es un Sitio Web, y solo basta mencionar que este puede ser tan sencillo o complejo como lo deseemos... en un principio, la mayoria de los sitios eran estáticos y con poca interacción con el usuario... poco a poco, a medida que ha avanzado la tecnología, esto ha cambiado, y en la actualidad los Sitios Web pueden ser Interactivos, y contener una amplia gama de medios (música, videos, presentaciones, etc.)
Espero haber sido claro... lo que si les puedo decir, es que si buscan este tema, la mayor parte de los resultados que obtendrán será de empresas que se dedican a desarrollar sitios, y por lo tanto la información no será muy amplia... les recomiendo este sitio, el cual se me hace bastante chido en cuanto a la información que ofrece.

Tarea 3 (WEB)

Bueno, creo que les mentí, en el post anterior les decia que la siguiente tarea tenia que ver con ASP, y nop... tiene que ver con Web en general... creo que el pex es que me estoy tardando un bueno... lo que pasa es que esta semana estuvo mas ocupada de lo que me esperaba... ojalá que la proxima me de mas chanza de adelantarle a esta tarea...
Y bueno, sin mas preambulos, ahí les va la siguiente tarea:

  • ¿Qué es un sitio de web?
  • Breve descripción de HTTP
  • Breve descripción HTML
  • Breve descripción de CGI o Common Gateway Interface
  • Breve descripción de galletas o cookies
  • Páginas estáticas vs páginas dinámicas
  • Javascript
  • Procesamiento en el cliente vs procesamiento en el servidor
  • Formularios HTML
  • SUBMIT o POSTBACK, ¿qué es?
  • HTTP es stateless, entonces, cómo se implementa una sesión de web.
Ok... en los próximos posts estaremos desarrollando estos temas... espero que sea bien pronto!!!

¿Cómo hace posible .NET que un componente escrito en C# pueda ser reutilizado en VB.NET?

Jaaaaaaa... esta es una pregunta bastante chida, porque en realidad aquí lo necesario no es buscar por todos lados, sino haber entendido las primeras asignaciones, y tener bien afianzados los conceptos...
En este caso, la respuesta si es sencilla... y se llamaCLS... se acuerdan de el??? este lo vimos en un post anterior, en la tarea 1-2... CLS significa "Common Language Specification", y es el estandard que dice como se debe escribir el código, el que define los tipos de datos, estructuras, etc.
Como TODOS los lenguajes de .NET deben ser compatibles con el Framework, y el framework debe cumplir con el CLS, eso significa que cualquier código escrito en cualquier lenguaje compatible con .NET tiene las mismas bases (aunque puedan tener características únicas y especificas) y por lo tanto los componentes que sean creados en ellas, serán también usado en cualquier otra lenguaje .NET.
Que rollo mi Charlie??? estas de acuerdo??? o estoy diciendo puras mentiras???

Bueno, aquí terminamos con la tarea 2, pero no se emocionen, porque ya hace rato que Carlos nos puso mas tarea... al ratito les ponto un post con la descripción de la tarea, para si quieren que le vayan avanzando... lo unico que les adelanto es que tiene que ver con ASP.NET

Ah!!!! y un último anuncio... mañana lunes 13 de Marzo tenemos nuestra siguiente reunion del CNJ... espero verlos por ahí a muchos!!!!

Monday, March 06, 2006

¿Qué hace .NET Reflector?

Bueno, con este me desconcerte un poco, me sacó de onda, porque yo esperaba que fuera alguna tecnología o algo así, y que hubiera un buen de información en la red. Sin embargo no es asi... .NET Reflector es un add-on o programa extra que trabaja con .NET.
Y que hace??? bueno, este es uno de esos casos donde para poder conocerlo, lo mejor es usarlo... pero como yo apenas planeo empezar a usarlo, voy a tener que platicarles poquito sobre lo que dice la documentación que encontré... y ya mas adelante, cuando lo haya probado, regreso y pongo otro post al respecto.
Pues si esta joyita hace lo que dice, esta bastante chido, ya que es un "Class Browser" que podria ser traducido a algo así como un "explorador de clases". Pero no solo eso, puede ser utilizado para explorar, y se podria decir que "destripar", cualquier Assembly, Clase, Método o Propiedad. Ah!!! pero no solo eso, usando Reflector, puedes analizar el codigo intermedio (MSIL) que el Assembly o una clase en particular generó. Pero eso no es todo, además te puede generar el código fuente original, en una variedad de lenguajes (según la documentación, en C# o VB, pero en la versión que instale en mi máquina, me da las opciones extras de Delphi, MC++ y Chrome). Y bueno, ahorita en esta máquina no tengo ningún assembly a la mano, pero al corrrerlo me dio la opción de abrir Framework 2.0, lo hice, y pude probar que si funciona... ya veremos con el tiempo... luego les aviso que tan chido esta.
Ahora dejenme les digo algo que sí esta muy chido, es que, como les comente, puedes abrir el assembly del Framework de MS, y de esa forma analizar el código de sus clases, metodos y propiedades, y de esta forma conocer las "best practices" de MS, y la forma en que crean y optimizan su código... suena chido, no???
Bueno, les dejo la dirección de este artículo, de donde saque la información. También les paso la liga de Lutz Roeder, que es quien escribió Reflector, y que tiene también otras utilerias interesantes... que se pueden bajar desde ahí...
Chido, nos vemos en la siguiente entrega... y si por ahí hay alguien que haya usado Reflector, y quiera dejar su comentario, se lo agradeceria mucho...

Sunday, March 05, 2006

Tarea 2 - 2 Que es un assemby?

Este también esta chido...
Si queremos hacerlo fácil, un assembly es básicamente el DLL o EXE que se genera del código que se escribe en Visual Studio.
Sin embargo, no queremos hacerlo tan fácil, así que lo vamos a desmenuzar un poco más. Efectivamente, un assembly es el DLL o el EXE, pero puede contener más archivos también, como imágenes, archivos de texto, etc. Un assembly debe contener también información sobre sí mismo (como la versión, la lista de los archivos que lo constituyen, etc.), la cual es llamada Manifiesto, o "Assembly Manifest".
Los assemblies se pueden categorizar en dos tipos: privados (private) o compartidos (shared). La descripción de ambos se encuentran a continuación:
  • Assembly Privado: Es el assembly que será utilizado solamente por una aplicación en específico. Por ejemplo, supongamos que se desarrolla una aplicación de una casa de cambio, y se desea encapsular la lógica de los procesos de la casa de cambio en un DLL. Solo la aplicación que maneja la casa de cambio va a accesar este DLL, Inclusive, este DLL será instalado en el mismo folder donde se instalará la aplicación.
  • Assembly Compartido: Este tipo de assemblies, por lo contrario, son accesados por diversas aplicaciones al mismo tiempo. Un muy buen ejemplo seria encapsular en un DLL el acceso a datos. En este caso, independientemente del tipo de aplicación, todas utilizarán este DLL para accesar los datos, así que se pondrá en el "Global Assembly Cache", el cual es un folder especial, el cual se encuentra físicamente en :\WinNT\Assembly.
Ahora, esta nueva organización ayuda a desaparecer el "DLL Hell" que existia anteriormente. Para aquellos que no saben exactamente que significa el "DLL Hell", vamos a hacer un paréntesis aquí. Anteriormente, la mayoria de las aplicaciones dependian de archivos DLL para funcionar. Muchas veces, estas DLL podrian tener el mismo nombre (porque eran la misma con diferente versión, o porque dos compañias habian decidido ponerle el mismo nombre a su DLL). Esto causaba grandes problemas, ya que al instalar una aplicación dejaba de funcionar la primera, ya que físicamente se tenian que instalar en el mismo path. Por ejemplo... supongamos que la Aplicación A utiliza el DLL "myFile.dll" y esta funcionando perfectamente. Sin embargo, en la misma máquina se instala la la aplicación B, la cual también utiliza un DLL llamado "myFile.dll". Al instalar la aplicación B, el archivo "myFile.dll" sera remplazado, y muy probablemente la aplicación A dejará de funcionar. Y esto puede suceder aún cuando el archivo "myFile.dll" sea el mismo, pero de una versión diferente.
Bueno, entonces como funciona esto ahora??? Como mencionamos anteriormente, cuando un assembly es privado, el DLL será grabado en la misma ubicación de la aplicación. En este esquema, la mayoria de los assemblies serán privados, así que aun cuando dos aplicaciones utilicen un DLL con el mismo nombre, la ubicación física será siempre diferente. Volviendo al ejemplo anterior, la aplicación A tendrá su DLL "myFile.dll" en su ruta particular, y cuando la aplicación B se instale, su DLL "myFile.dll" será en otra ruta diferente, por lo cual ambos archivos "myFile.dll" existirán al mismo tiempo, y serán referenciados por sus "dueños" solamente.
Ahora, en caso de que se este utilizando un assembly compartido, es necesario saber que estos son marcados con un número de versión de la siguiente manera:

major.minor.build.revision

Es decir, cada vez que se genera una nueva versión del assembly, esta es marcada con su número de versión, por lo cual varias versiones del mismo assembly pueden coexistir juntas, y las diferentes aplicaciones que los accesen sabrán accesar la versión correspondiente.
Entonces, cuales son los pasos para crear un assembly???
  1. Crear el código fuente del DLL o EXE
  2. Generar el nombre único del assembly, utilizando SN Utility (SN.exe). Esta utileria generará un par de llaves privadas
  3. Firmar el DLL/EXE con la llave privada generada anteriormente, modificando el archivo AssemblyInfo. Para esto, es necesario modificar este archivo e incluir la siguiente linea [assembly:AssemblyKeyFile("file_path")]
  4. Compilar el DLL/EXE
  5. Copiar el DLL/EXE resultante al "Global Assembly Cache" usando AL Utility
Espero que esta información les haya ayudado a conocer mejor los assemblies, para que sirven, y como se usan... si desean mas información, chequense este artículo. Ahí viene un ejercicio para profundizar en este tema.

Tarea 2 - 1 Explicar el modelo de compilación de programas .NET

Bueno, en realidad este tema ya se trató en un blog anterior, pero aquí se va a ampliar un poco, ya que es interesante.
Se acuerdan del CLR??? como les comentaba, es el que se encarga de compilar el IL a lenguaje nativo... pero bueno, vamos por partes.
Cada vez que se usa un lenguaje de programación para crear una aplicación (puede ser cualquier lenguaje, pero en este caso vamos a hablar de Microsoft, así que digamos que uso C#) el compilador de C# genera un código intermedio, llamado MSIL. Este código en realidad no me sirve de nada, ya que no puede correr en ninguna plataforma.
Bueno, ahora que tengo ese MSIL, entra en juego el CLR, el cual utilizando un compilador llamado JIT, generará el código nátivo para una plataforma en específico. El siguiente diagrama lo explica mejor:


Ok, esto ya se habia explicado anteriormente, y es bastante sencillo de comprender... sin embargo, en esta ocasión vamos a explicar un poco mas a fondo este proceso.
La primera aclaración importante, es que esta compilación es hecha a medida que se vaya necesitando. Esto significa que cuando un objeto es referenciado por primera vez, se compila y se manda a caché, y cada vez que se utilice otra vez, se va a tomar desde ahí. Por supuesto, esto también significa que el código compilado nativo, al estar en cache, va a tener que ser creado cada vez que se ejecute la aplicación. Esta aclaración es importante, porque algunas personas tienen la idea de que el código nativo resultante se guarda en disco (lo cual seria posible, pero no es el default).
Se podría pensar que este arreglo podria ser inclusive mas costoso que el "estilo" anterior (donde todo el código se compilaba al cargar la aplicación). Sin embargo, este costo extra no es tan grande. Y en el dado caso de que el performance sea un factor altamente determinante, existe una solución.
Existen en realidad dos "sabores" o versiones del JIT. El primero, que es el que se usa por default, no solamente realiza la compilación, sino que ademas lleva a cabo algunas optimizaciones "al vuelo", con las siguientes ventajas:

  • Utilizar y alocar registros del CPU mas eficientemente
  • Realizar optimizaciones de bajo nivel cuando sea necesario, como por ejemplo: propagación de la copia, eliminación de "range checking", eliminación de subexpresiones comunes, etc.
  • Uso más eficiente de la memoria monitoreando la demanda actual de memoria virtual y física durante la ejecución
  • Tomar ventaja del modelo exacto de procesador en uso, generando instrucciones específicas para este
Como pueden ver, este tipo de optimizaciones son las que pueden causar un "overhead" durante la ejecución. Si por alguna razón es realmente importante el performance, se puede utilizar la otra versión del JIT (la económica), la cual solamente convierte cada instrucción del MSIL a su equivalente en código nativo, sin realizar ninguna optimización.
Ahora, en caso de necesitar las optimizaciones, pero de cualquier forma querer mejorar el performance, Microsoft ofrece una solución intermedia... el llamado compilador Pre-JIT, o también conocido como "Native Image Generator" o Ngen.exe. Este se debe invocar antes del runtime, como por ejemplo durante la instalación, y va a compilar todo el código MSIL en un ensamble de código nativo en el "Global Assembly Cache", desde donde será utilizado en el futuro, brincandose toda la operación del JIT.
Aunque esto suena como la situación ideal, no debemos olvidar que el JIT realiza algunas optimizaciones basado en la demanda del sistema en ese momento en particular, como por ejemplo el uso de registros y de memoria. Al no utilizar el JIT, estamos privandonos de estas ventajas. Como en todo, la decisión final debe de ser tomada después de hacer pruebas con ambas opciones, bajo ambientes similares.
Como recomendación, se podria decir que en la mayoria de las aplicaciones, utilizar el JIT default será más que suficiente, aunque es bueno saber que se cuenta con las otras opciones, para casos extremos.
Como no quiero ser pirata, les digo que la mayor parte de esta información (incluyendo el diagrama) lo tome de este artículo.
Finalmente, solo me queda comentar que la ventaja de este modelo de compilación es que, teoricamente, si se tienen los Frameworks adecuados, el desarrollador puede escribir una aplicación solo una vez, y esta deberá correr en cualquier plataforma, es decir, en cualquier dispositivo, o en cualquier sistema operativo. Todavía no se llega a ese punto, pero es bueno saber que cuando menos las bases ya estan listas para lograr ese objetivo.
También esto significa que cualquier persona, o compañia, puede crear su propio lenguaje de programación y/o compilador, mientras siga los estandares, y será compatible con .NET. De hecho, en este artículo, se demuestra como se puede compilar desde el mismo Visual Basic.NET...

Tarea 2

Que onda??? como andan??? pues con la noveda' (como diria un policia) de que la tarea uno se amplió un poco... Charlie no me avisó, y hasta hoy me di cuenta, así que hasta ahora lo estoy yo notificando...
Ahora, creo que es una buena idea también darles una pequeña explicación del porque estoy haciendo este ejercicio de esta manera.
Como les comentaba, este blog surgió de la idea de ponerme al día en cuanto a .NET se refiere, y para ello Carlos Madrigal se ofreció (bueno, no se ofreció, lo comprometimos) a ayudarnos. Ok, la forma en como el esta ayudandonos, es que cada cierto tiempo nos encarga "tareas" y "ejercicios". Normalmente, las tareas son de investigación de conceptos, y los ejercicios, son prácticos.
Lo que yo voy a estar haciendo, es que cada vez que nos encargue tareas o ejercicios, voy a poner un post con las preguntas o instrucciones, y a medida que vaya yo "haciendo la tarea", voy a poner mas posts, con los resultados de mis investigaciones.
Tal vez se pregunten... porque hacerlo así??? Claro, podria simplemente poner los posts con las descripciones, etc. Sin embargo, uno de los objetivos de este blog es que mas gente pueda llevar a cabo este mismo ejercicio. Es decir, si ahora o después alguien se topa con el blog, puede ir checando las tareas, y hacerlas por su cuenta... o simplemente puede leer mis posts, y con eso ir agarrandole la onda...
Si me preguntan, yo les diria que hicieran su propia investigación, y de ser posible, pusieran por escrito sus resultados, ya sea en un documento, o en un blog... porque??? creanme, hay ocasiones en que uno piensa que entendió algo, pero hasta que lo trata de poner por escrito, no se da cuenta de que no lo entendió totalmente, o de que tiene dudas... cuando menos a mi me paso eso con la primer tarea, y me sirvió bastante para entender bien los conceptos.
Ok, aclarado este punto, dejenme les digo que fue lo nuevo que se agrego a la tarea 1... bueno no, para no hacernos pelotas, llamemosle tarea 2:

  • Explicar el modelo de compilación de programas .NET
  • ¿Qué es un ensamble o assembly?
  • ¿Qué hace .NET Reflector?
  • ¿Cómo hace posible .NET que un componente escrito en C# pueda ser reutilizado en VB.NET?
Ok... esperen pronto los post con las respuestas a estas preguntas...

Chido!!!!

Thursday, March 02, 2006

Tarea 1 - 3 Ya con esto acabamos

Bueno, ahora que ya agarre vuelito, pues de una vez le damos y acabamos con esto...
El siguiente punto era...

Lista al menos 10 lenguajes .NET.


Bueno, vamos a hacerle caso al Madrigal, y usemos KISS (Keep it Simple S...). Asi que solo vamos a listar los lenguajes que son soportados por .NET. Si a alguien le interesa saber un poco mas, pueden ir a este artículo, que es de donde saque esta lista:

  • C#
  • Visual Basic
  • J++
  • Cobol
  • Eiffel
  • Forth
  • Fortran
  • Haskell
  • Mercury
  • Mondrian
  • Oz
  • Python
  • Small Talk
Como se daran cuenta, hay un buen de lenguajes que se pueden usar, aunque por supuesto, los más famosos son los de MS, es decir, los que vienen con Visual Studio .NET.

Finalmente, solo me queda una cuestion...

¿Qué tipos de aplicaciones se pueden crear con .NET?

Esta pregunta esta buena, porque aquí entra una cuestión interesante... una de las ventajas de .NET, es que se supone que es Multiplataforma... sin embargo, dependiendo de quien lo diga, este concepto es diferente... ahí les va el porque...
Segun Microsoft, Visual Studio .NET es multiplataforma, porque una aplicación que se desarrolle en el, se puede correr en diferentes dispositivos... pero siempre bajo un sistema operativo, el de ellos... es decir, una aplicación puede correr en una PC, una tablet, un PDA o hasta un celular... siempre y cuando tenga un SO Microsoft (y el correspondiente .NET framework de Microsoft, por supuesto). Sin embargo, desde otras perspectivas (Mono, por ejemplo) multiplataforma significa que debe de correr en diferentes SO, es decir, en una Mac, en una PC con Windows, o en una PC con Linux, mientras tenga el correspondiente Framework, también. Esto lo digo sin ánimo de criticar, aunque logicamente, lo ideal seria que yo desarrollara una aplicación en cualquier lenguaje compatible con .NET, y que esa aplicación corriera en mi PC con Linux, mi Mac, mi Palm con Palm OS y mi Tablet con Windows... eso todavia esta en veremos, pero es a lo que le tira .NET.

Bueno, con esto se termina esta primera asignación... espero que les vaya gustando, y si alguien la esta leyendo, y tiene comentarios, avisenme, para tomarlos en cuenta en las proximas ediciones...

Abur...

Tarea 1 - 2 Cuales son los componentes de .NET?

Esta tampoco estuvo tan pelada… buscando otra vez en la red, encontré diferentes puntos de vista, de acuerdo al autor. Los componentes en los que la mayoría de los autores coinciden son los siguientes:

Common Language Specification (CLS): básicamente es el conjunto de reglas que deben de seguir los lenguajes para que sean compatibles con .NET. Es decir, da las especificaciones para tipos de datos, excepciones, atributos, etc. Estas especificaciones estan documentadas en el documento de la ECMA llamado “Partition I Architecture”. Esta liga da más detalles.


Base Class Library (BCL): Pues esta librería es la que hace básicamente todo… en realidad se encarga de los dispositivos periféricos, de las operaciones aritméticas, de la administración de la memoria, etc… de hecho, me voy a piratear aquí la definición de la Wikipedia, porque creo que es bastante explicativa:

La Biblioteca de Clases Base (BCL por sus siglas en inglés) maneja la mayoría de las operaciones básicas que se encuentran involucradas en el desarrollo de aplicaciones, incluyendo entre otras:

  • Interacción con los dipositivos periféricos
  • Manejo de datos (ADO.NET)
  • Administración de memoria
  • Cifrado de datos
  • Transmisión y recepción de datos por distintos medios (XML, TCP/IP)
  • Administración de componentes Web que corren tanto en el servidor como en el cliente (ASP.NET)
  • Manejo y administración de excepciones
  • Manejo del sistema de ventanas
  • Herramientas de despliegue de gráficos (GDI+)
  • Herramientas de seguridad e integración con la seguridad del sistema operativo
  • Manejo de tipos de datos unificado
  • Interacción con otras aplicaciones
  • Manejo de cadenas de caracteres y expresiones regulares
  • Operaciones aritméticas
  • Manipulación de fechas, zonas horarias y periodos de tiempo
  • Manejo de arreglos de datos y colecciones
  • Manipulación de archivos de imágenes
  • Aleatoriedad
  • Generación de código

Common Language Runtime (CLR): Este es el mero mero… es quien compila el código intermedio (IL o Intermediate Language) que se generó en algún lenguaje compatible con .NET (MSIL para el ISL generado por los lenguajes de Microsoft), y genera un código nativo usando el CLS. Luego, el Compilador Just in Time (JIT) se encargará de generar el código de máquina que se ejecutará finalmente.

Estos son los tres componentes que la mayoria de la documentación maneja… como componentes extras se pueden mencionar:

Lenguajes de Programación: Son los lenguajes que se pueden utilizar para desarrollar aplicaciones para el .NET Framework.

Capa de Datos: Maneja la comunicación con bases de datos y con XML… en el caso de Microsoft, es lo que conocemos como ADO.NET

Sistema Operativo: Es el sistema operativo sobre el cual van a correr las aplicaciones.

Bueno, con esto terminamos el segundo punto de la tarea… de hecho, casi casi también cubre el tercer punto, que es:

¿Qué significan CLR, BCL, CLS, CLI, JIT, IL, Managed Code?
Como se habran dado cuenta, la mayoría de esos acronismos ya se contestaron aquí mismo... lo único que quedaria pendiente es lo de "Managed Code", lo cual es importante también, y es, basicamente, el código que nosotros escribimos en cualquier lenguaje compatible con .NET... es decir, cuando haces una aplicación en Visual Studio, ya sea que uses C#, VB o cualquier lenguaje, eso es el mentado "Managed Code"... eso lo saque de este artículo de Microsoft.

Bueno, ya casi acabamos, ya solo faltaria listar al menos diez lenguajes .NET... pero para que este post no quede tan largo, eso lo pondremos en el siguiente post.

Chido...

Tarea 1 - 1 Que es tecnología .NET?

Uta… esta parecia facil… yo pense que solo era cuestión de ir a Google, y preguntarlo, así, tal cual… pero nel… en lugar de facilitármelo, creo que me lo hizo mas difícil. Encontré un buen de información, y eso es precisamente lo que lo complica.

Sin embargo, encontré un artículo en linea que me ayudo mucho a despejar mis dudas, y poner mi mente en claro sobre lo que es .NET.

Ahora, la primer aclaración que me gustaria hacer, es que “Tecnología .NET” y “.NET Framework” son dos terminos equivalentes… no se si a todo mundo le pasaba lo mismo, pero cuando yo escuchaba “.NET Framework” pensaba inmediatamente en el framework desarrollado y usado por Microsoft, y creia que era el único (algo así como cuando dices “Kleenex”, inmediatamente piensas en toallas desechables, sin darte cuenta que “Kleenex” es solo una marca de las muchas que hay de toallas desechables). Es decir el .NET Framework es el conjunto de “reglas” que debe tener un marco de trabajo para que pueda “hablarse” con un cierto Sistema Operativo… Microsoft ya tiene desarrollado el suyo, que trabaja con Windows, y existe un proyecto que esta trabajando en desarrollar el .NET Framework para Linux… este proyecto es conocido como MONO (lidereado orgullosamente por un Mexicano llamado Miguel de Icaza).

Entonces, en pocas palabras, la tecnología .NET, es básicamente la plataforma sobre la que se ejecutaran las aplicaciones, independientemente del sistema operativo. Básicamente, es quien va a “traducir” las instrucciones de los programas (sin importar el lenguaje de programación en que se haya desarrollado) para que el sistema operativo (independientemente de cual se este utilizando) puede ejecutarlas.

Tarea 1

Bueno, como les comentaba en el post anterior, ya nos dejaron nuestra primer tarea, que basicamente es de investigación. Al principio, parecia algo sencillo, sin embargo, cuando puse manos a la obra, me di cuenta que no lo era tanto... aquí les paso que es exactamente lo que tengo que hacer, y en posts posteriores ire contestandolo, poco a poco...

.NET 101

  • ¿Qué es tecnología .NET?
  • ¿Cuáles son sus componentes?
  • ¿Qué significan CLR, BCL, CLS, CLI, JIT, IL, Managed Code?
  • Lista al menos 10 lenguajes .NET.
  • ¿Qué tipos de aplicaciones se pueden crear con .NET?