Software is changing the world. CGC is a Common Gateway Coding as the name says, it is a "common" language approach for almost everything. I want to show how a multi-language approach to infrastructure as code using general purpose programming languages lets cloud engineers and code producers unlocking the same software engineering techniques commonly used for applications.
Software is changing the world. CGC is a Common Gateway Coding as the name says, it is a "common" language approach for almost everything. I want to show how a multi-language approach to infrastructure as code using general purpose programming languages lets cloud engineers and code producers unlocking the same software engineering techniques commonly used for applications.
With no built-in solutions for managing user accounts, Kubernetes has to rely on external systems for this. Can we use one UAA solution for both Cloud Foundry and Kubernetes authentication while building a hybrid deployment?
Troubleshooting .NET Applications on Cloud FoundryAltoros
These slides overview how logs can be employed to troubleshoot .NET app on Cloud Foundry, as well as how to use metrics to enable preventive maintenance.
Reactive Web - Servlet & Async, Non-blocking I/OArawn Park
자바 서블릿(Java Servlet) 기술을 기반으로
리액티브 웹(REACTIVE WEB) 구현 과정을 공유!
1부, Servlet & Async, Non-blocking I/O
2부, Reactive Programing (작성 중)
3부, Spring Reactive Web (작성 중)
NestJS (https://nestjs.com/) is a Node.js framework for building server-side applications. This slide give you a brief introduction of Nest, and shows the examples like Service, Middleware, and Pipe, etc.
Presented at GOTO Amsterdam (2017-06-13)
Video available at https://www.youtube.com/watch?v=YyhfK-aBo-Y
What is risk? Many people aren't sure, but it's not just uncertainty: risk is exposure to uncertainty.
Instead of just plastering over the cracks, security should also involve reducing the size and number of cracks, reducing the opportunities for cracks to appear, reducing the class of errors and oversights that can open a system to failure instigated from the outside. We can learn a lot from other kinds of software failure, because every failure unrelated to security can be easily reframed as a security-failure opportunity.
This is not a talk about access control models, authentication, encryption standards, firewalls, etc. This is a talk about reducing risk that lives in the code and the assumptions of architecture, reducing the risk in development practices and in the blind spot of development practices.
jSession #4 - Maciej Puchalski - Zaawansowany retrofitjSession
Biblioteka Retrofit ułatwia życie programisty. Służy ona do czegoś co w dzisiejszych czasach jest niezbędne, czyli połączenia z internetem aby pozyskać tamtejsze zasoby.
Wszystko to jest sprowadzane do niezbędnego minimum pisanego kodu.
W tej prezentacji opisane zostaną te bardziej zaawansowane możliwości tej biblioteki, razem z drobnym wprowadzeniem czym ona właściwie jest i co potrafi.
With no built-in solutions for managing user accounts, Kubernetes has to rely on external systems for this. Can we use one UAA solution for both Cloud Foundry and Kubernetes authentication while building a hybrid deployment?
Troubleshooting .NET Applications on Cloud FoundryAltoros
These slides overview how logs can be employed to troubleshoot .NET app on Cloud Foundry, as well as how to use metrics to enable preventive maintenance.
Reactive Web - Servlet & Async, Non-blocking I/OArawn Park
자바 서블릿(Java Servlet) 기술을 기반으로
리액티브 웹(REACTIVE WEB) 구현 과정을 공유!
1부, Servlet & Async, Non-blocking I/O
2부, Reactive Programing (작성 중)
3부, Spring Reactive Web (작성 중)
NestJS (https://nestjs.com/) is a Node.js framework for building server-side applications. This slide give you a brief introduction of Nest, and shows the examples like Service, Middleware, and Pipe, etc.
Presented at GOTO Amsterdam (2017-06-13)
Video available at https://www.youtube.com/watch?v=YyhfK-aBo-Y
What is risk? Many people aren't sure, but it's not just uncertainty: risk is exposure to uncertainty.
Instead of just plastering over the cracks, security should also involve reducing the size and number of cracks, reducing the opportunities for cracks to appear, reducing the class of errors and oversights that can open a system to failure instigated from the outside. We can learn a lot from other kinds of software failure, because every failure unrelated to security can be easily reframed as a security-failure opportunity.
This is not a talk about access control models, authentication, encryption standards, firewalls, etc. This is a talk about reducing risk that lives in the code and the assumptions of architecture, reducing the risk in development practices and in the blind spot of development practices.
jSession #4 - Maciej Puchalski - Zaawansowany retrofitjSession
Biblioteka Retrofit ułatwia życie programisty. Służy ona do czegoś co w dzisiejszych czasach jest niezbędne, czyli połączenia z internetem aby pozyskać tamtejsze zasoby.
Wszystko to jest sprowadzane do niezbędnego minimum pisanego kodu.
W tej prezentacji opisane zostaną te bardziej zaawansowane możliwości tej biblioteki, razem z drobnym wprowadzeniem czym ona właściwie jest i co potrafi.
El riego es un tecnología probada y con una altísima eficiencia para la producción. Entre Ríos tiene una base de agua subterránea ideal para profundizar estos modelos en las empresas agropecuarias. El análisis económico y el conocimiento aplicado son las claves para hacer un buen uso del recurso. el intercambio de los que "hacen" con sustento técnico es la clave para seguir creciendo.
Breve descripción de las herramientas web seleccionadas para formar parte de mi Red Personal de Aprendizaje, a través de las cuales realizar búsqueda, filtrar, organizar, crear presentaciones y publicar variada información.
This slide deck (partly German) covers async and parallel programming topics for .NET and C#. For details see http://www.software-architects.com/devblog/2014/02/18/BASTA-2014-Spring-C-Workshop
AJAX is an acronym standing for Asynchronous JavaScript and XML and this technology helps us to load data from the server without a browser page refresh.
If you are new with AJAX, I would recommend you go through our Ajax Tutorial before proceeding further.
JQuery is a great tool which provides a rich set of AJAX methods to develop next generation web application.
Promises are a popular pattern for asynchronous operations in JavaScript, existing in some form in every client-side framework in widespread use today. We'll give a conceptual and practical intro to promises in general, before moving on to talking about how they fit into Angular. If you've ever wondered what exactly $q was about, this is the place to learn!
- Practical exercises on the use of the threads with TCP
- References
YouTube link :
https://www.youtube.com/playlist?list=PLtDIUAtyP4lhV7CsYfLuIx26UeG4J-ujZ
GitHub :
https://github.com/Ghadeerof
Fault tolerance in general is a challenging topic. Yet we need fault toleranct designs more badly than ever in order to provide robust, highly available systems - especially in times of scale out systems becoming more and more popular.
Unfortunately, most developers do not care too much about a fault tolerant design, either because they are scared by the complexity of the realm or because they do not care enough. One of the problems is that a lack of fault tolerant design does not hurt a lot in development or in QA, but it hurts a lot in production - as Michael Nygard said: "It's all about production!" (at least figuratively).
In this presentation I do *not* try to give a general introduction to fault tolerant design. Instead I pick a few generic case studies that demonstrate the results of missing fault tolerant design, try to sensitize a bit about the production relevance of fault tolerant design and then go along with a few selected patterns. I picked a few patterns which are surprisingly easy to implement and help to mitigate the problems of the former case studies.
This way I try to show two things:
1. A piece of architecture or design as a pattern is not necessarily hard to implement. Sometimes the code is written quicker than it takes to explain the pattern beforehand.
2. Even if fault tolerant design as a general topic might be hard, some parts of it can be implemented very easily and it's more than worth the coding effort if you look how much better your system behaves in production just from adding those few lines of code.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Accelerate your Kubernetes clusters with Varnish Caching
Conociendo el consumo de datos en Windows Phone 8.1
1.
2.
3.
4.
5.
6.
7. try
{
// Creamos el HttpClient
HttpClient httpClient = new HttpClient();
// Opcionalmente definimos los Headers
httpClient.DefaultRequestHeaders.Accept.TryParseAdd("application/json");
// Y hacemos la llamada
string responseText = await httpClient.GetStringAsync(
new Uri("http://services.odata.org/Northwind/Northwind.svc/Suppliers"));
}
catch (Exception ex)
{
...
}
8.
9. try
{
var client = new HttpClient();
var uri = new Uri(" http://example.com/customers/1");
var response = await client.GetAsync(uri);
// código de status y la respuesta del servicio
var statusCode = response.StatusCode;
// EnsureSuccessStatusCode tira una excepción cuando no es HTTP 200
response.EnsureSuccessStatusCode();
var responseText = await response.Content.ReadAsStringAsync();
}
catch (Exception ex)
{
...
Content
Headers
StatusCode
ReasonPhrase
IsSuccessStatusCode
Source
Version
RequestMessage
}
HttpClient
A diferencia del ejemplo anterior, usa GetAsync en lugar de GetStringAsync si necesitas el código de
respuesta, headers, etc.
10. try
{
var client = new HttpClient();
var uri = new Uri("http://example.com/customers/1");
var response = await client.GetAsync(uri);
// display headers
foreach (var header in response.Headers)
{
HeadersText.Text += header.Key + " = " + header.Value + "n" ;
}
ResultsText.Text = await response.Content.ReadAsStringAsync();
}
catch (Exception ex)
{ ...}
11. var client = new HttpClient();
// se agregan los headers
var headers = client.DefaultRequestHeaders;
headers.Referer = new Uri("http://contoso.com");
var ok = headers.UserAgent.TryParseAdd("testprogram/1.0");
// se hace la petición
var response = await client.GetAsync(uri);
// se obtiene la longitude de la respuesta
var length = response.Content.Headers.ContentLength.Value;
byte[] buffer = new byte[length];
Headers
Es recomendable usar el método TryParseAdd para recibir un booleano en
lugar de una excepción en caso de algún fallo.
Header Access
Accept read/write collection
AcceptEncoding read/write collection
AcceptLanguage read/write collection
Authorization read/write
CacheControl read/write collection
Connection read/write collection
Cookie read/write collection
Date read/write
Expect read/write collection
From read/write
Host read/write
IfModifiedSince read/write
IfUnmodifiedSince read/write
MaxForwards read/write
ProxyAuthorization read/write
Referer read/write
TransferEncoding read/write collection
UserAgent read/write collection
12. try
{
var client = new HttpClient();
// estamos mandando un delete request
var request = new HttpRequestMessage(HttpMethod.Delete, uri);
// no esperamos una respuesta, pero lo usamos de todas formas
var response = await client.SendRequestAsync(request);
// mostramos el status code del request
HeadersText.Text = "Status: " + response.StatusCode + "n";
}
catch (Exception ex)
{ … }
Delete
Get
Head
Options
Patch
Post
Put
Also, new
HttpMethod(string) for
your own methods
SendRequestAsync
HttpClient incluye los métodos para Put y Post, pero también se puede utilizar el método
SendRequestAsync para hacer cualquier tipo de request, incluyendo Delete
Hola, en este módulo conoceremos más sobre el consumo de datos en Windows Phone 8.1 y algunos cambios que se han realizados en esta versión del sistema operativo.
Conoceremos lo que todos deben de saber acerca del consumo de datos en Windows Phone 8.1. Además conoceremos cómo usar HttpClient, para hacer llamadas a directas a servicios web externos. Y además a cómo se pueden crear servicios de backend con Azure Mobile Services además de lo fácil que es crear uno desde Visual Studio
Así que, vamos por lo básico en el consumo de datos
Esto es algo de verdad muy simple, pero los dispositivos móviles no están siempre conectados a Internet (si, no siempre tienen una conexión de internet buena). Y hay veces que la gente lo olvida. Esto es algo que se debe de considerar en las aplicaciones, que no siempre se contará con red WiFi o red celular y esto trabaja diferente que en una PC.
Otra cosa a considerar son los costos de descargas para los usuarios que usan una aplicación. Y avisar a los usuarios o darles la opción de solo sincronizar o descargar datos pesados con una conexión WiFi, y estar seguro que en caso de que no, no se descarguen demasiados datos a la aplicación.
Otra forma es que muestres información precargada, así cuando ingrese a la aplicación no vea un mensaje de "Espera mientras cargamos el contenido". Esto dará una mala experiencia de usuario.
Para que se pueda utilizar, es necesario activar un capability en Windows Phone .1 desde el Package.appxmanifest de la aplicación, exactamente el de Internet (Client & Server)
HTTPClient es una API bastante fácil de usar y muy flexible y tan complicado como tú quieras. Así que esta es la forma en la que se usa cuando no tienes un servicio backend propio. Es más usado en servicios REST, y cuando necesitas algo tan preciso y exacto.
Esta es la forma sencilla de usar HttpClient, donde únicamente estaríamos obteniendo un string que podría ser un json, xml o lo que sea.
En el código de ejemplo, sólo creamos un HttpClient, después definimos los headers, que en este caso sería el Header de Accept y al final llamamos al servicio con el método GetStringAsync donde le pasamos una Uri.
Hay que resolver al tipo correcto cuando vayamos a usar HttpClient, ya que por default usa System.Net.Http.HttpClient y hay dos.
No hay nada malo en usar entre uno y otro, de hecho System.Net lo descargas desde Nuget para Windows Phone 7/8, donde se usan las API de Windows Runtime.
Así que es recomendable que se resuelva la directiva usando Windows.Net.Http para no tener problemas. En un GetStringAsync no podría presentar problemas, pero en opciones más avanzadas es muy probable que si
Así que si quieres algo más complicado, mandas a pedir el request, en lugar de recibir un string, obtienes un mensaje HTTP y te permite revisar los headers, los codigos de status, obtener el stream del contenido, etc.
Esto es para obtener más detalles de la petición
También puedes leer los headers de la respuesta del servicio, esto viene en un arreglo dentro del objeto de respuesta en responde.Headers
Así que también cuando mandes información, puedes agregar headers en el request.
Al enviar un request de tipo POST, GET, etc, se realiza de la siguiente manera. Se crea el HttpClient y creamos un objeto de tipo HttpRequestMessage con la información requerida que es el método HTTP, del listado de la derecha y la Uri. Mandamos a llamar al método SendRequestAsync del HttpClient y luego obtenemos la respuesta del servidor.
La consulta de servicios en una aplicación no es tan complicado como muchos nos los hacen ver, es bastante sencillo.
Después de conocer cómo se utiliza HttpClient para hacer llamadas a servicios de una forma muy precisa, conoceremos sobre cómo se crea un servicio de backend usando Microsoft Azure y su servicio de Mobile Services. Sólo veremos un pequeño repaso de qué es y cómo se utiliza en una aplicación de Windows Phone.
¿Qué son los Mobile Services? Te permiten crear un servicio de backend en la nube. Esto funciona para multiples plataformas, soporta iOS, Android, aplicaciones de Windows Store y HTML5, así como Windows Phone.
Tu servicio lo puedes escribir en C# o NodeJS.
Además puedes crear notificaciones Push, Acceso Empresarial usando Active Directory, Integración con redes sociales como Facebook, Twitter y Google.
Y tu base de datos puede ser SQL, Oragle, SAP o MongoDB.
Se puede ocupar por muchos dispositivos y tiene todo el potencial que Microsoft Azure ofrece.
En la versión de Visual Studio 2013, ahora te permite crear y modificar tus servicios sin estar en el portal de Microsoft Azure., esto te ayuda a ahorrar tiempo. Aunque también los puedes crear desde el portal de Microsoft Azure.
Así que puedes desde tu proyecto sólo hacer un clic con el botón derecho y seleccionar la opción de Add > Conected Service. Después de eso, puedes administrar tus suscripciones de Microsoft Azure con el que se conectará tu aplicación y desde ahí, se podrá crear un Mobile Service.
Una vez que se haya creado el Mobile Service, agregará las referencias necesarias para utilizarse y en el App.xaml.cs agregará código para la configuración de la instancia de los servicios automáticamente.
Además de todo lo anterior, podemos administrar nuestra base de datos desde el Server Explorer y editar desde ahí mismo en Visual Studio, los scripts del servidor e incluso crear más tablas. Así podrás tener un mejor control de todo lo que realizas en Microsoft Azure.
Aspi que tambien es muy sencillo trabajar con tu Mobile Service. Al crear tu servicio y tablas, todo quedará mapeado como objetos, donde como vemos en el método para inserter un Item, se crea un Nuevo objeto de tipo TodoItem y después lo puedes inserter en tu table.
También puedes crear notificaciones push desde Visual Studio, sin abrir el portal de Microsoft Azure como se hacía anteriormente
Pero no todo se limita a lo que acabamos de ver.
Puedes agregar usuarios a tus tablas y que estos, puedan autenticarse usando su Microsoft Account o desde Twitter, Facebook o Active Directory.
Los scripts del servidor se pueden personalizar para implementar lógica de negocio propia y hasta llamar a servicios de terceros.
Incluso puedes crear tareas en segundo plano.
En el siguiente módulo crearemos una aplicación de Windows Phone, que utilizará una API del Gobierno del DF en México usando HttpClient, además de un pequeño ejemplo de cómo crear tu propio servicio de backend con los Mobile Services de Microsoft Azure.