In my last post on Service Bus for Windows, we covered the overview, installation and configuration of SBWS. Now it’s time to dive into the API and see it in action. The code snippets in this post will focus on Service Bus queues. Beyond queues, Service Bus also supports topics and subscriptions mode to allow independent retrieval with filtered view of the published message stream.

Project References

To set up the development environment, right-click References in Solution Explorer, then click Add Library Package Reference. Search with the “ServiceBus.v” keyword, as there are many service bus related Nuget packages. As of this writing, the latest version is 1.1. Please make sure to download the version consistent with your Service Bus installation.

System.Runtime.Serialization dll is also needed for the code snippets below. Read More…

In a recent blog post, I walked through setting up a SharePoint 2013 development environment in the cloud. After doing that, the next most logical step was to start building apps. But that meant that I would have to understand what a SharePoint app really was and how it differed from SharePoint 2010 development. I mean sure, I could bang out the typical “Hello World” app, but to do anything meaningful, I needed to dig a little deeper.

Apps vs. Solutions

An app for SharePoint is a stand-alone, self-contained piece of functionality that extends the features and capabilities of a SharePoint site. Apps can bring together the best of both worlds; modern web technologies and all the familiar pieces of SharePoint. On top of that, users can discover and download apps on their own from the public Office Store or from their organization’s private App Catalog. In contrast, a solution is used to customize or enhance SharePoint sites and needs a farm administrator to deploy, manage and remove.

Why Apps?

The first question that I asked myself was why would you use an app? I would assume that the answer to this question might depend on who you polled, but as a developer, I am extremely excited that I can now leverage all of the exciting things that my “non-SharePoint” counterparts have been doing for quite some time. In my opinion, this paradigm shift is a smart move by Microsoft, and will go a long way in attracting more developers to the platform.

Read More…

The mission was critical, and the task complex: Ushering a print publication like Rolling Stone, a Bondi publication, into the digital age by providing them with a turnkey solution to present their print magazine archives online, for viewing on high resolution-connected devices of all shapes and sizes. Unlike other digital versions of magazines on the market, the new platform would allow the publisher to monetize its own unique brand through the years.

The Challenge

AIS needed to address multiple technical areas to provide the most viable solution for Rolling Stone and other archives.

  • Speed
  • Scale
  • Security
  • Continuous Delivery
  • High-Definition Presentation

Rolling Stone’s existing solution (‘print to digital’) only supported 100 issues, and AIS was challenged to multiply the output tenfold while reducing management costs and allowing Rolling Stone the freedom to design their interface in a way that matched and enhanced their other digital presences.

Solution

AIS implemented a multi-tier solution in the creation of the Bondi Archive Platform. The platform we built consists of a flexible, scalable website architecture using HTML5, JavaScript, ASP.NET MVC and SQL Azure. The system allows viewers to see exact replicas of the original print issues, something not offered by any other platform. Users can navigate using a mouse, keyboard or touch and can zoom in or conduct complex searches. Bookmarking inside the archive is available as is print, based on the publisher’s preference.

Results

The new archive platform has allowed Rolling Stone to join the online revolution and bring their print content online in its original format and context, thereby retaining copyrights. By serving the content directly from their own website or from the cloud, the company can avoid content restrictions and fees imposed by third-party aggregation platforms and app stores. The project and platform has been an unequivocal success. Rolling Stone chose to enhance its print subscriptions by offering the full digital archive at no extra charge. By tightly integrating their online content with the digital archive, a deeper level of interaction with readership has been realized.

Our Windows Azure Media Services Manager (WAMS Manager) is a desktop-based application that makes it easy to upload, tag, encode and publish your media assets. It is designed to bring the benefits of Windows Azure Media Services to end users (typically business users responsible for managing media files) without the need to write any code.

(If you would rather skip the background and a high-level description of the overall architecture and simply get access to an evaluation copy of this tool, please email us directly.)

For everyone else, we are glad that you are taking the time to read this. Let’s start with some quick background…

Read More…

I recently needed to make several web.config changes to our production SharePoint 2010 web farm. Making all of these modifications manually would have been tedious and would have left a lot of room for error. After doing some research to find a better way, I discovered the SPWebConfigModification class in the Microsoft.SharePoint.Administration namespace.

This is basically  a collection of changes to be made to web.config files that can be stored and then applied to all web front-end servers in a farm. This class is available with SharePoint 2010 and 2013. Unfortunately, the class is poorly documented so I had some trouble figuring out how to use it. You could write a console application to use the SPWebConfigModification class or you could use a feature receiver, but I found that the easiest approach was to just use it with PowerShell. After some trial and error, I came up with the following four PowerShell scripts that can be reused to read, add, remove, and completely clear the SPWebConfigModifications on the server. Read More…

Given the widespread use of the Android operating system running on today’s mobile platforms, Android development has become an excellent choice for enhancing a developer’s skill set. Fortunately for the seasoned .NET developer, learning Android development is not a huge stretch. While there are several avenues for .NET developers looking to break into the world of Android application development, currently the most popular options are made possible by utilizing any of the following technologies:

  • Xamarin platform
  • PhoneGap framework
  • Native Android development via Java

The Xamarin platform provides the ability for .NET developers to harness their C# knowledge, create cross-platform (iOS, Android and Windows) applications, reuse existing code and perform development within Visual Studio. The greatest advantage of utilizing the Xamarin platform is a reduced time to market while supporting multiple platforms. However, due to the additional Xamarin runtime contained within the final application, the footprint tends to be larger — this could be an issue, especially for some Android devices.

The PhoneGap framework is another option for writing Android applications.  The PhoneGap framework is a client-side web application comprised of HTML5 pages using CSS and JavaScript. While it’s possible to utilize Visual Studio to code and test the application, ultimately the code will need to be packaged into a real Android application. This will require an IDE such as Eclipse or JetBrains’s IntelliJ IDEA.  The PhoneGap Build service may also be used to accomplish the application packaging. While the PhoneGap approach will provide multiple platform support, the application type should be given consideration because the PhoneGap framework relies on JavaScript, which may have performance limitations compared with native Java Android applications.

While Xamarin and PhoneGap certainly have their merits for creating Android applications, native Android development via Java provides an opportunity to take advantage of a device’s full feature set with fast execution, all wrapped in a smaller package for more rapid downloads. For a complete discussion of the various mobile platforms’ benefits/drawbacks, please read Eric Svendsen’s excellent article where he provides plenty of depth on the issue.  For now, the remaining content of this post will be to provide valuable insight for .NET developers looking to expand their language set by utilizing native Java for Android development. Read More…

I vividly remember the iconic scene from the 1995 box office hit Apollo 13 where a team of NASA engineers gathered around a table with a collection of mishmash spaceship junk. From this collection, the team had to create a square air filter to fit in a round receptacle so that the astronauts would not asphyxiate on CO2 in space. It’s an intense, life-or-death scenario of literally making a square peg fit in a round hole, where “failure is not an option.”

Working as a business analyst for our federal government clients means that budget, time, and resource constraints almost always play major role in any development effort. This challenge requires our team to use bit of ingenuity and a mixed bag of tools to create a solution for our customers. Read More…

An Enterprise Service Bus (ESB) is a shared messaging layer that gives you a consistent, scalable and flexible means of coordinating across disparate, loosely-connected services to execute business processes. Over the years, Microsoft has developed several service bus technologies:

BizTalk: A messaging and workflow orchestration platform to build ESB behaviors and capabilities. The BizTalk ESB toolkit provides a set of guidelines, patterns and tools.

Windows Azure Service Bus (ASB): This provides the messaging infrastructure for applications that live in the cloud, in your data center, and crosses all devices and PCs.

Service Bus for Windows Server (SBWS):  SBWS is based on ASB and shares many of the same capabilities, such as queue, topic and subscription support.  A distinct design goal is to ensure symmetry between SBWS and ASB and allow for a single set of code to be leveraged across both deployment environments.

Read More…

If you have a Web application that will receive even moderate traffic, you should probably perform some load testing. Load testing can help identify what your maximum operating capacity is, as well as any bottlenecks that might prevent you from reaching that capacity. Now I’m not going to do a deep-dive into load testing, but instead I’m going to show you how to use Team Foundation Service to perform that testing in the cloud.

I’m only going to use a couple of tools here. First, I’m using Visual Studio 2013 Ultimate. If you don’t yet have it, you can download a trial here. Second, I’ll be using Team Foundation Service. If you haven’t yet signed up for this, you should. There is a free offering (for up to five users) and the sign-up is quick and painless.

Since I don’t already have a project with load tests, I’m going to quickly step through creating one that we’ll use for our demo. Read More…