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…

Every software development company tests their product before releasing it to their clients. Test engineers strive to deliver the product without any defects, but quite often a defect appears (and reappears) even with the best testing processes in place.  Automation testing utilization increases effectiveness, reliability, repeatability and test coverage.

The Agile methodology is implemented in many organizations, which requires more frequent regression testing as the sprints are short. The automation capabilities can help accomplish the Agile sprint-based regression testing and integration testing needs. 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…

At AIS, we work with clients to help define the overall vision, scope and detailed requirements for the applications they want to build. I recently had the opportunity to work on a project where a client wanted to reach a new set of users through a Windows Store app that was based on an existing iPad app.

We had a very short timeline and limited budget to work with. That was the bad news… The good news was that we were able to use Microsoft Team Foundation Server (TFS) — in this case the TFS 2010 version — in conjunction with Visual Studio 2012.  This gave us the opportunity to leverage new PowerPoint 2013 storyboarding stencils for defining the app’s User Experience (UX), and TFS for efficiently creating and managing our product backlog.  We also used Visio 2013 for visually defining the overall functional scope and high-level release plan for the app.

In this post, I’ll share how we used these tools to rapidly define the requirements for the app, and talk about some topics related to converting the iPad app information architecture to a Windows Store app information architecture. Read More…

We recently deployed a five-node CRM 2011 topology using Windows Azure IaaS with the following objectives:

  • Understand how a multiple node CRM setup can be provisioned using Windows Azure IaaS. Specifically, how the networking capabilities offered by the Windows Azure platform (i.e. stateless load balancing) map to the CRM requirements.
  • Develop an automated way to provision and de-provision a CRM setup. This is not only useful for dev and test scenarios, but also for production scenarios where it is notoriously difficult to conduct capacity planning before acquiring the necessary hardware. For example, it is hard to know upfront what CRM functional building blocks (aka CRM roles) the business stakeholders will want to focus on, such as async processes, sandbox, reports, etc. By dynamically scaling out the “needed” features on demand, we can enhance the business agility of the CRM.
  • Offer our customers an educated choice between CRM Online (no setup costs but less control) and CRM On-Premises (extensive setup costs but complete control).
  • Take advantage of hybrid apps that combine CRM capabilities with Windows Azure services, such as Windows Azure Active Directory, mobile services, etc.

Read More…

Please be our guest at the next Azure ‘n’ Action Café online session on April 10th from 12 p.m. to 1 p.m. This is a jump-start overview session, including demos and best practices focusing on Windows Azure Virtual Machines: IaaS “On Your Terms.” You will experience how easy it is to bring your own customized virtual machine images — or select from a gallery and retain full control of your images — and maintain them as your business requires. You’ll also be the first to see how to provision a brand-new SharePoint 2013 farm in Azure IaaS.

The Azure ‘n’ Action Café is a series of “lunch and learn” online sessions on a variety of topics related to the Windows Azure Platform. Please register for Windows Azure Virtual Machines: IaaS “On Your Terms” by clicking on the link below and adding the meeting to your calendar from the registration page.

Click here to register to secure your seat at the Café.

Good question. And we’ve got the answer.

Here at AIS, we’ve spent hundreds of thousands of hours envisioning, designing and constructing SharePoint-based solutions for our clients. With each new version of SharePoint, we make additional investments to deeply understand the new release’s capabilities.

We’ve taken a look at all the changes and enhancements in the latest version — and you just have to look at our blog archives to realize that a LOT has changed in 2013 — and put together a short, easy-to-read whitepaper that highlights the top new features that make SharePoint 2013 a must-have for your business, including:

  • Smarter Search
  • Simpler and Mobile-Ready UI
  • The game-changing SharePoint App Store Model
  • Better Workflow
  • Social SharePoint
  • Easy Migration Tools
  • Lower Costs
  • And much more!

Please CLICK HERE to download your free copy.

Not familiar with SharePoint as a business solution? Take a look at our SharePoint solutions on our website and contact us to learn more about how SharePoint can transform your organization.

For the last couple months, I’ve been working on a new mobile application for an AIS client. It is an iPad app, targeted for iOS 6. Although I am quite well-versed in many of the iOS standard libraries, there is always “further east” to go, and I’ve really stretched my wings with this project and explored some interesting UI features. One thing in particular that I dug really deeply into is Interface Builder and its new integration into Xcode 4.x. I’ll discuss more of that in a later post, as I explored some interesting features (and limitations).

What I’d like to discuss now is the use of static libraries in Xcode for a couple different reasons. First, I have several classes that I think will be helpful to the developer community (both here at AIS and beyond), and I will be building static libraries to share with any of my colleagues who want to use them in their iOS projects. Second, being able to import static libraries into an existing Xcode project can be a little involved, and I want to outline the process in a way that proves to be repeatable. And of course, the best way of learning is to teach, so I’m looking to solidify my understanding of the process by putting it out there for any of you to try it and punch holes in my logic. Read More…