The second part of the article I posted earlier is out now: Cloud-Connected Mobile Apps – Build a Xamarin App with Authentication and Offline Support. I think it's been out for a week already, but I've been catching up from the last hurrah of summer vacations.

This Part 2, which covers the Xamarin client side of the project, is the piece that I mostly wrote, with contributions by Mike Wasson on the authentication parts. The code for both the backend and the client are available now via https://aka.ms/altostratusproject (which goes to GitHub). Feel free to make contributions!

And a reminder that there are three extra pieces of content for this article that are posted on my blog here already:

Enjoy


We just published Part 1 of a two-part series in MSDN Magazine that covers the cloud-connected mobile app project I worked on earlier this year, which we called “Altostratus” (the name of an interesting cloud).

Part 1 is entitled “Cloud-Connected Mobile Apps – Create a Web Service with Azure Web Apps and WebJobs”, and is on https://msdn.microsoft.com/en-us/magazine/mt185572. I didn’t write much of this first article, personally, as it covers the backend part of the project and I worked primarily on the client.

The Xamarin client is the focus of Part 2 that will be published in early September. In advance of that, you’ll see a couple posts here with some extra material that didn’t fit into the ~5000 words of the article. I’ll be making those posts shortly because we want to make sure the URLs are accurate before going to print. 🙂

The code for both the backend and the client are available now via https://aka.ms/altostratusproject (which goes to GitHub). It is an open project, so if you see anything to improve, we’re happy to accept contributions.

Enjoy


I know it’s been a while since I posted much on my blog here. The coding project I was engaged in at Microsoft took up much of time between January and March, and the focus on coding didn’t leave much time to write about said coding. The //build came along and I’ve been working on Visual Studio feature guides with our marketing team.

I also discovered, in the process of coming back to my blog and updating WordPress, that the MySQL database that you can get through an Azure account (where I host this site), has a 20MB limit on ClearDB’s free tier. While updating WordPress, which does database updates as well, the MySQL file exceeded that limit and so the database got set to read-only. This, of course, meant that the database couldn’t be updated which then got me stuck in the WordPress database update loop-of-death.

Having returned from //build last week (where I spent most of my time in the Visual Studio cross-platform development kiosk talking to developers about Cordova, Xamarin, the Universal Windows Platform, and cross-platform C++), I finally got this sorted out by deleting all the spam comments from the WordPress database to reduce the file size, after which the update worked and I can post again.

[Addendum: the spam comments continue to come in at a frightening pace! Fortunately, the akismet plugin for WordPress does a good job at catching them, and will supposedly auto-delete in 15 days. However, the sheet volume of spam (many of which are 1-2 pages long) and all of akismet’s metadata it saves for each one, generates quite a few MB of garbage data in the database. So I’m having to monitor all this more closely. I hope soon to migrate the whole DB to an Azure database with a much larger quota.]

Speaking of cross-platform development, two other pieces I worked on recently are summary topics for Visual Studio Application Lifecycle Management (ALM) features as they apply to Cordova and Xamarin projects. You can find those topics on the MSDN Library:

In the meantime, our coding project team has been writing up our learnings for MSDN Magazine, so you’ll see those articles later this summer. I’m working on cleaning up my Xamarin client code, which will be the focus of Part 2 of the article.

A few folks have asked, by the way, whether I’ll be updating Programming Windows Store Apps with HTML, CSS, and JavaScript for Windows 10 and the Universal Windows Platform. Because I’m no longer with the Windows team, I won’t have working hours to focus on that project. What I’m looking at, however, is moving to something of an open-authoring model. I’m hoping first to split the Windows 8.1 book into two parts. The first would be WinJS-focused and separate from Windows, as WinJS is now its own open-source library. The second part would be Windows apps using JavaScript without the WinJS stuff.

Then I can put the files on GitHub and invite contributions, serving more in the role of an editor than a writer, though I’d probably still write some. Anyway, let me know what you think of the idea!



I wanted to let you all know that starting September 2nd, I'll be taking on a new role as Senior Content Developer for Azure and Visual Studio, as part of the Developer Answers team in Microsoft's Cloud & Enterprise Division. This means that content production will be even more of my focus than it has been in the past, when having a Program Manager title often meant getting involved in a variety of other activities!

