#helloWindows10 Hel10 Windows 10!. #helloWindows10 Alex Casquete Carlos Carrillo Construyendo una suite empresarial con App Services.

Slides:



Advertisements
Presentaciones similares
Programación orientada a objetos en Visual Basic .NET
Advertisements

Sun Microsystems desarrolló, en 1991, el lenguaje de programación orientado a objetos que se conoce como Java. La intención de Sun era crear un lenguaje.
Ayudantía Pre-Actividad 5 Multimedios. Ayudantía Pre-Actividad 5 (1) creación de varias clases, y composición (2) manejo de threads (3) manejo de excepciones.
Cetis No. 119 Profa. Graciela Prado Becerra
Agregar código a un formulario Web Form con Microsoft ASP.NET
PROGRAMACIÓN EN WINDOWS PHONE 7 CON SILVERLIGHT
Opciones bajo el comando Tools del menú principal
Desarrollo de una Aplicación Web sobre tecnología Microsoft .NET
Desarrollo de Aplicaciones para Internet
Aplicación informática. formando parte de una red. pone sus recursos a disposición de las demás computadoras(clientes) de la red. Maneja información.
Servicios Web.
Migración de MOSS2007 a SharePoint 2010 Jose Manuel González
Desarrollo de Aplicaciones para Internet
Instituto Tecnológico Superior de Calkiní Ingeniería en Sistemas Computacionales TÓPICOS DE PROGRAMACIÓN MÓVIL David Enrique Ochoa Díaz Licenciatura en.
GWT Designer, Organización del proyecto GWT Google Web Toolkit Prof
Teoría de los lenguajes Proyecto SIGU Equipo Nº3 Universidad Argentina J. F. Kennedy Sede: Don Bosco Integrantes: Irene Arias Fernández Mariana Pacheco.
Editing Slides With Polaris Office, you can create new .ppt and .pptx presentations or edit your presentation with ease.
1 1.Prepare and Install 1.1 You have to know before installation 1.2 Hardware Installation 2. How to use Bluetooth Printer Adapter’s Services 2.1 Connect.
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Java. Objeto Es la instancia de una clase. Cada objeto se crea utilizando la palabra reservada new. Un objeto es conocido como una instancia. Ejemplo.
If anidados y Switch Prof. Lillian Bras.
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
Archivos y Búsqueda Secuencial
Programación orientada a objetos
JavaScript Programación Web. Java Script es un lenguaje de escripts que se usa en páginas web (ligero) Java es un lenguaje de programación orientada a.
El lenguaje de programación Java
Diálogos dirigidos con autoevaluación
Novedades Windows Server 2012 R2 Expositor : Ing. Carlos M Chunga L Microsoft Certified Trainer (MCT) Microsoft Certified Solutions Expert (MCSE): Server.
Sincronización de Objectos Compartidos usando MatchMaker a través de Web Services Thomas Pieper DCC, Universidad de Chile.
Planning and Basic Dseign of a LAN M.C. Juan Carlos Olivares Rojas Department of Computer and System Instituto Tecnológico de Morelia
Node.JS Proyecto Redes de Computadores Sem
PROGRESSIVE IN PRESENT AND PAST
Framework Class Library (FCL) Dr. Diego Lz. de Ipiña Gz. de Artaza
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Capítulo 5 - b: Hilos. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Ejemplo de hilos: un applet Un.
/ Teléfono : Web : Build Solutions IT.
Launch with Confidence User Experience (UX) Diseñando una experiencia por y para los usuarios Presentado por: Rob [Senior Engineer]
Teoría de Sistemas Operativos
Patrones de Diseño: Command
Especialista en Business Intelligence Integration Services SSIS Paquetes y Tareas de Flujo de Datos Microsoft SQL Server 2008 R2 Suscribase a
Informatic Topics M. Sc. Juan Carlos Olivares Rojas February, 2009.
Test-Driven Development Juan Carlos Olivares Rojas MSN:
User Datagram Protocol UDP Juan Pablo Araneda Danilo Araya Z.
Michael Ángelo De Lancer Franco  DNS: es un protocolo de resolución de nombres para redes TCP/IP, como Internet o la red de una organización.
Desarrollo de aplicaciones empresariales con Web Services
Servlets Servlets son módulos que extienden a servidores orientados a request/response, como por ejemplo Servidores Web “java-enabled”. Un servlet puede.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
WWW. WIRELESS WIFI Wireless-Fidelity Es un mecanismo de conexión de dispositivos electrónicos de forma inalámbrica.
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris Servlets.
MICROSOFT POWER POINT 2010.
Introducción Nivel 4. Modelo OSI Propiedades Nivel 4 Entrega de mensajes garantizada. Entrega de mensajes en el mismo orden en el que fueron enviados.
Taller de Inteligencia de Negocios SQL Server Integration Services SSIS Semana 2.
Programación Orientada a Objetos
• SQL Server Integration Services SSIS
.NET Multiplataforma (Windows, Linux, OS X)
Encapsulamiento Miguel Ángel Rojas Aguilar Esthela Carmina Carranza Cabrera.
ECOM-6030 PASOS PARA LA INSTALACIÓN DE EASYPHP Prof. Nelliud D. Torres © - Derechos Reservados.
Un juego de adivinanzas: ¿Dónde está el tesoro? A1B1C1D1E1F1 A4B4C4D4E4F4 A2B2C2D2E2F2 A5B5C5D5E5F5 A3B3C3D3E3F3 A6B6C6D6E6F6 Inténtalo de nuevo Inténtalo.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
#GlobalAzure para desarrolladores.NET Adrián Díaz Cervera Israel Urrea Carballo Arquitecto Software Arquitecto de Sistemas.
Agenda  Historia  Características  Mecanismos de concurrencia  Ejemplos  Desventajas  Accesibilidad  Conclusiones  Bibliografía.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Crear Aplicación Cliente para Conectarse a una Base de Datos.
Los verbos reflexivos Objective: To be able to talk about your daily routine. Getting ready for a special event.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Taller de Inteligencia de Negocios SQL Server Integration Services SSIS Sesión 2.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
Go to cessarsc9.wixsite.com/clasedeespanol Click in this icon to see the presentation.
Welcome to PowerPoint gdskcgdskfcbskjc. Designer helps you get your point across PowerPoint Designer suggests professional designs for your presentation,
Transcripción de la presentación:

