First and foremost, I am not a UI expert, and to be honest, I don't remember the last time I wrote UI code for production. I gravitated to the cloud a couple of years ago. Like most developers, I started out building primitive front-end applications that got more sophisticated over time. Whether that meant moving from VBScript to .NET components, or .NET components to WS-* services, my passion today is distributed enterprise architecture vis-a-vis SOA. I *could* do UI development if I had to. I might recommend some patterns such as output caching and MVC, but from an implementation and design perspective, I would not be the strongest contributor on your team.
So, what is a SOA guy doing at MIX 08? Good question.
A lot has happened since I was out here in 07, and the Sliverlight platform has matured in many areas, including controls, UI and Framework Class Library support. As a SOA guy, my biggest interest is around how the integration story has matured in the last 12 months or so.
According to Scott G's blog, Silverlight 2 includes now includes out of the box support for calling REST, WS*/SOAP, POX, RSS, and standard HTTP services. As a WCF guy, I am particularly interested in how the WCF story has matured.
I also want to understand what all the REST fuss is about, and where Redmond's head is with regards to who gets the first class seat when it comes to Silverlight.
Some who frequent my blog (all 3 of you) may be asking, why should I care about Silverlight? As I mentioned here, User Experience is going to be at the top of most CIO's hit list, just like Java, .NET, SOA and BPM have been. In addition to pillars of enterprise architecture like availability, scalability, performance, security and reliability, UX will become a competitive differentiator both in Line of Business (LOB) application scenarios as well as Business to Consumer scenarios.
The reason for this is ROI. If you can get a team that really understands UX to help build your user interface, your customers are going to either save money or make more money as a result of a more efficient and effective UI.
We are witnessing a convergence in many dimensions. Agile development methodology recognizes how critical collaboration between customer and delivery roles is for delivering business value. Designers are joining the TEAM. Whereas in the past, a designer would throw together some wire frames and toss them over the wall to the engineering team, these role are converging, both from an individual core competency perspective as well as from a team perspective. The best designers typically come from advertising and marketing firms. They get business value because they think in terms of metrics such as impressions and click throughs. Do you see the alignment with business value? I do.
So how does this convergence happen? Tools, tools, tools! Well, not just tools, but that is a big part of it. You need smart, capable people, and a process/methodology that supports the fluidity of interdependent disciplines.
And it is not all just about eye candy either. Silverlight and WPF will make for gorgeous UIs, and that will certainly help to position UX as a critical part of any application design, but that is really more of psychological by product than a functional one.
For example, I can't tell you how annoying I find "Death by Flash" websites that try so hard to look sexy and cool, but have a HORRIBLE user interface. I hate them. I will choose the "low bandwidth" option any time I have a choice because I don't want to settle for form and give up function.
User Experience is all about balancing form and function. Sounds simple, doesn't it?
So why Silverlight?
Simple. HTTP, web servers, the web, internet and intranet have become widely adopted by corporations as well as consumers for consuming and working with data. For these reasons, Click Once never really had the footprint that I would have hoped to see. If you do a comparison of the capabilities that Smart Client Click Once applications provide against a web server hosted model, particularly in intranet, enterprise scenarios, Smart Client is a no-brainer (see http://reddevnews.com/news/devnews/article.aspx?editorialsid=255 for my quote from MIX 07), especially from a productivity stand point. No offense to my ASP.NET and AJAX friends and colleagues, but I would rather crank out a Windows Forms app over an AJAX enabled ASP.NET app any day, especially if I am managing to my team's budget. Regardless, the reason that Silverlight is important is that CIOs and consumers understand the web. CIOs understand the deployment and hosting models and they are tried and true. Consumers understand Google and URLs.
For better or for worse, we will be on the web for a very long time and Microsoft gets this. Some will accuse Microsoft of being late to the game (again), but to be fair, the industry as a whole has learned much in just the last year or two. This thing called Web 2.0 apparently happened, that consumers get, but geeks such as myself tend to scratch our heads asking what this Web 2.0 thing is all about when we've been doing this stuff for years?
The Road to Software as a Service
If we accept Web 2.0 for whatever it is, then I can tell you that Web 3.0 is coming, and Microsoft is ahead of the curve this time. Way ahead.
Why? Because CIOs are not going to give up pillars of enterprise architecture in favor of eye candy, and consumers are going to come to expect eye candy and useful user experiences the same way that CIOs expect their applications and systems to be available.
Perceptions drive adoption and evangelism, and the psychological impact of a really intuitive and sexy UI cannot be underestimated. But gorgeous UIs are not enough. You need a strong services story behind it.
That is the key to Software and Services, which is really only a stepping stone towards truly making the transition to software as a service.
I cannot think of a more productive, robust or powerful framework for realizing this vision than the .NET Framework, and slowly but surely, it will, literally be, everywhere.