Blogging will certainly continue, both on Windows and also on Azure and other topics as I expand into those areas. In the meantime, I've been blessed to have a little break between this and my former job, which has provided lots of time for home projects and spending time with family before my son's school starts up again.


Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition, is now released! You can find this free ebook (PDF, Mobi, and epub) it on http://blogs.msdn.com/b/microsoft_press/archive/2014/04/08/free-ebook-programming-windows-store-apps-with-html-css-and-javascript-second-edition.aspx. Companion content is on http://download.microsoft.com/download/6/6/5/665AF7A6-2184-45DC-B9DA-C89185B01937/Programming_Windows_8_Apps_HTML_CSS_JavaScript_2E_CompContent.zip and the videos are on http://microsoftpressbooks.azurewebsites.net/programming_windows_apps_with_html_2ed/.

I have to say that it's ironic that although the book covers Windows 8.1 and is mostly applicable to Windows Phone 8.1 as well, announcements at //build changed the landscape almost immediately. For one, WinJS is now open source and isn't specific to Windows Store Apps, and WinJS 2.1 for Windows Phone has some differences from WinJS 2.0 for Windows Store apps. Oh well. Guess it's onto the third edition now! Still, I suspect that this book, being free and the most comprehensive, will continue to be the primary WinJS reference, open source or not.

 

 


This page is the collection point for errata in my book, Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition. If you find an error, please check the know error list below. If you've found a new error, please leave a comment with the details and I'll migrate into the body of this post. Thank you!

Page numbers given here refer to the PDF, but I also try to give the name of the nearest section header or sidebar title.

Multiple Chapters:

  • The website http://dev.windows.com has been revamped to include Windows Phone, Desktop, Hardware, and IE, so a "Dashboard" link no longer appears at this URI. To get to the right page, use the drop down along the top of the page to select "Windows Store Apps". This takes you to http://msdn.microsoft.com/en-US/windows/apps/ where "Dashboard" is visible.

 

Chapter 1:

  • Page 41: As of Windows 8.1 Update 1 (released shortly after the book was complete), local loopback and "brokered WinRT components" allow for inter-process communication between side-loaded apps and desktop processes. These capabilities are specifically designed for side-loaded apps in enterprise scenarios, and are not supported for apps installed via the Store. For more information, see Brokered WinRT component project templates now available (Building Apps for Windows Blog) for all the details.
     

Chapter 8:

  • Page 432: In the footnote I mention that WinJS.UI.ViewBox was removed for WinJS 2.0. Apparently it made it back in late in the game, so you can use it directly instead of writing your own code as shown in the book.
  • Page 453. I mention that the WinJS.UI.Hub control is only present in WinJS 2.0 for Windows 8.1. On Windows Phone 8.1 and WinJS 2.1 you have the WinJS.UI.Pivot control instead. The two are supposed to have virtually identical interfaces, so you should be able to replace WinJS.UI.Hub with WinJS.UI.Pivot and WinJS.UI.HubSection with WinJS.UI.PivotItem section in your HTML and be in business. I have not tested all this, however.

 

Chapter 11:

  • Page 612, last "Hint" under the section, "KnownFolders and the StorageLibrary Object" (or just above "Removable Storage")–the Library management sample now shows the proper use of removeEventListener for definitionChanged. (Got that bug fixed!)

 

Chapter 13:

  • Page 707: numbering in the list should start at 1.

 

