sábado, 8 de noviembre de 2008

Formularios MDI

En esta oportunidad, describiré lo fácil que es definir Formularios MDI "Padres" y Formularios "Hijos" con Visual Studio 2005, en este caso, con Visual Basic.
Para hacer la demostración, solo necesitaremos 2 formularios, uno que haga de Padre (Form1), y otro de Hijo (Form2).


Para definir a Form1, como un "padre", es decir, un contenedor de MDI (Interfaz de Documentos Múltiples), basta con ir a su propiedad "isMDIContainer", ponerla en valor "true", como en la siguiente imagen.


Al seleccionar el valor "true", el formulario se torna de un color oscuro...


Luego, para la demo, procedemos a agregar el formulario 2.


Una vez agregado el formulario, nos dirigimos al form1, y escribimos el código que instancia la clase form2, y al objeto instanciado, le definimos que sera contenido por form1, como en la siguiente imagen:

Y al ejecutarlo, podemos ver al form2, contenido en form1.



lunes, 3 de noviembre de 2008

Controles Contenedores en Visual Studio

En este post, trataremos con algunos de los controles contenedores de Visual Studio. empezamos con:

GroupBox
Es el equivalente al Frame en Visual Basic 6.0, solo muestra un marco alrededor de controles, y opcionalmente puede tener un titulo.


Panel
Solamente usado para agrupare colecciones de controles, es invisible, solo para mejor de diseño de interfaz.


SplitContainer
Control utilizado para dividir el formulario en dos áreas redimensionables, ambos pueden contener controles.


Asimismo, se puede acoplar a todo el formulario, como se puede ver en la figura siguiente:

sábado, 25 de octubre de 2008

Menús y Barras de Herramientas en Visual Studio (Parte II)

En esta segunda parte concluiremos con las herramientas faltantes de la semana pasada como StatusStrip, ToolStrip y ToolStripContainer.

StatusStrip
Herramienta que muestra una barra de estado, mostrando la información para el usuario acerca del objeto que esta viendo.

Primeramente ubicamos el control en nuestra barra de herramientas.

Luego lo arrastramos y soltamos en nuestro formulario.
Al soltarlo, se puede observar como aparece una barra de estado en la parte inferior del formulario; asimismo se aprecia una pequeña lista de opciones de pequeños controles a colocar en mi barra de estado, como un ProgressBar, un StatusLabel (etiqueta), DropDownButton y un SplitButton.



ToolStrip


Este control proporciona una barra de herramientas en la interfaz de usuario, lo arrastramos de la misma manera que el control anterior, al formulario; luego se puede observar como se aparece una barra de herramientas en la parte superior.

Al igual que el StatusStrip, en esta barra de herramientas, se puede colocar diversos objetos, como botones, barras de progreso, separadores, etc. Pudiendo quedar de la siguiente manera.



ToolStripContainer

Es la herramienta que proporciona paneles en los cuatro extremos del formulario, que pueden contener a ToolStrip, MenuStrip o StatusStrip.
Simplemente se arrastra el control al formulario, y se observa un recuadro con 4 paneles (en este caso solo esta visible el panel superior), quienes contendrán a los otros controles dichos anteriormente.


Estos paneles se pueden acoplar al tamaño del formulario; basta con hacer click en la opción "Acoplar Relleno en formulario", para que el control se acople al tamaño del formulario, quedando de la siguiente manera:



Hasta aquí, hemos concluido por describir cuan fácil es utilizar los controles de Menús y Barras de Herramientas en Visual Studio 2005.
Para el proximo post, describire un poco las herramientas contenedoras, y ya con eso, se tendria una base, de empezar a explicar aplicaciones mas complejas.


sábado, 18 de octubre de 2008

Menús y Barras de Herramientas en Visual Studio (Parte I)