#helloWindows10 Hel10 Windows 10!

#helloWindows10 Alex Casquete Carlos Carrillo Construyendo una suite empresarial con App Services

#helloWindows10 Desarrollador en Plain Desarrollador en Plain

#helloWindows10 Comunicación App to App Activar por URI una app específica Enviar archivos Soporte para consultar Uri Storage compartido App Services Agenda

#helloWindows10 Anteriormente en Windows 8.1

App to App en Windows 8.1 Contrato compartir DataTransferManager.ShowShare UI(); El usuario elige la aplicación destino

Launcher.LaunchUriAsync(new Uri("sampleapp:?ID=aea6")); Launcher.LaunchFileAsync(file); App to App en Windows 8.1 Protocol URI/Protocolo Usuario/OS elige app

App to App en Windows 10 UWP

App to App UWP ofrece muchas APIs que permiten interactuar con la plataforma Windows.ApplicationModel.Contacts Windows.ApplicationModel. Windows.System.Launcher.LaunchUriAsync para lanzar configuración, mapas, tienda, etc…

App to App Además las aplicaciones pueden interactuar Asociación Uri mediante LaunchUriAsync Asociación fichero mediante LaunchFileAsync Lanzar para obtener resultados mediante LaunchUriForResultsAsync App Services

Mejoras App to App en Windows 10 Enviar token de archivo, enviar datos Lanzar una app específica App Services Lanzar para obtener resultados

DEMO App to App en Windows 10

URI Activation++ Invoke a specific app var options = new LauncherOptions(); options.TargetApplicationPackageFamilyName = "24919.InstapaperIt"; var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com"); await Launcher.LaunchUriAsync(launchUri, options);

URI Activation++ Send Files var options = new LauncherOptions(); options.TargetApplicationPackageFamilyName = "24919.InstapaperIt"; var token = SharedStorageAccessManager.AddFile (gpxFile); ValueSet inputData = new ValueSet(); inputData.Add("Token", token); var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com"); await Launcher.LaunchUriAsync(launchUri, options, inputData);

Query URI Support Discover if app already installed to handle a Uri var queryUri = new Uri("instapaper:"); await Launcher.QueryUriSupportAsync(queryUri, LaunchUriType.LaunchUri); ? var queryUri = new Uri("instapaper:"); string packageFamilyName = "24919.InstapaperIt"; await Launcher.QueryUriSupportAsync(queryUri, LaunchUriType.LaunchUriForResults, packageFamilyName);

