Getting Started with Windows Azure

Here’s the content of the most exciting email I’ve received lately (invite code redacted of course):

Thank you for your interest in Windows® Azure™.

Your invitation code is xxxxx-xxxxx-xxxxx-xxxxx-xxxxx.

You can now sign up for a Windows Azure account at http://lx.azure.microsoft.com/fs. Please keep this email in a safe place.

This invitation to participate in the Windows Azure Community Technical Preview is subject to the following usage limits:

        Total compute usage: 2000 VM hours
        Cloud storage capacity: 50GB
        Total storage bandwidth: 20GB/day

During the CTP, we reserve the right to suspend your account activity (this does not imply we will delete your cloud storage) if you exceed these usage limits.

Sincerely,
Windows Azure Platform Team

You have received this email because you registered as being interested in the Community Technology Preview (CTP) of Windows Azure. As a participant in the Windows Azure CTP program, you will continue to receive emails related to that program unless you end your participation by emailing azinvite@microsoft.com with “END PARTICIPATION” in the subject line.

To ensure proper delivery of future updates please add azinvite@microsoft.com to your address book or safe-senders list.

Microsoft respects your privacy. To learn more about Microsoft's privacy policy, please click here.

Microsoft Corporation
One Microsoft Way
Redmond, WA 98052

I’m very excited to begin learning to develop against Azure in all my spare time. If I learn anything worthy of note here, I’ll share it. Just too many things to dabble in and too little time.

Will the Enterprise Adopt Silverlight 3 for LOB?

With the release of Silverlight 3 on Friday, I’m wondering whether the enterprise (that mythical stereotype) will adopt Silverlight 3 for line of business (LOB) applications. The official “what’s new” section included the following items that I found very interesting:

Improving Rich Internet Application Productivity. New features include:

  • 60+ controls with source code : Silverlight 3 is packed with over 60 high-quality, fully skinnable and customizable out-of-the-box controls such as charting and media, new layout containers such as dock and viewbox, and controls such as autocomplete, treeview and datagrid. The controls come with nine professional designed themes and the source code can be modified/recompiled or utilized as-is. Other additions include multiple selection in listbox controls, file save dialog making it easier to write files, and support for multiple page applications with navigation.
  • Deep Linking. Silverlight 3 includes support for deep linking, which enables bookmarking a page within a RIA.
  • Search Engine Optimization (SEO). Silverlight 3 enables users to solve the SEO-related challenges posed by RIAs. By utilizing business objects on the server, together with ASP.NET controls and site maps, users can automatically mirror database-driven RIA content into HTML that is easily indexed by the leading search engines.
  • Enhanced Data Support Silverlight 3 delivers:
    • Element to Element binding : UI designers use binding between two UI properties to create compelling UI experiences. Silverlight now enables property binding to CLR objects and other UI components via XAML, for instance binding a slider value to the volume control of a media player.
    • Data Forms. The Data Form control provides support for layout of fields, validation, updating and paging through data.
    • New features for data validation which automatically catch incorrect input and warn the user with built-in validation controls.
    • Support for business objects on both client and server with n-Tier data support. Easily load, sort, filter and page data with added support for working with data. Includes a new built-in CollectionView to perform a set of complex operations against server side data. A new set of .NET RIA services supports these features on the server.
  • Improved performance, through:
    • Application library caching, which reduces the size of applications by caching framework on the client in order to improve rendering performance.
    • Enhanced Deep Zoom, allows users to fluidly navigate through larger image collections by zooming.
    • Binary XML allows communication with the server to be compressed, greatly increasing the speed at which data can be exchanged.
    • Local Connection This feature allows communication between two Silverlight applications on the client-side without incurring a server roundtrip: for instance a chart in one control can communicate with a datagrid in another.

I’ve just downloaded the bits and will begin exploring the new controls and just how easy it is or is not to build applications. My only criteria at the moment is whether or not the applications are as easy to build as a Windows Forms application. Obviously there are far more important evaluation criteria, but I’m wondering whether my stated criteria here will be the more common question raised in the enterprise. That is, can we build apps faster, easier, better with this? If not, I’m not sure the enterprise will get too awfully excited about it unless a clear case can be made for replacing the often time consuming, error prone web application development process with a simpler Silverlight 3 development process.

One way or another, I’m excited about Silverlight 3 and eager to dive in and have some fun.

Business Process Management with Ultimus and .NET

After a long search for the right business process management platform that would allow us to integrate and extend with .NET, my team selected the Ultimus BPM Suite. The primary factors in the decision were the comprehensive nature of the solution which would allow us to deploy process management without requiring the use of some other tool such as InfoPath or SharePoint. Additionally, the solution would allow an incomplete process to be deployed and have assigned "process experts" make final decisions about business rules that may not have been clear or available at the time the process was designed.

I spent all of last week at their North Carolina offices in a "jumpstart" training course and met many of the key players at the company. Good people all around. Their technical expertise and willingness to listen to our team's concerns were impressive. There were a few minor UI glitches that we brought to their attention such as some scrolling issues when designing a process with limited screen real estate. The Ultimus people were genuinely interested in our input.

Having initially found and recommended the product, I was even more impressed with the product as we went through detailed training that brought out a number of features and illustrated an architecture that gave me even greater confidence in the product. This was particularly true in the area of integration points with existing systems and the ability to extend the process using custom developed controls or even process context aware ASP.NET pages hosted outside of the process server.

Our only disappointment was that some of the the training session content could have been improved as at times some of the class members were left a little lost and fell behind. This was in part because the "jumpstart" course was designed to fit a lot of material into a few days, but it was in part due to a lack of maturity in the content and presentation. We were very candid with the Ultimus training director about this and he took our input eagerly and promised improvement. Based on my conversations with key Ultimus employees, I believe that will happen.

