SlideShare una empresa de Scribd logo
1 de 56
Windows
Communication
Foundation
Windows Communication Foundation o WCF (también
conocido como Indigo), es la plataforma de mensajería
que forma parte de la API de la Plataforma .NET 3.0 (antes
conocida como WinFX, y que no son más que
extensiones para la versión 2.0). Se encuentra basada en la
Plataforma .NET 2.0 y de forma predeterminada se
incluye en el Sistema Operativo Microsoft Windows Vista.
Windows Communication
Foundation
Fue creada con el fin de permitir una programación rápida de
sistemas distribuidos y el desarrollo de aplicaciones
basadas en arquitecturas orientadas a servicios (también
conocido como SOA), con una API simple; y que puede
ejecutarse en una máquina local, una LAN, o sobre Internet en
una forma segura.
¿CóMO FUE CREADA
Windows Communication
Foundation?
Orientación a servicios
Como consecuencia del uso de los estándares de WS, WCF le permite
crear aplicaciones orientadas a servicios. SOA, la arquitectura orientada
a servicios es el uso de servicios web para enviar y recibir datos. Los
servicios tienen la ventaja general de estar débilmente acoplados entre
una aplicación y otra en lugar de incluidos en el código. Una relación de
acoplamiento débil implica que cualquier cliente creado en cualquier
plataforma puede conectar con cualquier servicio siempre y cuando se
cumplan los contratos esenciales.
Varios modelos de mensajes
Los mensajes se intercambian mediante uno de los distintos modelos. 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, como un mensaje unidireccional, en que un único extremo
envía un mensaje sin esperar ninguna respuesta.
CARACTERISTICAS DE Windows
Communication Foundation
Mensajes confiables y en cola
WCF admite intercambio de mensajes confiable usando sesiones confiables
implementadas sobre mensajería WS-Reliable y mediante MSMQ. Para obtener
más información sobre la compatibilidad con mensajería confiable y en cola en
WCF, vea Colas y sesiones de confianza.
Mensajes duraderos
Un mensaje duradero es aquel que nunca se pierde debido a una interrupción
de la comunicación. Los mensajes que forman parte de un modelo de mensajes
duraderos 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. También puede crear un mensaje duradero
utilizando Windows Workflow Foundation (WF). Para obtener más
información, veaServicios de flujo de trabajo.
CARACTERISTICAS
WCF es una plataforma flexible. Debido a esta flexibilidad extrema,
WCF también se usa en varios otros productos Microsoft. Si
comprende los fundamentos de WCF, tendrá una ventaja inmediata
si también utiliza cualquiera de estos productos.
La primera tecnología en adaptarse a WCF fue Windows Workflow
Foundation (WF). Los flujos de trabajo simplifican el desarrollo de
aplicaciones encapsulando los pasos del flujo de trabajo como
“actividades”. En la primera versión de Windows Workflow
Foundation, un desarrollador tenía que crear un host para el flujo de
trabajo. La versión siguiente de Windows Workflow Foundation se
integró con WCF. Esto permitió hospedar cualquier flujo de trabajo
fácilmente en un servicio de WCF; puede hacer esto si elige
automáticamente el tipo de proyecto WF/WCF en Visual Studio 2012.
Integración de WCF con otras
tecnologías de Microsoft
WCF
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.
Desarrollando con WCF
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.
CREAR APLICACIONES EN WCF
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 (como la transmisión de vídeo por
secuencias). A partir de la versión 2, Silverlight incorpora WCF
como tecnología de comunicaciones para conectar las
aplicaciones Silverlight con los extremos de WCF.
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. Utilice .NET Services
para crear servicios WCF que funcionan a través de límites de
confianza.
AYUDA DE WCF
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.
EJEMPLOS DE Windows
Communication Foundation
Framework
La palabra inglesa "framework" (marco de trabajo)
define, en términos generales, un conjunto
estandarizado de
conceptos, prácticas y criterios para enfocar un tipo de
problemática particular que sirve como referencia, para
enfrentar y resolver nuevos problemas de índole similar.
QUÉ ES FRAMEWORK
En el desarrollo de software, un framework o infraestructura
digital, es una estructura conceptual y tecnológica de
soporte definido, normalmente con artefactos o módulos de
software concretos, que puede servir de base para la
organización y desarrollo de software. Típicamente, puede
incluir soporte de programas, bibliotecas, y un lenguaje
interpretado, entre otras herramientas, para así ayudar a
desarrollar y unir los diferentes componentes de un
proyecto.
DESARROLLO DE FRAMEWORK
Sin embargo, hay quejas comunes acerca de que el uso
de frameworks añade código innecesario y que la
preponderancia de frameworks competitivos y
complementarios
significa que el tiempo que se pasaba programando y
diseñando ahora se gasta en aprender a usar los frameworks.
Fuera de las aplicaciones en la informática, puede ser
considerado como el conjunto de procesos y tecnologías
usados para resolver un problema complejo. Es el esqueleto
sobre el cual varios objetos son integrados para facilitar
una solución dada.
Son diseñados con la intención de facilitar el desarrollo de
software, permitiendo a los diseñadores y programadores
pasar más tiempo identificando requerimientos de software que
tratando con los tediosos detalles de bajo nivel de
proveer un sistema funcional. Por ejemplo, un equipo que usa
Apache Struts para desarrollar un sitio web de un
banco, puede enfocarse en cómo los retiros de ahorros van a
funcionar en lugar de preocuparse de cómo se controla
la navegación entre las páginas en una forma libre de errores. Sin
embargo, hay quejas comunes acerca de que el uso
de frameworks añade código innecesario y que la preponderancia
de frameworks competitivos y complementarios
significa que el tiempo que se pasaba programando y diseñando
ahora se gasta en aprender a usar los frameworks.
Introducción
No es más que una base de programación que atiende a
sus descendientes (manejado de una forma estructural
y/o en
cascada), posibilitando cualquier respuesta ante las
necesidades de sus miembros, o en secciones de una
aplicación
(web), satisfaciendo así las necesidades más comunes
del programador
Básicos
Dentro del controlador, modelo o vista podemos manejar lo
siguiente: datos. Depende de nosotros como interpretar y
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.
Estructura
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: éste debe ser capaz de manejar
rutas, archivos, clases, métodos y funciones.
• Modelo: es como un script habitual en el servidor, solo que
agrupado bajo un 'modelo' reutilizable.
• Vista: como incluyendo cualquier archivo en nuestra
ejecución, muy simple.
• Un sistema
• Ruteador: con él podemos dividir nuestras peticiones sin tantas
condicionales.Cargador
Lógica
// Index.php
// -----
// ------ Clases ------
class Base {}
class Controller extends Base {
function load($name) {
require_
$this->$name =& new $name();
}
}
class Model extends Controller {
function view($name, $data) {
extract($data);
include "app/view/" . $name . ".php";
}
}
EJEMPLOS DE FRAMEWORK
Framework 3
// ------ Router & Loader ------
function _route($controller, $model) {
if (is_file("app/$controller.php")) {
require_once "app/" . $controller . ".php";
$object = new $controller();
$object->$model();
}
}
// ----- Rutina -----
_route($_GET['section'], $_GET['name']);
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/.
// app/Foo.php
// -----
class Foo extends Controller {
function foo() {
$this->load('test');
}
function bar() {
echo '<b>Testing</b>';
echo $this->test->does();
}
}
Como resultado al solicitar (por
ejemplo, ?section=foo&name=bar), deberíamos ver el siguiente texto:
Aplicar
Dentro de este aspecto, podemos basarnos en el modelo MVC
(Controlador => Modelo => Vista), ya que debemos
fragmentar nuestra programación. Tenemos que contemplar estos
aspectos básicos en cuanto a la implementación de
nuestro sistema:
Modelo
Este miembro del controlador maneja las operaciones lógicas, y de
manejo de información (previamente
enviada por su ancestro), para resultar de una forma explicable y
sin titubeos. 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
Arquitectura
Vista
Al final, a este miembro de la familia 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). Después de todo, a este miembro le
toca evidenciar la información obtenida hasta hacerla llegar al
controlador. Solo (e inicialmente), nos espera
demostrar la información.
Controlador
Con este apartado podemos controlar el acceso (incluso todo) a
nuestra aplicación, y esto puede incluir:
archivos, scripts, y/o programas; cualquier tipo de información que
permita la interfaz. Así, podremos
diversificar nuestro contenido de forma dinámica, y estática (a la
vez); pues, sólo debemos controlar ciertos
aspectos (como se ha mencionado antes).
Programación
orientada a objetos
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.
QUE ES Programación orientada 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).
Un objeto
Introducción
Los métodos (comportamiento) y atributos (estado) están
estrechamente relacionados por la propiedad de
conjunto. Esta propiedad destaca que una clase requiere de
métodos para poder tratar los atributos con los que
cuenta. El programador debe pensar indistintamente en ambos
conceptos, sin separar ni darle mayor importancia a
alguno de ellos. Hacerlo podría producir el hábito erróneo de crear
clases contenedoras de información por un lado y
clases con métodos que manejen a las primeras por el otro. De esta
manera se estaría realizando una programación
estructurada camuflada en un lenguaje de programación orientado
a objetos.
Métodos DE Programación
orientada a objetos
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.
Origen
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:
Clase
Definiciones de las propiedades y comportamiento de un tipo de objeto
concreto. La instanciación es la lectura
de estas definiciones y la creación de un objeto a partir de ellas.
Herencia
(Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual
la clase D hereda en ella cada
uno de los atributos y operaciones de C, como si esos atributos y operaciones
hubiesen sido definidos por la
misma D. Por lo tanto, puede usar los mismos métodos y variables públicas
declaradas en C.
Conceptos fundamentales
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.
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
Lenguajes orientados a objetos
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.
LENGUAJES
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.
Resumen
Programación estructurada
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, utilizando
ú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.
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.
Orígenes de la programación
estructurada
El teorema del programa estructurado, propuesto por
Böhm-Jacopini, demuestra que todo programa puede
escribirse
utilizando únicamente las tres instrucciones de control
siguientes:
• Secuencia
• Instrucción condicional.
• Iteración (bucle de instrucciones) con condición al
principio.
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.
ORIGEN
Fundamentación teórica
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.
HISTORIA
P. J. Plauger, uno de los primeros en adoptar la
programación estructurada, describió su reacción con el
teorema del
programa estructurado:
Nosotros los conversos ondeamos esta interesante pizca
de noticias bajo las narices de los recalcitrantes
programadores de lenguaje ensamblador que mantuvieron
trotando adelante retorcidos bits de lógica y
diciendo, 'Te apuesto que no puedes estructurar esto'. Ni
la prueba por Böhm y Jacopini, ni nuestros repetidos
éxitos en escribir código estructurado, los llevaron un día
antes de lo que estaban listos para convencerse.[2]
Debate
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.
Resultado
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í.
Ventajas de la programación
estructurada
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.
Lenguajes de programación
estructurada
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).
Programación estructurada de bajo
nivel
LENGUAJE
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.
Nuevos paradigmas
Windows Presentation
Foundation
Windows Presentation Foundation (WPF) es una tecnología
de Microsoft, presentada como parte de Windows
Vista. Permite el desarrollo de interfaces de interacción en
Windows tomando características de aplicaciones
Windows y de aplicaciones web.
WPF ofrece una amplia infraestructura y potencia gráfica con
la que es posible desarrollar aplicaciones visualmente
atractivas, con facilidades de interacción que incluyen
animación, vídeo, audio, documentos, navegación o gráficos
3D.
Windows Presentation Foundation
Direct3D
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.
Características
• 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.
Data binding (enlace de datos)
Media Services
• WPF proporciona un sistema integrado para la
creación de interfaces de usuario con elementos
multimedia
comunes, como imágenes vectoriales y de mapa de bits,
audio y vídeo. WPF también proporciona un sistema de
animación y un sistema de renderizado en 2D/3D.
• WPF proporciona primitivas de forma para gráficos en
2D junto con un conjunto integrado de pinceles, lápices,
geometrías, y transformaciones.
Media Services
• En WPF, puede definir el aspecto de un elemento
directamente, a través de sus propiedades, o indirectamente
a
una plantilla o el estilo. En su forma más simple un estilo es
una combinación de valores de propiedades que se
pueden aplicar a un elemento de interfaz de usuario con un
atributo de la propiedad individual. Las plantillas son
un mecanismo alternativo para la definición de interfaz de
usuario para partes de la aplicación de WPF. Hay
varios tipos de plantillas disponibles en WPF.
PLANTILLAS
• WPF admite animaciones basadas en el tiempo, en
contraste con el enfoque basado en frames. Esto
desacopla la
velocidad de la animación de cómo el sistema está
funcionando.
• WPF admite animación de bajo nivel a través de
temporizadores y más alto nivel de abstracción a través
de
animaciones las clases de animación.
Animaciones
• WPF puede tener acceso de forma nativa Windows
Imaging Component (WIC) y el código API permite a los
desarrolladores a escribir codecs de imágenes para
sus formatos específicos de la imagen de archivo.
Imágenes
• WPF 3,0 prevé BitmapEffects, que son efectos ráster
aplicadas a un proyecto de Visual. Estos efectos de trama
están escritos en código no administrado y la fuerza de la
prestación del Visual que se realizarán en la CPU y no
de hardware acelerado por la GPU. BitmapEffects fueron
desaprobados en. NET 3.5 SP 1.
• .NET Framework 3.5 Service Pack 1 añade la clase de
efectos, que es un Pixel Shader 2.0 sentido de que se puede
aplicar a un gráfico, lo que permite que toda la
representación de permanecer en la GPU.
Efectos
• WPF proporciona interoperabilidad con el Windows
API, se puede utilizar Windows Presentation Foundation
dentro del código existente de Win32, o uno puede
utilizar el código existente Win32 dentro de Windows
Presentation Foundation.
Interoperabilidad
Tras el éxito de XML para el desarrollo web, WPF
introduce un nuevo lenguaje conocido como lenguaje
extensible
de marcado de aplicaciones , que se basa en XML. XAML
está diseñado como un método más eficaz de
desarrollo
de interfaces de aplicaciones de usuario.
XAML

