About this blog

 
About this blog
Welcome to the RBA blog site.  This space will be used by our employees to share observations and best practices.
RBA Consulting > RBA Blog
February 02
RBA at Cloud Fest

Next week’s Cloud Fest in Denver, CO is shaping up to be a great event. Not only is RBA a platinum sponsor, but RBA will have 5 consultants presenting sessions during the course of the day. Here’s what we have on tap:

Phil Wicklund

PRE 101 - What is the cloud, why do I care, and how do I get there?
If you follow the technology industry, you have probably noticed that everyone suddenly seems to be "going to the cloud" these days. What's all the fuss about? Or more simply put, what is the cloud and why do I care? The conference keynote seeks to level the playing field for attendees by answering these key questions around the ROI behind Microsoft's cloud-based technologies. You'll learn about key cloud characteristics, as well as cloud models such as building your own private cloud, or perhaps deploying to the public, community, and/or hybrid clouds. You'll see how IT solutions can be taken to the cloud on the Office 365 and Azure platforms and how these platforms integrate with one another to create advanced, cloud-based line of business applications. Lastly, you'll come away with an understanding of how to begin the process of planning for and migrating to the cloud.

OFF 105 - Identity in Office 365
Security in the cloud is a significant topic. Cloud customers want to know their options, including managing cloud based accounts, partner accounts, domain controller co-location, active directory synchronization, as well as creating a federation trust between a local ADFS 2.0 service and Office 365. This session will compare the pros and cons of each approach, which approaches work for standard versus dedicated, as well as step by step guidance on how to setup the trusts. Additionally, we'll also discuss identity management with remote PowerShell.

Shawn Beeson

SPO 101 - SharePoint Cloud Readiness - Your Top 10 Considerations
Is your organization using SharePoint today? Are you curious what it will take to move your SharePoint environment to the cloud? What are the things you can and should be doing today to ensure a painless move in the future? This session will cover the Top Ten things every company should be doing and reviewing to ensure that their environments and customizations will be cloud-ready !

Faraz Khan and Seth Crichton

SPO 103 - Building Enterprise Applications in the Cloud using SharePoint Online and Azure
Everybody is talking about the cloud these days. Have you evaluated your options for hosting/migrating enterprise applications to the cloud? What technology do you use? SharePoint Online, Windows Azure or SQL Azure? What are the limitations you might run into? How about a combination of all these to achieve even more flexibility, control and power? This session will show you how to build enterprise applications that combine SharePoint Online with Windows and SQL Azure to build powerful solutions in the cloud.

Adam Grocholski

AZR 104 - Securing Azure Hosted Services, the Easy Way
Authentication and authorization are key components of most line of business applications. However, identity management is not a trivial task, especially when it comes to extending identity management to the cloud. In this session we'll look at how you can use the Windows Azure Access Control Service (ACS) to simplify identity management for applications running on the Windows Azure platform. We'll start by covering the basics of identity management and ACS. From there we'll look at how to do create an ACS namespace, integrate identity providers and relying parties, create token transformation rules to provide consistent claims, establish a trust between ACS and your ASP.NET application, test the integration, and automate the management of your ACS namespaces.

We hope to see you there!

January 23
PowerShell Functions for the Windows Azure Access Control Service

In my previous post I introduced a project that uses PowerShell functions to extend the baseline functionality of the Windows Azure PowerShell Cmdlets published by Microsoft on CodePlex. In that post I provided three PowerShell functions that make it very easy to delete an existing deployment from a Windows Azure hosted service. In this post I’m going to focus on the Windows Azure Access Control Service (ACS).

In my opinion ACS is one of the most powerful components of the Windows Azure platform as it enables you to easily outsource identity management from your applications to known identity providers such as Windows Live, Google, Yahoo, Facebook, Active Directory Federation Services, and other providers that implement the WS-Federation protocol. The cmdlets provided by Microsoft allow you to automate the management of your ACS namespaces. One function that is a part of this API is called Add-IdentityProvider that enable you to do exactly that, add an identity provider to an ACS namespace. If you run the get-help command with the –detailed switch, you’ll see that the function has 15 parameters.

image