Es esta oportunidad veremos cuan fácil es manejar los controles de Menús y Barra de Herramientas que provee el IDE de Visual Studio, en este caso con Visual Basic 2005 Express Edition. Para este ejemplo realizare aplicaciones sencillas por cada control en un formulario, y aunque no lo crean, sin ninguna linea de código (para estos ejemplos, aun no es necesario programar). Los controles son: ContextMenuStrip, MenuStrip, StatusStrip, ToolStrip y ToolStripContainer; en esta primera parte solo mencionare a los dos primeros.


ContextMenuStrip


Este control hace que se muestre un menú contextual, cuando se hace click con el botón derecho del mouse en cualquier control; ya se este un grid, un formulario, un textbox, etc.
Primeramente, lo ubicamos en la barra de herramientas.

Luego, simplemente lo arrastramos, e inmediatamente aparecen el menú, listo para ser editado en tiempo de diseño, y con opciones de submenus.


Seguidamente, escojo cual sera el control donde deseo que aparezca mi menú, en este caso el formulario mismo; me ubico en su propiedad ContextMenuStrip, y simplemente hago referencia al nombre del objeto "ContextMenuStrip", en este caso se llama "ContextMenuStrip1"; luego ejecuto, hago click derecho en el formulario, y aparece mi menú.



MenuStrip

Es la herramienta que permite hacer los clásicos menús de las ventanas de windows. como en el primer paso del control anterior, seleccionamos MenuStrip, arrastramos y soltamos en el formulario, quedando de la siguiente manera:

Se puede observar como aparece una barra de menús de color azul, y como el primer menú, aparece listo para ser llenado; del mismo modo los submenus, y demás menús, como a continuación se muestra:


Asimismo, puedo agregar elementos estándar, en tan solo "un click"; para ello nos vamos a la parte superior derecha del control donde aparece como un pequeño "triángulo negro"; ahí se desplegara una serie de opciones, entre ellas la de insertar elementos estándar.


Finalmente, podremos tener un menú con las opciones prediseñadas como cualquier ventana de windows.


Para el próximo post, terminare con los controles de Menús y Barras de Herramientas, y haremos una introducción con los Controles Contenedores.


sábado, 11 de octubre de 2008

HOLA MUNDO en Visual Basic 2005

En esta oportunidad, veremos el clásico ejemplo de "Hola Mundo".
Para esto he usado Microsoft Visual Basic 2005 Express Edition; asimismo, describiré algunas características del IDE.
Cuando uno inicia Visual Basic 2005, se puede ver un panel de bienvenida, donde se muestra algunas noticias y novedades referentes a Visual Studio (siempre y cuando exista una conexion a Internet); al lado izquierdo un panel de herramientas (aun vacío porque no se ha abierto un proyecto); y al lado derecho superior mi Explorador de Soluciones (donde se puede ver todos los formularios, y otros objeto9s presentes en mi proyecto), y al lado derecho inferior mi panel de Propiedades.



Primeramente nos dirigimos al menú Archivo y hacemos click en "Nuevo Proyecto".


Aparecerá un cuadro de dialogo para escoger el tipo de proyecto, y sobretodo darle nombre y la ubicación.


Una vez definido el nombre y la ubicación del proyecto; se nos mostrara nuestro formulario en la parte central de la pantalla; asimismo se puede observar como los paneles laterales ya aparece información referida a nuestro proyecto, y la barra de herramientas ya aparece llena, lo que sugiere que ya podemos empezar a arrastrar cualquier objeto al formulario.


Para este ejemplo solo usare al control "Button"; la idea es que al hacerle click, muestre un mensaje con el texto: "Hola Mundo".



En la parte inferior derecha, en el Panel de Propiedades, teniendo seleccionado al control Button, cambiamos el nombre del mismo, en este caso el botón se llama "Prueba"


Luego hacemos doble click en el control Button de nuestro formulario, e ingresaremos a la pantalla de codificacion. Por defecto se muestra la Clase Form1 (de nuestro formulario), y el metodo correspondiente al evento click de nuestro control Button. Como recordaran en mi primer post, todos los lenguajes de .NET, son orientados a objetos, es por esta estructura.
Seguidamente, ingreso una simple linea de código, equivalente al "msgbox" de VB 6.0, con el mensaje "Hola Mundo".


