domingo, 27 de abril de 2014

Programación Orientada A Objetos

La Programación Orientada a Objetos (POO u OOP) es un paradigma de programación que define los programas en términos de “clases de objetos”, objetos que son entidades que combinan estado (propiedades o datos), comportamiento (procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto).

La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.



Conceptos fundamentales

La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:
  • Objeto

Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase.
  • Método

Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
  • Evento

Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento la reacción que puede desencadenar un objeto; es decir, la acción que genera.
  • Propiedad o atributo

Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.
  • Clase

Definiciones de las propiedades y comportamiento de un tipo de objeto concreto


  • Instanciamiento

La Instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas, cuando se instancia o crea una instancia de una clase, lo que se hace es reservar una porción determinada de memoria en la que se almacenarán los datos, y las direcciones de memoria de sus métodos, etc. 
  • Polimorfismo

En programación orientada a objetos, el polimorfismo se refiere a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos. El único requisito que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les envía.
La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de las obvias diferencias sintácticas
.
  • Encapsulamiento

En programación modular, y más específicamente en programación orientada a objetos, se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro de un objeto de manera que sólo se pueda cambiar mediante las operaciones definidas para ese objeto.
Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados de un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.

jueves, 24 de abril de 2014

Tipos de herramientas en Visual Studio

El apuntador: El apuntador es la única herramienta de la caja que no puede utilizar para dibujar un control.
Usted utiliza el apuntador para seleccionar un control cuando desea cambiar sus propiedades y definiciones

Picture box:Se utiliza la herramienta para imágenes para mostrar una gráfica.
Las imágenes pueden ser decorativas o funcionales como un icono.

Label: Se utiliza la herramienta label para dibujar una caja para texto que no desea que modifique un usuario.
Normalmente usted utiliza las etiquetas para crear encabezados bajo las gráficas o identificar el contenido de las cajas de texto.

Text Box: Se utiliza la herramienta caja de texto para dibujar una caja que contenga caracteres numéricos y alfabéticos convenientes.

Frame: Usted utiliza la herramienta Frame para crear un agrupamiento funcional o gráfico para los controles.

Command Button: Usted utiliza la herramienta Botón de comando para crear un objeto visible que el usuario puede elegir para realizar una tarea.

Check Box: Sirve para crear una caja de selección que el usuario puede seleccionar fácilmente para indicar si algo es verdadero o falso.

Option Button: Usted utiliza la herramienta Botón de opción en un grupo para mostrar opciones múltiples de las cuales el usuario puede escoger solamente una.

Combo Box: Usted utiliza la herramienta caja combinada para una combinación de caja de listado y caja de texto.

List Box: Usted utiliza la herramienta caja de listado para mostrar una lista de artículos de los cuales el usuario puede escoger sólo uno.

Horizontal Scroll Bar: Usted utiliza la herramienta Barra de desplazamiento horizontal para crear un control gráfico con el cual transitar rápidamente a través de una gran cadena de ítems o una cantidad grande de información.

Vertical Scroll Bar: Usted utiliza la herramienta barra de desplazamiento vertical para crear un control gráfico con el cual navegar rápidamente por una gran lista de ítems o una gran cantidad de información.

Timer: La herramienta de tiempo sirve para indicar los eventos de tiempo en los intervalos que usted establece.
Este control sólo es visible durante el diseño, es invisible durante la corrida.

Caja de listado de unidades: Se utiliza esta herramienta para mostrar las unidades válidas en el sistema del usuario.

Caja de listado de directorios: Usted utiliza la herramienta Caja de listado de directorios para mostrar un listado jerárquico de directorios en el sistema del usuario.

Caja de listado de archivos: Usted utiliza esta herramienta para mostrar un listado de archivos que el usuario puede abrir, guardar o manipular de alguna otra manera.

Shape: Es un control gráfico que se muestra como un rectángulo, un cuadrado, una elipse, un círculo, un rectángulo redondeado o un cuadrado redondeado.

Line: Al igual que Shape, es un control gráfico que solamente sirve para poner una línea en un formulario.



Image: Este nos sirve para agregar imágenes prediseñadas.

Tipos de proyectos en Visual Studio






Aplicación de Windows Forms
Las aplicaciones de Windows Forms son aplicaciones cliente que se ejecutan en el equipo del usuario, muestran información, solicitan entrada de los usuarios y se comunican con equipos remotos en una red. Si desarrolla aplicaciones mayores, puede que deba investigar .NET Framework y las clases que proporciona. En esta sección se proporciona información general sobre las clases de .NET Framework y conceptos relacionados con las aplicaciones de Windows Forms.



