WCSF Roadmap and Request for Feedback

Topics: Web Client Software Factory, Project Management Forum, User Forum
Coordinator
Dec 3, 2008 at 6:40 PM
Blaine has posted the Roadmap for WCSF on his blog.  I've also posted about the roadmap and referred people to Blaine's post at Where is WCSF headed?.
To make things easy, I wanted to create an easy place for folks to provide feedback about the Roadmap and to allow folks to easily request features that they want added in the next version of WCSF. 
So, please let us know what you think.....

Thanks,
Michael Puleio -- patterns & practices 
http://blogs.msdn.com/mpuleio/
Dec 3, 2008 at 7:52 PM
In terms of priority, I feel the following are the must haves for the next release:

1. Replace ObjectBuilder with Unity.
2. Integration with WCF [this can be the module for distributed business logic]
3. Must have an option as a seperate project for MVC.


Dec 5, 2008 at 6:00 PM
More than what "routecoder" cited, I think that we should start thinking about an integration of Commerce Server into the WCSF as a module! as there's many Commerce server developers that needs guidance on eCommerce websites development.
Dec 12, 2008 at 5:43 PM
1. Keep composition and modularity functions
2. Extensible to Sharepoint, MVC, Silverlight etc.
3. Abstract DI, logging, security to interface and give at least one implementation.
4. Better examples support for extensibility.
5. Url re-writing.

Chester
Dec 24, 2008 at 7:04 AM
I wish there will be a intermediate release between the Mar 08 release and the vs10 release. Some issues like IIS7 support and Enterprise Library 4 support should be inside.
Developer
Jan 7, 2009 at 3:58 PM
Keeping this thread alive.
Mar 12, 2009 at 8:20 AM
A simply way to create a specific submenu for each business module.
In this way I want to create a menu like the MSDN site: 
  • first row for sections (the business modules)
  • second row for action in the business module (one for each page in the module) 
Mar 30, 2009 at 4:39 PM
I would like to see the next version of WCSF adopt a convention over configuration based approach to minimize XML configuration and coded wiring up of object references. I would also like to see more focus on specific locations for code assets.

I would like to see specific folders in modules that are reflected upon for types in those locations at module load time and then cached for performance. I also would like to see elimination of having to separate modules into an interface and implementation class library. Each module should be able to contain as sub-folders:

Entities - Would contain domain model entities, probably EF or L2S generated or perhaps custom classes that you create and will hydrate with SQL Data Reader.

Repositories - Would contain crud methods (GetById, GetAll, Add, Delete) for entities. Would also contain interfaces that these repositories implement. Any interfaces found in this namespace could be decorated with an attribute to make them available at the global scope so they can be used by other modules. The classes that implement these interfaces should be able to decorate public interface references to other repositories with attributes like we do today but using Unity to have these dependency injected.

MockRepositories - Could contain classes named "Mock<RepositoryInterfaceName>" that when run through a unit test (outside of HttpContext) would be passed to other layers that request dependency injected instances of repository classes instead of the ones in the Repositories namespace.

Services - Would contain business methods that do things that don't make sense on the repositories (calculations etc.). Would also contain interfaces that these services implement. Any interfaces found in this namespace could be deocrated with an attribute to make them available at the global scope so they can be used by other modules. The classes that implement these interfaces should be able to decorate public interface references to other repositories or services with attributes like we do today but using Unity to have these dependency injected.

MockServices - Could contain classes named "Mock<ServiceInterfaceName>" that when run through a unit test (outside of HttpContext) would be passed to other layers that request dependency injected instances of service classes instead of the ones in the Services namespace.

EntityTranslators - Would contain classes that translate from the domain entities into DataContracts that can be passed to the UI and databound to in views. These would implement a generic interface with from/to methods for the types being translated between.

DataContracts - Would contain (optional) WCF data contract classes that are translated to from domain entities. The purpose of these is to pass to the views from a presenter so that behavior can be removed from domain entities when they arrive at the presentation layer and potentially several message types for the same entity can be created for different use cases e.g. fully hydrated contracts for add/edit pages and summary contracts for lists.

Presenters - Would contain the presenters that work like they do today. The classes that implement these interfaces should be able to decorate public interface references to other repositories, services, or the controller with attributes like we do today but using Unity to have these dependency injected.

ViewInterfaces - Would contain the view interfaces associated with each presenter.
Mar 31, 2009 at 6:06 PM
Similar to what Enterprise Lib team did, we should probably open up the product backlog for all of us to vote and comment on.

Even though ASP.NET MVC is great, WCSF still provides better infrastructure for multiple developers to work on a module based development. Specially helpful in agile teams, where we need to focus on vertical development.

I would like to see focus on performance and agree with routecoder on Unity.
Aug 9, 2009 at 6:24 AM

Hi. I read you are building a list of customers using WCSF. Well, I'm writing on behalf of the National Payments System (SINPE) of Costa Rica (Central America).This system is developed by the Central Bank of Costa Rica (http://www.bccr.fi.cr). SINPE offers more than 40 applications (services) and has more than 1500 users, being one of the most important systems of our country. 

Currently, SINPE is a Windows Client Application that uses .NET Remoting for client-server communication, but we are developing a number of new finantial services for a new web portal built using the WCSF. This web portal will offer several new finantial services for the people of Costa Rica. Each service is built as a module in the WCSF and operates under a common Framework using EntLib 4. This new web portal will be publicly accesible thought the Internet (http://www.centraldirecto.fi.cr), and we are also building a portal for finantial institutions in Costa Rica that will operate on our extranet.These composite websites are planned to be released on late September, 2009.

As you can see, we use the WCSF extensively and are very interested in knowing more about the roadmap of the WCSF, specially on using EntLib 5. 

On my personal behalf, I'd like to see the next features on the new release of WCSF:

- Integration of ASP.NET MVC

- Using of Unity for Dependency Injection

- Integration with EntLib 5

Thanks for your work!

Oscar Centeno

http://great-code.blogspot.com

Sep 7, 2009 at 7:08 AM

Hi Michael and team,

This roadmap thread and WSCF project activity in general seems to have tailed off.   The last source code commit was in Feb 2008;  Blaine's roadmap blog comments also end in Feb 2008, and I can't find any posts anywhere describing the scope of the (VS2010 timeframe) roadmap release.   Michael's great Espresso Fueled blog sequence on replacing ObjectBuilder with Unity also tails off, so it seems to this observer that project momentum has sputtered, and almost died!   And yet folk have still voted on the Issuer Tracker fairly recently... there is a marketplace out there.  

So what's the real roadmap story team?   Does WSCF have a future, or has the momentum behind Unity, MEF and (sigh) Prism overtaken this effort?  (Sigh = I want Prism for composite-web (Forms) apps, not just Silverlight/WPF!)  Given this is a thread asking the people what they want... I want a public statement of the project's future.

My agenda:  I'm on the verge of committing a large Asp.Net MVP (Forms) development project to the use of WSCF's CWAB to provide a composite-web (modules) implementation.   We want composite-web as the application is large and different business modules are developed by different teams.  But we also want to grow the app framework up from a small footprint, so we're starting from Travis's excellent post sample (http://www.paraesthesia.com/archive/2008/04/29/using-composite-web-application-block-without-web-client-software-factory.aspx).   Neither EntLib (except .Data and .Logging)  nor VS recipes have taken hold in our dev shop.  And like everyone else, we want Unity/OB2 not OB.   I wonder whether or not MEF should be adopted as the "module" abstraction, and I'd like to see a RI "bundle" that demonstrates the use of AJAX and Silverlight controls.   Another bundle that demonstrates how to host the CWAB sub-system inside Sharepoint and package modules into .wsps... that's the icing on my cake.

Now, I don't mind trialling Michael's "use at own risk" version of CWAB-with-Unity, nor do I mind making the documented changes to get V2 to work in IIS7 pipeline mode.... but I'd sure feel more comfortable knowing that I had a "real" CWAB 3.0 to upgrade to sometime next year.    And yes, I *am* prepared to become a Developer in the project if the momentum can be regenerated...

Regards, Garth 

Sep 24, 2009 at 3:06 PM

We are working on a few large composite applications in WCSF and in a few cases we have been rolling our own to provide some features. Notably :

  • sitemap loading : sitemaps specified per module and combined at load time into a single in memory site tree. This means modules can be added and removed without the need to tinker with some grand sitemap file in the main shell site
  • pluggable modules : modules can be dropped in to a shell website and loaded when the application loads. This is all in one dir, so we arent copying dll's to the main site bin folder. This means module removal is pretty simple too, just remove the dir. The modules have some configuration sections that can be used to affect the whole application configuration when the site loads.
  • configuration file based dependency injection : service layers swapped without needing to rebuild.

I'm looking forward to perhaps having Unity in there. When can we expect to play with bits?

Oct 22, 2009 at 8:42 PM

Are there any updates on this? I'm not concerned about the project continuing as much as I am about a composite framework for non-Silverlight web based applications. It would be really nice if the WCSF functionality was incorporated into Prism so that the composite core framework would be the same without regard to the target UI rendering platform. Like everyone else I want to have a pluggable DI container but just Unity would suffice. Leveraging MEF would be nice. Integration with EL 5 or 4.1 would be super. My final wish would be a quick start showing how these tools can be leveraged in Sharepoint (so that I don't have to build it.)

Feb 11, 2010 at 2:29 PM

Hi again,

So the roadmap for ent lib 5 and unity 2 came out the other day. What is the story with WCSF for 2010? Reading the web guidance project page it says that a port will be available for visual studio 2010, does this mean no new features? Is this project headed for the wayside to make way for an MVC future?

 

Coordinator
Feb 11, 2010 at 6:09 PM

Hi Peter,

This post from Don Smith deals with some of your questions so perhaps you might find it useful.

Please let me know if this helps.

Damian Schenkelman
http://blogs.southworks.net/dschenkelman

Mar 7, 2010 at 8:14 PM
petershort wrote:

Hi again,

So the roadmap for ent lib 5 and unity 2 came out the other day. What is the story with WCSF for 2010? Reading the web guidance project page it says that a port will be available for visual studio 2010, does this mean no new features? Is this project headed for the wayside to make way for an MVC future?

 

 This is my question. I really need to make a decision as to whether to start porting to MVC or sticking with WCSF. Hopefully the upgrade of WCSF for VS2010 will come out soon so I can make the upgrade to VS2010 w/out making this decision.

Coordinator
Mar 22, 2010 at 8:34 PM

As I stated in a blog post last summer and in one I posted today, we decided to start over with a new version of Web Guidance. The rationale for this decision was that most of the Composite Web Application Block (CWAB) capabilities for WCSF was to create a container for Object Builder while Unity provided much of the same capabilities out of the box. Additionally the platform changed enough that we thought it was the right time to take a fresh look at how to develop rich responsive modular Web applications.

Additionally, we will create guidance on how to migrate from WCSF to the new Web Guidance. Roy if you want to discuss it leave me an email at my blog: http://blogs.msdn.com/blaine.