SlideShare una empresa de Scribd logo
1 de 50
22/07/13JaritzaMora1°Inf.
1
22/07/13JaritzaMora1°Inf.
2
22/07/13JaritzaMora1°Inf.
3
22/07/13JaritzaMora1°Inf.
4
Dentro de este aspecto, podemos basarnos en el modelo MVC (Controlador => Modelo =>
Vista).
Tenemos que contemplar estos aspectos básicos en cuanto a la implementación de nuestro
sistema:
Modelo
Maneja las operaciones lógicas, y de manejo de información para resultar de una forma
explicable, cada miembro debe ser meticulosamente llamado, con su correcto nombre y en
principio, con su verdadera naturaleza: el manejo de información, su complementación
directa.
Vista
Le corresponde dibujar, o expresar la última forma de los datos: la
interfaz gráfica que interactúa con el usuario final del programa (GUI).
Controlador
Con este apartado podemos controlar el acceso a nuestra aplicación, y esto puede incluir:
archivos, scripts, y/o programas; cualquier tipo de información que permita la interfaz.
22/07/13JaritzaMora1°Inf.
5
Dentro del controlador, modelo o vista podemos manejar lo siguiente:
Datos.
Depende de nosotros como interpretadores manejar estos 'datos'. Ahora, sabemos
que el único dato de una dirección estática web es:
Conseguir un archivo físico en el disco duro o de internet, etc. e interpretado o
no, el servidor responde.
El modelo, al igual que el controlador y la vista, maneja todos los datos que se
relacionen consigo (solo es el proceso
medio de la separación por capas que ofrece la arquitectura MVC).
Y sólo la vista, puede demostrar dicha información. Con lo cual ya hemos
generado la jerarquía de nuestro programa: Controlador, Modelo y Vista.
22/07/13JaritzaMora1°Inf.
6
Al parecer, debemos inyectar ciertos objetos dentro de sus parientes en esta
aplicación, solo así compartirán herencia y coherencia en su aplicación.
Rápidamente, para una aplicación web sencilla debemos establecer estos objetos:
 Una base (MVC)
Controlador:Controlador: éste debe ser capaz de manejar rutas, archivos, clases,
métodos y funciones.
Modelo:Modelo: es como un script habitual en el servidor, solo que agrupado bajo un
'modelo' reutilizable.
Vista:Vista: como incluyendo cualquier archivo en nuestra ejecución, muy simple.
Un sistema
Ruteador:Ruteador: con él podemos dividir nuestras peticiones sin tantas
condicionales.
Cargador.
22/07/13JaritzaMora1°Inf.
7
Esto cumple con algunas necesidades de simpleza
informática.
22/07/13JaritzaMora1°Inf.
8
Ahora solo nos basta controlar estos procesos, ampliarlos y complementarles con algunos scripts mas.
Aplicar
Si nuestro archivo se llama Foo (clase), y nuestro otro archivo, bar (método) tenemos que crear el
siguiente archivo
dentro de la carpeta App/.
Como resultado al solicitar (por ejemplo, ?
section=foo&name=bar), deberíamos ver el siguiente
texto:
ExtenderExtender
Podremos extender nuestro sistema con clases, o
funciones propias o de algún 'plugin' o librería ajena.
Solo que
queremos extenderles sobre nuestro sistema actual,
nuestro objeto básico.
22/07/13JaritzaMora1°Inf.
9
Para poder ejecutar esto, se debe llamar a esta sentencia: $this->view('look', array
('my_var' =>
'my_value')) obteniendo como resultado:
Variable: my_value
Entonces, debemos usar la siguiente sentencia dentro de nuestro programa Foo:
$this->load($this, 'test') o _load($this, 'test')
Ya con esto, podremos utilizar las llamadas a $this->test->does() dentro del objeto
o clase Foo.
VerVer
Para mostrar los resultados de todo nuestro computo necesitamos de vistas, o
archivos de inclusión: plantillas,
bloques o scripts. Suponiendo que ya ha sido todo, debemos de visualizarlo:
22/07/13JaritzaMora1°Inf.
10
22/07/13JaritzaMora1°Inf.
11
 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.
22/07/13JaritzaMora1°Inf.
12
Orientación a servicios
Permite crear aplicaciones orientadas a servicios. SOA, la arquitectura orientada a servicios es el uso
de servicios web para enviar y recibir datos.
Interoperabilidad
WCF implementa los estándares del sector modernos para la interoperabilidad de servicios web.
Varios modelos de mensajes
El más común es el de solicitud/respuesta, en que un extremo solicita datos de otro extremo. y el otro
extremo responde. Existen otros modelos:
• Unidireccional: en que un único extremo envía un mensaje sin esperar ninguna respuesta.
• Intercambio: dúplex donde dos extremos establecen una conexión y envían datos hacia
delante y hacia atrás.
Metadatos de servicios
Los metadatos se pueden publicar sobre HTTP y HTTPS, o utilizando el estándar Intercambio de
metadatos de servicios web.
Contratos de datos
Uno de los tipos de contrato universales es el contrato de datos. Básicamente, mientras se escribe el
código del servicio usando Visual C# o Visual Basic, la forma más sencilla de controlar los datos
consiste en crear clases que representan una entidad de datos con propiedades que pertenecen a
la misma.
22/07/13JaritzaMora1°Inf.
13
 SeguridadSeguridad
Es posible cifrar los mensajes para proteger la privacidad, así como obligar a los
usuarios a que se autentiquen antes de permitirles recibir mensajes. La
seguridad puede implementarse utilizando estándares conocidos como SSL o
WS-SecureConversation.
 Varios transportes y codificacionesVarios transportes y codificaciones
Los mensajes pueden enviarse con cualquiera de los protocolos y codificaciones
integrados. La combinación más frecuente de protocolo y codificación consiste
en enviar mensajes SOAP codificados de texto utilizando el Protocolo de
transferencia de hipertexto (HTTP) usado en World Wide Web.
 Mensajes confiables y en colaMensajes confiables y en cola
WCF admite intercambio de mensajes confiable usando sesiones confiables
implementadas sobre mensajería WS-Reliable y mediante MSMQ.
 Mensajes duraderosMensajes duraderos
Un mensaje duradero es aquel que nunca se pierde debido a una interrupción de la
comunicación, siempre se guardan en una base de datos. Si se produce una
interrupción, la base de datos le permite reanudar el intercambio de mensajes
cuando se restablezca la conexión.
22/07/13JaritzaMora1°Inf.
14
 TransaccionesTransacciones
WCF también admite las transacciones que usan uno de los tres modelos de
transacción: las transacciones WS-Atomic, las API del espacio de
nombres System.Transactions y Coordinador de transacciones distribuidas
de Microsoft.
 Compatibilidad con AJAX y RESTCompatibilidad con AJAX y REST
REST es un ejemplo de una tecnología de la Web 2.0 en evolución. WCF se puede
configurar para procesar datos XML “sin formato” que no se ajustan en un
sobre SOAP.WCF también se puede extender para admitir formatos XML
concretos, como ATOM (un estándar popular de RSS), e incluso formatos no
XML, como notación de objetos JavaScript (JSON).
 ExtensibilidadExtensibilidad