Finalmente ejecutamos nuestra aplicación presionando F5, y aparece el formulario, luego de darle click en el boton "Prueba", se puede observar como aparece una pequeña ventana de mensaje con nuestro "Hola Mundo"

Evidentemente esta es una aplicacion super sencilla, en cada post, se ira mostrando paso a paso aplicaciones mas complejas, con otros controles, y con conexiones a Base de Datos; pero en lineas generales, el desarrollo de aplicaciones Windows y Web ya sea en VB.NET o C# son muy sencillas de realizar.

lunes, 22 de septiembre de 2008

Versiones Express de Microsoft Visual Studio


En esta oportunidad tratare sobre la versiones gratuitas y de prueba de Visual Studio, es decir; la version Microsoft Visual Studio Express, que es el paquete sin costo del Entorno de Desarrollo Integrado de Microsoft, que contiene versiones ligeras, pero a la vez productivas en el tema de desarrollo de software, la ultima version es, Visual Studio Express 2008, aunque esta es solo de prueba; sin embargo existe la version, Visual Studio Express 2005, que esta operativa sin limite de tiempo.


Visual Studio Express contiene los siguientes productos:
  • Visual Basic .NET (2005 y 2008) Express Edition
  • Visual C# (2005 y 2008) Express Edition
  • Visual C++ (2005 y 2008) Express Edition
  • Visual Web Developer (2005 y 2008) Express Edition.
  • Visual J# 2005 Express Edition
Estas versiones incluyen:
  • Intellisense, coprriengiendo errores de sintaxis y sugiriendo alternativas en el instante que se codifica.
  • Soporte para Windows Presentation Foundation (solo version VB 2008).
  • Depuracion en tiempo de ejecucion.
  • Publicacion mediante ClickOnce.
No obstante, por ser una version gratuita evidentemente tiene limitaciones tales como:
  • La ausencia de Crystal Report.
  • Para VB.NET y C#, no se puede desarrollar en web con ASP.
  • No se puede desarrollar aplicaciones moviles

A continuacion comenzare por describir brevemente cada uno.


Visual Basic .NET Express Edition


Definitivamente es la version mas idonea para los que se inician, o no tienen tanta experiencia en el desarrollo de aplicaciones; ya que la facilidad de la sintaxis de Visual Basic permite que el usuario tenga una rapida familiarizacion con el lenguaje.


Visual C# Express Edition


Es el lenguaje "estrella" del .NET , ya que nacio con la primera version del framework. Es un lenguaje sencillo de aprender ( tiene una certa similitud en la sontaxis con Java y C++), y sobretodo muy potente para realizar aplicaciones para Windows.


Visual C++ Express Edition

La combinacion del entorno grafico de Visual Studio y la robustez de C++, hacen de esta version , la ideal para usuarios experimentados; en él se pueden realizar desde aplicaciones pequeñas, hasta juegos, nativas y administradas.

Visual Web Developer

Es el paquete para desarrollo de sitios web ASP.NET con Visual Basoc .NET, C# o J#, tiene las funciones de arrastrar y soltar elementos de la barra de herramientas en el diseñador, separacion de codigo del lado del cliente y del servidor, un limitado explorador de base de datos ; apoyo a otras tecnologías web (por ejemplo, CSS, JavaScript, XML); y la opcion de integrarse con AJAX, aunque para la version 2008, ajax ya viene incluido.


Visual J# Express Edition


Es el lenguaje creado para aquellos desarrolladores habituados a Java, y que depronto deseen crear aplicaciones en .NET y asi usar tambien los conocimientos y habilidades en ambas plataformas, ya que J# es compatible con la sintaxis Java.

En el proximo post, empezaremos a describir el IDE de Visual Studio y eventualmente, desarrollaremos una pequeña aplicacion.

lunes, 1 de septiembre de 2008

La Maravilla de ClickOnce

ClickOnce, es una tecnologia presente desde la primera version del .NET Framework, para ser usada mediante el IDE Visual Studio. ClickOnce, hace que la implementacion de aplicaciones Windows Forms sea tan fácil como una aplicacion Web.

