views:

54

answers:

1

We are revisiting our presentation tier architecture as a blueprint for future new, and re-written business systems (Just the presentation tier), using Microsoft technology stacks.

We have around 30 .NET systems (2, 3 and 3.5), about 60% of which are web based (CWAB + Web Forms) and 40% Smart Client (using CAB / SCSF, WinForms) All systems integrate into a back end SOA stack via ASMX or WCF (i.e. the 'back end' systems architecture is common)

The objectives are

  • if possible, to try to keep the codebase as 'common' as possible between Web, Windows and Mobile (currently no reuse of MVP / MVC between Web and WinForms)
  • Will increasingly need to support Mobile devices
  • Most of our systems are grunt line of business systems - functionality is more important than aesthetic requirements
  • Definitely a lean toward moving across to WPF
  • Even if there is no presentation tier reuse, to keep a consistent architecture (MVC / MVP / MVVM etc) between the clients
  • Stay mainstream!

Some thoughts have swung between

  • ASP.NET MVC 2 + jQuery etc for web + ?Prism / WPF for Smart Client vs
  • Prism for all (Smart Client and Silverlight) vs
  • Sharepoint Web Parts (Portal Architecture) vs
  • Leaving Web / Winforms and waiting for the dust to settle some more ;)

How does the future HTML5 effect your thinking?

Apologies for such an open ended question, but would really value the SO community's advice and experience on this!

Thanks in advance!

+1  A: 

We are in a similar situation and have given this subject considerable thought. For us we ruled out Sharepoint Web Parts for several reasons. That could be a valid path for some, but expensive.

We are using MVC for externally facing user interfaces with some Silverlight modules for specific needs that require richer user interaction.

For internally facing user interfaces we are using Silverlight/Prism/MVVM for new modules and, for now, hosting the new Silverlight modules in the existing WinForms Smart Client system using a browser control. We have been able to create the needed interaction between the existing Smart Client code and the Silverlight modules with much trouble. This has worked well for our system, but your mileage may vary. I beleive the ease of integration was helped by our simple application framework that we used instead of the more general but more complicated CAB framework for Smart Client.

At some point in the future as we upgrade older modules from WinForm to Silverlight, drop them becasue they are no longer needed, or rewrite them to accomodate significant business changes. We will then redo the host application, completely embrace the Silverlight/Prism/MVVM environment and drop all of the WinForm code. The obvious advantage of this approach being that we do not have to redo all of the UI at once.

So far, it is working well for us. Good luck whatever route you choose.

Jim Reineri
Thanks v much Jim - I guess we are still a way off from a magic wand solution ;)Agree with the comment about CAB - it is generally overkill for most of our applications as well.When you say "...Silverlight modules with much trouble" - what were the problems that you encountered ?
nonnb
Only difficulty was communicating from the Silverlight module back into the WinForms host application thru the browser control. It works, but is more work that I would have liked. http://stackoverflow.com/questions/198360/silverlight-hosted-in-winforms
Jim Reineri