Más contenido relacionado

La actualidad más candente

Windows comunication fundaction
Windows comunication fundactionWindows comunication fundaction
Windows comunication fundactionkcarbache
 
Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1fanyto
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androideJomicast
 
Desarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorDesarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorJomicast
 
Windows communication foundation completo
Windows communication foundation completoWindows communication foundation completo
Windows communication foundation completoANGIEZAMBRANO57
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAHelmilpa
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundationAlexis Arguello
 
Windows communication foundation completo
Windows communication foundation completoWindows communication foundation completo
Windows communication foundation completoEduardo Bazurto
 
Framework by Marcos Acosta
Framework by Marcos AcostaFramework by Marcos Acosta
Framework by Marcos AcostaMarcos Acosta
 
Presentación de programacion
Presentación  de programacionPresentación  de programacion
Presentación de programacionlajokito
 

La actualidad más candente (19)

Capitulo 1 - Proyecto integrador 2015-2016
Capitulo 1 - Proyecto integrador 2015-2016Capitulo 1 - Proyecto integrador 2015-2016
Capitulo 1 - Proyecto integrador 2015-2016
 
Windows comunication fundaction
Windows comunication fundactionWindows comunication fundaction
Windows comunication fundaction
 
Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androide
 
Desarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorDesarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidor
 