Hasta hace unos años, el desarrollo de aplicaciones de escritorio, era tedioso, y costoso; ya que
había que instalar el software en cada cliente, y había  una estrecha dependencia con el Sistema Operativo. Es asi que surge como alternativa las aplicaciones web, y evidentemente tuvieron gran éxito, por todos los detalles negativos de las aplicaciones de escritorio; no obstante las aplicaciones web, no son tan ricas visualmente, o tienen un prolongado tiempo de procesamiento, ya que cualquier evento, tiene que ir al servidor y luego regresar la respuesta al cliente. Es asi que nace un nuevo concepto; el de Clientes Inteligentes; que no son mas que aquellas aplicaciones Windows Form, pero con un "Comportamiento Web"; para hacer esto posible, es necesaria la tecnologia de despliegue ClickOnce, para hacer la publicacion de la aplicacion en el servidor Web o de Archivos, y luego el cliente basta con que tenga acceso a esa dirección (de la publicacion), para descargar su aplicacion (que correrá en cache), y puede hacer su trabajo con total normalidad; asimismo, si es que hubiese otra version, basta con publicarla en el servidor nuevamente, y el cliente cuando acceda, tendrá la ultima versión de la aplicacion, desde cualquier parte del mundo (si es que es una conexion a Internet).

Como ejemplo, supongamos que tenemos el tipico programita "Hola Mundo":


                  (Código VB.NET)

Una vez compilada correctamente en vez de instalarla a mano seleccionamos con el botón derecho del ratón Propiedades del Proyecto y luego Publicar veremos una ventana como esta.


Esta ventana incluye opciones muy interesantes como actualizaciones automáticas o hacer disponible la aplicación sólo a mientras se tenga conexión al servidor , lo cual combinado con una politica de usuarios de IIS o Certificados Digitales  permite limitar o impedir el acceso a nuestra aplicación en cualquier momento.



Cualquier usuario que quiera ejecutar nuestro programa sólo tendrá que conectarse a la dirección web seleccionada y verá una pantalla como esta, donde podrá descargarse el aplicativo para su uso en local o ejecutarlo temporalmente, asi como comprobar las posibles actualizaciones.



Como no tengo un servidor web donde publicar, consegui este link,  donde han alojado pequeñas aplicaciones a manera de demostracion de ClickOnce, solo denle click, he instalen, veran como ClickOnce busca sus actualizaciones, y luego ejecuta la aplicacion:



lunes, 25 de agosto de 2008

¿Que son el CLR y la Biblioteca de Clases .NET?

En este post, tratare unas de las partes mas importantes del .NET Framework, el CLR y la Bilioteca de Clases .NET.


CLR, Common Language Runtime

Comenzaremos con el CLR, es decir; el Commom Language Runtime o Lenguaje Comun en Tiempo de Ejecución; basicamente es el motor en tiempo de ejecucion del .NET Framework, que se encarga de ejecutar el codigo de todos los lenguejes del .NET Framework.
Pero, el CLR; hace mucho mas, para tener una vision mas amplia de el, a continuacion mostrare una imagen que muestra de que partes esta compuesto.

Como se puede observar, el CLR, la componen cada una de estas partes arriba mostradas; ellas son escenciales para la correcta de ejecucion de programas bajo la plataforma .NET, a continuacion describire brevemente de que se trata cada una de ellas:

Class Loader
Encargado de cargar las clases en memoria.

Compilador MSIL a Nativo
Aqui cabe mencionar que al momento de compilar una aplicacion hecha en cualquier lenguaje como C#, VB.NET, etc; su codigo se transforma en MSIL que significa Microsoft Intermediate Language, que como su mismo nombre indica es como un lenguaje intermedio que el .NET lo comprende y puede manejar; luego cuando se ejecuta la aplicacion, entra a tallar otro compilador, el JIT Compiler, quien esta encargado de transformar el codigo MSIL a codigo nativo propio del dispositivo donde se ejecuta.