As you can see, there is a lot of flexibility in this one function, which has positives and negatives. For some of the things I do I just want to be able to quickly add one of the preconfigured identity providers (Google and Yahoo!) It’s not difficult to accomplish with the Add-IdentityProvider function, but I just wanted to make it a bit easier. To that end I created a repository on github to house the scripts. You can browser the repository here. Currently there are six scripts in the repository:

./Identity-Providers/Add-GoogleIdentityProvider
Adds Google as an identity provider to a Windows Azure AppFabric namespace with the Access Control Service enabled.

./Identity-Providers/Add-PreconfiguredIdentityProvider
Adds a preconfigured identity provider identity provider to a Windows Azure AppFabric namespace with the Access Control Service enabled.

./Identity-Providers/Add-YahooIdentityProvider
Adds Yahoo as an identity provider to a Windows Azure AppFabric namespace with the Access Control Service enabled.

./Identity-Providers/Remove-GoogleIdentityProvider
Removes Google as an identity provider from a Windows Azure AppFabric namespace with the Access Control Service enabled.

./Identity-Providers/Remove-PreconfiguredIdentityProvider
Removes a preconfigured identity provider from a Windows Azure AppFabric namespace with the Access Control Service enabled.

./Identity-Providers/Remove-YahooIdentityProvider
Removes Yahoo as an identity provider from a Windows Azure AppFabric namespace with the Access Control Service enabled.

Once again, you can get the scripts here.

Hope it helps!

January 20
How Did He Do That?

This past Wednesday I gave a talk at the Chippewa Valley .NET User Group entitled “You Can Do What in Windows Azure?!” In the session I showed how to use things like remote desktop, startup tasks, PowerShell, Node.js, and more with the Windows Azure  platform. If you’re wondering how I did some of the demos, I invite you to follow the links below.

Using Remote Desktop with Windows Azure Roles
http://msdn.microsoft.com/en-us/library/windowsazure/gg443832.aspx

Overview of Startup Tasks for Roles in Windows Azure
http://msdn.microsoft.com/en-us/library/windowsazure/hh124132.aspx

How to Define Startup Tasks for a Role
http://msdn.microsoft.com/en-us/library/windowsazure/gg456327.aspx

WebPICmd Command-Line Tool for Windows Azure
http://go.microsoft.com/?linkid=9752821

How to Use the WebPICmd Command-Line Tool
http://msdn.microsoft.com/en-us/library/windowsazure/gg433092.aspx

Using Windows Azure Connect to Create virtual Networks
http://msdn.microsoft.com/en-us/library/windowsazure/gg445026.aspx

Windows Azure Powershell Cmdlets
http://wappowershell.codeplex.com/

Node.js home page
http://nodejs.org

Windows Azure Node.js Developer Center
http://www.windowsazure.com/en-us/develop/nodejs/

Enjoy!

January 16
PowerShell Functions for Windows Azure

Recently I’ve been diving into the Windows Azure PowerShell Cmdlets published by Microsoft on CodePlex. First off, let me say that I think these tools are incredible powerful. They allow you easily automate the management of numerous components of the Windows Azure platform (including hosted services, storage, SQL Azure, and the Access Control Service). However as I began to really get into the API’s I found one feature was missing from cmdlets that involve managing hosted services. The feature is the ability to simply delete a deployment. Don’t misunderstand me, you can cobble several calls together to delete a deployment. Here’s what you would have to do:

image

Notice, you have to suspend the deployment first before you can remove it. Failing to put the deployment in a suspended state before attempting to remove it will result in an exception. Also notices you have to specify which slot you want to remove the deployment from.

While the above method, wouldn’t it be nicer if you could call something like Delete-Deployment that would perform both the suspend and remove operations? Taking it one step further, wouldn’t it be even nicer if you could call something like Delete-StagingDeployment and Delete-ProductionDeployment so you didn’t have to specify which slot you wanted to remove the deployment from in your arguments? Well I think so, and if you’re still reading you probably think so to. I decided to take action and create a repository on github to house scripts that contain functions to extend the tools provided by Microsoft. You can browse the repository here. Currently there are three scripts in the repository:

