Composite Application Guidance for WPF
We try to regularly update our guidance library with content we have developed to meet the demands of architects and application developers seeking guidance on how to apply Microsoft’s array of products and technologies to common application development scenarios and technical challenges,
We recently shipped the latest edition to our guidance library - Composite Application Guidance for WPF.
This composite guidance covers many of the scenarios covered by our Composite Application Block (CAB), With this new release, we target WPF and incorporate feedback and learnings from CAB. This guidance package is designed to help developers more easily build enterprise-level Windows Presentation Foundation (WPF) client applications. This guidance will guide developers through the design and build steps for flexible composite WPF client applications - composite applications use loosely coupled, independently evolvable pieces that work together in the overall application.The solutions built in this mannerwill take advantage of the full power of WPF and will be highly maintainable, testable, and broken down in such a way that the various pieces can be developed by separate teams.
Composite Application Guidance and CAB were inspired by applications such as the Dell call center application that is used by call center representatives to provide a task centric experience. This reduced the need to copy and paste between applications. Additionally it reduced the average call time and increased efficiency and effectiveness of the sales process.
Some of the focus areas for this guidance package include:
§ Modularity: The Composite Application Library promotes modularity by allowing you to implement business logic, visual components, infrastructure components, presenter or controller components, and any other objects the application requires, in separate modules. Developers can easily create the UI and implement business logic independently of each other.
§ User Interface Composition: The Composite Application Library promotes user interface composition by allowing you to implement visual components from various loosely coupled visual components, known as views, which may reside in separate modules. The visual components may display content from multiple back-end systems. To the user, it appears as one seamless application.
Within this package you will find a reference implementation, a composite application library for WPF, Quickstart guides, a Hands on Lab and over 300 pages of documentation including UI designer guidance and How-To’s.
You can get access to this guide via MSDN here, or through the CodePlex here. There are various customers who are using this guidance today to build their real world applications including accounting firms, large banks and government agencies.
Namaste!
Comments
Anonymous
July 15, 2008
I presume you didn't mean to say that this "reduced the average call time AND efficiency AND effectiveness"...Anonymous
July 16, 2008
Can you give names of companies or references to projects using CAG4WPF?Anonymous
July 16, 2008
Thanks CJM55 for catching the typo. I have fixed the text to reflect "reduced the average call time and INCREASED efficiency and effectiveness". -somasegarAnonymous
July 16, 2008
Publicación del inglés original : martes 15 de julio de 2008 12:20 PM PST por Somasegar Intentamos actualizarAnonymous
July 16, 2008
are there any source codes available with sample application to understand PRISM better?Anonymous
July 17, 2008
Hi Tomer, Here are a couple of customers that use this WPF guidance. IdeaBlade (ISV) - http://www.ideablade.com/ iDesign (SI consultancy) - http://www.idesign.net/idesign/desktopdefault.aspx -somasegarAnonymous
July 20, 2008
Hi, the StockTrader Reference Implementation http://msdn.microsoft.com/en-us/library/cc707869.aspx (with source code) is probably the best place to start – it illustrates the baseline architecture for our composite application guidance and library and it demonstrates solutions for common and recurring challenges for developers that are looking to build composite WPF applications. We also have provided Quick Starts http://msdn.microsoft.com/en-us/library/cc707865.aspx - for those developers that are looking for brief, quick-and-dirty illustrations – and prefer to start by looking at the code. The Patterns the Composite Application Library (http://msdn.microsoft.com/en-us/library/cc707841.aspx in ) is another good place to understand the patterns that our team encountered when they began working with customers and partners that have built Composite WPF applications. It is a good complement to the source code view. Hope these pointers help. -somasegarAnonymous
July 20, 2008
Sorry for not blogging anything for the last few weeks but thinks are very busy at this moment... preparingAnonymous
July 21, 2008
I have gotten to know the original CAB offering and its implementation of the Model-View-(Controller/Presenter) patterns there-in. I recently taken a look at Composite UI for WPF and I must admit I am greatly disappointed. I have spoken to a number of other developers and they agree that it is immensely difficult to understand what is going on in the framework with regard to Model-View Presenter, especially if one is well versed in CAB and/or SCSF. The samples provided cause more confusion than anything else. They're all over the place. Perhaps it would be a good idea to stick with outlining consistent Model-View Presenter type projects.Anonymous
July 21, 2008
Hi Phcmi - thank you for considering the Composite Application Guidance for WPF. We work with a number of customers and partners to scope and drive the requirements for our guidance deliverables. For instance, a large global financial institution has told us that that this deliverable 'is meeting and exceeding in terms of simplicity and clarity'. However, we seem to have disappointed you in this case. We are sorry to hear that our samples were not effective. I lead the p&p team at Microsoft - and I am committed to ensuring that we address your needs here. Can I please ask you to reach out to me at jdevados@microsoft.com? thank you again for considering our guidance deliverables. john devadoss jdevados@microsoft.comAnonymous
August 06, 2008
Hi All! 2 Questions - Has any of this been applied to Silverlight even if in prototype form, and what is the roadmap to help folks build composite Silverlight applications?Anonymous
August 07, 2008
Hi! Can someone in the p&p team please talk about the popularity of Prism, future plans, is it strategic step of Microsoft for Composite Applications next Gen? Future support and Features? It is very important to know if it a right step to start using it. Thanks!Anonymous
August 07, 2008
Hi Eduardo and David, We are working on extending Prism to support SL as well as WPF. As well as providing support for building composite SL based RIA applications, we are also focused on building applications that can target the two environments - so that you can build a smart client WPF version of an application and a browser hosted SL version of hte same application by re-using modules and servcies across the two environments. This effort is in its early stagesbut there have been a few spikes already checked into TFS on the Prism CodePlex site. Later in the year, you will hear more from us on this. -somasegarAnonymous
August 07, 2008
Hi Somasegar, Thanks a lot for answering my question, but what I really interesting in is the future of Prism for WPF, popularity, etc. ThanksAnonymous
August 07, 2008
Hi David, We have just released Prism (Composite WPF Guidance) and if the popularity of the previous generation of this guidance i.e. the Composite Application Block for Windows Forms is any indication then we expect Prism to be extraordinarily popular. Our intention is that Prism enable for Composite WPF applications what the CAB was able to do for Composite Windows Forms applications. And the interest from our customers and partners, and our own field architects and developer evangelists indicates that we are on a good path here. We are committed to enhancing and supporting Prism as our platform evolves. We are currently working on extending Prism to support Silverlight as well as WPF. A key investment we are making here is providing support building applications that can target both WPF and Silverlight - so you can build a smart client WPF version of an application and a browser hosted Silverlight version of the same application by re-using modules and services across the two environments. In addition we have built Prism to specifically allow incremental adoption of only the capabilities that you need, which was not always the case with the CAB. If you are building a composite application and you are using WPF then yes please definitely consider using Prism. Our patterns & practices team is working with a number of early adopters (customers and partners) and will also be happy to help you. -somasegarAnonymous
August 07, 2008
We are developing some composite application approaches for Silverlight. I don't see the need to port Prism to Silverlight one to one.Anonymous
August 08, 2008
Thanks Somasegar for this valuable information. Be sure that I will use Prism for future WPF Composite Applications.Anonymous
August 10, 2008
How can i integrate MAF in Composite WPF (PRISM)? Does prism support MAF?Anonymous
August 10, 2008
Hi HPatel_it - I am assuming that you are referring to the Managed Add-in Framework. yes, we have several customers in the Composite WPF Customer Advisory Board that are working with both. Composite WPF (Prism) uses an IModuleLoader and IModuleEnumerator for discovery and loading of modules. When using MAF you will want to use MAF specific versions of these services. There are also MAF-specific constraints - particularly wrt contracts among others. Would you please contact me on email at jdevados@microsoft.com and we can help you with the specifics of this integration for your scenario? thank you for considering Composite WPF. john devadoss http://blogs.msdn.com/jdevadosAnonymous
August 12, 2008
The comment has been removedAnonymous
August 12, 2008
Hi Tomer - thank you for considering Prism. As you have called out, Prism is a good start since it provides an infrastructure for working with modules, services etc. We have designed Prism to not be an all-or-thing choice - you can adopt a subset of the functionality. It sounds like you would like to decompose your application into modules and load them based on the specific customer needs - and we can address your requirement. We have used a Supervising Controller in the Reference Implementation and from my limited understanding of your 'UI Flow' I believe we can meet your requirement here as well. But, could you please share with me at jdevados@microsoft.com additional context on your application and we can help you. thanks john http://blogs.msdn.com/jdevadosAnonymous
September 11, 2008
Hi John, I sent you an Email one month ago, unfortunately I got no respond.Anonymous
November 04, 2008
Publicación del inglés original : Jueves 30 de octubre de 2008, 4:07 PM PST por Somasegar He escrito