La arquitectura de WCF tiene varios puntos de extensibilidad. Si se necesita una
función adicional, existen una serie de puntos de entrada que le permiten
personalizar el comportamiento de un servicio.
22/07/13JaritzaMora1°Inf.
15
22/07/13JaritzaMora1°Inf.
16
Los desarrolladores pueden crear aplicaciones utilizando WCF, y aunque
inicialmente fue desarrollado para este Sistema Operativo, también puede ser
utilizado en Windows XP y Windows 2003 Server. Esto debido a una decisión
tomada por Microsoft, para permitir su utilización por la mayor parte de
desarrolladores que trabajan sobre la línea de productos relacionados con la
tecnología .NET.
Es posible crear aplicaciones basadas en WCF utilizando Microsoft Visual Studio
2005 en su entorno de desarrollo integrado. Microsoft ha liberado un paquete de
extensiones y un Kit de Desarrollo que puede ser utilizado con esta tecnología y
otras que se incluyen en la Plataforma .NET v3.0.
El conjunto de clases .NET que conforman la API de WCF, están basados en la
Plataforma .NET 2.0 y son de libre distribución. El compilador de Visual Studio,
puede ser combinado con un IDE gratuito, alguna solución para programación
gratuita para desarrolladores no-profesionales o estudiantes, en el caso que
prefieran no desarrollar con ediciones gratuitas o Express de Visual Studio 2005.
22/07/13JaritzaMora1°Inf.
17
o La primera tecnología en adaptarse a WCF fue Windows Workflow Foundation
(WF).
o La versión siguiente de Windows Workflow Foundation se integró con WCF.
o Microsoft BizTalk Server R2 también utiliza WCF como tecnología de
comunicaciones.
o BizTalk está diseñado para recibir y transformar datos de un formato
normalizado en otro.
o (LOB, Line Of Business) de WCF para entregar mensajes en el cuadro de
mensajes.
o Microsoft Silverlight es una plataforma para la creación de sofisticadas
aplicaciones web interoperables que permiten a los desarrolladores crear sitios
Web con uso intensivo de contenidos multimedia.
o Microsoft .NET Services es una iniciativa de computación en nube (cloud
computing) que utiliza WCF para la creación de aplicaciones habilitadas para
Internet.
o Windows Server AppFabric se ha diseñado específicamente para implementar y
administrar aplicaciones que utilizan WCF
22/07/13JaritzaMora1°Inf.
18
22/07/13JaritzaMora1°Inf.
19
22/07/13JaritzaMora1°Inf.
20
Todos los gráficos, incluyendo los elementos de escritorio como Windows, se
representan usando Direct3D. Esto proporciona una vía para mostrar gráficos
más complejos y temas personalizados, a costa de GDI una gama más amplia de
apoyo y tematización uniforme de control. También permite descargar algunas
de las tareas de gráficos a la GPU. Esto puede reducir la carga de trabajo de la
CPU. Ya que las GPU s están optimizadas para cálculos de píxeles a gran
velocidad, esto también tiende a acelerar el refresco de la pantalla. Por desgracia,
esta ventaja se reduce en los mercados donde las GPU no son tan rápidas, como
el de los netbooks. WPF pone énfasis en los gráficos vectoriales porque esto
permite a la mayoría de los controles y elementos ser escalados sin pérdida de
calidad o pixelizacion, aumentando así la accesibilidad. Con la excepción de
Silverlight, esta integración permite el uso de una version de Direct3D
simplificada. Además, los contenidos interactivos en 2D pueden ser
superpuestos en superficies 3D nativas.
22/07/13JaritzaMora1°Inf.
21
Es un motor de representación basado en vectores e independiente
de la resolución que se crea para sacar partido del hardware de
gráficos moderno.
WPFWPF extiende el núcleo con un conjunto completo de
características de desarrollo de aplicaciones que incluye Lenguaje
XAML, controles, enlace de datos, diseño, gráficos 2D y 3D,
animación, estilos, plantillas, documentos, multimedia, texto y
tipografía. WPF se incluye en Microsoft .NET Framework, de modo
que es posible compilar aplicaciones que incorporen otros elementos
de la biblioteca de clases de .NET Framework.
22/07/13JaritzaMora1°Inf.
22
WPF constituye un subconjunto de tipos de .NET
Framework en su mayoría ubicados en el espacio de
nombres System.Windows. Si ha compilado previamente
aplicaciones con .NET Framework mediante tecnologías
administradas como ASP.NET y formularios Windows
Forms, los conceptos fundamentales de la programación
en WPF deben resultarle familiares; creará instancias de
clases, definirá propiedades, llamará a métodos y
controlará eventos con el lenguaje de programación de
.NET Framework que prefiera, como C# o Visual Basic.
22/07/13JaritzaMora1°Inf.
23
WPF proporciona mejoras de programación adicionales
para el desarrollo de aplicaciones cliente de
Windows. Una mejora evidente es la capacidad para
programar una aplicación mediante código de
lenguaje marcado y subyacente, una experiencia con la
que resultará familiar a los programadores de
ASP.NET. En general, se utiliza el lenguaje marcado
Lenguaje XAML para implementar la apariencia de una
aplicación, y los lenguajes de programación
administrados (subyacentes) para implementar su
comportamiento.
22/07/13JaritzaMora1°Inf.
24
22/07/13JaritzaMora1°Inf.
25
Esta separación entre la apariencia y el comportamiento aporta
las ventajas siguientes:
Se reducen los costos de programación y mantenimiento, al no estar el marcado
específico de la apariencia estrechamente relacionado con el código específico del
comportamiento.
La programación es más eficaz porque los diseñadores pueden implementar la
apariencia de una aplicación al mismo tiempo que los programadores
implementan su comportamiento.
Se pueden usar varias herramientas de diseño para implementar y compartir el
marcado XAML, a fin de responder a los requisitos de quienes colaboran en la
programación de aplicaciones; Microsoft Expression Blend proporciona una
experiencia apropiada para los diseñadores, mientras que Visual Studio 2005 está
dirigido a los programadores.
La globalización y localización de las aplicaciones WPF se ha simplificado en
gran medida (vea Información general sobre la localización y globalización de
WPF).
22/07/13JaritzaMora1°Inf.
26
.NET Framework, System.Windows, así como el marcado y el código subyacente, constituyen la
base de la experiencia de desarrollo de aplicaciones en WPF. Además, WPF cuenta con
características completas para crear experiencias de usuario con contenido enriquecido. Para
empaquetar este contenido y distribuirlo a los usuarios en forma de "aplicaciones",
WPF proporciona tipos y servicios denominados colectivamente elmodelo de aplicaciones. El
modelo de aplicación admite la programación de aplicaciones independientes y hospedadas en
explorador.
Para las aplicaciones independientes, puede
utilizar la clase Window para crear las
ventanas y cuadros de diálogo a los que se
tiene acceso desde las barras de menús y las
barras de herramientas. En la ilustración
siguiente se muestra una aplicación
independiente con una ventana principal y
un cuadro de diálogo.
22/07/13JaritzaMora1°Inf.
27
Para las aplicaciones hospedadas en explorador, denominadas Aplicaciones del
explorador XAML (XBAPs), puede crear páginas (Page) y funciones de página
(PageFunction<T>) entre las que se puede navegar mediante hipervínculos
(clases Hyperlink). En la ilustración siguiente se muestra una página de XBAP
hospedada en Internet Explorer 7.
22/07/13JaritzaMora1°Inf.
28
Al crear una interfaz de usuario, se organizan los controles según su ubicación y
tamaño para crear un diseño. Un requisito fundamental de cualquier diseño es
adaptarse a los cambios de tamaño de la ventana y de configuración de
pantalla. En lugar de obligarle a escribir código que adapte el diseño en estas
circunstancias, WPF le proporciona un sistema de diseño extensible de primera
clase.
La piedra angular del sistema de diseño es la situación relativa, que aumenta la
capacidad de adaptación a los cambios en la configuración de las ventanas y de la
pantalla. Además, el sistema de diseño administra la negociación entre los
controles para determinar el diseño. La negociación es un proceso de dos pasos:
en primer lugar, el control indica a su elemento primario qué ubicación y tamaño
necesita; en segundo lugar, el elemento primario indica al control de qué espacio
dispone.
El sistema de diseño se expone a los controles secundarios a través de las clases
base de WPF. Para los diseños comunes como son las cuadrículas, el apilamiento y
el acoplamiento.
22/07/13JaritzaMora1°Inf.
29
WPF proporciona una biblioteca de formas 2D comunes dibujadas mediante
vectores, como los rectángulos y las elipses que se muestran en la ilustración
siguiente.
WPF también incluye funcionalidad de
representación 3D que se integra con los
gráficos 2D para permitir la creación de UIs
más interesantes y apasionantes. Por ejemplo,
en la ilustración siguiente se muestran
imágenes 2D representadas en formas 3D.
22/07/13JaritzaMora1°Inf.
30
 WPF tiene un conjunto de servicios de datos para permitir a los desarrolladores de aplicaciones