Launch for Results Launching the app var options = new LauncherOptions(); options.TargetApplicationPackageFamilyName = "24919.Instap"; var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com"); await Launcher.LaunchUriForResultsAsync(launchUri, options, data); var resultData = new ValueSet(); resultData.Add("Result", value); operation.ProtocolForResultsOperation.ReportCompleted(resultData);A App1App2

URI Activation for Device Settings CategorySettings pageMobile and/or DesktopUri System Display (on desktop) Screen (on mobile) Bothms-settings://screenrotation NotificationsBothms-settings://notifications Storage SenseBothms-settings://storagesense Battery SaverBothms-settings://batterysaver MapsBothms-settings://maps DevicesBluetoothBothms-settings://bluetooth Network and Wi-fi Wi-FiBothms-settings://network/wifi Airplane modeBothms-settings://network/airplanemode CellularBothms-settings://network/cellular Data SenseBothms-settings://datasense NFCMobile onlyms-settings://proximity ProxyDesktop onlyms-settings://network/proxy More… [See documentation for complete list]

#helloWindows10 Apps del mismo publicador pueden compartir carpetas

Carpeta de publicador compartida

Interacción con carpetas compartidas Acceso a carpeta compartida Windows.Storage.ApplicationData.Current.GetPublisherCacheFolder("Folder"); Limpiar carpeta compartida Windows.Storage.ApplicationData.Current.ClearPublisherCacheFolderAsync("Folder");

DEMO

Drag and Drop

…experiencia en Windows

…pero sin soporte en aplicaciones WinRT 

Hasta ahora! … AppExplorador de archivos

Simple in XAML: New in UIElement Drag source: Drag target: <Button x:Name="Copy" AllowDrop="True" DragOver="Copy_DragOver" DragLeave="Clear_DragLeave" Drop="Copy_Drop" Style="{StaticResource DropTargetButton}" >