./Deployments/Delete-Deployment
Deletes a deployment from a specified slot

./Deployments/Delete-ProductionDeployment
Deletes a deployment from the production slot

./Deployments/Delete-StagingDeployment
Deletes a deployment from the staging slot

Each script is documented and contains examples which you can view when running in PowerShell by using the get-help command.

Once again, you can get the scripts here.

Hope this helps.

January 09
Upcoming Events

On January 17, 2012 I will be speaking at the Chippewa Valley .NET Users Group. The topic for the evening is You Can Do What in Windows Azure?! Here's an abstract of the session:

You already know you can run your .NET based web sites, services, and applications on Windows Azure, but this only scratches the surface of what you can do. Encoding video with Expression Encoder, hosting adaptive streaming video in blob storage, hosting multiple web sites, enabling remote desktop, running php, node.js, and MongoDB, creating a VPN and more are all possible with the Windows Azure platform. In this demo intensive session I'll show you how to do amazing things to unleash the power of Azure.

You can find out more about the session and register for it here.

On January 19, 2012 I'll be giving a new presenting at the Twin Cities Connect Systems User Group. The topic for this talk is Securing WCF Services with the Windows Azure Access Control Service. Here's a taste of what we'll be covering:

Integrating your WCF services with third-party authentication and identity management systems can be a daunting task. Some of the common challenges associated with this task include:
•    Configuring WCF bindings to request a token from ACS
•    Validating the incoming token issued by the identity provider
•    Parsing the incoming token
•    Implementing authorization checks
•    Transforming tokens by adding, removing, or changing the claims types and values
•    Using configuration rather than code to accomplish all of the above

In this session we'll look at how to use the Windows Azure Access Control Service (ACS) to tackle these challenges. We'll start by covering the basics of identity management and ACS. From there we'll look at how to secure WCF services via ACS using the following methods:
•    WCF Username Authentication
•    WCF Certificate Authentication
•    WCF Federated Authentication with AD FS 2.0

You can find out more about this event and register for it here.

January 03
Windows Azure Tips and Tricks Screencasts

In a recent post I introduced a series of screencasts that help you learn about the Windows Azure Platform. The goal of each episode is to teach you just one thing about Azure in 15 minutes or less. The next five screencasts in the series show you some tips and tricks you can use when working with Azure. Below are links and descriptions for each episode. Enjoy!

Remote Desktop
In this screencast I show you how to configure your Windows Azure roles so that they can be accessed in the cloud via Remote Desktop.

Local Storage
In this episode I illustrate how to work with the abstraction of the Windows Azure file system called Local Storage.

Windows Azure Connect
In this video I explain how to bridge the gap between on-premises and Windows Azure resources using Windows Azure Connect.

Windows Azure Startup Tasks
in this installment I show you how to completely customize your Windows Azure roles using startup tasks.

Windows Azure and Powershell
In this epiosde I show you how to automate the deployment and management of your Windows Azure services with Powershell.

December 29
New MSDN Article on Building an iFilter for SharePoint 2010 search authored by Alex Culp from RBA

Alex Culp has recently had a new article published on MSDN: How to Build an IFilter for SharePoint 2010 Search and Windows Search by Using C++, ATL, and MFC

 
An IFilter is an interface that enables Windows Desktop Search and Microsoft SharePoint Server 2010 search to index the contents of files. Although the default full-text search for documents works well in many situations, it is not always appropriate; for example, indexing a file that is in a binary format or indexing a text file in which you must locate specific information in the document. Windows has built-in IFilters for Microsoft Office 2010 products and filter packs that are available for download (see Microsoft Office 2010 Filter Packs), and Adobe has an IFilter for PDF files. Although an IFilter is technically an interface, implementations of that interface are also called IFilters, which can be confusing. For clarity, this article always uses the term IFilter interface to refer to the interface.
 
