Welcome to the first of an ongoing blog series based on my latest PluralSight course, Applied Windows Azure.

“Applied Windows Azure” as the name suggests, is about utilizing various building blocks to develop practical, meaningful and cost-effective applications that run on Windows Azure.

This course is broken up into 10 modules (listed below). Within each module, after motivating the use of the relevant building Azure building blocks, I cover the core concepts, key mechanisms and design tradeoffs. Of course, no course can be complete without looking at some code – so  I’ll walk through important parts of an application built specifically for each module.  All source code is provided as part of this course.

Finally, the focus is on breadth learning — the ability to operate across the Windows Azure building blocks in a coherent and productive way.  My hope is that the viewer walks away from this course with an idea to apply these Windows Azure building blocks/patterns to a challenge specific to their own domain.  I encourage the viewers and readers to reach out to me at @vlele or comment below anytime to continue this discussion. The value of a course of this type is greatly enhanced by a two-way conversation.

List of Course Modules:

  • Readymade Execution Units with Azure Web Sites
  • Compute Intensive Apps with Azure Worker Roles
  • Identity & Access with Windows Azure Active Directory
  • HIPAA Compliant Apps with Windows Azure Trust Center
  • Loosely Coupled Apps with Azure Service Bus and Mongo DB
  • Offloading SharePoint Customization to Windows Azure
  • Mobile Services as a backend for any app (not just mobile apps)
  • Integration with Windows Azure BizTalk Services
  • “Big Compute” with Azure HPC Services for Excel
  • “Big Data” with Windows Azure HDInsight

I am going to assume some basic understanding of Windows Azure building blocks. If you are new to Azure, there is some excellent material on MSDN and Windows Azure Toolkit to get you started.

Here’s how each blog post for this series will be structured: For each scenario, we start out with the key motivation for the building block, followed by a discussion of scenarios where this building block may be applicable. Next, we will cover the core concepts in detail by walking through a diagram or some sort. Finally, we will look at some of the key design considerations and tradeoffs associated Azure Web Sites. Read More…

Despite what you hear on the news, not all IT projects undertaken by the federal government are unsuccessful. Granted, there are challenges to overcome, but a talented development team with a clear vision can build bigger and better things. In Washington, D.C., the capital of the federal contracting world, a small IT company called AIS is making a big difference at the FBI using the Agile approach to deliver an application that is being used by the FBI every day.

Agile software development, at its core, is more about focusing on interactions between team members, collaborating with customers, actively involving users, and responding to change quickly…and less about focusing on preparing comprehensive documentation or following processes. However, the AIS team at the FBI uses a hybrid approach that is heavy on constant interaction with the customer and the user community, without losing the significance of processes and documentation. For our application, AIS uses a team of requirements analysts, programmers, infrastructure engineers, software testers and helpdesk support to form a strong software development team to accomplish these tasks. Read More…

Let’s face it, keeping up with the latest on Windows Azure is hard. Whether it is a new feature announcement, a white paper, a code sample or just another attempt at “cloud washing,” it’s difficult to keep up with the latest, no matter how adept you are at mining the various social media channels.

This is why we built this “intelligent” twitter bot ( @AzureUpdates) as a weekend project. @AzureUpdates is designed to keep you to up to date with all things #WindowsAzure, in and around the Twitterverse.

Here’s how it works:

1) The bot looks for new tweets with the hashtag #WindowsAzure or #Azure *AND* have a (retweet_count + favorite_count) of five or more. Furthermore, we count retweets/favorites only if they are coming from a twitter user with a follower_count of 50 or more.

This way we know that we have a “tweet worth retweeting.” (Okay, fine, I admit I’ve been watching too many “ideas worth spreading”-themed TED talks lately.)

2) Since the #Azure hashtag is used by folks who are not just talking about Windows Azure (overzealous Azure developers may have likely forgotten that “Azure” also stands for a variation of the color blue), we apply a supervised machine learning algorithm based on Naïve Bayes classifier to filter out the tweets that are not referring to Windows Azure. (I am making it sound like I know a lot of machine learning when in fact I don’t. I only just completed a coursera course on machine learning. But if you are interested in this topic, I highly recommend it.)