enlazar y
manipular los datos dentro de las aplicaciones. Existen tres tipos de enlace de datos:
• Una vez: cuando el cliente hace caso omiso de las actualizaciones en el servidor.
• Simplex (one way): el cliente sólo tiene permiso de lectura a los datos.
• Dúplex (two way): el cliente puede leer y escribir datos en el servidor.
 Las consultas LINQ, incluyendo LINQ to XML, pueden actuar también como fuentes de datos
para el enlace de datos.
 El enlace de datos no influye en su presentación. WPF proporciona plantillas de datos para
controlar la presentación de los datos.
 Como parte de WPF se proporciona también un conjunto de controles integrados, que contiene
elementos como botones, menús, rejillas, y listas.
 Un concepto muy potente en WPF es la separación lógica entre un control y su apariencia.
 La plantilla de un control se puede sobre escribir para cambiar por completo su aspecto visual.
 Un control puede contener cualquier otro control o diseño (layout), lo que permite un alto grado
de control sobre la composición.
 Tiene un modo de «gráficos retenidos» (retained graphics): no siempre es necesario repintar la
pantalla.
22/07/13JaritzaMora1°Inf.
31
La programación estructurada es un paradigma de programación orientado a
mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora.
22/07/13JaritzaMora1°Inf.
32
Se utiliza únicamente subrutinas y tres estructuras: secuencia,
selección (if y switch) e iteración (bucles for y while), considerando
innecesario y contraproducente el uso de la instrucción de
transferencia incondicional (GOTO), que podría conducir a "código
espagueti", que es mucho más difícil de seguir y de mantener, y era
la causa de muchos errores de programación.
Surgió en la década de 1960, particularmente del trabajo Böhm y
Jacopini,[1] y una famosa carta, la sentencia goto considerada
perjudicial, de Edsger Dijkstra en 1968[] — y fue reforzado
teóricamente por el teorema del programa estructurado, y
prácticamente por la aparición de lenguajes como ALGOL con
adecuadas y ricas estructuras de control.
22/07/13JaritzaMora1°Inf.
33
A finales de los años 1970 surgió una nueva forma de programar que no solamente daba lugar a programas
fiables y eficientes, sino que además estaban escritos de manera que facilitaba su mejor comprensión, no sólo
proveyendo ventajas durante la fase de desarrollo, sino también posibilitando una más sencilla modificación
posterior.
Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones
posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de
control, éstas pueden ser construidas mediante las tres básicas citadas.
El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa
puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
22/07/13JaritzaMora1°Inf.
34
El teorema del programa estructurado proporciona la base teórica de la
programación estructurada. Señala que tres maneras de combinar programas son
suficientes para expresar cualquier función computable: secuencia, selección e
iteración. Esta observación no se originó con el movimiento de la programación
estructurada. Estas estructuras son suficientes para describir el ciclo de
instrucción de una unidad central de procesamiento, así como el funcionamiento
de una máquina de Turing. Por lo tanto un procesador siempre está ejecutando
un "programa estructurado" en este sentido, incluso si las instrucciones que lee de
la memoria no son parte de un programa estructurado. Sin embargo, los autores
usualmente acreditan el resultado a un documento escrito en 1966 por Böhm y
Jacopini, posiblemente porque Dijkstra había citado este escrito. El teorema del
programa estructurado no responde a cómo escribir y analizar un programa
estructurado de manera útil. Estos temas fueron abordados durante la década de
1960 y
principio de los años 1970, con importantes contribuciones de Dijkstra, Robert W.
Floyd, Tony Hoarey y David Gries.
22/07/13JaritzaMora1°Inf.
35
Los teóricos de la programación estructurada ganaron a un aliado
importante en la década de 1970 después de que el investigador de IBM
Harlan Mills aplicara su interpretación de la teoría de la programación
estructurada para el desarrollo de un sistema de indexación para el
archivo de investigación del New York Times. El proyecto fue un gran éxito
de la ingeniería, y los directivos de otras empresas lo citaron en apoyo de
la adopción de la programación estructurada, aunque Dijkstra criticó las
maneras en que la interpretación de Mills difería de la obra publicada.
Tan tarde como 1987 fue todavía posible elevar la cuestión de la
programación estructurada en una revista de ciencia de la computación.
Frank Rubin lo hizo en ese año, con una carta, La sentencia GOTO
considerada dañina.
Numerosas objeciones siguieron, incluyendo una respuesta de Dijkstra,
que criticaba duramente a Rubin y las concesiones que otros escritores
hicieron cuando le respondieron.
22/07/13JaritzaMora1°Inf.
36
A finales del siglo XX casi todos los científicos están convencidos de que es
útil aprender y aplicar los conceptos de programación estructurada. Los
lenguajes de programación de alto nivel que originalmente carecían de
estructuras de programación, como FORTRAN, COBOL y BASIC, ahora
las tienen.
22/07/13JaritzaMora1°Inf.
37
Ventajas de la programación estructurada comparada con el modelo anterior (hoy
llamado despectivamente código espagueti)
Los programas son más fáciles de entender, pueden ser leídos de forma secuencial y no hay
necesidad de hacer engorrosos seguimientos en saltos de líneas (GOTO) dentro de los bloques de
código para intentar entender la lógica.
La estructura de los programas es clara, puesto que las instrucciones están más ligadas o
relacionadas entre sí.
Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los fallos o errores del
programa ("debugging") se facilita debido a su estructura más sencilla y comprensible, por lo que
los errores se pueden detectar y corregir más fácilmente.
Reducción de los costos de mantenimiento. Análogamente a la depuración, durante la fase de
mantenimiento modificar o extender los programas resulta más fácil.
Los programas son más sencillos y más rápidos de confeccionar.
Se incrementa el rendimiento de los programadores, comparado con la forma anterior que
utiliza GOTO.
22/07/13JaritzaMora1°Inf.
38
En un bajo nivel, los programas estructurados con frecuencia están compuestos de
simples estructuras de flujo de programa jerárquicas.
Estas son secuencia, selección y repetición:
"Secuencia" se refiere a una ejecución ordenada de instrucciones.
En "selección", una de una serie de sentencias es ejecutada dependiendo del
estado del programa. Esto es usualmente expresado con palabras clave como
if..then..else..endif, switch, o case. En algunos lenguajes las palabras clave no se
puede escribir textualmente, pero debe ser delimitada (stropped).
En la "repetición" se ejecuta una sentencia hasta que el programa alcance un
estado determinado, o las operaciones han sido aplicadas a cada elemento de una
colección. Esto es usualmente expresado con palabras clave como while, repeat, for
o do..until. A menudo se recomienda que cada bucle sólo debe tener un punto de
entrada (y en la programación estructural original, también sólo un punto de
salida, y pocos lenguajes refuerzan esto).
22/07/13JaritzaMora1°Inf.
39
Un lenguaje es descrito como estructurado en bloque cuando tiene una
sintaxis para encerrar estructuras entre palabras clave tipo corchete,
como una sentencia if..fi en ALGOL 68, o una sección de código entre
corchetes BEGIN..END, como en PL/I - o la de llaves {...} de C y muchos
otros lenguajes posteriores.
22/07/13JaritzaMora1°Inf.
40
Es posible hacer la programación estructurada en cualquier lenguaje de
programación, aunque es preferible usar algo como un lenguaje de
programación procedimental. Algunos de los lenguajes utilizados inicialmente
para programación estructurada incluyen: ALGOL, Pascal, PL/I y Ada – pero la
mayoría de los nuevos lenguajes programación procedimentales desde entonces
han incluido características para fomentar la programación estructurada y a
veces deliberadamente omiten características[3] en un esfuerzo para hacer más
difícil la programación no estructurada.
NUEVOS PARADIGMASNUEVOS PARADIGMAS
Posterior a la programación estructurada se han creado nuevos paradigmas tales
como la programación modular, la programación orientada a objetos,
programación por capas, etc, y el desarrollo de entornos de programación que
facilitan la programación de grandes aplicaciones y sistemas.
22/07/13JaritzaMora1°Inf.
41
22/07/13JaritzaMora1°Inf.
42
La programación orientada a objetos o POO (OOP según sus siglas en
inglés) es un paradigma de programación
que usa los objetos en sus interacciones, para diseñar aplicaciones y programas
informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión,
abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a
principios de la década de los años 1990. En la actualidad, existe una gran variedad
de lenguajes de programación que soportan la orientación a objetos.
Los objetos son entidades que tienen un determinado estado,
comportamiento (método) e identidad:
El estado está compuesto de datos o informaciones; serán uno o varios
atributos a los que se habrán asignado unos valores concretos (datos).
El comportamiento está definido por los métodos o mensajes a los que sabe
responder dicho objeto, es decir, qué operaciones se pueden realizar con él.
La identidad es una propiedad de un objeto que lo diferencia del resto; dicho
con otras palabras, es su identificador (concepto análogo al de identificador de una
variable o una constante).
22/07/13JaritzaMora1°Inf.
43
Los conceptos de la programación orientada a objetos tienen origen en
Simula 67, un lenguaje diseñado para hacer simulaciones, creado por
Ole-Johan Dahl y Kristen Nygaard, del Centro de Cómputo Noruego en
Oslo. En este centro se trabajaba en simulaciones de naves, que fueron
confundidas por la explosión combinatoria de cómo las diversas
cualidades de diferentes naves podían afectar unas a las otras. La idea
surgió al agrupar los diversos tipos de naves en diversas clases de objetos,
siendo responsable cada clase de objetos de definir sus propios datos y
comportamientos. Fueron refinados más tarde en Smalltalk, desarrollado
en Simula en Xerox PARC (cuya primera versión fue escrita sobre Basic)
pero diseñado para ser un sistema completamente dinámico en el cual
los objetos se podrían crear y modificar "sobre la marcha" (en tiempo de
ejecución) en lugar de tener un sistema basado en programas estáticos.
22/07/13JaritzaMora1°Inf.
44
Las características de orientación a objetos fueron agregadas a muchos lenguajes
existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp y Pascal, entre otros.
La adición de estas características a los lenguajes que no fueron diseñados
inicialmente para ellas condujo a menudo a problemas de compatibilidad y en la
capacidad de mantenimiento del código. Los lenguajes orientados a objetos
"puros", por su parte, carecían de las características de las cuales muchos
programadores habían venido a depender. Para saltar este obstáculo, se hicieron
muchas tentativas para crear nuevos lenguajes basados en métodos orientados a
objetos, pero permitiendo algunas características imperativas de maneras
"seguras". El Eiffel de Bertrand Meyer fue un temprano y moderadamente
acertado lenguaje con esos objetivos, pero ahora ha sido esencialmente
reemplazado por Java, en gran parte debido a la aparición de Internet y a la
implementación de la máquina virtual de Java en la mayoría de navegadores. PHP
en su versión 5 se ha modificado; soporta una orientación completa a objetos,
cumpliendo todas las características propias de la orientación a objetos.
22/07/13JaritzaMora1°Inf.
45
La programación orientada a objetos es un paradigma que utiliza
objetos como elementos fundamentales en la construcción de la
solución. Surge en los años 70. Un objeto es una abstracción de algún
hecho o ente del mundo real que tiene atributos que representan sus
características o propiedades y métodos que representan su
comportamiento o acciones que realizan. Todas las propiedades y
métodos comunes a los objetos se encapsulan o se agrupan en clases.
Una clase es una plantilla o un prototipo para crear objetos; por eso se
dice que los objetos son instancias de clases.
22/07/13JaritzaMora1°Inf.
46
Simula (1967) es aceptado como el primer lenguaje que posee las características
principales de un lenguaje orientado a objetos. Fue creado para hacer programas
de simulación, en donde los "objetos“ son la representación de la información más
importante. Smalltalk (1972 a 1980) es posiblemente el ejemplo canónico, y con el
que gran parte de la teoría de la programación orientada a objetos se ha
desarrollado.
Entre los lenguajes orientados a objetos se destacan los
siguientes:
 ABAP -> SAP Lenguaje orientado a eventos