Sharing source fills DataPackage async private void DragImage_DragStarting(UIElement sender, DragStartingEventArgs args) { // get the file StorageFolder installFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; StorageFolder subFolder = await installFolder.GetFolderAsync("Assets"); var file = await subFolder.GetFileAsync("MSLogoImage.png"); // turn it into a stream and set it as a bitmap in the datapackage var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); args.Data.SetBitmap(RandomAccessStreamReference.CreateFromStream(stream)); // also set it as a file in the datapackage var files = new List (); files.Add(file); args.Data.SetStorageItems(files); args.Data.RequestedOperation = SetRequestedOperation(); }

Share Target unpacks DataPackage private async void Copy_Drop(object sender, DragEventArgs e) { TitleTextBlock.Text = e.DataView.Properties.Title; DescriptionTextBlock.Text = e.DataView.Properties.Description; // Get the text and the first file from the data package SharedTextTextBlock.Text = await e.DataView.GetTextAsync(); var photoFile = (StorageFile)(await e.DataView.GetStorageItemsAsync())[0]; // Show the image that has been dropped onto us var imageSource = new BitmapImage(); imageSource.SetSource(await photoFile.OpenReadAsync()); sharedPhotoImage.Source = imageSource; }

DEMO

Con App Services, las aplicaciones pueden proveer servicios a otras aplicaciones.

“Servicios Web” en el dispositivo Cliente A Cliente B Background Task Aplicación con App Service

Escenario: Bar Code Scanning Bar Code decoding App Service Image bytes in ValueSet or FileToken Decoded data

Escenario: Suite Empresarial de Aplicaciones App Service Inventario en cache Cliente A Cliente B Interación con Servicio Web App Service Proximity Reading Services

Comunicación Bidireccional Cliente y “Servidor” pueden mantener abierta una comunicación bidireccional. El cliente también puede subscribirse al evento “RequestReceived” Ambos pueden Enviar y Recibir mensajes.

DEMO App Services

AppServiceConnection connection = new AppServiceConnection(); connection.AppServiceName = "microsoftDX-appservicesdemo"; connection.PackageFamilyName = "24919ArunjeetSingh.InstapaperIt"; AppServiceConnectionStatus connectionStatus = await connection.OpenAsync(); if (connectionStatus == AppServiceConnectionStatus.Success) { //Send data to the service var message = new ValueSet(); message.Add("Command", "CalcSum"); message.Add("Value1", Int32.Parse(Value1.Text)); message.Add("Value2", Int32.Parse(Value2.Text)); //Send message and wait for response AppServiceResponse response = await connection.SendMessageAsync(message); if (response.Status == AppServiceResponseStatus.Success) { int sum = (int)response.Message["Result"]; new MessageDialog("Result=" + sum).ShowAsync(); } } else { //Drive the user to store to install the app that provides the app service } App Services – Client

namespace AppServicesDemoTask { public sealed class AppServiceTask : IBackgroundTask { private static BackgroundTaskDeferral _serviceDeferral; public void Run(IBackgroundTaskInstance taskInstance) { // Associate a cancellation handler with the background task. taskInstance.Canceled += TaskInstance_Canceled; // Get the deferral object from the task instance _serviceDeferral = taskInstance.GetDeferral(); var appService = taskInstance.TriggerDetails as AppServiceTriggerDetails; if (appService.Name == "microsoftDX-appservicesdemo") { //Maybe ValidateCaller(appService.CallerPackageFamilyName) ?? appService.AppServiceConnection.RequestReceived += RequestReceived; } }... App Services – Service (1/2)

private async void RequestReceived(AppServiceConnection sender, AppServiceRequestReceivedEventArgs args) { var message = args.Request.Message; // This service uses a Command keyed entry for the client to invoke services from the App Service string command = message["Command"] as string; switch (command) { case "DoIt": { var messageDeferral = args.GetDeferral(); int value1 = (int)message["Value1"];... Do some processing //Set a result to return to the caller var returnMessage = new ValueSet(); returnMessage.Add("Result", result); var responseStatus = await args.Request.SendResponseAsync(returnMessage); messageDeferral.Complete(); break; } case "Quit": { //Service was asked to quit. Complete service deferral so platform can terminate _serviceDeferral.Complete(); break; } } } App Services – Service (2/2)

Declaring App Service

Debugging Tips Debugging your App Service

Getting the Service PackageFamilyName Later on, ‘Store – Associate App with the Store’ sets the correct PackageFamilyName In Tech Preview, Store not open yet for UAP Call Package.Current.Id.FamilyName to return PFN to use in debugging

Debugging App Services 1. Set breakpoints in app service code 2. Check ‘Do not launch but debug my code when it starts’ in project properties 3. Launch app service foreground app in debugger – nothing happens! 4. Run client app to connect to app service 5. Debugger attaches and breaks on your breakpoint

DEMO App Services

Los App services proporcionan otra forma de comunicar las aplicaciones.

Más consideraciones sobre App Services…

Ciclo de vida Se activan bajo demanda Los clientes pueden finalizar el servicio liberando la conexión o enviando un mensaje para que se finalize Al suspender la app los app services invocados se finalizan. Insuficientes recursos pueden causar error al ejecutar o finalizar el servicio AppServiceConnectionStatus.ResourcesNotAvailable AppServiceResponseStatus.ResourceLimitsExceeded

¿Qué protocolo utiliza? App Services están diseñados para ser flexibles y ligeros y se modelan como servicios web REST. API de mensajes Request-Response Datos empaquetados como ValueSets Fácil de utilizar con distintos tipos de mensaje Cuando publicamos un App Service, definimos un endpoint Un endpoint de App Service proporciona a la app una forma de enviar datos al servicio y esperar por resultados.

Crea un SDK Cliente Crea una serie de métodos más funcionales y más significativos que faciliten todos los detalles de implementación de la comunicación. Publica un SDK cliente para tu Servicio Distribuye el SDK como paquete NuGet o similar

Securizar App Services Construir nuestros propios mecanismos de validación encima de app services. La forma más simple es mediante una whitelist basada en el PackageFamilyName El PackageFamilyName de la app se llama con cada petición Posibilidad de construir una validación más compleja utilizando ValueSets una vez la connexion se ha establecido Whitelist puede estar seguida por un intercambio de certificado X.509.

Versionado Sigue el modelo de versionado de Web REST API Si necesitas hacer un breaking change en un App Service endpoint, debes exponer un nuevo endpoint y proporcionar compatibilidad con el antiguo.

#helloWindows10 App to app Lanzar una app específica Lanzar una app para obtener resultados Enviar token de archivo App Services

#helloWindows10 Q&A

#helloWindows10 No olvides realizar la encuesta ¡Gracias! Alex Carlos