Development – Page 2 – The Undocumented API

Category: Development

API Management Made Easy

API-Management Azure API Management Preview is a service available in Microsoft’s cloud platform that provides an easy to use hosted Web environment to create a full featured developer portal for your RESTful Web API’s and produce rich analytics to gain insight into API usage. If you are building RESTful Web API’s as part of your employee or customer facing solutions, this is a must have service. In this article I will show you how easy it is to get started with API Management.

 

What is API Management?

Todays modern apps are built on a foundation of scalable cloud services and storage. A common architecture pattern for modern apps is to provide an application programmable interface, a.k.a. an API, to open up the functionality to more developers who then build client apps, mashups or provide integration between apps.

These Cloud Service API’s typically expose their endpoints via HTTP using REST (representational state transfer) protocol (GET, POST, PUT, DELETE) and are referred to as RESTful web API’s. By using this approach the implementation details of the API such as language, database, runtime, operating system, etc. are all abstracted. RESTful web API’s are by nature cross platform and can be consumed from any language, runtime, operating system, etc. that supports invoking HTTP requests.

It is rather easy today to build RESTful API’s in your language and platform of choice. Once you go down this path though it quickly becomes apparent you will need a great deal more infrastructure supporting your API’s in order to make them scalable, secure and are being used according to the usage and security policies that you define. This is where API Management comes into play.

An API Management system will wrap your API in its loving virtual arms and provide an additional layer of services. A typical set of services that an API Management system provides are: Read More

Publish your Game to Windows using Unity

microsoft-favicon   Plus    unityLogoEqualLove

The following resources are mirrored on Joe Healy’s Wiki

GENERAL

GET HELP

LEARN

SOURCE CODE

WINDOWS STORE

WINDOWS PHONE

2D

MISC

App Anatomy: Virtuoso, a Music Sequencer

Overview

Virtuoso is a music sequencer for Windows 8.1. The app provides a fun and easy to use interface that allows you to compose original music using drums, bass, strings, vibes and guitar. Virtuoso will play 16 beats of music in a continuous loop. You can interact with the sequencer in real time changing notes, tempo and instrument volumes. You can save your songs to disk for playback at a later time.

Screen2

Musicians can use Virtuoso as a scratch pad for their musical ideas and parents can use Virtuoso to teach their children the basics of music; rhythm, harmony and melody.

Features

  • 5 Instruments, 65 Voices
  • 16 Beat Sequencer
  • Change tempo and mix instruments in real time
  • Play and Pause control
  • Save your songs to disk
  • Built in Tutorial

This article will cover the following topics:

  • Class Structure
  • Playing Audio using the SharpDX.XAudio2 API
  • Background Threads
  • Updating the UI from a background thread using the Dispatcher
  • App State File IO using XML Serialization
  • Deploying files at runtime using Zip File Decompression

Read More

Continuous Innovation Applied – The Fast Path to the Windows Store

The beginning is the most important part of the work – PLATO, The Republic

For many developers participating in the app economy is an exercise in learning to be a startup. You want to create a product (app), launch it into the marketplace (Windows Store), drive sales (downloads), receive feedback from customers (ratings and reviews) , make improvements and release the next version of your app. This is a cyclical process that is explained in great detail in the The Lean Startup by Eric Reis.<

One of the concepts that Eric lays out in his book is the idea of Continuous Innovation. This is a 3 step approach to creating, publishing and marketing your product.

image

Continuous Innovation

One of the key tenants of Continuous Innovation is to focus on what is called a Minimal Viable Product (MVP). The goal of a minimal viable product is to get through the Continuous Innovation cycle  as quickly as possible with minimal effort.

Gone are the days of yearlong development efforts followed by the big product launches. In the app economy you need to build fast, collect feedback from your customers and iterate on the next version. You need to test both the technical as well as the business hypothesis and implement features that customers want and fail fast on the things that are not driving downloads.

By starting out with a Minimal Viable App and moving through the Continuous Innovation cycle quickly, you will learn the entire process of how to launch a product, market that product, gather customer feedback and iterate on the next version. This skill set is what every developer needs to learn to be successful going forward in our industry,

Getting Started

For many developers coming up with a product idea can be daunting. The key to successful apps is typically tied to the richness of the data that you provide to your customer along with the set of features you provide for working with that dat

To help you with the process of getting an app in the store using open data API’s and learning how to apply Continuous Innovation the Technical Evangelist team here at Microsoft has created a set of Windows App Starter Kits. These starter kits are based on open data API’s which give you the rich data set you need to create a compelling application or a mashup.

To get started let me introduce you to the wonderful world of Open Data API’s.

Motivation is what gets you started. Habit is what keeps you going. – Jim Rohn

The Wonderful World of API’s

Using open data API’s are a great way to get started creating compelling apps. The internet it turns out is source of rich content. Who knew! You can get a sense of the vast numbers of open data API’s by visiting API Hub or Programmable Web. There are thousands of API’s covering all industry segments and topics.

APIhub

Upon investigation you will soon learn that not all API’s are created equal. There are differences in quality, speed, call thresholds, authentication and so on. Spending some time to validate API’s of interest is well served. Most APIs require the developer to register and request a Developer Key. Some API’s are throttled, limited to a certain number of calls a day or second. Many are free but some are not. Here is a list of criteria that you can use to validate API’s of interest:

  • Developer Key Required
  • API protocol – REST or SOAP?
  • Authentication Required – OAuth, SessionID, etc.
  • Performance – how well does the API perform?
  • Service Level Agreement (SLA) – is the API always available?
  • Payload format – JSON, XML, other
  • Throttled – If yes what is the limit?
  • Free or Pay
  • Is the API mashable – can the data be used as input to another API?

Last but not least is to read the Terms and Conditions of the API provider. The details of how often you can call the API and other usage rules such as a requirement to display their logo and to have that logo link to their site will be documented. If you are going to use an API read the T’s and C’s thoroughly before investing hours of development.

For more detailed coverage of API Basics see Stacy Mulcahy’s post here.

Windows App Kits

In order to streamline your ability to leverage API’s to create compelling apps for Windows, the US Technical Evangelist team has created a portfolio of 22 Windows 8 and 12 Windows Phone 8 Starter Kits that you can use to create your minimal viable product.

image

There are kits that provide solutions for Windows 8, Windows Phone and in either C# or HTML5/JS. The Chuck Norris Starter Kit also provides a VB implementation. There is also a starter kit for those who want to learn how to leverage Azure Mobile Services.

Each Kit comes with one or more Visual Studio solutions, a README.MD and associated blog posts that document how to customize each kit. There are also several kits that have corresponding Video tutorials on Channel 9.

Here are examples of apps that have been created using these starter kits: