BPOS Update – Trial has ended, now a paying subscriber

In other news of cloud models, my previous client has moved from a trial to paid subscription of the Business Productivity Online Suite. While I’m very pleased that we have implemented a solution that the client was happy with, I still wish we’d been able to do more for them. BPOS is a great product but there are a few enhancements that I really hope they make as they continue to work on the product.
On a related note, there’s rumbles that this implementation may end up being profiled by Microsoft. Truely this engagement had a happy ending. 🙂

Azure Services – where to start

Over the weekend I received the last of the keys/tokens that grant me access to the Azure Services CTP (Community Technology Preview). If you’re like me, you’ve been hearing the hype about Azure for some time, but are likely still confused about exactly what it is. Before I get into my explanation, I’d like to preface this post by clearly stating that like you, I am still learning this. Now, lets start with "What is Azure"…
I’d like to start out with a couple definitions that I believe are important. Azure Services is the name that describes the Azure platform and all the products/services it offers. Think of it like you would Microsoft Office. Office is no one application, but a collection of tools that can be used independently or together. A key difference is that with Azure Services, the services are all ‘in the cloud’ and are not just used as they exist. They are building blocks you’ll use to construct your own custom solutions.
This of course leads us into a discussion of those building blocks. Windows Azure is the custom application development platform, a cloud based .NET application server. You can build your custom .NET applications and then deploy them into the cloud. And while you are still doing .NET development, you’re going to be coding for the Windows Azure platform and not simply Windows XP or Windows Server. The language may be the same, but the rules are different.
Other building blocks include .NET Services for common tasks like access control, service buses, workflow, SQL Services for structured RDBMS needs, Live Services to access items like Live Search and Live Mesh, and future offerings such as SharePoint Services and Dynamics CRM Services. All these, like Windows Azure, will likely be subscription based services offered à la carte. Depending on the solution you require, you’ll purchase the appropriate services and quantities (possibly based on bandwidth, storage, or processing power required).
I’m certain multiple books are are already being written on each of these services. so I won’t try to fully explain them all here. I do intend to try and interact with each of them over the next couple months, until the CTP ends (estimated to be sometime in 2nd quarter). Over the next few blog posts we’ll touch on them and my own findings. Starting with Windows Azure. I’ve already been exploring this application hosting building block and I guarantee there’s enough material in there for several blog updates. 🙂

Keep it simple, please

I’ve run into this more then once. You sit down to work on code you didn’t originally write. There’s little documentation (if any). And you can see clear evidence of multiple hands in the code. Standards may have been followed, but you can still see a difference between the style of the code in different areas of the program.
Then it starts to hit you. Repeatedly… almost like someone is standing behind you and smacking a ruler on thier hand every couple of minutes. This PROGRAM IS A MESS.
Sometimes good programs become this way. It happens. But just as often, I see evidence that the program was needlessly complex. When designing a solution to a problem, please keep it simple. Nothing causes me as much grief as encountering a solution that could have been solved just as easily in half the code. Don’t go implementing the "perfect" solution if it turns out to be so complex that the guy coming along behind you will need a PHD and a roadmap to figure out what you did.
It seems that too often we get so bogged down by the technology that we fail to be responsible using it. This could apply to writing code… to using our cell phones while driving… or even to something as simple as cooking dinner.
Do the job. Just keep it simple. 🙂

Client is online!

Sorry for not updating sooner. We hosted our annual Mardi Gras party this weekend so its been a busy week. But the party is over, I’m exhausted, and the food is all gone.
So Friday afternoon, my BPOS client opted to "flip the switch" and end the co-existance phase of the migration. We modified their DNS’ MX records and I’m happy to say they are now running strictly off of Exchange Online. We’ve recommended they continue to do so for at least a week before converting their trial account into a paid subscription.
This stage in their story did not come without some learning.
  1. The technique we previously mentioned of using SharePoint to share their contact list proved to be bandwidth intensive. Outlook syncs those shared SharePoint resources in a manner we did not predict and as a result, there was an excessive amount of activity going on. So we’ve had to remove this feature for all but the most critical users. We still have the option of using something like powershell to punch the items into their AD’s GAL so we sync them back up that way. But for now that’s on hold.
  2. There were some issues with the email going live. The MX records were propogating in about an hour, but it was another 5 hours before email was flowing in unrestricted. We spent some time on the phone with Exchange Hosted Services support and in the end it turns out that it was a unexpected replication delay in Microsoft’s Data Center.

So the client is up and running now and it pleased by the cost savings they’re going to start experiencing very soon. I’m pleased that things went comparitively smoothly.

My next challenge, CE development! I started at a new client this past week and I’m digging into their Windows CE application and helping them out. This engagement will present a whole new set of challenges.

BPOS – Migration Underway

Wow, two weeks and I’m still updating. I hope anyone reading this is less impressed than I am.
My client’s implementation of BPOS is well underway now. As I write this, we’ve migrated about a quarter of the accounts to online and the SharePoint templates are nearly finished. Despite a few minor hurdles, things have been going very smoothly and the client is extremely pleased with the results. Each morning we hear how they can’t wait to start using the system in earnest.
I would like to leave you with tid-bits on two of the hurdles we encountered and how we overcame them.
Public Folders
Exchange/Outlook Public Folders are not supported in the "Standard" version of BPOS. So we’re tossing these items into SharePoint where they can be shared with Outlook again if users need/want them. This was extremely important for the client as they had an extensive contact list in their public folders and wanted to be able to easily find someone in there when sending an email.  By getting creative with the use for old and on-line exchange profiles, we were able to get Outlook to do the bulk fo the synchronizing for us. 🙂
Outlook Profile Settings
Each time you switch a user over to BPOS or Exchange online, don’t forget to port over profile specific settings. Rules will need to be exported from the old profile and imported to the new one. Signatures are still there, but need to be re-selected. And be darn sure you don’t forget to re-attach their private folder stores.
Of course, both these issues likely won’t be missed by anyone that’s experienced with Exchange migrations. But for an Exchange newbie like myself, these were some lessons I learned and will keep with me for my next implementation.