As of Windows 7, you can no longer use managed code to implement an IFilter because for any given process, only one version of the .NET Framework runtime can be loaded at a time. This means that if one IFilter developer uses the 2.0 version of the .NET Framework and another developer uses the 4.0 version, the two IFilters are incompatible. In Windows 7 and later versions, filters that are written in managed code are explicitly blocked. Filters must be written in native code because there are potential common language runtime (CLR) versioning issues with the process that multiple add-ins run in. Although it might be possible to write an IFilter in Microsoft Visual Basic 6.0, it is likely a very bad option considering the throughput demands that are required to index thousands, or possibly millions, of files (for example, in SharePoint). Therefore, the best option to develop an IFilter is to implement it by using C++.
 
This article provides a step-by-step approach on how to build an IFilter to index file contents by using C++, the Microsoft Foundation Class library (MFC), and the Active Template Library (ATL). This article is for developers using SharePoint 2010 and .NET Framework who have limited exposure to C++.
  
Alex Culp

Alex Culp has been designing and developing a variety of applications on the Microsoft Platform since 1997. He is a graduate of the University of Texas at Austin where he received a B.S. in Computer Science. When he is not spending time working, he loves spending time with his wonderful wife Terah and son Nicholas. Other than his passion for technology, he loves running and any kind of high adventure sports. He also loves working with the student ministry and volunteers as a chaplain at a local area hospital.

 

December 27
Windows Azure Storage Screencasts

In a recent post I introduced a series of screencasts that help you learn about the Windows Azure Platform. The goal of each episode is to teach you just one thing about Azure in 15 minutes or less. The next three screencasts in the series focus on Windows Azure storage. Below are links and descriptions for each episode. Enjoy!

Windows Azure Tables
In this installment I talk about using Windows Azure table storage to store entities.

Windows Azure BLOBs
In this episode I show you how to use Windows Azure BLOB storage to store files in the cloud.

Windows Azure Queues
In this screencast I show you how to use Windows Azure queues to build loosely coupled workflows in the cloud.

December 19
Windows Azure Role Screencasts

In a recent post I introduced a series of screencasts that help you learn about the Windows Azure Platform. The goal of each episode is to teach you just one thing about Azure in 15 minutes or less. The next four screencasts in the series focus on Windows Azure roles, what they are and when you should use them. Below are links and descriptions for each episode. Enjoy!

Windows Azure Roles Overview
In this episode I provide an overview of Windows Azure roles.

Windows Azure Web Role
In this installment I give you the details on working with Windows Azure web roles.

Windows Azure Worker Role
In this screencast I talk about the Windows Azure worker role and when you should use it.

Windows Azure VM Role
In this edition I introduce you to the Windows Azure VM role and provide guidance on when and when not to use it as part of your Azure based solutions.

December 16
How can I be notified if someone changes a critical code file?

 

With the TFS Power Tools add-in for Visual Studio 2010, it is easy to create an alert that will notify you when a file or files within a particular folder are changed.
​Let's say you are a developer, working on a large code base, and you are on one of several teams. In such situations, it is common that the teams share some code. If one team changes the code, it may affect others. There are several software engineering practices, such as automated testing, and code reviews, that can minimize the disruptive affect of such changes on other developers. But even if you follow such practices, you may still want to be notified when a particular file or files in a particular folder are checked in.
The TFS Power Tools, described in the following post by Brian Harry, http://blogs.msdn.com/b/bharry/archive/2011/12/16/december-2011-tfs-power-tools-release.aspx, offer a tool called the Alerts Explorer. You can easily create customized E-Mail alerts that will respond to check-in events made within a particular folder, or check-ins involving a specific file.
This is just one of the many triggers you can program, using this tool. You can trigger E-Mail alerts based on changes to work items, check-ins, or builds. Look at the illustration below to see the defaults provided

 

Alert Templates

 

To gain access to these features, download and install the TFS Power Tools. You can open Visual Studio 2010, and use Tools -> Extension Manager -> search online extensions for tfs power.
To access the alerts explorer, open Team Explorer inside Visual Studio, and right click on the Team Project Collection. 
Alerts Explorer
To access the original Project Alerts, right click on the Team Project.
Project Alerts
This can be confusing and easy to forget. If you vaguely remember to right-click on SOMETHING, and you pick the wrong SOMETHING, you may not get what you want. Remember to go to Team Explorer, not Solution Explorer. And remember to right-click on the project collection, not the project, if you want the advanced alerts editor.

 

1 - 10Next