ABL Lenguaje de programación de OpenEdge de Progress Software
ActionScript
ActionScript 3
 Ada
 C++
C#
Clarion
Clipper[1]
22/07/13JaritzaMora1°Inf.
47
 Object Pascal (Embarcadero
Delphi)
 Gambas
 Genie
 Harbour
 Eiffel
 Fortran 90/95
 Java
 JavaScript[2]
 Lexico[3]
 Objective-C
 Ocaml
 Oz
 R
 Perl[4]
 PHP[5]
 PowerBuilder
 Python
 Ruby
 Self
 Smalltalk[6]
 Magik (SmallWorld)
 Vala
 VB.NET
 Visual FoxPro[7]
 Visual Basic 6.0
 Visual DataFlex
 Visual Objects
22/07/13JaritzaMora1°Inf.
48
22/07/13JaritzaMora1°Inf.
49
Muchos de estos lenguajes de programación no son puramente
orientados a objetos, sino que son híbridos que combinan la POO
con otros paradigmas.
Al igual que C++, otros lenguajes, como OOCOBOL, OOLISP,
OOPROLOG y Object REXX, han sido creados añadiendo
extensiones orientadas a objetos a un lenguaje de programación
clásico.
Un nuevo paso en la abstracción de paradigmas de programación
es la Programación Orientada a Aspectos (POA).
Aunque es todavía una metodología en estado de maduración, cada
vez atrae a más investigadores e incluso proyectos comerciales en
todo el mundo.
22/07/13JaritzaMora1°Inf.
50

Más contenido relacionado

La actualidad más candente

Windows communication foundation wcf
Windows communication foundation  wcfWindows communication foundation  wcf
Windows communication foundation wcfelvis mendieta
 
Windows communication foundation by Marcos Acosta
Windows communication foundation by Marcos AcostaWindows communication foundation by Marcos Acosta
Windows communication foundation by Marcos AcostaMarcos Acosta
 
Windows communication foundation completo
Windows communication foundation completoWindows communication foundation completo
Windows communication foundation completoANGIEZAMBRANO57
 
Windows communication foundation(wcf)
Windows communication foundation(wcf)Windows communication foundation(wcf)
Windows communication foundation(wcf)Nanda Moran
 
Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1fanyto
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundationAlexis Arguello
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundationJonathan Abel
 
Windows communication foundation completo
Windows communication foundation completoWindows communication foundation completo
Windows communication foundation completoEduardo Bazurto
 
Manuel santiagojosea.ac1u1 daw
Manuel santiagojosea.ac1u1 dawManuel santiagojosea.ac1u1 daw
Manuel santiagojosea.ac1u1 dawfanyto
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundationalexmoncada21
 

La actualidad más candente (18)