Aplicación WPF 
WPF es el acrónimo de Windows Presentation Foundation (acá la especificación), uno de los cuatro pilares del framework de .NET a partir de la versión 3.0 (los otros son Windows Communication Foundation, Windows Workflow Foundation y CardSpace).WPF es la parte de la plataforma que permite crear aplicaciones gráficas muy visuales que utilizan el poder de aceleración 3D de las tarjetas aceleradoras y los recursos de hardware de los mismo, como los puertos USD, Bluetooth, lectoras, cámaras, etc.
WPF es la evolución de lo que se conocía como WindowsForms, algo conocido para los que hacían aplicaciones Win32 hace algunos años.




Aplicación de consola
Son aplicaciones que se ejecutan desde la linea de comandos de msdos. Por lo que sólo son de texto y no cuentan con interfaces gráfica.


Aplicacion web ASP.NET
Desarrollado y comercializado por Microsoft. Es usado por programadores y diseñadores para construir sitios web dinámicos, aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de la tecnología Active Server Pages (ASP). ASP.NET esta construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.


Biblioteca de clases
La biblioteca de clases de .NET Framework está constituida por espacios de nombres. Cada espacio de nombres contiene tipos que se pueden utilizar en el programa: clases, estructuras, enumeraciones, delegados e interfaces.
Cuando se crea un proyecto de Visual Basic o Visual C# en Visual Studio, se sigue haciendo referencia a las DLL más comunes de la clase base (ensamblados). No obstante, si necesita usar un tipo incluido en una DLL a la que aún no se hace referencia, deberá agregar la referencia de esa DLL.




Biblioteca de clases potable
Permite escribir y compilar ensamblados administrados capaces de funcionar en varias plataformas .NET Framework. Puede crear clases que contengan el código que desea compartir entre diversos proyectos (por ejemplo, la lógica empresarial compartida) y después hacer referencia a esas clases desde diferentes tipos de objetos.
Con el proyecto Biblioteca de clases portable, puede compilar ensamblados portables que funcionen en las plataformas .NET Framework, Silverlight, Windows Phone 7 o Xbox 360 sin necesidad de realizar modificaciones. Sin el proyecto Biblioteca de clases portable, solo podrá usar como destino una única plataforma y tendrá que modificar manualmente la biblioteca de clases para usarla en otras plataformas. El proyecto Biblioteca de clases portable admite un subconjunto de ensamblados de estas plataformas y proporciona una plantilla de Visual Studio que permite compilar ensamblados para que se ejecuten sin modificaciones en esas plataformas.



Aplicación Silverlight
Es un complemento de Microsoft que nos permite desarrollar aplicaciones enriquecidas para la web. Silverlight funciona sobre varias plataformas y múltiples exploradores y proporciona una nueva generación de experiencias de usuario basadas en .NET. Tras una descarga que se instala en segundos, Silverlight posibilita una nueva plataforma rica, segura y escalable.

Silverlight ofrece un modelo de programación flexible y coherente compatible con lenguajes .NET como Visual Basic, C# y F#, y otros como AJAX, Python, Ruby y que además se integra con las aplicaciones web existentes. Silverlight supone una nueva forma de aprovechar los elementos multimedia en los principales navegadores entre los que se incluyen Firefox, Safari e Internet Explorer tanto en MacOS como en Windows.

Aplicacion de servicios WCF
Es un marco de trabajo para la creación de aplicaciones orientadas a servicios. Con WCF, es posible enviar datos como mensajes asincrónicos de un extremo de servicio a otro. Un extremo de servicio puede formar parte de un servicio disponible continuamente hospedado por IIS, o puede ser un servicio hospedado en una aplicación. Un extremo puede ser un cliente de un servicio que solicita datos de un extremo de servicio. Los mensajes pueden ser tan simples como un carácter o una palabra que se envía como XML, o tan complejos como una secuencia de datos binarios. A continuación se indican unos cuantos escenarios de ejemplo:
  • Un servicio seguro para procesar transacciones comerciales.
  • Un servicio que proporciona datos actualizados a otras personas, como un informe sobre tráfico u otro servicio de supervisión.
  • Un servicio de chat que permite a dos personas comunicarse o intercambiar datos en tiempo real.
  • Una aplicación de panel que sondea los datos de uno o varios servicios y los muestra en una presentación lógica.
  • Exponer un flujo de trabajo implementado utilizando Windows Workflow Foundation como un servicio WCF.
  • Una aplicación de Silverlight para sondear un servicio en busca de las fuentes de datos más recientes.
