Let’s face it: Technology is migrating toward the cloud. Unless you have sensitive or secret data you can’t share with third parties, then you have no reason not to embrace it. In short, the cloud is affordable, effective, 99.9% available anywhere, has almost unlimited storage, and allows you to focus on matters other than keeping your network up-to-date — and all you need is an internet connection. Industry experts say that cloud computing will only continue to grow and expand over the next few years, which means companies will need to keep up, or get left behind.

The “Mobile Worker” (like you, maybe), is growing more dependent on answering emails and working on the go with a smartphone, tablet and laptop both outside and inside the office. With so many efficient devices and capabilities allowing coworkers to touch base at once, it would only make sense to have all of your data stored in one centralized location. Additionally, most cloud services, such as Windows Azure, provide a web interface. This means you can access your data on any device or platform that has internet capabilities. Read More…

Technology is advancing rapidly, and with its advance comes new and useful ways to complete everyday tasks. In this post I’d like to talk about some of the benefits of replacing the paper- or desktop-based ways of an employee whose job is performed primarily in the field. (Home health workers or field service technicians, for example.)

Quality custom software that’s designed to meet the specific needs of a business is easy to adapt and should have minimal adoption time and training costs. Workflows that are built according to an employee’s ideal task flow should encourage thorough service calls and better communication flow in all directions.

As an employee who may have to make several service trips per day, mobility is essential. Paper can be completely eliminated, pictures no longer lost or need to be transferred by media card, forms can be filled out by simply speaking into a microphone and tapping on some check boxes. Signatures can be captured easily just by swiping a finger on a screen, bar codes can be read and captured. The possibilities for becoming more productive are expanding each day. Read More…

The recent announcement about the general availability of Windows Azure IaaS comes with the following key enhancements:

  1. Remote PowerShell is enabled by default when deploying Virtual Machine using PowerShell.
  2. Availability of trial images such as SharePoint in the image gallery.

These enhancements make it easy to deploy a SharePoint Farm in an automated manner using PowerShell scripts.

The goal of this blog post is to walk you through such a script. Read More…

It was great fun presenting at Windows AzureConf 2013. I would like to thank the entire AzureConf team (Cory Fowler and Brady Gaster in particular) and my fellow speakers for their valuable feedback.

Click here to watch the video recording of my session on channel 9.

You can find recordings to all other sessions (including Scott Guthrie’s keynote) via this link.

Many of you asked me for a copy of the code I used during my session. You can find all my code snippets and slides here. (Of course this is just sample code so please treat it as such!)

Additionally, Pluralsight has graciously offered to make my newly-released Windows Azure IaaS Course for Developers available for FREE beginning Monday, April 29 at 9:00 a.m. MDT, and keep it freely available for 48 hours (ending 9:00 a.m. MDT on Wednesday, May 1). This is a three-hour course that goes in much more detail on the Windows Azure IaaS topics:

Windows Azure IaaS Course for Developers

Please feel free to send me additional questions via my Twitter account. Thanks!

Today I want to talk about a process we created for building out machines using Virtual Machine Manager (VMM) as part of our daily build process within Team Foundation Server (TFS).

As part of our nightly build process, we actually recreate the entire environment from scratch. We don’t use snapshots; we actually delete and provision a series of VMs. This may sound like overkill and I’ve seen other approaches that use snapshots and revert each night…and I think that’s great. Use what works for you. However, we wanted something that could not only exercise our code base, but also our scripts that we use for building our environment. In a way, this allows us to test both pieces at the same time.

At this point I should throw in the disclaimer that this blog post builds on one written by my colleague David Baber: Driving PowerShell With XML. We use the same XML-driven framework to build out our machines. In reality the process of removing and creating VMs is treated as just one “step” in our build-out process. Executions of other steps obviously follow, but this post is primarily concerned with standing up that environment. What happens next is up to you. Read More…

Being an IT professional, and an Army Lieutenant Colonel, I have a somewhat unique perspective regarding mobile application functionality related to military leaders. As a Battalion Commander (my current military position), I frequently need access to various pieces of information and forms while out of the office/on the road. If I have my military-issued laptop with me, and can find a Wi-Fi hotspot (or use tethering), I have access to the appropriate forms and information needed. However this isn’t always the most convenient…not to mention that I normally don’t even have my military-issued laptop with me. The same is true when I’m at home, sitting on the couch, watching TV with my family and don’t necessarily want to pull out the laptop.

An Alternative