Windows communication foundation wcf
Windows communication foundation  wcfWindows communication foundation  wcf
Windows communication foundation wcf
 
Windows communication foundation by Marcos Acosta
Windows communication foundation by Marcos AcostaWindows communication foundation by Marcos Acosta
Windows communication foundation by Marcos Acosta
 
Windows communication foundation completo
Windows communication foundation completoWindows communication foundation completo
Windows communication foundation completo
 
Windows communication
Windows communicationWindows communication
Windows communication
 
Windows communication foundation(wcf)
Windows communication foundation(wcf)Windows communication foundation(wcf)
Windows communication foundation(wcf)
 
Wcf
WcfWcf
Wcf
 
Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1
 
Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF) Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)
 
Wcf - Clase Introductoria
Wcf - Clase IntroductoriaWcf - Clase Introductoria
Wcf - Clase Introductoria
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundation
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundation
 
Egsi Sesion3
Egsi Sesion3Egsi Sesion3
Egsi Sesion3
 
Wcf
WcfWcf
Wcf
 
Windows communication foundation completo
Windows communication foundation completoWindows communication foundation completo
Windows communication foundation completo
 
Manuel santiagojosea.ac1u1 daw
Manuel santiagojosea.ac1u1 dawManuel santiagojosea.ac1u1 daw
Manuel santiagojosea.ac1u1 daw
 
Wcf
WcfWcf
Wcf
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundation
 
Web services
Web services Web services
Web services
 

Destacado

Eleven Reasons to Fall in Love with Lists (Twitter Lists to be specific)
Eleven Reasons to Fall in Love with Lists (Twitter Lists to be specific)Eleven Reasons to Fall in Love with Lists (Twitter Lists to be specific)
Eleven Reasons to Fall in Love with Lists (Twitter Lists to be specific)Nick Kellet
 
Top 10 reasons people love listly and list posts
Top 10 reasons people love listly and list postsTop 10 reasons people love listly and list posts
Top 10 reasons people love listly and list postsNick Kellet
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software DevelopmentTathagat Varma
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software DevelopmentTathagat Varma
 
Business Case for Agile - Time for ROI Check
Business Case for Agile - Time for ROI CheckBusiness Case for Agile - Time for ROI Check
Business Case for Agile - Time for ROI CheckTathagat Varma
 

Destacado (7)

Eleven Reasons to Fall in Love with Lists (Twitter Lists to be specific)
Eleven Reasons to Fall in Love with Lists (Twitter Lists to be specific)Eleven Reasons to Fall in Love with Lists (Twitter Lists to be specific)
Eleven Reasons to Fall in Love with Lists (Twitter Lists to be specific)
 
Top 10 reasons people love listly and list posts
Top 10 reasons people love listly and list postsTop 10 reasons people love listly and list posts
Top 10 reasons people love listly and list posts
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software Development
 
Journey of Agile
Journey of AgileJourney of Agile
Journey of Agile
 
Business Case for Agile - Time for ROI Check
Business Case for Agile - Time for ROI CheckBusiness Case for Agile - Time for ROI Check
Business Case for Agile - Time for ROI Check
 
why agile?
why agile?why agile?
why agile?
 

Similar a Programacion

Similar a Programacion (19)

Ugmmontoya
UgmmontoyaUgmmontoya
Ugmmontoya
 
Windows communication foundation (wcf)
Windows communication foundation (wcf)Windows communication foundation (wcf)
Windows communication foundation (wcf)
 
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
 
Wcf
WcfWcf
Wcf
 
Wcf
WcfWcf
Wcf
 
Java2 servicios web
Java2 servicios webJava2 servicios web
Java2 servicios web
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Web services
Web servicesWeb services
Web services
 
Cuestiones de repaso_capitulo_29
Cuestiones de repaso_capitulo_29Cuestiones de repaso_capitulo_29
Cuestiones de repaso_capitulo_29
 
Windows Communication Foundation
Windows Communication FoundationWindows Communication Foundation
Windows Communication Foundation
 
Windows Communication Foundation
Windows Communication FoundationWindows Communication Foundation
Windows Communication Foundation
 
Ug rloor
Ug rloorUg rloor
Ug rloor
 
Ug rloor
Ug rloorUg rloor
Ug rloor
 
UG-RLOOR
UG-RLOORUG-RLOOR
UG-RLOOR
 
Ug rloor
Ug rloorUg rloor
Ug rloor
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundation
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Modelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebModelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_Diseñoweb
 

