(X) Hide this Watch a recording of the live webcast '10 Silverlight Tips' by Gill Cleeren, delivered on October 27th.
Skip Navigation LinksHome / Articles / View Article

Interview with Article Author Brian Noyes

+ Add to SilverlightShow Favorites
0 comments   /   posted by Svetla Stoycheva on Jul 05, 2010
(0 votes)
Categories: Misc

 

We recently got a number of SilverlightShow member requests to cover WCF RIA Services in-deep, through articles or tutorials. And - here came the first three (part I, part II, part III) from a series of 10 articles on the topic, by the expert in Microsoft Software Development, and .NET particularly, Brian Noyes.

In this interview we talk to Brian on his article series, WCF RIA Services, and more..Meet Brian!

Q. Brian - please briefly introduce yourself and your professional experience (include professional background, company, interests - anything you think might be interesting to SilverlightShow community).
 

A. I’m chief architect of IDesign (www.idesign.net – a .NET architecture and design consulting and training company), the Microsoft Regional Director for the Mid-Atlantic Region (Washington DC and the surrounding states), and a Microsoft MVP.

I got started programming as a hobby back around 1990 with C++ while I was in the U.S. Navy flying F-14 Tomcats. I was an aerospace engineer by education initially and managed software projects while still in the Navy (while flying as flight test aircrew). I also wrote some applications on the side to support my Navy projects, including a fairly sophisticated cockpit simulator of the F-14D that was used for prototyping new mission computer software for the aircraft and used to train squadrons on the new software they would be flying with once we released the version we were working on. That was all written in C++, MFC, and DirectX. Eventually I decided to get out and make this my second career.

I’ve been working with .NET since before it became public as part of some early publishing efforts. I’m the author of Data Binding in Windows Forms 2.0, Smart Client Deployment with ClickOnce, and Developing Applications with Windows Workflow Foundation. These days I spend most of my time focusing on WPF and Silverlight, as well as our core competency at IDesign, which is WCF. I’m also starting to spend a lot of time on mobile development including Windows Phone 7, iPhone, and iPad. I’ve also been deeply involved in the development of Prism, the composite application guidance from Microsoft patterns and practices, since the first version released. We are currently working on Prism 4, which is due out in the September/October timeframe.

Q. The WCF RIA Services article series you started out on SilverlightShow have been quite a success so far. Why do you think this is?
 

A. WCF RIA Services is a very appealing technology to a lot of developers because it greatly simplifies getting data from the back end into your Silverlight client application and back again, without needing to much at all about WCF itself as a technology. Any new technology that promises a big productivity boost and reducing the amount of plumbing code you need to write is naturally going to attract a lot of attention. Of course nothing comes for free, so you have to make some design tradeoffs that I’ll be talking about in coming articles.

Q. Could you mention a particularly interesting/challenging tip or trick you will reveal in one of the next article parts?
 

A. The biggest challenge with WCF RIA Services is unit testability. I’ll be touching on ways to address that in Part 4, which is focused on the Model-View-View-Model pattern, and in part 8, which is focused on testing and debugging. The structure of the generated client code in WCF RIA Services requires you to depend on certain concrete types to leverage its capabilities. Concrete type dependencies are the enemy of testability, because they are difficult to mock. So I’ll be discussing several strategies for addressing that limitation of WCF RIA Services.

Q. Does WCF RIA Services fit well in a real LOB scenario?
 

A. I think WCF RIA Services fits well for many real LOB scenarios. If the application is very data intensive, the RIA Services approach for managing that data between the front and back end is very appealing. Like I mentioned, there are some tradeoffs, so it is important to realize that even though RIA Services makes coding the data management much easier, certain things can become a bit more complicated because you will be limited by the support that WCF RIA Services gives you. But for all the push-pull of data back and forth between front and back end, it can really save a lot of time, and you don’t have to give up on good design to use it.

Q. Developers weren't happy with the performance of WCF RIA Services in the CTP/Beta versions. What is your opinion on that? Does it perform well now in the final version?
 

A. As far as I have seen, the performance is more than sufficient for real applications. Any time you add abstraction layers into your call chain, you are going to have to give up some performance. So it becomes a tradeoff in this case between productivity and performance, but a completely reasonable one I think. Most software products don’t fail because of performance, they fail because of schedule and inability to deliver in time to meet the business needs. It doesn’t matter how fast the code runs if you get cancelled. I don’t think performance should really be a concern in this case.

Q. How does WCF RIA Services fit in the MVVM world we all live in?
 

A. Structurally, it is easy to mix WCF RIA Services and MVVM, as I’ll show in my next article. You do have to pass on some of the drag and drop benefits that WCF RIA Services has, in particular the use of the DomainDataSource object within your XAML. But you still get a lot of benefit from the simplicity of getting data from back end to client and back. The biggest tradeoff is testability. One of the main motivators for MVVM is to be able to test your view model. If you do MVVM in the simple, straightforward way with WCF RIA Services, you end up embedding a DomainContext derived class in your view model. While this works fine, it is very difficult to mock. So that leads you to the testability patterns that I will be covering in Part 8. But the bottom line is that you can definitely mix MVVM and WCF RIA Services, you just have to make some tough decisions on the right mix of testability vs fully leveraging WCF RIA Services functionality.

Q. We have recently released a fully Silverlight-based version of www.completit.com - the corporate portal of the company behind SilverlightShow. However, porting an entire website to Silverlight is a step not many companies are yet willing to make. Why do you think? What else does Silverlight 4 miss to become fully trusted for LOB applications?
 

A. I don’t think it is what Silverlight 4 lacks, but more a limitation of the companies doing the development combined with the reach limitations of Silverlight as a technology. There are a lot of web developers out there. There are a lot fewer Silverlight developers. And the skill set required to build an entire site with Silverlight for all pages, and yet still support deep linking and search engine optimization, and other aspects that are a critical part of doing a full site is a big hurtle for a lot of companies.

Then there is of course the fact that Silverlight is not supported on as many platforms as HTML-based sites are, so deciding to potentially exclude a set of users of your site can be a big problem. Despite being deeply immersed and supportive of Microsoft technologies, I’m also an iPad user. And as a user I get frustrated every time I try to follow a link to a Silverlight or Flash site and can’t view it from that platform. That is a tradeoff companies have to consider, but for business applications that will be used in controlled environments it should not be a big problem, and despite the hype around iPad, the numbers are actually trivially small compared to Windows netbook, laptop, and desktop sales.

Q. You are a top rated presenter, which are the next events you will be speaking at?
 

A. I’m doing a tour of 3 Southern California user groups 12-15 July. I’m teaching a public WPF class in Sweden the week of 13 September, a Silverlight class in Norway the week of 27 September, and then speaking at DevConnections in Las Vegas the first week of November. There are a couple other European conferences in the October/November timeframe I hope to speak at, but their speaker lists have not been announced yet.

Brian - thanks for the opportunity to introduce you to SilverlightShow community. We hope you will keep contributing to creating top-quality article content on SilverlightShow!

 

Share


Comments

Comments RSS RSS
No comments

Add Comment

 
 

   
  
  
   
Please add 1 and 6 and type the answer here: