I was recently working on an automation task that involved opening an XML document, reading the values its contents, and passing them as arguments to install a variety of processes, etc., etc. All rather routine and mundane. Of course, my XML document was littered with environment variables and other special monikers that would be replaced after the file had been loaded. So I reached for my PowerShell editor and started putting together a solution. Then I got to thinking…why don’t I just embed PowerShell variables directly in the file?

Well, why not indeed. The problem was as PowerShell read the file in, it simply ignored my variables and I was stuck with an XML attribute value of something like $Domain\$User. It didn’t help me one whit. Surely there must be some way to convince PowerShell to evaluate that.

As luck would have it, there is! Or I should say, there are! Because it turns out there are multiple ways to do this, none of which are specific to XML (that was just my target data). So, let’s review the options…

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…

Have you taken a look at the new SharePoint yet?

If you’ve spent any time reading our blog, you know by now that SharePoint 2013 introduces extraordinary new features to change the way you work, share, discover, organize and build sites. And now we’ve put together a quick guide highlighting the top features that may inpact your business.

Download The Top Reasons Why Your Business Will Love the New SharePoint now! (No form required,)

The Top Reasons Why Your Business Will Love the New SharePoint guide provides you with an overview of the latest and greatest that comes with SharePoint 2013, including:

  • Smarter Search
  • Simpler and Mobile-Ready UI
  • SharePoint App Store Model
  • Better Workflow
  • Social SharePoint…and more, including easy migration tools and lower costs.

Download your copy today!

And if you’re in the DC area, AIS is hosting an “Introduction to SharePoint 2013” event at the Microsoft office in Chevy Chase, MD on March 20th. Click here to learn more and register.

 

Let me state at the outset, I have no intention to compare “JavaScript with HTML” and “C# with XAML” styles of building Windows Store Apps. This is a choice you have to make based on your skillset, reuse considerations (i.e. do you plan the target the app for Windows 8 and Windows Phone 8 OS), whether the functionality you are targeting for the app is already available as a web app or not, etc.

For last several years I have focused on the web technologies, starting with server-side technologies but lately client-side single-page style apps. So the h5c3js model is more suitable based my skillset. (Additionally, my knowledge of XAML is limited to WF serialization format.)

This model, which allows HTML-based native Windows 8 apps, is innovative in my opinion and I applaud the folks responsible for the language projection in Windows RT.

Read More…

I’m not going to try and convince you that mobile development is important – I hope you already recognize that it is! If you need further convincing, head on over to Allison Christman’s article – she gives you all the reasons you’ll need. However, while she mainly discussed mobile websites, I’d like to give an overview on mobile applications and their development methodologies. Should you build for the platform or the browser? Or both? What is the difference between a mobile website and a mobile application? What is a hybrid application? Knowing the strengths and weaknesses of each approach is vital when making the decision on how to best reach and serve your end-users. Read More…
The Microsoft Surface Pro, iPad 4, and the Nexus 10 are all great and revolutionary tablets, but which is better for the workplace? Ever since the release of the 1st generation iPad, businesses have made a slow and steady turn toward having tablets in their arsenal of technology, but why?

Once the future of portable PCs, today laptops can be considered big, heavy, expensive…and unless you are on the high-tech side of IT or a graphic designer, you are probably using your laptop primarily to check email, browse the web, VPN and use Microsoft Office. So why carry something around that is so bulky and needs its own carrying case when there are other options? In essence, laptops are too bulky, smart-phones are too small or restricting, and PC towers were not designed to be portable. This is where the tablet comes in.

The tablet PC, or simply tablet, has been around for some time but was revolutionized and made a modern household item when Apple introduced the iPad in 2010. Since then, the competition has worked furiously to catch up and make solid tablets that are great for both the consumer and the professional. In addition to the Nexus 7 and 10, the new Microsoft Surface Pro has quickly proven itself to be a strong alternative to the iPad 4. So which one is the best for the workplace? To start we will need to at look at the guts. Read More…

(UPDATED! Please note the new date. We’ll be presenting this session on March 20th, at 9:30 am to noon at Microsoft’s office in Chevy Chase, MD. We hope you can join us, as it’s shaping up to be a lively and very informative event!)

Reduced budgets, economic pressures and competition require our commercial and public sector clients to accomplish more with less these days.

After more than two years of early adoption research, analysis and technical readiness, AIS has determined that SharePoint 2013 has game-changing functionality as an application platform.  We leverage it because we can build great applications more quickly — and at reduced cost because we write much less code.

Most organizations own the product. But few truly leverage it as an application platform.  This free half-day session will present the major new capabilities of SharePoint 2013 and how they can be used for a new generation of applications, including:

  • Compelling User Experience, mobile browser support and productivity enhancements to delight users and drive adoption
  • Enhanced collaboration / social media integration
  • Robust and decoupled workflow engine to address even the most complex business process automation
  • Ability to re-vitalize and migrate Microsoft Access applications
  • Improved digital dashboard capability through PowerView
  • Cloud integration including seamless integration with Windows Azure and Office 365
  • Improved e-discovery and matter management via better centralized and aggregated records management

This seminar will highlight the many reasons to aggressively migrate to SharePoint 2013 by reviewing the many new and enhanced features, while providing context and insight into the new generation of application they enable.

AIS bloggers and team members Vishwas Lele, Jason Storch and Chris Miller will be presenting. For more background, you can read our full SharePoint 2013 blog coverage by clicking here. In particular, be sure not to miss Vishwas Lele’s entry on the SharePoint App Dev Platform: The Journey So Far & the Road Ahead.

When: March 20, 2013, 9:30 am to noon
Where: Microsoft Corporation, 5404 Wisconsin Avenue, Chevy Chase MD (map)

Please click here to register for this event, or feel free to email me directly. We hope to see you there!

On Dec 6th, Brian Keller published an updated version of his very useful virtual machine and the corresponding hands-on-lab / demo scripts for Visual Studio 2012 Update 1.

This virtual machine includes existing (but upgraded) labs from 2010, as well as labs based on new features (see screenshot below).

I thought it would be nice to simply upload the VHD directly to Azure Blob Storage and provision an Azure PersistentVM based on it. This is surely the easiest way to try all the new ALM features.  And it almost worked! Except that the firewall on the virtual machine is turned on. As a result, I could not RDP into the Azure-based machine.

Read More…

Swiss army knife

Here at AIS, we’ve found Windows Azure Blob Storage to be an inexpensive, fast hosting solution for non-text or server-side loaded resources. But what if we want to use client-side JavaScript to load HTML fragments or JSON data directly from blobs? Under normal circumstances this is prevented by JavaScript’s Same Origin Policy; that is, you can’t load HTML fragments or JSON from another domain, subdomain, port or protocol.

One commonly used solution to this restriction is JSONP, but this is not available with Azure Blob Storage. Another modern option is Cross-Origin Resource Sharing (CORS), but it is also unavailable on Azure Blob Storage and not supported in some legacy browsers.

We could consider a server-side solution, such as employing an Azure Web Role to read text-based content from blob storage and serve it up from the original server. But this approach can be both wasteful and performance inhibiting.

Read More…