If you are looking for a better way to deliver business process management and enterprise human-centric workflow solutions, you should consider Ultimus. There were other systems that were much more expensive that may have fit our requirements, but this was the only one we found that allowed us the freedom to extend and customize using our .NET dev skills without requiring coding skills to design and modify and manage processes.

I'll be writing more about Ultimus as our experience with the product continues.

Automated Translation Not Spammer Friendly

The following spam message (less the links) skipped through my spam filters somehow. If you are not a native speaker of English, this message may appear to be in order if your skill level with the language is limited. Otherwise, I suspect you will find this text as amusing as I did. I have not modified a single character. Enjoy...

welcome to order,
Our company is one of the largest wholesalers in Asia ,and we sell products to all over the world,we have the authorithed licence issured by Chinese government,all products in our company ranges from varieties of electronic products like mobilephone ,television, laptop,DVD,GPS,MP3/4 to photograph video game ,scanner, motorcycle prohector and so on..
We have earned our reputation in the world through our honesty business practice in the past years,and obtained many compliments from our clients globally.As we are the direct wholesalers for many reputable brands in the world,so all the products purchased in our website are promised to be at a lower price with the high quality,also all the facuty products will be returned within 7 days,exchange within 14 days,repair within 2 years without charge.
We will be right here waiting for your visitation.

I hope that as software architects and engineers we are producing code and other textual artifacts that communicate with greater clarity and understanding of the language and idiom in which we express our ideas. Do we write documentation as badly because we can only communicate clearly in code? Or vice versa? It is something to think about.

Apple, I'm a PC and You're a Hypocrite

One of the latest Apple ads makes fun of Microsoft for spending more on marketing than on fixing Vista. Time for all you fruit computer junkies to face some cold hard facts:

Let's take our most recent SEC filing quarter for both companies and compare spending on sales, marketing and administration versus research and development and then average that spending per employee.

Microsoft spends about $25,000 per employee on R&D and $43,000 on sales, marketing and administration.
A ratio of 1 to 1.72.

Apple spends about $16,300 per employee on R&D and $51,200 on sales, marketing and administration.
A ratio of 1 to 3.13.

So relatively speaking, Apple spends nearly twice as much on sales, marketing and administration as Microsoft does.

And that's one reason why I'm a PC. You can keep your fruit computer.

What is Enterprise Software Architecture

I just posted this on a linkedin group to which I belong, but I thought I'd also like to pose the question here.

I'd like to get a discussion started that attempts to define enterprise software architecture. My own definition seems to be evolvoing with every enterprise for whom I've worked. In the abstract, for me, enterprise software architure is the art of putting the pieces of multiple puzzles together into one great work of art.

There are many puzzles to choose from and every enterprise has a unique mix. There are multiple teams with various skillsets and experience. There are multiple business processes sometimes with unique and strange business rules. Technology platforms that differ, communications protocols that won't communicate with one another, languages, frameworks, compilers, IDEs, components, and hardware that vary from team to team and department to department. Ours is the task of taking these disparate and often incongruous pieces and molding them into one coherent masterpiece of technology and human resources to get more done, get it done better, quicker, cheaper and easier. And if we do our jobs well, it may be that no one will notice that we did it at all.

What do you think?

To Outsource Or Not to Outsource, That is the Question

I just posted the following note on a LinkedIn group I follow in answer to a post about so called "software factories," which is a nice euphemism for overseas developers working for much less than they deserve struggling to meet the unreasonable demands of their bosses. This represents my opinion on the subject:

Never forget that you get what you pay for. Hiring an overseas or even local "software factory" or consultancy to build your software can be problematic at best and a complete waste of time and money at worst.

First, if you cannot communicate, forget about it. Building software is 99% communication and 1% technology. Okay, perhaps I overstate the case. A little. But you cannot overestimate the importance of clear, effective communication.

Second, unless you have the internal people required to manage such a relationship, your project will fail. This means you need project management and technical people in your own organization that you know well and trust. They need to be supremely competent. This is especially true if you plan to hire a firm outside of your own geographical area.

Third, plan for time and budget overages. It is the nature of consulting to promise a low price and quick turnaround and then when you are committed to the project and it is "nearly done," you will be informed that there is much more to do, generally due to legitimate changes in requirements because you did not fully understand what you wanted when the project first began. This is the boon and bane of software development whether internal or external.

Finally, you can have success outsourcing your software development project, but do not make the mistake of thinking that it will save you an enormous amount of time and money, especially for a single application project. It takes time to develop a working relationship with an outside consultantcy, especially one that is half way around the world. If you have multiple projects, long term goals, and a huge budget of time and money, it may in fact be cost effective to have a relationship with a so called "software factory." But if you are a small organization and have one or two projects, you will nearly always be better off hiring a professional locally, usually through one of the many technical recruiting companies, to come into your organization as a contractor to work on-site building exactly what you want as you discover over time what it is you want exactly.

Taking a Comment Holiday to Escape the Spammers

I upgraded to the latest version of dasBlog a few days ago and inadvertently allowed comments without requiring approval. A spambot comment got through and while I quickly turned on the "require approval" feature, it was too late. Since then I've been bombarded with stupid link spam comments. I even deleted the one post that seemed to be the bot target and created a new post with the same content.

No luck. After many similar spam comments today being posted to the most recent post on my blog, I'm giving up. I'm taking a comment holiday. It won't bother anyone really because I don't get many real comments. I'll enable the comment functionality some day in the future.

Meantime, if you have a comment, feel free to email me and I'll post it as an addendum to the relevant post.