Code Manager
Es el orquestador y coordinador de todos los subsistemas del CLR.

Garbage Collector
Encargado de eliminar de la memoria RAM los objetos no utilizados.

Security Engine
Encargado de Administrar todo lo referente a la ejecucion del codigo.

Debuge Engine
Quien ayuda a realizar un seguimiento a la ejecucion del codigo, aun cuando se utilizen distintos lenguajes, esto gracias a la carecteristica de .NET de ser multilenguaje.

Type Checker
Encargado de verificar y controlar que todas las variables utilizadas en la solucion, usen el area de memoria asignado.

Exception Manager
Administra los errores y/o excepciones que se puedan presentar en la aplicacion.

Thread Support
Se refiere al soporte de "hilos", es decir; de multiprocesos o de ejecutar codigo en forma paralela.

COM Marshaler
Es el comunicador de componentes .NET usados en la apliacion.

Base Class Library Support
Es una interfaz con las Clases Base del .NET.

Y es aqui donde queria llegar para mencionar a la Libreria de Clases del .NET.


Libreria de Clases


Es una libreria estandar disponible para todos los lenguejes que usan el .NET Framework; debidamente ordenadas en una jerarquia para hacer facil el trabajo de los desarrolladores. La Libreria de Clases, tiene diversas agrupaciones de clases, o namespaces, ya sean para funciones de entrada y salida, carga de graficos, interaccion con base de datos, manipulacion de XML, manejo de entornos web, etc.

Namespaces, o espacio de nombre; representa a la agrupacion de clases, enumeraciones, etc, que tienen un vinculo o relacion entre si.


A continuacion una imagen que representa a los namespaces mas usados de la Biblioteca de Clases.



Una vez comprendido el funcionamiento y la conformacion del .NET Framework, es mas facil llegar a manejar el IDE de Visual Studio, quien sera tema para nuestro proximo post.


sábado, 16 de agosto de 2008

.NET y el .NET Framework


Como mi blog esta dedicado únicamente a todo lo relacionado con .NET, pues en este primer post de mi blog, definiré de una manera sencilla en que consiste el tan escuchado .NET de Microsoft.

A veces he podido escuchar que se tiene una idea errónea del .NET, pensando que es un Lenguaje de Programación, o que hacen comparaciones entre .NET con Java, cuando .NET no es un lenguaje. Entonces, antes de empezar es necesario conocer que es.

Podemos decir que .NET es una plataforma de desarrollo que reune una diversidad de clases y estas a su vez de sub clases debidamente categorizadas, ya sea para aplicaciones web, de base de datos, aplicaciones de escritorio, seguridad, etc; asimismo se puede decir que es una estrategia por parte de Microsoft, para la integracion de sus productos, desde el sistema operativo, hasta componentes que comprende tanto a software cliente, de servidor, y herramientas de desarrollo, tales como: .NET Framework, Visual Studio, y Software de Servidor como Microsoft Windows® Server, Microsoft SQL Server™, y Microsoft BizTalk® Server.

En esta ocasión, solo tratare del .NET Framework, que como su mismo nombre lo indica es un marco de trabajo, compuesto por una jerarquía de clases idóneas para un tipo especifico de aplicación, enfocando a los desarrolladores a construir tanto aplicaciones de escritorio (Clientes Inteligentes), aplicaciones Web y Servicios Web XML
, obviamente con acceso a datos, ya sea de manera conectada o desconectada; asimismo soporta una serie de lenguajes de programación para llevar a cabo lo antes mencionado, tales como Visual Basic (a partir de la version 7), C#, J#, etc; todos alineados al Paradigma de la Programación Orientada a Objetos.

El .NET Framework es el "core" de .NET, de hecho.... todo lo que queramos hacer con él, antes debe pasar por uno o algunas de las diversas partes del .NET Framework, de las cuales existen dos muy importantes, el CLR (Common Language Runtime) y la Biblioteca de Clases.

A continuación, dejo una imagen que resume a manera general la composición del .NET Framework, en el próximo post, detallare mas el CLR y la Biblioteca de Clases.