Windows communication foundation completo
Windows communication foundation completoWindows communication foundation completo
Windows communication foundation completo
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
Wcf
WcfWcf
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 completo
Windows communication foundation completoWindows communication foundation completo
Windows communication foundation completo
 
Presentación1
Presentación1Presentación1
Presentación1
 
Framework by Marcos Acosta
Framework by Marcos AcostaFramework by Marcos Acosta
Framework by Marcos Acosta
 
Tarea 1
Tarea 1Tarea 1
Tarea 1
 
Presentación de programacion
Presentación  de programacionPresentación  de programacion
Presentación de programacion
 
Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF) Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)
 
Framework
FrameworkFramework
Framework
 
Windows communication
Windows communicationWindows communication
Windows communication
 
Wcf
WcfWcf
Wcf
 

Destacado

Servicios web
Servicios webServicios web
Servicios webjogoram
 
WCF for Dummies (Parte I)
WCF for Dummies (Parte I)WCF for Dummies (Parte I)
WCF for Dummies (Parte I)Will.i.am
 
Introducción a WCF
Introducción a WCFIntroducción a WCF
Introducción a WCFpabloesp
 
WCF for Dummies (Parte II)
WCF for Dummies (Parte II)WCF for Dummies (Parte II)
WCF for Dummies (Parte II)Will.i.am
 
Servicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPServicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPDavid J. Brenes
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsBarry Feldman
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome EconomyHelge Tennø
 

Destacado (8)

Servicios web
Servicios webServicios web
Servicios web
 
WCF for Dummies (Parte I)
WCF for Dummies (Parte I)WCF for Dummies (Parte I)
WCF for Dummies (Parte I)
 
Creando endpoint http
Creando endpoint httpCreando endpoint http
Creando endpoint http
 
Introducción a WCF
Introducción a WCFIntroducción a WCF
Introducción a WCF
 
WCF for Dummies (Parte II)
WCF for Dummies (Parte II)WCF for Dummies (Parte II)
WCF for Dummies (Parte II)
 
Servicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPServicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHP
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 

Similar a Proyecto

Similar a Proyecto (20)

Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundation
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundation
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundation
 
Wcf.ppp
Wcf.pppWcf.ppp
Wcf.ppp
 
Programacion
ProgramacionProgramacion
Programacion
 
Windows Communication Foundation
Windows Communication FoundationWindows Communication Foundation
Windows Communication Foundation
 
Paola
PaolaPaola
Paola
 
Paola
PaolaPaola
Paola
 
Paola
PaolaPaola
Paola
 
Paola 1001 jt
Paola 1001 jtPaola 1001 jt
Paola 1001 jt
 