3)  Now, some sneaky folks don’t retweet; they copy the tweet as a quote, modify it ever so slightly, and then tweet it. Now, we don’t want our twitterbot to be tweeting the same tweet again (remember our objective is to reduce the signal/noise ratio). Fortunately it’s not a tough problem to solve, at least for tweets that contain a hyperlink. Since we log every (re)tweet, we have an indexed inventory of all the “reduced”  hyperlinks. So if someone changes the text but points to the same “reduced” hyperlink, we will simply skip that tweet.

4) Okay, we know what you’re thinking. “I could use my super fancy twitter client, set up a search for the hashtag, language, set engagement counts for retweets, replies and favorite, and filter out unneeded tweets” Well, you certainly can, but who has time for that? Hopefully the sum of all the little “intelligent” features we described above is greater than the individual parts.

That’s it. Hope you follow @AzureUpdates.  Before we go, let me will give you one more reason to follow @AzureUpdates.  It is built on all-around favorite #WindowsAzure #MobileServices!

Thanks to Mohit Chabra from AIS for helping with the development of this bot.

In our next Azure ‘n’ Action session, we will explore how many companies are leveraging Software as a Service (SaaS) and Azure Infrastructure as a Service (IaaS) to lower their operational costs.

Did you know that by extending your on-premises Active Directory into Windows Azure Active Directory (WAAD), your users can authenticate to Exchange, Lync and SharePoint SaaS by using Windows Azure Active Directory managed accounts, and stop requiring federation back to your on-premises data center by leveraging DirSync with password sync? This allows you to take advantage of Microsoft’s facilities, which provide the redundancy and high availably that you desire, for not only your applications but the underlying authentication infrastructure as well.

Did you know that Windows Azure Active Directory (WAAD) is FREE?  It provides you and your organization secure authentication via Azure for your all your devices, and services for a globally mobile workforce.

Do you want to learn how to securely integrate your Office 365 SaaS environment by extending your information architecture into SharePoint 2013 IaaS? You can quickly and securely leverage Windows Azure AD as your Identity Provider to enhance authentication globally.

Are you ready to see  this in action? Please join us at the next Azure Café we will walk you through the scenario of an Office 365 SharePoint website integrated with an Office 365 Site Collection, and an IaaS-hosted SharePoint 2013 environment — all using Microsoft to provide authentication.

March 19, 2014
12:00 – 1:00 p.m. (EST)

Click here to register!

We’ve recently worked on several mobile app development projects for tablets and phones running iOS, Android and Windows. Thanks to these projects, we’ve identified some key do’s and don’ts for managing your product backlog requirements for mobile application development efforts.

Here are some of the common business features and technical requirements/constraints for both consumer-facing apps and corporate internal apps that could show up in the product backlog:

  • Responsive UX Design (screen size, orientation, device features, etc.) – for this you will need to identify a limited set of target device configurations for acceptance
  • Required corporate branding/corporate style guides
  • Choosing between a native app style UI that is device specific vs. a common style cross-platform UI
  • Stringent speed/performance targets for initial app loading, screen navigation, response to user actions
  • Connected vs. Disconnected Operations requirements – you need to clearly define what features work when there is no connection
  • Data security and Personally Identifiable Information (PII) protection
  • Support for multiple OS and multiple versions of an OS
  • Support for multiple types of mobile browsers
  • Integration with companion apps on the device
  • Cloud/web service integration to access corporate systems of record
  • App Store submission requirements (i.e. Google Play, Apple App Store and the Windows Store). Each store has its own unique sets of UX requirements, minimum performance, storage management, legal/copyright, privacy notification requirements, content age appropriateness designation, etc.
  • App version management
  • Code-sharing across device and OS platforms
  • Graceful degradation of the app functions in case of failures
  • Process improvement support, especially for corporate vs. consumer apps that are targeted for mobile workers
  • Security and device management for corporate apps

The items in the list above may all need to be considered when you first start working with the product owner to both build the product backlog for the mobile app and help define the overall scope and timeline for the project. For consumer apps deployed through app stores in particular, the timeline for publishing to the stores — and factoring in the review and acceptance process — needs to be considered up front. Read More…

AIS developed a prototype web application for real-time collaboration and visualization of geospatial data. To learn more about this application check out parts one, two, and three of this blog series.

In this post, I’ll briefly discuss the rationale behind our decision to convert the backend of our prototype from ASP.NET MVC to NodeJS and will dive into the details of the conversion process. Our goal was to show that while AIS has a proven track record of leveraging the Microsoft stack to deliver solutions to our customers, we are also able to deliver solutions on other stacks based on our customers’ needs and existing infrastructure. Read More…