A better solution would allow me to use my tablet or phone. As a leader, a small fraction of the electronic forms that I need to complete on a recurring basis are: quarterly performance counselings and annual evaluation reports on subordinates; approving and signing of various personnel and supply actions; and submitting award requests. Read More…

Yesterday, Microsoft announced the general availability of its offering of Infrastructure as a Service (IaaS). They join an already-crowded market of IaaS providers, but this offering gives all companies the ability to offload workloads that have traditionally run in a company data center to the cloud. Welcome, Microsoft — the water is fine.

This announcement also represents a major chunk of Microsoft’s family of Azure offerings…and in my opinion, a stepping stone many companies simply must take in moving out of the traditional data center and into the cloud.  The following diagram shows the stepping stones out of the traditional data center:

Read More…

Congratulations to StorSimple for building an innovative product that Microsoft was recently inspired to acquire. For those of you who have not had a chance to look into StorSimple yet, it offers an interesting hybrid storage capability: on-premises storage, combined with Windows Azure-based storage. Simply drop their storage appliance in your network and start using it as a storage device. You can expect capabilities similar to any enterprise-class storage device, including high availability through dual-controllers, battery-backed memory and RAID.

Under the covers, however, the StorSimple appliance will seamlessly spread your data between its three types of storage: high performance flash SSDs, high-capacity SAS disk drives and Windows Azure-based cloud storage — essentially giving you access to virtually unlimited amounts of storage. However, the technique to automatically move the data between high-cost and media is not new. For years, the industry has referred to this technique as HSM – Hierarchical Storage Management, or tiered storage. However, HSM products such as IBM Tivoli Storage Manager and Oracle’s SAM-QFS are considered high-end products and are typically outside the reach of most small- to medium-sized businesses. This is why some believe that StorSimple may have an opportunity to bring HSM to the masses.

So why is this interesting? Read More…

Amazon Web Services (AWS) provides an extremely flexible set of services for hosting web applications in the cloud with a web-based console for selecting options to quickly provision a set of IT resources. This post will explore the various aspects of hosting a custom .NET web application in AWS, focusing on high-availability options and disaster recovery scenarios and how to do so under cost constraints.

When building a solution in AWS you have to understand the difference between affinity and availability, and the terminology that Amazon uses. We will define affinity as the physical location of resources within a data center and availability as the isolation of resources for disaster recovery scenarios.

The AIS solution I’ll reference throughout this post uses a Virtual Private Cloud (VPC) to enable our engineers to develop a multi-tiered application within a private sub-netted network split across two availability zones. The VPC as defined by Amazon allows for “… you to create a virtual network topology—including subnets and route tables—for your Amazon Elastic Compute Cloud (Amazon EC2) resources.” The use of a VPC ensures you have high affinity for your EC2 resources. Availability zones refer to the geographically separated data centers Amazon uses for hosting EC2 resources.  Therefore, your disaster recovery architecture must account for placement of EC2 resources in different Availability Zones.

High Availability vs. Disaster Recovery in AWS

To muddy the terminology waters further, we have the concept of high availability, where the effects of hardware or software failure are essentially masked and downtime for end users reduced, such as in Microsoft’s SQL Server. Our solution had to address the issue of high availability and allow for a swift recovery in the event of a disaster or failure of EC2 resources in one availability zone. A high-level picture of what we needed to achieve is shown below.

Read More…

It should come as no surprise that Microsoft’s strategy for SharePoint 2013 is cloud-based, SaaS, Hosted Services or whatever you want to call it.  Whatever the name, the outcome is that custom, server-side code is no longer the way to go in the SharePoint world.  This brings into question the fate of one of the workhorses of SharePoint since 2003: the Event Receiver.  Microsoft has done a great job of exposing web services and creating the Client Side Object Model to enable scripting, but that doesn’t work when your application needs to react to an event that occurs in SharePoint.

SharePoint workflow could provide some of that functionality, but there is an overhead cost to workflow.  When architecting a SharePoint-based solution and the question “Workflow or Event Receiver?” comes up, I always prefer event receivers until it’s proven that the process needs a workflow.  If all the process needs to do is fire off an e-mail or update a field in another list or database, then why incur the overhead of a workflow when an event receiver will do the job with minimal management and overhead?  But that doesn’t work in an app for SharePoint or in a hosted environment that doesn’t allow custom code…or does it?

I’m guessing you can tell from the title of this post what the answer to that is — yes, with remote event receivers.

Read More…