Paola
PaolaPaola
Paola
 
itio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspotitio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspot
 
INVESTIGACION
INVESTIGACIONINVESTIGACION
INVESTIGACION
 
Investia2
Investia2Investia2
Investia2
 
Windows communication foundation (wcf)
Windows communication foundation (wcf)Windows communication foundation (wcf)
Windows communication foundation (wcf)
 
Framework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entornoFramework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entorno
 
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
 

Proyecto

  • 2. Windows Communication Foundation o WCF (también conocido como Indigo), es la plataforma de mensajería que forma parte de la API de la Plataforma .NET 3.0 (antes conocida como WinFX, y que no son más que extensiones para la versión 2.0). Se encuentra basada en la Plataforma .NET 2.0 y de forma predeterminada se incluye en el Sistema Operativo Microsoft Windows Vista. Windows Communication Foundation
  • 3. Fue creada con el fin de permitir una programación rápida de sistemas distribuidos y el desarrollo de aplicaciones basadas en arquitecturas orientadas a servicios (también conocido como SOA), con una API simple; y que puede ejecutarse en una máquina local, una LAN, o sobre Internet en una forma segura. ¿CóMO FUE CREADA Windows Communication Foundation?
  • 4. Orientación a servicios Como consecuencia del uso de los estándares de WS, WCF le permite crear aplicaciones orientadas a servicios. SOA, la arquitectura orientada a servicios es el uso de servicios web para enviar y recibir datos. Los servicios tienen la ventaja general de estar débilmente acoplados entre una aplicación y otra en lugar de incluidos en el código. Una relación de acoplamiento débil implica que cualquier cliente creado en cualquier plataforma puede conectar con cualquier servicio siempre y cuando se cumplan los contratos esenciales. Varios modelos de mensajes Los mensajes se intercambian mediante uno de los distintos modelos. 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, como un mensaje unidireccional, en que un único extremo envía un mensaje sin esperar ninguna respuesta. CARACTERISTICAS DE Windows Communication Foundation
  • 5. Mensajes confiables y en cola WCF admite intercambio de mensajes confiable usando sesiones confiables implementadas sobre mensajería WS-Reliable y mediante MSMQ. Para obtener más información sobre la compatibilidad con mensajería confiable y en cola en WCF, vea Colas y sesiones de confianza. Mensajes duraderos Un mensaje duradero es aquel que nunca se pierde debido a una interrupción de la comunicación. Los mensajes que forman parte de un modelo de mensajes duraderos 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. También puede crear un mensaje duradero utilizando Windows Workflow Foundation (WF). Para obtener más información, veaServicios de flujo de trabajo. CARACTERISTICAS
  • 6. WCF es una plataforma flexible. Debido a esta flexibilidad extrema, WCF también se usa en varios otros productos Microsoft. Si comprende los fundamentos de WCF, tendrá una ventaja inmediata si también utiliza cualquiera de estos productos. La primera tecnología en adaptarse a WCF fue Windows Workflow Foundation (WF). Los flujos de trabajo simplifican el desarrollo de aplicaciones encapsulando los pasos del flujo de trabajo como “actividades”. En la primera versión de Windows Workflow Foundation, un desarrollador tenía que crear un host para el flujo de trabajo. La versión siguiente de Windows Workflow Foundation se integró con WCF. Esto permitió hospedar cualquier flujo de trabajo fácilmente en un servicio de WCF; puede hacer esto si elige automáticamente el tipo de proyecto WF/WCF en Visual Studio 2012. Integración de WCF con otras tecnologías de Microsoft WCF
  • 7. 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. Desarrollando con WCF
  • 8. 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. CREAR APLICACIONES EN WCF
  • 9. 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 (como la transmisión de vídeo por secuencias). A partir de la versión 2, Silverlight incorpora WCF como tecnología de comunicaciones para conectar las aplicaciones Silverlight con los extremos de WCF. 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. Utilice .NET Services para crear servicios WCF que funcionan a través de límites de confianza. AYUDA DE WCF
  • 10. 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. EJEMPLOS DE Windows Communication Foundation
  • 12. La palabra inglesa "framework" (marco de trabajo) define, en términos generales, un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular que sirve como referencia, para enfrentar y resolver nuevos problemas de índole similar. QUÉ ES FRAMEWORK
  • 13. En el desarrollo de software, un framework o infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto. DESARROLLO DE FRAMEWORK
  • 14. Sin embargo, hay quejas comunes acerca de que el uso de frameworks añade código innecesario y que la preponderancia de frameworks competitivos y complementarios significa que el tiempo que se pasaba programando y diseñando ahora se gasta en aprender a usar los frameworks. Fuera de las aplicaciones en la informática, puede ser considerado como el conjunto de procesos y tecnologías usados para resolver un problema complejo. Es el esqueleto sobre el cual varios objetos son integrados para facilitar una solución dada.
  • 15. Son diseñados con la intención de facilitar el desarrollo de software, permitiendo a los diseñadores y programadores pasar más tiempo identificando requerimientos de software que tratando con los tediosos detalles de bajo nivel de proveer un sistema funcional. Por ejemplo, un equipo que usa Apache Struts para desarrollar un sitio web de un banco, puede enfocarse en cómo los retiros de ahorros van a funcionar en lugar de preocuparse de cómo se controla la navegación entre las páginas en una forma libre de errores. Sin embargo, hay quejas comunes acerca de que el uso de frameworks añade código innecesario y que la preponderancia de frameworks competitivos y complementarios significa que el tiempo que se pasaba programando y diseñando ahora se gasta en aprender a usar los frameworks. Introducción
  • 16. No es más que una base de programación que atiende a sus descendientes (manejado de una forma estructural y/o en cascada), posibilitando cualquier respuesta ante las necesidades de sus miembros, o en secciones de una aplicación (web), satisfaciendo así las necesidades más comunes del programador Básicos
  • 17. Dentro del controlador, modelo o vista podemos manejar lo siguiente: datos. Depende de nosotros como interpretar y 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. Estructura
  • 18. 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: éste debe ser capaz de manejar rutas, archivos, clases, métodos y funciones. • Modelo: es como un script habitual en el servidor, solo que agrupado bajo un 'modelo' reutilizable. • Vista: como incluyendo cualquier archivo en nuestra ejecución, muy simple. • Un sistema • Ruteador: con él podemos dividir nuestras peticiones sin tantas condicionales.Cargador Lógica
  • 19. // Index.php // ----- // ------ Clases ------ class Base {} class Controller extends Base { function load($name) { require_ $this->$name =& new $name(); } } class Model extends Controller { function view($name, $data) { extract($data); include "app/view/" . $name . ".php"; } } EJEMPLOS DE FRAMEWORK
  • 20. Framework 3 // ------ Router & Loader ------ function _route($controller, $model) { if (is_file("app/$controller.php")) { require_once "app/" . $controller . ".php"; $object = new $controller(); $object->$model(); } } // ----- Rutina ----- _route($_GET['section'], $_GET['name']);
  • 21. 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/. // app/Foo.php // ----- class Foo extends Controller { function foo() { $this->load('test'); } function bar() { echo '<b>Testing</b>'; echo $this->test->does(); } } Como resultado al solicitar (por ejemplo, ?section=foo&name=bar), deberíamos ver el siguiente texto: Aplicar
  • 22. Dentro de este aspecto, podemos basarnos en el modelo MVC (Controlador => Modelo => Vista), ya que debemos fragmentar nuestra programación. Tenemos que contemplar estos aspectos básicos en cuanto a la implementación de nuestro sistema: Modelo Este miembro del controlador maneja las operaciones lógicas, y de manejo de información (previamente enviada por su ancestro), para resultar de una forma explicable y sin titubeos. 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 Arquitectura
  • 23. Vista Al final, a este miembro de la familia 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). Después de todo, a este miembro le toca evidenciar la información obtenida hasta hacerla llegar al controlador. Solo (e inicialmente), nos espera demostrar la información. Controlador Con este apartado podemos controlar el acceso (incluso todo) a nuestra aplicación, y esto puede incluir: archivos, scripts, y/o programas; cualquier tipo de información que permita la interfaz. Así, podremos diversificar nuestro contenido de forma dinámica, y estática (a la vez); pues, sólo debemos controlar ciertos aspectos (como se ha mencionado antes).
  • 25. 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. QUE ES Programación orientada a objetos
  • 26. 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). Un objeto Introducción
  • 27. Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podría producir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen a las primeras por el otro. De esta manera se estaría realizando una programación estructurada camuflada en un lenguaje de programación orientado a objetos. Métodos DE Programación orientada a objetos
  • 28. 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. Origen
  • 29. 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: Clase Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas. Herencia (Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables públicas declaradas en C. Conceptos fundamentales
  • 30. 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.
  • 31. 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 Lenguajes orientados a objetos
  • 32. 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. LENGUAJES
  • 33. 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. Resumen
  • 35. 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, utilizando ú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.
  • 36. 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. Orígenes de la programación estructurada
  • 37. El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes: • Secuencia • Instrucción condicional. • Iteración (bucle de instrucciones) con condición al principio. 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. ORIGEN
  • 38. Fundamentación teórica 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. HISTORIA
  • 39. P. J. Plauger, uno de los primeros en adoptar la programación estructurada, describió su reacción con el teorema del programa estructurado: Nosotros los conversos ondeamos esta interesante pizca de noticias bajo las narices de los recalcitrantes programadores de lenguaje ensamblador que mantuvieron trotando adelante retorcidos bits de lógica y diciendo, 'Te apuesto que no puedes estructurar esto'. Ni la prueba por Böhm y Jacopini, ni nuestros repetidos éxitos en escribir código estructurado, los llevaron un día antes de lo que estaban listos para convencerse.[2] Debate
  • 40. 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. Resultado
  • 41. 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í. Ventajas de la programación estructurada
  • 42. 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. Lenguajes de programación estructurada
  • 43. 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). Programación estructurada de bajo nivel
  • 45. 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. Nuevos paradigmas
  • 47. Windows Presentation Foundation (WPF) es una tecnología de Microsoft, presentada como parte de Windows Vista. Permite el desarrollo de interfaces de interacción en Windows tomando características de aplicaciones Windows y de aplicaciones web. WPF ofrece una amplia infraestructura y potencia gráfica con la que es posible desarrollar aplicaciones visualmente atractivas, con facilidades de interacción que incluyen animación, vídeo, audio, documentos, navegación o gráficos 3D. Windows Presentation Foundation
  • 48. Direct3D 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. Características
  • 49. • 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. Data binding (enlace de datos)
  • 50. Media Services • WPF proporciona un sistema integrado para la creación de interfaces de usuario con elementos multimedia comunes, como imágenes vectoriales y de mapa de bits, audio y vídeo. WPF también proporciona un sistema de animación y un sistema de renderizado en 2D/3D. • WPF proporciona primitivas de forma para gráficos en 2D junto con un conjunto integrado de pinceles, lápices, geometrías, y transformaciones. Media Services
  • 51. • En WPF, puede definir el aspecto de un elemento directamente, a través de sus propiedades, o indirectamente a una plantilla o el estilo. En su forma más simple un estilo es una combinación de valores de propiedades que se pueden aplicar a un elemento de interfaz de usuario con un atributo de la propiedad individual. Las plantillas son un mecanismo alternativo para la definición de interfaz de usuario para partes de la aplicación de WPF. Hay varios tipos de plantillas disponibles en WPF. PLANTILLAS
  • 52. • WPF admite animaciones basadas en el tiempo, en contraste con el enfoque basado en frames. Esto desacopla la velocidad de la animación de cómo el sistema está funcionando. • WPF admite animación de bajo nivel a través de temporizadores y más alto nivel de abstracción a través de animaciones las clases de animación. Animaciones
  • 53. • WPF puede tener acceso de forma nativa Windows Imaging Component (WIC) y el código API permite a los desarrolladores a escribir codecs de imágenes para sus formatos específicos de la imagen de archivo. Imágenes
  • 54. • WPF 3,0 prevé BitmapEffects, que son efectos ráster aplicadas a un proyecto de Visual. Estos efectos de trama están escritos en código no administrado y la fuerza de la prestación del Visual que se realizarán en la CPU y no de hardware acelerado por la GPU. BitmapEffects fueron desaprobados en. NET 3.5 SP 1. • .NET Framework 3.5 Service Pack 1 añade la clase de efectos, que es un Pixel Shader 2.0 sentido de que se puede aplicar a un gráfico, lo que permite que toda la representación de permanecer en la GPU. Efectos
  • 55. • WPF proporciona interoperabilidad con el Windows API, se puede utilizar Windows Presentation Foundation dentro del código existente de Win32, o uno puede utilizar el código existente Win32 dentro de Windows Presentation Foundation. Interoperabilidad
  • 56. Tras el éxito de XML para el desarrollo web, WPF introduce un nuevo lenguaje conocido como lenguaje extensible de marcado de aplicaciones , que se basa en XML. XAML está diseñado como un método más eficaz de desarrollo de interfaces de aplicaciones de usuario. XAML