Appendix D:

  • Page 1303: The AppointmentProviders example in the companion content has a bug on line 60 of html/manageAppointment.html, where the method call should be reportCompleted (it's missing the "d" at the end) and will throw an exception as it currently exists.

As of last week I assumed management and content development for the Windows App Builder’s Blog, which I’m sure most of you follow already.

What I’d love to hear from you is this: what content would you like to see on the blog? What questions are you dying to have answered? What ‘inside stories’ from the Windows engineering team would you like to know? Let me know in the comments!


As I'll be off for the holidays and not blogging until January, I thought to wrap up this year with this quickstart guide. I put together it together earlier this year for some of the business development guys at Microsoft who were helping other devs get started.

Getting Started Developing for Windows 8.1

A Cheat Sheet for Ramping Up Quickly

Getting started developing for Windows very much depends on the type of app being developed and the choice of language/presentation layer. The following information provides developers and designers with a foundation for finding the right path to explore the rich library of content available from Microsoft, including the best places to start your research.

Documentation

1.       Begin with Start Here which is a presentation-style walkthrough with the most essential links you need.

a.       The first page, Start, gets you the tools.

b.      The second page, Explore, highlights the language options and gives essential links to those starting tutorials. The key here is that you need to choose a language, and the basic guidance is “use what you know”. If you know more than one option, then you probably have a good sense of what is better for the app you want to build. If there are questions, we recommend consult with your Microsoft contacts on specific details that might make a difference in the choice:

                                                              i.      JavaScript with HTML:Create your first Windows Store app using JavaScript

                                                             ii.      C# or Visual Basic with XAML: Create your first Windows Store app using C# or Visual Basic

                                                            iii.      C++ with XAML: Create your first Windows Store app using C++

                                                            iv.      C++ with DirectX: Create your first Windows Store app using DirectX

c.       The third page, Design, points to planning and design guidance.

                                                               i.      Defining Vision is a good topic to think about what you’re trying to accomplish with an app. It has a number of sub-topics that go deeper into various areas.

                                                             ii.      Designers in particular need to start withDesigning UX for Apps as that contains the guidance around that aspect.

d.      The fourth page, Develop, gives the key on-ramping links to feature-specific tutorials. Many of these are also linked from the Learn to build Windows Store apps, which is the top-level table of contents for many areas of detail. This page is something you really just look at to know what’s all there—takes only a minute.

e.      The fifth page, Sell your app, is about the Store.

2.       I also recommend Chapter 1 of Programming Windows Store Apps in HTML, CSS, and JavaScript (a free ebook from Microsoft Press). This is an introduction to the platform from the viewpoint of an app, most of which is language-neutral.

a.       Alongside this, the topics under Windows Store app fundamentals will go a little deeper into each key platform area, like capabilities, contracts, app lifecycle, packaging, and app data.

b.      Two videos called “Beyond Just Beautiful” (Part 1 and Part 2) help raise awareness of non-so-obvious fundamentals of apps. (I made these for Windows 8; they are mostly applicable for 8.1 except that the slide on view states applies now to variable view sizing.)

c.       Note also that the above eBook, though directed toward HTML/CSS/JavaScript apps, is also very helpful to developers working in other languages as approximately 50% of the book is focused on the Windows Runtime APIs and other language-neutral aspects of the platform.

3.       There is also another set of tutorial series based on language choice:

a.       Developing apps (JavaScript and HTML5)–for this we also suggest Chapter 2: QuickStart of Programming Windows Store Apps in HTML, CSS, and JavaScript.

b.      Developing apps (C#/VB/C++ and XAML)

c.       Developing apps (C++ and DirectX)

4.      For some specific scenarios, see the list on In-depth guidance, which includes topics on games, reader apps, banking apps, the Hilo app, getting started for iOS developers, and migrating web or phone apps.

 

Samples

Learning to utilize the extensive samples in the Windows SDK, which cover 95% of the Windows Runtime APIs, is one of the great secrets of rapid app development. We recommend spending a day or so just getting familiar with the samples. Developers who do so will realize a high return on that invested time, as many bits of code that one needs in an app is already written in these samples.

The samples start on http://code.msdn.microsoft.com/windowsapps. The best thing to do is to download the whole kit and caboodle in your chosen language from http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples. Download the “full” package with all the languages so you just have everything. With this you can then:

·         Search in the sample tree for any API you’re interested in (make sure you have Windows index them).

·         The tutorials listed earlier often make reference to these samples, so you’ll already have them when you work through that material.

·         It’s instructive to just spend about 15-30 minutes browsing the folder after you’ve downloaded and unzipped the samples package. The folder names for each sample are very descriptive and will give you a great sense of what’s available (better yet, spend a day doing this, as noted above).

·         The aforementioned ebook, Programming Windows Store Apps in HTML, CSS, and JavaScript, links to every one of the JavaScript samples, and in the process also provides contextual links to the C#/VB and C++ variants of those same samples. The WinRT-related sections of the book, in other words, serve as a contextual index into the samples.

 

When you’re on the samples page, doing a search with feature keywords does a very good job at picking up the right samples. For example, if you want secondary tiles, searching on that term will give you the exact sample you need at the top of the list.

Also, with any given sample, it’s worth spending 5-10 minutes running the sample in VS and trying out all the different scenarios. Almost every sample has a choice of specific scenarios that are demonstrated, and provide descriptive text of what’s going on. They are a fabulous resource.