Si bien era posible crear tales aplicaciones antes de que existiera WCF, con WCF el desarrollo de extremos resulta más sencillo que nunca. En resumen, WCF se ha diseñado para ofrecer un enfoque manejable para la creación de servicios web y clientes de servicios web.

Aplicacion de servicios LightSwitch
Puede exponer los datos desde una aplicación web Visual Studio  publicada como una fuente Open Data (OData) para que los usen otras aplicaciones. Las aplicaciones que admitan el protocolo estándar de OData pueden consumir los datos de la base de datos intrínseca o de cualquier origen de datos asociado. Por ejemplo, puede que desee ver los datos de la aplicación LightSwitch en un dispositivo móvil o en un informe de tabla dinámica de Excel.




Aplicación de explorador WPF
Las Aplicaciones del explorador XAML (XBAPs) combinan las características de aplicaciones web y aplicaciones cliente enriquecidas. Al igual que las aplicaciones web, las aplicaciones XBAP se pueden implementar en un servidor web e iniciarse desde Internet Explorer o Firefox. Al igual que las aplicaciones cliente enriquecidas, las aplicaciones XBAP pueden aprovechar las capacidades de WPF. El desarrollo de aplicaciones XBAP también es similar al desarrollo de aplicaciones cliente enriquecidas. En este tema se proporciona una introducción simple, de alto nivel, al desarrollo de aplicaciones XBAP y se describen las diferencias entre el desarrollo de aplicaciones XBAP y el desarrollo de aplicaciones cliente enriquecidas estándar.


Biblioteca de control de usuario
Un control de usuario es similar a cualquier otra clase, pero con la posibilidad agregada de poder colocarlo en el Cuadro de herramientas y mostrarlo en un formulario. Donde un módulo de clase tiene sólo código, un módulo de control de usuario tiene código y un diseñador. El Diseñador de controles de usuario es similar a un diseñador de formularios: tiene las propiedades para controlar el aspecto y comportamiento del control de usuario.


Biblioteca de controles Windows From
La plantilla de proyecto Biblioteca de controles de Windows se utiliza para crear controles personalizados para usarlos en formularios Windows Forms.
La plantilla agrega automáticamente las referencias y archivos de proyecto esenciales para utilizarlos como punto de inicio para la aplicación.


Proyecto vació 
Un proyecto vació no es mas que la Inicialización de un proyecto sin ningún tipo de plantilla por defecto de Microsoft Visual Studio.


Servicio de Windows
Como seguramente sabrás, entre los tipos de proyectos que Visual Studio .NET nos permite crear, se encuentran los Servicios de Windows, anteriormente conocidos como Servicios NT.
Para refrescarte la memoria, te diré que un Servicio de Windows no es una aplicación normal de Windows, ya que no tiene interfaz gráfica de cara al usuario y tampoco es una especie de Servicio Web que funciona en Windows en lugar de hacerlo en un sitio de Internet. Los Servicios de Windows son aplicaciones que funcionan sin interactuar directamente con el usuario y por regla general se inician junto con el sistema, sin que ningún usuario tenga que iniciarlo.
Lo que en este artículo veremos es cómo crear e instalar un Servicio de Windows y también cómo comunicarnos con ese Servicio de Windows, para ello crearemos una pequeña utilidad que nos permita ver los Servicios de Windows instalados en nuestro equipo, así como los instalados en otros equipos a los que tengamos acceso, de forma que podamos saber si están o no iniciados e incluso poder iniciarlos, pausarlos, detenerlos, etc.

Aplicación de explorador WPF
Las Aplicaciones del explorador XAML (XBAPs) combinan las características de aplicaciones web y aplicaciones cliente enriquecidas. Al igual que las aplicaciones web, las aplicaciones XBAP se pueden implementar en un servidor web e iniciarse desde Internet Explorer o Firefox. Al igual que las aplicaciones cliente enriquecidas, las aplicaciones XBAP pueden aprovechar las capacidades de WPF. El desarrollo de aplicaciones XBAP también es similar al desarrollo de aplicaciones cliente enriquecidas. En este tema se proporciona una introducción simple, de alto nivel, al desarrollo de aplicaciones XBAP y se describen las diferencias entre el desarrollo de aplicaciones XBAP y el desarrollo de aplicaciones cliente enriquecidas estándar.

.