Programacion

  • 4. 22/07/13JaritzaMora1°Inf. 4 Dentro de este aspecto, podemos basarnos en el modelo MVC (Controlador => Modelo => Vista). Tenemos que contemplar estos aspectos básicos en cuanto a la implementación de nuestro sistema: Modelo Maneja las operaciones lógicas, y de manejo de información para resultar de una forma explicable, cada miembro debe ser meticulosamente llamado, con su correcto nombre y en principio, con su verdadera naturaleza: el manejo de información, su complementación directa. Vista Le corresponde dibujar, o expresar la última forma de los datos: la interfaz gráfica que interactúa con el usuario final del programa (GUI). Controlador Con este apartado podemos controlar el acceso a nuestra aplicación, y esto puede incluir: archivos, scripts, y/o programas; cualquier tipo de información que permita la interfaz.
  • 5. 22/07/13JaritzaMora1°Inf. 5 Dentro del controlador, modelo o vista podemos manejar lo siguiente: Datos. Depende de nosotros como interpretadores manejar estos 'datos'. Ahora, sabemos que el único dato de una dirección estática web es: Conseguir un archivo físico en el disco duro o de internet, etc. e interpretado o no, el servidor responde. El modelo, al igual que el controlador y la vista, maneja todos los datos que se relacionen consigo (solo es el proceso medio de la separación por capas que ofrece la arquitectura MVC). Y sólo la vista, puede demostrar dicha información. Con lo cual ya hemos generado la jerarquía de nuestro programa: Controlador, Modelo y Vista.
  • 6. 22/07/13JaritzaMora1°Inf. 6 Al parecer, debemos inyectar ciertos objetos dentro de sus parientes en esta aplicación, solo así compartirán herencia y coherencia en su aplicación. Rápidamente, para una aplicación web sencilla debemos establecer estos objetos:  Una base (MVC) Controlador:Controlador: éste debe ser capaz de manejar rutas, archivos, clases, métodos y funciones. Modelo:Modelo: es como un script habitual en el servidor, solo que agrupado bajo un 'modelo' reutilizable. Vista:Vista: como incluyendo cualquier archivo en nuestra ejecución, muy simple. Un sistema Ruteador:Ruteador: con él podemos dividir nuestras peticiones sin tantas condicionales. Cargador.
  • 7. 22/07/13JaritzaMora1°Inf. 7 Esto cumple con algunas necesidades de simpleza informática.
  • 8. 22/07/13JaritzaMora1°Inf. 8 Ahora solo nos basta controlar estos procesos, ampliarlos y complementarles con algunos scripts mas. Aplicar Si nuestro archivo se llama Foo (clase), y nuestro otro archivo, bar (método) tenemos que crear el siguiente archivo dentro de la carpeta App/. Como resultado al solicitar (por ejemplo, ? section=foo&name=bar), deberíamos ver el siguiente texto: ExtenderExtender Podremos extender nuestro sistema con clases, o funciones propias o de algún 'plugin' o librería ajena. Solo que queremos extenderles sobre nuestro sistema actual, nuestro objeto básico.
  • 9. 22/07/13JaritzaMora1°Inf. 9 Para poder ejecutar esto, se debe llamar a esta sentencia: $this->view('look', array ('my_var' => 'my_value')) obteniendo como resultado: Variable: my_value Entonces, debemos usar la siguiente sentencia dentro de nuestro programa Foo: $this->load($this, 'test') o _load($this, 'test') Ya con esto, podremos utilizar las llamadas a $this->test->does() dentro del objeto o clase Foo. VerVer Para mostrar los resultados de todo nuestro computo necesitamos de vistas, o archivos de inclusión: plantillas, bloques o scripts. Suponiendo que ya ha sido todo, debemos de visualizarlo:
  • 11. 22/07/13JaritzaMora1°Inf. 11  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.
  • 12. 22/07/13JaritzaMora1°Inf. 12 Orientación a servicios Permite crear aplicaciones orientadas a servicios. SOA, la arquitectura orientada a servicios es el uso de servicios web para enviar y recibir datos. Interoperabilidad WCF implementa los estándares del sector modernos para la interoperabilidad de servicios web. Varios modelos de mensajes El más común es el de solicitud/respuesta, en que un extremo solicita datos de otro extremo. y el otro extremo responde. Existen otros modelos: • Unidireccional: en que un único extremo envía un mensaje sin esperar ninguna respuesta. • Intercambio: dúplex donde dos extremos establecen una conexión y envían datos hacia delante y hacia atrás. Metadatos de servicios Los metadatos se pueden publicar sobre HTTP y HTTPS, o utilizando el estándar Intercambio de metadatos de servicios web. Contratos de datos Uno de los tipos de contrato universales es el contrato de datos. Básicamente, mientras se escribe el código del servicio usando Visual C# o Visual Basic, la forma más sencilla de controlar los datos consiste en crear clases que representan una entidad de datos con propiedades que pertenecen a la misma.
  • 13. 22/07/13JaritzaMora1°Inf. 13  SeguridadSeguridad Es posible cifrar los mensajes para proteger la privacidad, así como obligar a los usuarios a que se autentiquen antes de permitirles recibir mensajes. La seguridad puede implementarse utilizando estándares conocidos como SSL o WS-SecureConversation.  Varios transportes y codificacionesVarios transportes y codificaciones Los mensajes pueden enviarse con cualquiera de los protocolos y codificaciones integrados. La combinación más frecuente de protocolo y codificación consiste en enviar mensajes SOAP codificados de texto utilizando el Protocolo de transferencia de hipertexto (HTTP) usado en World Wide Web.  Mensajes confiables y en colaMensajes confiables y en cola WCF admite intercambio de mensajes confiable usando sesiones confiables implementadas sobre mensajería WS-Reliable y mediante MSMQ.  Mensajes duraderosMensajes duraderos Un mensaje duradero es aquel que nunca se pierde debido a una interrupción de la comunicación, siempre se guardan en una base de datos. Si se produce una interrupción, la base de datos le permite reanudar el intercambio de mensajes cuando se restablezca la conexión.
  • 14. 22/07/13JaritzaMora1°Inf. 14  TransaccionesTransacciones WCF también admite las transacciones que usan uno de los tres modelos de transacción: las transacciones WS-Atomic, las API del espacio de nombres System.Transactions y Coordinador de transacciones distribuidas de Microsoft.  Compatibilidad con AJAX y RESTCompatibilidad con AJAX y REST REST es un ejemplo de una tecnología de la Web 2.0 en evolución. WCF se puede configurar para procesar datos XML “sin formato” que no se ajustan en un sobre SOAP.WCF también se puede extender para admitir formatos XML concretos, como ATOM (un estándar popular de RSS), e incluso formatos no XML, como notación de objetos JavaScript (JSON).  ExtensibilidadExtensibilidad La arquitectura de WCF tiene varios puntos de extensibilidad. Si se necesita una función adicional, existen una serie de puntos de entrada que le permiten personalizar el comportamiento de un servicio.
  • 16. 22/07/13JaritzaMora1°Inf. 16 Los desarrolladores pueden crear aplicaciones utilizando WCF, y aunque inicialmente fue desarrollado para este Sistema Operativo, también puede ser utilizado en Windows XP y Windows 2003 Server. Esto debido a una decisión tomada por Microsoft, para permitir su utilización por la mayor parte de desarrolladores que trabajan sobre la línea de productos relacionados con la tecnología .NET. Es posible crear aplicaciones basadas en WCF utilizando Microsoft Visual Studio 2005 en su entorno de desarrollo integrado. Microsoft ha liberado un paquete de extensiones y un Kit de Desarrollo que puede ser utilizado con esta tecnología y otras que se incluyen en la Plataforma .NET v3.0. El conjunto de clases .NET que conforman la API de WCF, están basados en la Plataforma .NET 2.0 y son de libre distribución. El compilador de Visual Studio, puede ser combinado con un IDE gratuito, alguna solución para programación gratuita para desarrolladores no-profesionales o estudiantes, en el caso que prefieran no desarrollar con ediciones gratuitas o Express de Visual Studio 2005.
  • 17. 22/07/13JaritzaMora1°Inf. 17 o La primera tecnología en adaptarse a WCF fue Windows Workflow Foundation (WF). o La versión siguiente de Windows Workflow Foundation se integró con WCF. o Microsoft BizTalk Server R2 también utiliza WCF como tecnología de comunicaciones. o BizTalk está diseñado para recibir y transformar datos de un formato normalizado en otro. o (LOB, Line Of Business) de WCF para entregar mensajes en el cuadro de mensajes. o Microsoft Silverlight es una plataforma para la creación de sofisticadas aplicaciones web interoperables que permiten a los desarrolladores crear sitios Web con uso intensivo de contenidos multimedia. o Microsoft .NET Services es una iniciativa de computación en nube (cloud computing) que utiliza WCF para la creación de aplicaciones habilitadas para Internet. o Windows Server AppFabric se ha diseñado específicamente para implementar y administrar aplicaciones que utilizan WCF
  • 20. 22/07/13JaritzaMora1°Inf. 20 Todos los gráficos, incluyendo los elementos de escritorio como Windows, se representan usando Direct3D. Esto proporciona una vía para mostrar gráficos más complejos y temas personalizados, a costa de GDI una gama más amplia de apoyo y tematización uniforme de control. También permite descargar algunas de las tareas de gráficos a la GPU. Esto puede reducir la carga de trabajo de la CPU. Ya que las GPU s están optimizadas para cálculos de píxeles a gran velocidad, esto también tiende a acelerar el refresco de la pantalla. Por desgracia, esta ventaja se reduce en los mercados donde las GPU no son tan rápidas, como el de los netbooks. WPF pone énfasis en los gráficos vectoriales porque esto permite a la mayoría de los controles y elementos ser escalados sin pérdida de calidad o pixelizacion, aumentando así la accesibilidad. Con la excepción de Silverlight, esta integración permite el uso de una version de Direct3D simplificada. Además, los contenidos interactivos en 2D pueden ser superpuestos en superficies 3D nativas.
  • 21. 22/07/13JaritzaMora1°Inf. 21 Es un motor de representación basado en vectores e independiente de la resolución que se crea para sacar partido del hardware de gráficos moderno. WPFWPF extiende el núcleo con un conjunto completo de características de desarrollo de aplicaciones que incluye Lenguaje XAML, controles, enlace de datos, diseño, gráficos 2D y 3D, animación, estilos, plantillas, documentos, multimedia, texto y tipografía. WPF se incluye en Microsoft .NET Framework, de modo que es posible compilar aplicaciones que incorporen otros elementos de la biblioteca de clases de .NET Framework.
  • 22. 22/07/13JaritzaMora1°Inf. 22 WPF constituye un subconjunto de tipos de .NET Framework en su mayoría ubicados en el espacio de nombres System.Windows. Si ha compilado previamente aplicaciones con .NET Framework mediante tecnologías administradas como ASP.NET y formularios Windows Forms, los conceptos fundamentales de la programación en WPF deben resultarle familiares; creará instancias de clases, definirá propiedades, llamará a métodos y controlará eventos con el lenguaje de programación de .NET Framework que prefiera, como C# o Visual Basic.
  • 23. 22/07/13JaritzaMora1°Inf. 23 WPF proporciona mejoras de programación adicionales para el desarrollo de aplicaciones cliente de Windows. Una mejora evidente es la capacidad para programar una aplicación mediante código de lenguaje marcado y subyacente, una experiencia con la que resultará familiar a los programadores de ASP.NET. En general, se utiliza el lenguaje marcado Lenguaje XAML para implementar la apariencia de una aplicación, y los lenguajes de programación administrados (subyacentes) para implementar su comportamiento.
  • 25. 22/07/13JaritzaMora1°Inf. 25 Esta separación entre la apariencia y el comportamiento aporta las ventajas siguientes: Se reducen los costos de programación y mantenimiento, al no estar el marcado específico de la apariencia estrechamente relacionado con el código específico del comportamiento. La programación es más eficaz porque los diseñadores pueden implementar la apariencia de una aplicación al mismo tiempo que los programadores implementan su comportamiento. Se pueden usar varias herramientas de diseño para implementar y compartir el marcado XAML, a fin de responder a los requisitos de quienes colaboran en la programación de aplicaciones; Microsoft Expression Blend proporciona una experiencia apropiada para los diseñadores, mientras que Visual Studio 2005 está dirigido a los programadores. La globalización y localización de las aplicaciones WPF se ha simplificado en gran medida (vea Información general sobre la localización y globalización de WPF).
  • 26. 22/07/13JaritzaMora1°Inf. 26 .NET Framework, System.Windows, así como el marcado y el código subyacente, constituyen la base de la experiencia de desarrollo de aplicaciones en WPF. Además, WPF cuenta con características completas para crear experiencias de usuario con contenido enriquecido. Para empaquetar este contenido y distribuirlo a los usuarios en forma de "aplicaciones", WPF proporciona tipos y servicios denominados colectivamente elmodelo de aplicaciones. El modelo de aplicación admite la programación de aplicaciones independientes y hospedadas en explorador. Para las aplicaciones independientes, puede utilizar la clase Window para crear las ventanas y cuadros de diálogo a los que se tiene acceso desde las barras de menús y las barras de herramientas. En la ilustración siguiente se muestra una aplicación independiente con una ventana principal y un cuadro de diálogo.
  • 27. 22/07/13JaritzaMora1°Inf. 27 Para las aplicaciones hospedadas en explorador, denominadas Aplicaciones del explorador XAML (XBAPs), puede crear páginas (Page) y funciones de página (PageFunction<T>) entre las que se puede navegar mediante hipervínculos (clases Hyperlink). En la ilustración siguiente se muestra una página de XBAP hospedada en Internet Explorer 7.
  • 28. 22/07/13JaritzaMora1°Inf. 28 Al crear una interfaz de usuario, se organizan los controles según su ubicación y tamaño para crear un diseño. Un requisito fundamental de cualquier diseño es adaptarse a los cambios de tamaño de la ventana y de configuración de pantalla. En lugar de obligarle a escribir código que adapte el diseño en estas circunstancias, WPF le proporciona un sistema de diseño extensible de primera clase. La piedra angular del sistema de diseño es la situación relativa, que aumenta la capacidad de adaptación a los cambios en la configuración de las ventanas y de la pantalla. Además, el sistema de diseño administra la negociación entre los controles para determinar el diseño. La negociación es un proceso de dos pasos: en primer lugar, el control indica a su elemento primario qué ubicación y tamaño necesita; en segundo lugar, el elemento primario indica al control de qué espacio dispone. El sistema de diseño se expone a los controles secundarios a través de las clases base de WPF. Para los diseños comunes como son las cuadrículas, el apilamiento y el acoplamiento.
  • 29. 22/07/13JaritzaMora1°Inf. 29 WPF proporciona una biblioteca de formas 2D comunes dibujadas mediante vectores, como los rectángulos y las elipses que se muestran en la ilustración siguiente. WPF también incluye funcionalidad de representación 3D que se integra con los gráficos 2D para permitir la creación de UIs más interesantes y apasionantes. Por ejemplo, en la ilustración siguiente se muestran imágenes 2D representadas en formas 3D.
  • 30. 22/07/13JaritzaMora1°Inf. 30  WPF tiene un conjunto de servicios de datos para permitir a los desarrolladores de aplicaciones enlazar y manipular los datos dentro de las aplicaciones. Existen tres tipos de enlace de datos: • Una vez: cuando el cliente hace caso omiso de las actualizaciones en el servidor. • Simplex (one way): el cliente sólo tiene permiso de lectura a los datos. • Dúplex (two way): el cliente puede leer y escribir datos en el servidor.  Las consultas LINQ, incluyendo LINQ to XML, pueden actuar también como fuentes de datos para el enlace de datos.  El enlace de datos no influye en su presentación. WPF proporciona plantillas de datos para controlar la presentación de los datos.  Como parte de WPF se proporciona también un conjunto de controles integrados, que contiene elementos como botones, menús, rejillas, y listas.  Un concepto muy potente en WPF es la separación lógica entre un control y su apariencia.  La plantilla de un control se puede sobre escribir para cambiar por completo su aspecto visual.  Un control puede contener cualquier otro control o diseño (layout), lo que permite un alto grado de control sobre la composición.  Tiene un modo de «gráficos retenidos» (retained graphics): no siempre es necesario repintar la pantalla.
  • 31. 22/07/13JaritzaMora1°Inf. 31 La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora.
  • 32. 22/07/13JaritzaMora1°Inf. 32 Se utiliza únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación. Surgió en la década de 1960, particularmente del trabajo Böhm y Jacopini,[1] y una famosa carta, la sentencia goto considerada perjudicial, de Edsger Dijkstra en 1968[] — y fue reforzado teóricamente por el teorema del programa estructurado, y prácticamente por la aparición de lenguajes como ALGOL con adecuadas y ricas estructuras de control.
  • 33. 22/07/13JaritzaMora1°Inf. 33 A finales de los años 1970 surgió una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su mejor comprensión, no sólo proveyendo ventajas durante la fase de desarrollo, sino también posibilitando una más sencilla modificación posterior. Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas citadas. El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
  • 34. 22/07/13JaritzaMora1°Inf. 34 El teorema del programa estructurado proporciona la base teórica de la programación estructurada. Señala que tres maneras de combinar programas son suficientes para expresar cualquier función computable: secuencia, selección e iteración. Esta observación no se originó con el movimiento de la programación estructurada. Estas estructuras son suficientes para describir el ciclo de instrucción de una unidad central de procesamiento, así como el funcionamiento de una máquina de Turing. Por lo tanto un procesador siempre está ejecutando un "programa estructurado" en este sentido, incluso si las instrucciones que lee de la memoria no son parte de un programa estructurado. Sin embargo, los autores usualmente acreditan el resultado a un documento escrito en 1966 por Böhm y Jacopini, posiblemente porque Dijkstra había citado este escrito. El teorema del programa estructurado no responde a cómo escribir y analizar un programa estructurado de manera útil. Estos temas fueron abordados durante la década de 1960 y principio de los años 1970, con importantes contribuciones de Dijkstra, Robert W. Floyd, Tony Hoarey y David Gries.
  • 35. 22/07/13JaritzaMora1°Inf. 35 Los teóricos de la programación estructurada ganaron a un aliado importante en la década de 1970 después de que el investigador de IBM Harlan Mills aplicara su interpretación de la teoría de la programación estructurada para el desarrollo de un sistema de indexación para el archivo de investigación del New York Times. El proyecto fue un gran éxito de la ingeniería, y los directivos de otras empresas lo citaron en apoyo de la adopción de la programación estructurada, aunque Dijkstra criticó las maneras en que la interpretación de Mills difería de la obra publicada. Tan tarde como 1987 fue todavía posible elevar la cuestión de la programación estructurada en una revista de ciencia de la computación. Frank Rubin lo hizo en ese año, con una carta, La sentencia GOTO considerada dañina. Numerosas objeciones siguieron, incluyendo una respuesta de Dijkstra, que criticaba duramente a Rubin y las concesiones que otros escritores hicieron cuando le respondieron.
  • 36. 22/07/13JaritzaMora1°Inf. 36 A finales del siglo XX casi todos los científicos están convencidos de que es útil aprender y aplicar los conceptos de programación estructurada. Los lenguajes de programación de alto nivel que originalmente carecían de estructuras de programación, como FORTRAN, COBOL y BASIC, ahora las tienen.
  • 37. 22/07/13JaritzaMora1°Inf. 37 Ventajas de la programación estructurada comparada con el modelo anterior (hoy llamado despectivamente código espagueti) Los programas son más fáciles de entender, pueden ser leídos de forma secuencial y no hay necesidad de hacer engorrosos seguimientos en saltos de líneas (GOTO) dentro de los bloques de código para intentar entender la lógica. La estructura de los programas es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí. Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a su estructura más sencilla y comprensible, por lo que los errores se pueden detectar y corregir más fácilmente. Reducción de los costos de mantenimiento. Análogamente a la depuración, durante la fase de mantenimiento modificar o extender los programas resulta más fácil. Los programas son más sencillos y más rápidos de confeccionar. Se incrementa el rendimiento de los programadores, comparado con la forma anterior que utiliza GOTO.
  • 38. 22/07/13JaritzaMora1°Inf. 38 En un bajo nivel, los programas estructurados con frecuencia están compuestos de simples estructuras de flujo de programa jerárquicas. Estas son secuencia, selección y repetición: "Secuencia" se refiere a una ejecución ordenada de instrucciones. En "selección", una de una serie de sentencias es ejecutada dependiendo del estado del programa. Esto es usualmente expresado con palabras clave como if..then..else..endif, switch, o case. En algunos lenguajes las palabras clave no se puede escribir textualmente, pero debe ser delimitada (stropped). En la "repetición" se ejecuta una sentencia hasta que el programa alcance un estado determinado, o las operaciones han sido aplicadas a cada elemento de una colección. Esto es usualmente expresado con palabras clave como while, repeat, for o do..until. A menudo se recomienda que cada bucle sólo debe tener un punto de entrada (y en la programación estructural original, también sólo un punto de salida, y pocos lenguajes refuerzan esto).
  • 39. 22/07/13JaritzaMora1°Inf. 39 Un lenguaje es descrito como estructurado en bloque cuando tiene una sintaxis para encerrar estructuras entre palabras clave tipo corchete, como una sentencia if..fi en ALGOL 68, o una sección de código entre corchetes BEGIN..END, como en PL/I - o la de llaves {...} de C y muchos otros lenguajes posteriores.
  • 40. 22/07/13JaritzaMora1°Inf. 40 Es posible hacer la programación estructurada en cualquier lenguaje de programación, aunque es preferible usar algo como un lenguaje de programación procedimental. Algunos de los lenguajes utilizados inicialmente para programación estructurada incluyen: ALGOL, Pascal, PL/I y Ada – pero la mayoría de los nuevos lenguajes programación procedimentales desde entonces han incluido características para fomentar la programación estructurada y a veces deliberadamente omiten características[3] en un esfuerzo para hacer más difícil la programación no estructurada. NUEVOS PARADIGMASNUEVOS PARADIGMAS Posterior a la programación estructurada se han creado nuevos paradigmas tales como la programación modular, la programación orientada a objetos, programación por capas, etc, y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones y sistemas.
  • 42. 22/07/13JaritzaMora1°Inf. 42 La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos. Los objetos son entidades que tienen un determinado estado, comportamiento (método) e identidad: El estado está compuesto de datos o informaciones; serán uno o varios atributos a los que se habrán asignado unos valores concretos (datos). El comportamiento está definido por los métodos o mensajes a los que sabe responder dicho objeto, es decir, qué operaciones se pueden realizar con él. La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante).
  • 43. 22/07/13JaritzaMora1°Inf. 43 Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de Cómputo Noruego en Oslo. En este centro se trabajaba en simulaciones de naves, que fueron confundidas por la explosión combinatoria de cómo las diversas cualidades de diferentes naves podían afectar unas a las otras. La idea surgió al agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamientos. Fueron refinados más tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versión fue escrita sobre Basic) pero diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar "sobre la marcha" (en tiempo de ejecución) en lugar de tener un sistema basado en programas estáticos.
  • 44. 22/07/13JaritzaMora1°Inf. 44 Las características de orientación a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp y Pascal, entre otros. La adición de estas características a los lenguajes que no fueron diseñados inicialmente para ellas condujo a menudo a problemas de compatibilidad y en la capacidad de mantenimiento del código. Los lenguajes orientados a objetos "puros", por su parte, carecían de las características de las cuales muchos programadores habían venido a depender. Para saltar este obstáculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en métodos orientados a objetos, pero permitiendo algunas características imperativas de maneras "seguras". El Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos, pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparición de Internet y a la implementación de la máquina virtual de Java en la mayoría de navegadores. PHP en su versión 5 se ha modificado; soporta una orientación completa a objetos, cumpliendo todas las características propias de la orientación a objetos.
  • 45. 22/07/13JaritzaMora1°Inf. 45 La programación orientada a objetos es un paradigma que utiliza objetos como elementos fundamentales en la construcción de la solución. Surge en los años 70. Un objeto es una abstracción de algún hecho o ente del mundo real que tiene atributos que representan sus características o propiedades y métodos que representan su comportamiento o acciones que realizan. Todas las propiedades y métodos comunes a los objetos se encapsulan o se agrupan en clases. Una clase es una plantilla o un prototipo para crear objetos; por eso se dice que los objetos son instancias de clases.
  • 46. 22/07/13JaritzaMora1°Inf. 46 Simula (1967) es aceptado como el primer lenguaje que posee las características principales de un lenguaje orientado a objetos. Fue creado para hacer programas de simulación, en donde los "objetos“ son la representación de la información más importante. Smalltalk (1972 a 1980) es posiblemente el ejemplo canónico, y con el que gran parte de la teoría de la programación orientada a objetos se ha desarrollado. Entre los lenguajes orientados a objetos se destacan los siguientes:  ABAP -> SAP Lenguaje orientado a eventos ABL Lenguaje de programación de OpenEdge de Progress Software ActionScript ActionScript 3  Ada  C++ C# Clarion Clipper[1]
  • 47. 22/07/13JaritzaMora1°Inf. 47  Object Pascal (Embarcadero Delphi)  Gambas  Genie  Harbour  Eiffel  Fortran 90/95  Java  JavaScript[2]  Lexico[3]  Objective-C  Ocaml  Oz  R  Perl[4]  PHP[5]  PowerBuilder  Python  Ruby  Self  Smalltalk[6]  Magik (SmallWorld)  Vala  VB.NET  Visual FoxPro[7]  Visual Basic 6.0  Visual DataFlex  Visual Objects
  • 49. 22/07/13JaritzaMora1°Inf. 49 Muchos de estos lenguajes de programación no son puramente orientados a objetos, sino que son híbridos que combinan la POO con otros paradigmas. Al igual que C++, otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados añadiendo extensiones orientadas a objetos a un lenguaje de programación clásico. Un nuevo paso en la abstracción de paradigmas de programación es la Programación Orientada a Aspectos (POA). Aunque es todavía una metodología en estado de maduración, cada vez atrae a más investigadores e incluso proyectos comerciales en todo el mundo.