<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>waf Wiki &amp; Documentation Rss Feed</title><link>http://waf.codeplex.com/Wiki/View.aspx?title=Home</link><description>waf Wiki Rss Description</description><item><title>Updated Wiki: Modular Architecture</title><link>https://waf.codeplex.com/wikipage?title=Modular Architecture&amp;version=4</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Modular Architecture&lt;/h1&gt;
&lt;h2&gt;1. Introduction&lt;/h2&gt;Applying only the &lt;a href="https://waf.codeplex.com/wikipage?title=Architecture%20-%20Get%20The%20Big%20Picture&amp;referringTitle=Modular%20Architecture"&gt;Layered Architecture&lt;/a&gt; for structuring a large software system into maintainable parts might not be sufficient. The Modular Architecture can solve this issue. It extends the layering by introducing another dimension to separate the software system.&lt;br /&gt; &lt;br /&gt;Separation dimensions:
&lt;ol&gt;&lt;li&gt;Layers separate the software artifacts into technical groups (e.g. Presentation layer contains UI related code).&lt;/li&gt;
&lt;li&gt;Modules separate the software artifacts into distinct parts which are often specific domain aspects (e.g. an email client might separate the email management implementation and the address book implementation into separate modules).&lt;/li&gt;&lt;/ol&gt;
&lt;img src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=waf&amp;DownloadId=598649" alt="Figure&amp;#32;1&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;two&amp;#32;separation&amp;#32;dimensions&amp;#32;of&amp;#32;layers&amp;#32;and&amp;#32;modules." title="Figure&amp;#32;1&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;two&amp;#32;separation&amp;#32;dimensions&amp;#32;of&amp;#32;layers&amp;#32;and&amp;#32;modules." /&gt;&lt;br /&gt;&lt;i&gt;Figure 1: Shows the two separation dimensions of layers and modules.&lt;/i&gt;&lt;br /&gt; 
&lt;h2&gt;2. Motivation&lt;/h2&gt;Applying the Modular Architecture gives us the following advantages:
&lt;ul&gt;&lt;li&gt;Provides a simple and clean software structure.&lt;/li&gt;
&lt;li&gt;Prevents that unrelated classes depend on each other.&lt;/li&gt;
&lt;li&gt;Changing the implementation of a module doesn’t affect other modules.&lt;/li&gt;
&lt;li&gt;Reduces the efforts to maintain and extend the software system. This comes of fewer dependencies in the software system.&lt;/li&gt;
&lt;li&gt;Helps to scale the software development to more development teams. A Modular Architecture requires good interfaces between the modules. These interfaces can be used to separate the responsibilities of the development teams.&lt;/li&gt;
&lt;li&gt;Developers can concentrate on their own modules and don’t need to understand the implementation of the other modules. They just work with the “documented” interfaces of the other modules.&lt;/li&gt;
&lt;li&gt;Simplifies unit testing because dependent modules can be replaced by mock implementations.&lt;/li&gt;&lt;/ul&gt;
Note: These advantages are not for free! They are seen only if the development teams follow the Software Architecture rules. And that requires a severe discipline of all involved developers.&lt;br /&gt; 
&lt;h2&gt;3. Participants&lt;/h2&gt;The three types participating in a Modular Architecture are: Module; Interface; Application Framework.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=waf&amp;DownloadId=598650" alt="Figure&amp;#32;2&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;participants&amp;#32;of&amp;#32;a&amp;#32;Modular&amp;#32;Architecture." title="Figure&amp;#32;2&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;participants&amp;#32;of&amp;#32;a&amp;#32;Modular&amp;#32;Architecture." /&gt;&lt;br /&gt;&lt;i&gt;Figure 2: Shows the participants of a Modular Architecture.&lt;/i&gt;&lt;br /&gt; 
&lt;h3&gt;3.1. Module&lt;/h3&gt;A module contains all software artifacts for a distinct part of the software system. This distinct part represents often a specific domain/business aspect.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;A module contains all the types that are necessary to implement the distinct part of the software system.&lt;/li&gt;
&lt;li&gt;A module is responsible for all technical aspects. This might include the user interface for the module’s domain or the persistency. Therefore, a module consists of various layers.&lt;/li&gt;
&lt;li&gt;A module must not have a direct dependency to another module. &lt;/li&gt;
&lt;li&gt;Communication between modules must be decoupled by an Interface.&lt;/li&gt;
&lt;li&gt;A module can be replaced by another module without the need to recompile the software system.&lt;/li&gt;
&lt;li&gt;A module consists of one or more .NET Assemblies.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;A module has an assembly reference to another module. As a result, these modules aren’t decoupled of each other.&lt;/li&gt;
&lt;li&gt;Avoid creating too much modules in a software system. The overall complexity will rise because the communication between the modules must be decoupled. &lt;/li&gt;
&lt;li&gt;A module does not focus on the specific part for which it is responsible for. This results in a negative impact on the understandability and manageability of the code.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h3&gt;3.2. Interface&lt;/h3&gt;The interface exposes the public functionality of a module. Different modules can communicate via this interface with each other.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;An interface contains the types that are necessary to expose the public functionality of one module.&lt;/li&gt;
&lt;li&gt;Other modules might use this public functionality. Thus, they have a direct dependency to the interface.&lt;/li&gt;
&lt;li&gt;The types can be:
&lt;ul&gt;&lt;li&gt;Interfaces&lt;/li&gt;
&lt;li&gt;Data Transfer Objects (DTO). These are simple immutable objects without any logic.&lt;/li&gt;
&lt;li&gt;EventArgs. These classes are similar to DTOs.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The number of types in the interface assembly should be low. This ensures low coupling between the modules.&lt;/li&gt;
&lt;li&gt;An interface consists of one or more .NET Assemblies. In most scenarios only one .NET Assembly is used.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;If the interface contains a lot of types then this can be a sign that the module boundaries are not chosen well. Bloating interfaces tighten the coupling between the modules and this lowers the advantages of the Modular Architecture (see 2. Motivation).&lt;/li&gt;
&lt;li&gt;Every module that exposes public functionality must provide it’s on interface assemblies. An interface is implemented by only one module but it can be used by any module.&lt;/li&gt;
&lt;li&gt;Avoid exposing the module’s domain objects via the interface. Instead, create a DTO object which contains the required data.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Quality&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;Changing the interfaces has a huge impact on the whole software system. Therefore, the quality of the interfaces is very important. Here are some recommendations to improve the quality of the interface assemblies:
&lt;ul&gt;&lt;li&gt;Apply code reviews.&lt;/li&gt;
&lt;li&gt;Activate Code Analysis with “Microsoft All Rules”.&lt;/li&gt;
&lt;li&gt;Enable XML Comments. Use them to document the interface members.&lt;/li&gt;
&lt;li&gt;Write a document about the usage of the module’s public functionality. Consider to add important design decisions regarding the interface to this document.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h3&gt;3.3. Application Framework&lt;/h3&gt;The application framework is the foundation for the software system. It contains all the types that should be shared between multiple modules.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;The application framework might provide reusable types of various layers. Examples:
&lt;ul&gt;&lt;li&gt;Presentation layer: Custom controls, global ResourceDictionaries&lt;/li&gt;
&lt;li&gt;Domain layer: Custom base class for domain objects&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The WPF Application Framework (WAF) can also be seen as application framework. It provides types that can be used by all modules (e.g. ViewModel).&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Avoid using the application framework to overcome the effort to decouple the module communication.&lt;/li&gt;
&lt;li&gt;Do not implement types that are used by only one module. These types should reside within the responsible module.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Quality&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;Changing the application framework has a major impact on the whole software system. All modules might have a dependency to this framework. For that reason, the quality is very important. Here are some recommendations to improve the quality of the application framework:
&lt;ul&gt;&lt;li&gt;Apply code reviews.&lt;/li&gt;
&lt;li&gt;Activate Code Analysis with “Microsoft All Rules”.&lt;/li&gt;
&lt;li&gt;Enable XML Comments. Use them to document the public types and members.&lt;/li&gt;
&lt;li&gt;Write a document about the usage and architecture of the application framework.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h2&gt;4. Alternative: Extensions&lt;/h2&gt;Sometimes it is not appropriate to separate a part of the system into two modules because they would have to work tightly together. Consequently, this would create a bloating interface for the communication.&lt;br /&gt; &lt;br /&gt;In that case the usage of an extension might be the better choice. An extension is part of the module and thus, it is able to access the internal implementation.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=waf&amp;DownloadId=598651" alt="Figure&amp;#32;3&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;dependency&amp;#32;between&amp;#32;the&amp;#32;core&amp;#32;implementation&amp;#32;and&amp;#32;the&amp;#32;extension." title="Figure&amp;#32;3&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;dependency&amp;#32;between&amp;#32;the&amp;#32;core&amp;#32;implementation&amp;#32;and&amp;#32;the&amp;#32;extension." /&gt;&lt;br /&gt;&lt;i&gt;Figure 3: Shows the dependency between the core implementation and the extension.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;The BookLibrary sample application comes with a reporting extension. This extension allows the user to create reports about the books in the library. The extension needs full access to the Book and Person entities (domain objects). &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;The extension can easily be replaced with another implementation (e.g. a mock implementation to simplify the unit testing of the module).&lt;/li&gt;
&lt;li&gt;The module might be implemented in a way that the availability of the extension is optional.&lt;/li&gt;
&lt;li&gt;An extension is part of one module. It cannot be reused by other modules.&lt;/li&gt;&lt;/ul&gt;
 &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Fri, 10 May 2013 07:37:02 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Modular Architecture 20130510073702A</guid></item><item><title>Updated Wiki: Downloads</title><link>https://waf.codeplex.com/wikipage?title=Downloads&amp;version=43</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Downloads Overview&lt;/h2&gt;&lt;h3&gt;Stable&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.400 &lt;/td&gt;&lt;td&gt; Dec 08 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/98850"&gt;WPF Application Framework (WAF) 2.5.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.1 &lt;/td&gt;&lt;td&gt; Jan 03 2013 &lt;/td&gt;&lt;td&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f8d578d5-cf37-461c-882e-d6e4ca39969b"&gt;WAF Project Template&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.0.0.400 &lt;/td&gt;&lt;td&gt; Sep 19 2011 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/73586"&gt;WPF Application Framework (WAF) 2.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 1.0.0.400 &lt;/td&gt;&lt;td&gt; Aug 13 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/50517"&gt;WPF Application Framework (WAF) 1.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.350 &lt;/td&gt;&lt;td&gt; Jun 18 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/47427"&gt;WPF Application Framework (WAF) 1.0.0.350&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h3&gt;Alpha&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.5 &lt;/td&gt;&lt;td&gt; 3.0.0.5 &lt;/td&gt;&lt;td&gt; Apr 21 2013 &lt;b&gt;(NEW)&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/105455"&gt;WPF Application Framework (WAF) 3.0.0.5&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h3&gt;Experimental&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.1 &lt;/td&gt;&lt;td&gt; Sep 19 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/52583"&gt;WAF Windows Forms Adapter 1.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Silverlight 3 &lt;/td&gt;&lt;td&gt; 1.0.0.0 &lt;/td&gt;&lt;td&gt; Jul 12 2009 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/30057"&gt;WAF Concepts in Silverlight 3 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sun, 21 Apr 2013 13:33:03 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Downloads 20130421013303P</guid></item><item><title>Updated Wiki: Downloads</title><link>http://waf.codeplex.com/wikipage?title=Downloads&amp;version=42</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Downloads Overview&lt;/h2&gt;&lt;h3&gt;Stable&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.400 &lt;/td&gt;&lt;td&gt; Dec 08 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/98850"&gt;WPF Application Framework (WAF) 2.5.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.1 &lt;/td&gt;&lt;td&gt; Jan 03 2013 &lt;/td&gt;&lt;td&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f8d578d5-cf37-461c-882e-d6e4ca39969b"&gt;WAF Project Template&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.0.0.400 &lt;/td&gt;&lt;td&gt; Sep 19 2011 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/73586"&gt;WPF Application Framework (WAF) 2.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 1.0.0.400 &lt;/td&gt;&lt;td&gt; Aug 13 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/50517"&gt;WPF Application Framework (WAF) 1.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.350 &lt;/td&gt;&lt;td&gt; Jun 18 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/47427"&gt;WPF Application Framework (WAF) 1.0.0.350&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h3&gt;Alpha&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.5 &lt;/td&gt;&lt;td&gt; 3.0.0.4 &lt;/td&gt;&lt;td&gt; Mar 23 2013 &lt;b&gt;(NEW)&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/103895"&gt;WPF Application Framework (WAF) 3.0.0.4&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h3&gt;Experimental&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.1 &lt;/td&gt;&lt;td&gt; Sep 19 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/52583"&gt;WAF Windows Forms Adapter 1.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Silverlight 3 &lt;/td&gt;&lt;td&gt; 1.0.0.0 &lt;/td&gt;&lt;td&gt; Jul 12 2009 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/30057"&gt;WAF Concepts in Silverlight 3 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sat, 23 Mar 2013 10:51:39 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Downloads 20130323105139A</guid></item><item><title>Updated Wiki: Downloads</title><link>http://waf.codeplex.com/wikipage?title=Downloads&amp;version=41</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Downloads Overview&lt;/h2&gt;&lt;h3&gt;Stable&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.400 &lt;/td&gt;&lt;td&gt; Dec 08 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/98850"&gt;WPF Application Framework (WAF) 2.5.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.1 &lt;/td&gt;&lt;td&gt; Jan 03 2013 &lt;/td&gt;&lt;td&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f8d578d5-cf37-461c-882e-d6e4ca39969b"&gt;WAF Project Template&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.0.0.400 &lt;/td&gt;&lt;td&gt; Sep 19 2011 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/73586"&gt;WPF Application Framework (WAF) 2.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 1.0.0.400 &lt;/td&gt;&lt;td&gt; Aug 13 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/50517"&gt;WPF Application Framework (WAF) 1.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.350 &lt;/td&gt;&lt;td&gt; Jun 18 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/47427"&gt;WPF Application Framework (WAF) 1.0.0.350&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h3&gt;Alpha&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.5 &lt;/td&gt;&lt;td&gt; 3.0.0.3 &lt;/td&gt;&lt;td&gt; Feb 23 2013 &lt;b&gt;(NEW)&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/102383"&gt;WPF Application Framework (WAF) 3.0.0.3&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h3&gt;Experimental&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.1 &lt;/td&gt;&lt;td&gt; Sep 19 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/52583"&gt;WAF Windows Forms Adapter 1.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Silverlight 3 &lt;/td&gt;&lt;td&gt; 1.0.0.0 &lt;/td&gt;&lt;td&gt; Jul 12 2009 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/30057"&gt;WAF Concepts in Silverlight 3 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sat, 23 Feb 2013 16:09:35 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Downloads 20130223040935P</guid></item><item><title>Updated Wiki: Downloads</title><link>http://waf.codeplex.com/wikipage?title=Downloads&amp;version=40</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Downloads Overview&lt;/h2&gt;&lt;h3&gt;Stable&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.400 &lt;/td&gt;&lt;td&gt; Dec 08 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/98850"&gt;WPF Application Framework (WAF) 2.5.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.1 &lt;/td&gt;&lt;td&gt; Jan 03 2013 &lt;/td&gt;&lt;td&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f8d578d5-cf37-461c-882e-d6e4ca39969b"&gt;WAF Project Template&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.0.0.400 &lt;/td&gt;&lt;td&gt; Sep 19 2011 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/73586"&gt;WPF Application Framework (WAF) 2.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 1.0.0.400 &lt;/td&gt;&lt;td&gt; Aug 13 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/50517"&gt;WPF Application Framework (WAF) 1.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.350 &lt;/td&gt;&lt;td&gt; Jun 18 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/47427"&gt;WPF Application Framework (WAF) 1.0.0.350&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h3&gt;Alpha&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.5 &lt;/td&gt;&lt;td&gt; 3.0.0.2 &lt;/td&gt;&lt;td&gt; Jan 26 2013 &lt;b&gt;(NEW)&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/100941"&gt;WPF Application Framework (WAF) 3.0.0.2&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h3&gt;Experimental&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.1 &lt;/td&gt;&lt;td&gt; Sep 19 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/52583"&gt;WAF Windows Forms Adapter 1.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Silverlight 3 &lt;/td&gt;&lt;td&gt; 1.0.0.0 &lt;/td&gt;&lt;td&gt; Jul 12 2009 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/30057"&gt;WAF Concepts in Silverlight 3 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sat, 26 Jan 2013 14:17:26 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Downloads 20130126021726P</guid></item><item><title>Updated Wiki: Downloads</title><link>http://waf.codeplex.com/wikipage?title=Downloads&amp;version=39</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Downloads Overview&lt;/h2&gt;&lt;h3&gt;Stable&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.400 &lt;/td&gt;&lt;td&gt; Dec 08 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/98850"&gt;WPF Application Framework (WAF) 2.5.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.1 &lt;/td&gt;&lt;td&gt; Jan 03 2013 &lt;/td&gt;&lt;td&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f8d578d5-cf37-461c-882e-d6e4ca39969b"&gt;WAF Project Template&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.0.0.400 &lt;/td&gt;&lt;td&gt; Sep 19 2011 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/73586"&gt;WPF Application Framework (WAF) 2.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 1.0.0.400 &lt;/td&gt;&lt;td&gt; Aug 13 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/50517"&gt;WPF Application Framework (WAF) 1.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.350 &lt;/td&gt;&lt;td&gt; Jun 18 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/47427"&gt;WPF Application Framework (WAF) 1.0.0.350&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Alpha&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.5 &lt;/td&gt;&lt;td&gt; 3.0.0.2 &lt;/td&gt;&lt;td&gt; Jan 26 2013 &lt;b&gt;(NEW)&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/100941"&gt;WPF Application Framework (WAF) 3.0.0.2&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Experimental&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.1 &lt;/td&gt;&lt;td&gt; Sep 19 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/52583"&gt;WAF Windows Forms Adapter 1.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Silverlight 3 &lt;/td&gt;&lt;td&gt; 1.0.0.0 &lt;/td&gt;&lt;td&gt; Jul 12 2009 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/30057"&gt;WAF Concepts in Silverlight 3 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sat, 26 Jan 2013 14:17:12 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Downloads 20130126021712P</guid></item><item><title>Updated Wiki: Downloads</title><link>http://waf.codeplex.com/wikipage?title=Downloads&amp;version=38</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Downloads Overview&lt;/h2&gt;&lt;h3&gt;Stable&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.400 &lt;/td&gt;&lt;td&gt; Dec 08 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/98850"&gt;WPF Application Framework (WAF) 2.5.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.1 &lt;/td&gt;&lt;td&gt; Jan 03 2013 &lt;/td&gt;&lt;td&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f8d578d5-cf37-461c-882e-d6e4ca39969b"&gt;WAF Project Template&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.0.0.400 &lt;/td&gt;&lt;td&gt; Sep 19 2011 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/73586"&gt;WPF Application Framework (WAF) 2.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 1.0.0.400 &lt;/td&gt;&lt;td&gt; Aug 13 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/50517"&gt;WPF Application Framework (WAF) 1.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.350 &lt;/td&gt;&lt;td&gt; Jun 18 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/47427"&gt;WPF Application Framework (WAF) 1.0.0.350&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Alpha&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.5 &lt;/td&gt;&lt;td&gt; 3.0.0.2 &lt;/td&gt;&lt;td&gt; Jan 26 2013 &lt;b&gt;(NEW)&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/100941"&gt;WPF Application Framework (WAF) 3.0.0.2&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Experimental&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.1 &lt;/td&gt;&lt;td&gt; Sep 19 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/52583"&gt;WAF Windows Forms Adapter 1.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Silverlight 3 &lt;/td&gt;&lt;td&gt; 1.0.0.0 &lt;/td&gt;&lt;td&gt; Jul 12 2009 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/30057"&gt;WAF Concepts in Silverlight 3 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sat, 26 Jan 2013 14:15:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Downloads 20130126021542P</guid></item><item><title>Updated Wiki: Downloads</title><link>https://waf.codeplex.com/wikipage?title=Downloads&amp;version=37</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Downloads Overview&lt;/h2&gt;&lt;h3&gt;Stable&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.400 &lt;/td&gt;&lt;td&gt; Dec 08 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/98850"&gt;WPF Application Framework (WAF) 2.5.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.1 &lt;/td&gt;&lt;td&gt; Jan 03 2013 &lt;/td&gt;&lt;td&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f8d578d5-cf37-461c-882e-d6e4ca39969b"&gt;WAF Project Template&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.0.0.400 &lt;/td&gt;&lt;td&gt; Sep 19 2011 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/73586"&gt;WPF Application Framework (WAF) 2.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 1.0.0.400 &lt;/td&gt;&lt;td&gt; Aug 13 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/50517"&gt;WPF Application Framework (WAF) 1.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.350 &lt;/td&gt;&lt;td&gt; Jun 18 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/47427"&gt;WPF Application Framework (WAF) 1.0.0.350&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Alpha&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.5 &lt;/td&gt;&lt;td&gt; 3.0.0.1 &lt;/td&gt;&lt;td&gt; Jan 10 2013 &lt;b&gt;(NEW)&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/100152"&gt;WPF Application Framework (WAF) 3.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.1 &lt;/td&gt;&lt;td&gt; Sep 19 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/52583"&gt;WAF Windows Forms Adapter 1.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Silverlight 3 &lt;/td&gt;&lt;td&gt; 1.0.0.0 &lt;/td&gt;&lt;td&gt; Jul 12 2009 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/30057"&gt;WAF Concepts in Silverlight 3 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Thu, 10 Jan 2013 21:02:35 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Downloads 20130110090235P</guid></item><item><title>Updated Wiki: Downloads</title><link>https://waf.codeplex.com/wikipage?title=Downloads&amp;version=36</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Downloads Overview&lt;/h2&gt;&lt;h3&gt;Stable&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.400 &lt;/td&gt;&lt;td&gt; Dec 08 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/98850"&gt;WPF Application Framework (WAF) 2.5.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.1 &lt;/td&gt;&lt;td&gt; Jan 03 2013 &lt;/td&gt;&lt;td&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f8d578d5-cf37-461c-882e-d6e4ca39969b"&gt;WAF Project Template&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.0.0.400 &lt;/td&gt;&lt;td&gt; Sep 19 2011 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/73586"&gt;WPF Application Framework (WAF) 2.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 1.0.0.400 &lt;/td&gt;&lt;td&gt; Aug 13 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/50517"&gt;WPF Application Framework (WAF) 1.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.350 &lt;/td&gt;&lt;td&gt; Jun 18 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/47427"&gt;WPF Application Framework (WAF) 1.0.0.350&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Alpha&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.5 &lt;/td&gt;&lt;td&gt; 3.0.0.1 &lt;/td&gt;&lt;td&gt; Jan 10 2013 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/100152"&gt;WPF Application Framework (WAF) 3.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.1 &lt;/td&gt;&lt;td&gt; Sep 19 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/52583"&gt;WAF Windows Forms Adapter 1.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Silverlight 3 &lt;/td&gt;&lt;td&gt; 1.0.0.0 &lt;/td&gt;&lt;td&gt; Jul 12 2009 &lt;/td&gt;&lt;td&gt; &lt;a href="https://waf.codeplex.com/releases/view/30057"&gt;WAF Concepts in Silverlight 3 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Thu, 10 Jan 2013 21:01:09 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Downloads 20130110090109P</guid></item><item><title>New Comment on "Modular Architecture"</title><link>http://waf.codeplex.com/wikipage?title=Modular Architecture&amp;ANCHOR#C26097</link><description>Please use Discussions or Issue Tracker for Feedback.</description><author>jbe2277</author><pubDate>Sat, 05 Jan 2013 13:28:11 GMT</pubDate><guid isPermaLink="false">New Comment on "Modular Architecture" 20130105012811P</guid></item><item><title>Updated Wiki: Home</title><link>http://waf.codeplex.com/wikipage?version=35</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Project Description&lt;/h2&gt;The WPF Application Framework &amp;#40;WAF&amp;#41; is a lightweight Framework that helps you to create well structured WPF Applications. It supports you in applying a Layered Architecture and the Model-View-ViewModel &amp;#40;aka MVVM, M-V-VM, PresentationModel&amp;#41; pattern.&lt;br /&gt;
&lt;h2&gt;Downloads&lt;/h2&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Downloads Overview&lt;/a&gt;: Lists the WPF Application Framework (WAF) downloads for various platforms (e.g. .NET4.5, .NET4, .NET3.5, WPF, Windows Forms, Silverlight3).&lt;br /&gt; 
&lt;h2&gt;Features&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=waf&amp;DownloadId=286510" alt="WPF&amp;#32;Application&amp;#32;Framework&amp;#32;&amp;#40;WAF&amp;#41;" title="WPF&amp;#32;Application&amp;#32;Framework&amp;#32;&amp;#40;WAF&amp;#41;" /&gt;&lt;br /&gt; 
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Architecture&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Architecture%20-%20Get%20The%20Big%20Picture&amp;referringTitle=Home"&gt;Layered Architecture&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Modular%20Architecture&amp;referringTitle=Home"&gt;Modular Architecture&lt;/a&gt; [1, 2]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Modular%20Architecture&amp;referringTitle=Home"&gt;Extensions&lt;/a&gt; [3]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Model-View-ViewModel%20Pattern&amp;referringTitle=Home"&gt;Model-View-ViewModel Pattern&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=DataModel-View-ViewModel%20Pattern&amp;referringTitle=Home"&gt;DataModel-View-ViewModel Pattern&lt;/a&gt; [1, 3]&lt;/li&gt;
&lt;li&gt;UI extension services [2]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;User Interface&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;View Composition [1-4]&lt;/li&gt;
&lt;li&gt;UI Workflow [2-4]&lt;/li&gt;
&lt;li&gt;Modal Dialogs [2-4]&lt;/li&gt;
&lt;li&gt;Filter data [2, 3]&lt;/li&gt;
&lt;li&gt;Sort data [3]&lt;/li&gt;
&lt;li&gt;Custom Control [2]&lt;/li&gt;
&lt;li&gt;Tabbed MDI [4]&lt;/li&gt;
&lt;li&gt;Animated page transition [4]&lt;/li&gt;
&lt;li&gt;Reporting via &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.documents.flowdocument.aspx"&gt;FlowDocument&lt;/a&gt; [3]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Domain&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Validation with &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.aspx"&gt;DataAnnotations&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.idataerrorinfo.aspx"&gt;IDataErrorInfo&lt;/a&gt; [1-3]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Persistence&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/data/ef.aspx"&gt;Entity Framework&lt;/a&gt; [3]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/data/ff687142.aspx"&gt;SQL Server Compact Edition&lt;/a&gt; [3]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Miscellaneous&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;DelegateCommand [1-4]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx"&gt;INotifyPropertyChanged&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa970850.aspx"&gt;Weak Events&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;Recent file list [1, 4]&lt;/li&gt;
&lt;li&gt;MessageService [1-4]&lt;/li&gt;
&lt;li&gt;FileDialogService [1, 4]&lt;/li&gt;
&lt;li&gt;Print [3, 4]&lt;/li&gt;
&lt;li&gt;Print Preview [4]&lt;/li&gt;
&lt;li&gt;Export Document as XPS [4]&lt;/li&gt;
&lt;li&gt;Localization [4]&lt;/li&gt;
&lt;li&gt;Unit Testing [1-4]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Footnotes&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;[1] The WPF Application Framework (WAF) directly supports this feature.&lt;/blockquote&gt;&lt;blockquote&gt;[2] The &lt;a href="http://waf.codeplex.com/documentation?referringTitle=Home"&gt;Information Manager&lt;/a&gt; sample application shows how to implement this feature.&lt;/blockquote&gt;&lt;blockquote&gt;[3] The &lt;a href="http://waf.codeplex.com/documentation?referringTitle=Home"&gt;Book Library&lt;/a&gt; sample application shows how to implement this feature.&lt;/blockquote&gt;&lt;blockquote&gt;[4] The &lt;a href="http://waf.codeplex.com/documentation?referringTitle=Home"&gt;Writer&lt;/a&gt; sample application shows how to implement this feature.&lt;/blockquote&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sat, 05 Jan 2013 13:25:45 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130105012545P</guid></item><item><title>Updated Wiki: Modular Architecture</title><link>http://waf.codeplex.com/wikipage?title=Modular Architecture&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Modular Architecture&lt;/h1&gt;
&lt;h2&gt;1. Introduction&lt;/h2&gt;It might not be good enough to apply only the Layered Architecture for structuring a large software system into maintainable parts. The Modular Architecture can solve this issue. It extends the layering by introducing another separation dimension.&lt;br /&gt; &lt;br /&gt;Separation dimensions:
&lt;ol&gt;&lt;li&gt;Layers separate the software artifacts into technical groups (e.g. Presentation layer contains UI related code).&lt;/li&gt;
&lt;li&gt;Modules separate the software artifacts into distinct parts which are often specific domain aspects (e.g. an email client might separate the email management implementation and the address book implementation into separate modules).&lt;/li&gt;&lt;/ol&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=waf&amp;DownloadId=598649" alt="Figure&amp;#32;1&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;two&amp;#32;separation&amp;#32;dimensions&amp;#32;of&amp;#32;layers&amp;#32;and&amp;#32;modules." title="Figure&amp;#32;1&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;two&amp;#32;separation&amp;#32;dimensions&amp;#32;of&amp;#32;layers&amp;#32;and&amp;#32;modules." /&gt;&lt;br /&gt;&lt;i&gt;Figure 1: Shows the two separation dimensions of layers and modules.&lt;/i&gt;&lt;br /&gt; 
&lt;h2&gt;2. Motivation&lt;/h2&gt;Applying the Modular Architecture gives us the following advantages:
&lt;ul&gt;&lt;li&gt;Provides a simple and clean software structure.&lt;/li&gt;
&lt;li&gt;Prevents that unrelated classes depend on each other.&lt;/li&gt;
&lt;li&gt;Changing the implementation of a module doesn’t affect other modules.&lt;/li&gt;
&lt;li&gt;Reduces the efforts to maintain and extend the software system. This comes of fewer dependencies in the software system.&lt;/li&gt;
&lt;li&gt;Helps to scale the software development to more development teams. A Modular Architecture requires good interfaces between the modules. These interfaces can be used to separate the responsibilities of the development teams.&lt;/li&gt;
&lt;li&gt;Developers can concentrate on their own modules and don’t need to understand the implementation of the other modules. They just work with the “documented” interfaces of the other modules.&lt;/li&gt;
&lt;li&gt;Simplifies unit testing because dependent modules can be replaced by mock implementations.&lt;/li&gt;&lt;/ul&gt;
Note: These advantages are not for free! They are seen only if the development teams follow the Software Architecture rules. And that requires a severe discipline of all involved developers.&lt;br /&gt; 
&lt;h2&gt;3. Participants&lt;/h2&gt;The three types participating in a Modular Architecture are: Module; Interface; Application Framework.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=waf&amp;DownloadId=598650" alt="Figure&amp;#32;2&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;participants&amp;#32;of&amp;#32;a&amp;#32;Modular&amp;#32;Architecture." title="Figure&amp;#32;2&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;participants&amp;#32;of&amp;#32;a&amp;#32;Modular&amp;#32;Architecture." /&gt;&lt;br /&gt;&lt;i&gt;Figure 2: Shows the participants of a Modular Architecture.&lt;/i&gt;&lt;br /&gt; 
&lt;h3&gt;3.1. Module&lt;/h3&gt;A module contains all software artifacts for a distinct part of the software system. This distinct part represents often a specific domain/business aspect.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;A module contains all the types that are necessary to implement the distinct part of the software system.&lt;/li&gt;
&lt;li&gt;A module is responsible for all technical aspects. This might include the user interface for the module’s domain or the persistency. Therefore, a module consists of various layers.&lt;/li&gt;
&lt;li&gt;A module must not have a direct dependency to another module. &lt;/li&gt;
&lt;li&gt;Communication between modules must be decoupled by an Interface.&lt;/li&gt;
&lt;li&gt;A module can be replaced by another module without the need to recompile the software system.&lt;/li&gt;
&lt;li&gt;A module consists of one or more .NET Assemblies.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;A module has an assembly reference to another module. As a result, these modules aren’t decoupled of each other.&lt;/li&gt;
&lt;li&gt;Avoid creating too much modules in a software system. The overall complexity will rise because the communication between the modules must be decoupled. &lt;/li&gt;
&lt;li&gt;A module does not focus on the specific part for which it is responsible for. This results in a negative impact on the understandability and manageability of the code.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h3&gt;3.2. Interface&lt;/h3&gt;The interface exposes the public functionality of a module. Different modules can communicate via this interface with each other.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;An interface contains the types that are necessary to expose the public functionality of one module.&lt;/li&gt;
&lt;li&gt;Other modules might use this public functionality. Thus, they have a direct dependency to the interface.&lt;/li&gt;
&lt;li&gt;The types can be:
&lt;ul&gt;&lt;li&gt;Interfaces&lt;/li&gt;
&lt;li&gt;Data Transfer Objects (DTO). These are simple immutable objects without any logic.&lt;/li&gt;
&lt;li&gt;EventArgs. These classes are similar to DTOs.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The number of types in the interface assembly should be low. This ensures low coupling between the modules.&lt;/li&gt;
&lt;li&gt;An interface consists of one or more .NET Assemblies. In most scenarios only one .NET Assembly is used.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;If the interface contains a lot of types then this can be a sign that the module boundaries are not chosen well. Bloating interfaces tighten the coupling between the modules and this lowers the advantages of the Modular Architecture (see 2. Motivation).&lt;/li&gt;
&lt;li&gt;Every module that exposes public functionality must provide it’s on interface assemblies. An interface is implemented by only one module but it can be used by any module.&lt;/li&gt;
&lt;li&gt;Avoid exposing the module’s domain objects via the interface. Instead, create a DTO object which contains the required data.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Quality&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;Changing the interfaces has a huge impact on the whole software system. Therefore, the quality of the interfaces is very important. Here are some recommendations to improve the quality of the interface assemblies:
&lt;ul&gt;&lt;li&gt;Apply code reviews.&lt;/li&gt;
&lt;li&gt;Activate Code Analysis with “Microsoft All Rules”.&lt;/li&gt;
&lt;li&gt;Enable XML Comments. Use them to document the interface members.&lt;/li&gt;
&lt;li&gt;Write a document about the usage of the module’s public functionality. Consider to add important design decisions regarding the interface to this document.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h3&gt;3.3. Application Framework&lt;/h3&gt;The application framework is the foundation for the software system. It contains all the types that should be shared between multiple modules.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;The application framework might provide reusable types of various layers. Examples:
&lt;ul&gt;&lt;li&gt;Presentation layer: Custom controls, global ResourceDictionaries&lt;/li&gt;
&lt;li&gt;Domain layer: Custom base class for domain objects&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The WPF Application Framework (WAF) can also be seen as application framework. It provides types that can be used by all modules (e.g. ViewModel).&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Avoid using the application framework to overcome the effort to decouple the module communication.&lt;/li&gt;
&lt;li&gt;Do not implement types that are used by only one module. These types should reside within the responsible module.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Quality&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;Changing the application framework has a major impact on the whole software system. All modules might have a dependency to this framework. For that reason, the quality is very important. Here are some recommendations to improve the quality of the application framework:
&lt;ul&gt;&lt;li&gt;Apply code reviews.&lt;/li&gt;
&lt;li&gt;Activate Code Analysis with “Microsoft All Rules”.&lt;/li&gt;
&lt;li&gt;Enable XML Comments. Use them to document the public types and members.&lt;/li&gt;
&lt;li&gt;Write a document about the usage and architecture of the application framework.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h2&gt;4. Alternative: Extensions&lt;/h2&gt;Sometimes it is not appropriate to separate a part of the system into two modules because they would have to work tightly together. Consequently, this would create a bloating interface for the communication.&lt;br /&gt; &lt;br /&gt;In that case the usage of an extension might be the better choice. An extension is part of the module and thus, it is able to access the internal implementation.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=waf&amp;DownloadId=598651" alt="Figure&amp;#32;3&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;dependency&amp;#32;between&amp;#32;the&amp;#32;core&amp;#32;implementation&amp;#32;and&amp;#32;the&amp;#32;extension." title="Figure&amp;#32;3&amp;#58;&amp;#32;Shows&amp;#32;the&amp;#32;dependency&amp;#32;between&amp;#32;the&amp;#32;core&amp;#32;implementation&amp;#32;and&amp;#32;the&amp;#32;extension." /&gt;&lt;br /&gt;&lt;i&gt;Figure 3: Shows the dependency between the core implementation and the extension.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;The BookLibrary sample application comes with a reporting extension. This extension allows the user to create reports about the books in the library. The extension needs full access to the Book and Person entities (domain objects). &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;The extension can easily be replaced with another implementation (e.g. a mock implementation to simplify the unit testing of the module).&lt;/li&gt;
&lt;li&gt;The module might be implemented in a way that the availability of the extension is optional.&lt;/li&gt;
&lt;li&gt;An extension is part of one module. It cannot be reused by other modules.&lt;/li&gt;&lt;/ul&gt;
 &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sat, 05 Jan 2013 13:19:14 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Modular Architecture 20130105011914P</guid></item><item><title>Updated Wiki: Modular Architecture</title><link>http://waf.codeplex.com/wikipage?title=Modular Architecture&amp;version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Modular Architecture&lt;/h1&gt;
&lt;h2&gt;1. Introduction&lt;/h2&gt;It might not be good enough to apply only the Layered Architecture for structuring a large software system into maintainable parts. The Modular Architecture can solve this issue. It extends the layering by introducing another separation dimension.&lt;br /&gt; &lt;br /&gt;Separation dimensions:
&lt;ol&gt;&lt;li&gt;Layers separate the software artifacts into technical groups (e.g. Presentation layer contains UI related code).&lt;/li&gt;
&lt;li&gt;Modules separate the software artifacts into distinct parts which are often specific domain aspects (e.g. an email client might separate the email management implementation and the address book implementation into separate modules).&lt;/li&gt;&lt;/ol&gt;
 &lt;br /&gt;&lt;i&gt;Figure 1: Shows the two separation dimensions of layers and modules.&lt;/i&gt;&lt;br /&gt; 
&lt;h2&gt;2. Motivation&lt;/h2&gt;Applying the Modular Architecture gives us the following advantages:
&lt;ul&gt;&lt;li&gt;Provides a simple and clean software structure.&lt;/li&gt;
&lt;li&gt;Prevents that unrelated classes depend on each other.&lt;/li&gt;
&lt;li&gt;Changing the implementation of a module doesn’t affect other modules.&lt;/li&gt;
&lt;li&gt;Reduces the efforts to maintain and extend the software system. This comes of fewer dependencies in the software system.&lt;/li&gt;
&lt;li&gt;Helps to scale the software development to more development teams. A Modular Architecture requires good interfaces between the modules. These interfaces can be used to separate the responsibilities of the development teams.&lt;/li&gt;
&lt;li&gt;Developers can concentrate on their own modules and don’t need to understand the implementation of the other modules. They just work with the “documented” interfaces of the other modules.&lt;/li&gt;
&lt;li&gt;Simplifies unit testing because dependent modules can be replaced by mock implementations.&lt;/li&gt;&lt;/ul&gt;
Note: These advantages are not for free! They are seen only if the development teams follow the Software Architecture rules. And that requires a severe discipline of all involved developers.&lt;br /&gt; 
&lt;h2&gt;3. Participants&lt;/h2&gt;The three types participating in a Modular Architecture are: Module; Interface; Application Framework.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Figure 2: Shows the participants of a Modular Architecture&lt;/i&gt;&lt;br /&gt; 
&lt;h3&gt;3.1. Module&lt;/h3&gt;A module contains all software artifacts for a distinct part of the software system. This distinct part represents often a specific domain/business aspect.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;A module contains all the types that are necessary to implement the distinct part of the software system.&lt;/li&gt;
&lt;li&gt;A module is responsible for all technical aspects. This might include the user interface for the module’s domain or the persistency. Therefore, a module consists of various layers.&lt;/li&gt;
&lt;li&gt;A module must not have a direct dependency to another module. &lt;/li&gt;
&lt;li&gt;Communication between modules must be decoupled by an Interface.&lt;/li&gt;
&lt;li&gt;A module can be replaced by another module without the need to recompile the software system.&lt;/li&gt;
&lt;li&gt;A module consists of one or more .NET Assemblies.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;A module has an assembly reference to another module. As a result, these modules aren’t decoupled of each other.&lt;/li&gt;
&lt;li&gt;Avoid creating too much modules in a software system. The overall complexity will rise because the communication between the modules must be decoupled. &lt;/li&gt;
&lt;li&gt;A module does not focus on the specific part for which it is responsible for. This results in a negative impact on the understandability and manageability of the code.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h3&gt;3.2. Interface&lt;/h3&gt;The interface exposes the public functionality of a module. Different modules can communicate via this interface with each other.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;An interface contains the types that are necessary to expose the public functionality of one module.&lt;/li&gt;
&lt;li&gt;Other modules might use this public functionality. Thus, they have a direct dependency to the interface.&lt;/li&gt;
&lt;li&gt;The types can be:
&lt;ul&gt;&lt;li&gt;Interfaces&lt;/li&gt;
&lt;li&gt;Data Transfer Objects (DTO). These are simple immutable objects without any logic.&lt;/li&gt;
&lt;li&gt;EventArgs. These classes are similar to DTOs.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The number of types in the interface assembly should be low. This ensures low coupling between the modules.&lt;/li&gt;
&lt;li&gt;An interface consists of one or more .NET Assemblies. In most scenarios only one .NET Assembly is used.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;If the interface contains a lot of types then this can be a sign that the module boundaries are not chosen well. Bloating interfaces tighten the coupling between the modules and this lowers the advantages of the Modular Architecture (see 2. Motivation).&lt;/li&gt;
&lt;li&gt;Every module that exposes public functionality must provide it’s on interface assemblies. An interface is implemented by only one module but it can be used by any module.&lt;/li&gt;
&lt;li&gt;Avoid exposing the module’s domain objects via the interface. Instead, create a DTO object which contains the required data.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Quality&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;Changing the interfaces has a huge impact on the whole software system. Therefore, the quality of the interfaces is very important. Here are some recommendations to improve the quality of the interface assemblies:
&lt;ul&gt;&lt;li&gt;Apply code reviews.&lt;/li&gt;
&lt;li&gt;Activate Code Analysis with “Microsoft All Rules”.&lt;/li&gt;
&lt;li&gt;Enable XML Comments. Use them to document the interface members.&lt;/li&gt;
&lt;li&gt;Write a document about the usage of the module’s public functionality. Consider to add important design decisions regarding the interface to this document.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h3&gt;3.3. Application Framework&lt;/h3&gt;The application framework is the foundation for the software system. It contains all the types that should be shared between multiple modules.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;The application framework might provide reusable types of various layers. Examples:
&lt;ul&gt;&lt;li&gt;Presentation layer: Custom controls, global ResourceDictionaries&lt;/li&gt;
&lt;li&gt;Domain layer: Custom base class for domain objects&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The WPF Application Framework (WAF) can also be seen as application framework. It provides types that can be used by all modules (e.g. ViewModel).&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Avoid using the application framework to overcome the effort to decouple the module communication.&lt;/li&gt;
&lt;li&gt;Do not implement types that are used by only one module. These types should reside within the responsible module.&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Quality&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;Changing the application framework has a major impact on the whole software system. All modules might have a dependency to this framework. For that reason, the quality is very important. Here are some recommendations to improve the quality of the application framework:
&lt;ul&gt;&lt;li&gt;Apply code reviews.&lt;/li&gt;
&lt;li&gt;Activate Code Analysis with “Microsoft All Rules”.&lt;/li&gt;
&lt;li&gt;Enable XML Comments. Use them to document the public types and members.&lt;/li&gt;
&lt;li&gt;Write a document about the usage and architecture of the application framework.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h2&gt;4. Alternative: Extensions&lt;/h2&gt;Sometimes it is not appropriate to separate a part of the system into two modules because they would have to work tightly together. Consequently, this would create a bloating interface for the communication.&lt;br /&gt; &lt;br /&gt;In that case the usage of an extension might be the better choice. An extension is part of the module and thus, it is able to access the internal implementation.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Figure 3: Shows the dependency between the core implementation and the extension.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;The BookLibrary sample application comes with a reporting extension. This extension allows the user to create reports about the books in the library. The extension needs full access to the Book and Person entities (domain objects). &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;The extension can easily be replaced with another implementation (e.g. a mock implementation to simplify the unit testing of the module).&lt;/li&gt;
&lt;li&gt;The module might be implemented in a way that the availability of the extension is optional.&lt;/li&gt;
&lt;li&gt;An extension is part of one module. It cannot be reused by other modules.&lt;/li&gt;&lt;/ul&gt;
 &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sat, 05 Jan 2013 13:14:11 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Modular Architecture 20130105011411P</guid></item><item><title>Updated Wiki: Modular Architecture</title><link>http://waf.codeplex.com/wikipage?title=Modular Architecture&amp;version=1</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Modular Architecture&lt;/h1&gt;
&lt;h2&gt;1. Introduction&lt;/h2&gt; &lt;br /&gt;It might not be good enough to apply only the Layered Architecture for structuring a large software system into maintainable parts. The Modular Architecture can solve this issue. It extends the layering by introducing another separation dimension.&lt;br /&gt; &lt;br /&gt;Separation dimensions:
&lt;ol&gt;&lt;li&gt;Layers separate the software artifacts into technical groups (e.g. Presentation layer contains UI related code).&lt;/li&gt;
&lt;li&gt;Modules separate the software artifacts into distinct parts which are often specific domain aspects (e.g. an email client might separate the email management implementation and the address book implementation into separate modules).&lt;/li&gt;&lt;/ol&gt;
 &lt;br /&gt;&lt;i&gt;Figure 1: Shows the two separation dimensions of layers and modules.&lt;/i&gt;&lt;br /&gt; 
&lt;h2&gt;2. Motivation&lt;/h2&gt; &lt;br /&gt;Applying the Modular Architecture gives us the following advantages:
&lt;ul&gt;&lt;li&gt;Provides a simple and clean software structure.&lt;/li&gt;
&lt;li&gt;Prevents that unrelated classes depend on each other.&lt;/li&gt;
&lt;li&gt;Changing the implementation of a module doesn’t affect other modules.&lt;/li&gt;
&lt;li&gt;Reduces the efforts to maintain and extend the software system. This comes of fewer dependencies in the software system.&lt;/li&gt;
&lt;li&gt;Helps to scale the software development to more development teams. A Modular Architecture requires good interfaces between the modules. These interfaces can be used to separate the responsibilities of the development teams.&lt;/li&gt;
&lt;li&gt;Developers can concentrate on their own modules and don’t need to understand the implementation of the other modules. They just work with the “documented” interfaces of the other modules.&lt;/li&gt;
&lt;li&gt;Simplifies unit testing because dependent modules can be replaced by mock implementations.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;Note: These advantages are not for free! They are seen only if the development teams follow the Software Architecture rules. And that requires a severe discipline of all involved developers.&lt;br /&gt; 
&lt;h2&gt;3. Participants&lt;/h2&gt;
The three types participating in a Modular Architecture are: Module; Interface; Application Framework.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Figure 2: Shows the participants of a Modular Architecture&lt;/i&gt;&lt;br /&gt; 
&lt;h3&gt;3.1. Module&lt;/h3&gt; &lt;br /&gt;A module contains all software artifacts for a distinct part of the software system. This distinct part represents often a specific domain/business aspect.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;A module contains all the types that are necessary to implement the distinct part of the software system.&lt;/li&gt;
&lt;li&gt;A module is responsible for all technical aspects. This might include the user interface for the module’s domain or the persistency. Therefore, a module consists of various layers.&lt;/li&gt;
&lt;li&gt;A module must not have a direct dependency to another module. &lt;/li&gt;
&lt;li&gt;Communication between modules must be decoupled by an Interface.&lt;/li&gt;
&lt;li&gt;A module can be replaced by another module without the need to recompile the software system.&lt;/li&gt;
&lt;li&gt;A module consists of one or more .NET Assemblies.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;A module has an assembly reference to another module. As a result, these modules aren’t decoupled of each other.&lt;/li&gt;
&lt;li&gt;Avoid creating too much modules in a software system. The overall complexity will rise because the communication between the modules must be decoupled. &lt;/li&gt;
&lt;li&gt;A module does not focus on the specific part for which it is responsible for. This results in a negative impact on the understandability and manageability of the code.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h3&gt;3.2. Interface&lt;/h3&gt;
The interface exposes the public functionality of a module. Different modules can communicate via this interface with each other.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;An interface contains the types that are necessary to expose the public functionality of one module.&lt;/li&gt;
&lt;li&gt;Other modules might use this public functionality. Thus, they have a direct dependency to the interface.&lt;/li&gt;
&lt;li&gt;The types can be:
&lt;ul&gt;&lt;li&gt;Interfaces&lt;/li&gt;
&lt;li&gt;Data Transfer Objects (DTO). These are simple immutable objects without any logic.&lt;/li&gt;
&lt;li&gt;EventArgs. These classes are similar to DTOs.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The number of types in the interface assembly should be low. This ensures low coupling between the modules.&lt;/li&gt;
&lt;li&gt;An interface consists of one or more .NET Assemblies. In most scenarios only one .NET Assembly is used.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;If the interface contains a lot of types then this can be a sign that the module boundaries are not chosen well. Bloating interfaces tighten the coupling between the modules and this lowers the advantages of the Modular Architecture (see 2. Motivation).&lt;/li&gt;
&lt;li&gt;Every module that exposes public functionality must provide it’s on interface assemblies. An interface is implemented by only one module but it can be used by any module.&lt;/li&gt;
&lt;li&gt;Avoid exposing the module’s domain objects via the interface. Instead, create a DTO object which contains the required data.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Quality&lt;/b&gt;&lt;br /&gt;Changing the interfaces has a huge impact on the whole software system. Therefore, the quality of the interfaces is very important. Here are some recommendations to improve the quality of the interface assemblies:
&lt;ul&gt;&lt;li&gt;Apply code reviews.&lt;/li&gt;
&lt;li&gt;Activate Code Analysis with “Microsoft All Rules”.&lt;/li&gt;
&lt;li&gt;Enable XML Comments. Use them to document the interface members.&lt;/li&gt;
&lt;li&gt;Write a document about the usage of the module’s public functionality. Consider to add important design decisions regarding the interface to this document.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h3&gt;3.3. Application Framework&lt;/h3&gt;
The application framework is the foundation for the software system. It contains all the types that should be shared between multiple modules.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;The application framework might provide reusable types of various layers. Examples:
&lt;ul&gt;&lt;li&gt;Presentation layer: Custom controls, global ResourceDictionaries&lt;/li&gt;
&lt;li&gt;Domain layer: Custom base class for domain objects&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The WPF Application Framework (WAF) can also be seen as application framework. It provides types that can be used by all modules (e.g. ViewModel).&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;&lt;b&gt;Common Issues&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Avoid using the application framework to overcome the effort to decouple the module communication.&lt;/li&gt;
&lt;li&gt;Do not implement types that are used by only one module. These types should reside within the responsible module.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;&lt;b&gt;Quality&lt;/b&gt;&lt;br /&gt;Changing the application framework has a major impact on the whole software system. All modules might have a dependency to this framework. For that reason, the quality is very important. Here are some recommendations to improve the quality of the application framework:
&lt;ul&gt;&lt;li&gt;Apply code reviews.&lt;/li&gt;
&lt;li&gt;Activate Code Analysis with “Microsoft All Rules”.&lt;/li&gt;
&lt;li&gt;Enable XML Comments. Use them to document the public types and members.&lt;/li&gt;
&lt;li&gt;Write a document about the usage and architecture of the application framework.&lt;/li&gt;&lt;/ul&gt;
 
&lt;h2&gt;4. Alternative: Extensions&lt;/h2&gt;
Sometimes it is not appropriate to separate a part of the system into two modules because they would have to work tightly together. Consequently, this would create a bloating interface for the communication.&lt;br /&gt; &lt;br /&gt;In that case the usage of an extension might be the better choice. An extension is part of the module and thus, it is able to access the internal implementation.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Figure 3: Shows the dependency between the core implementation and the extension.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example&lt;/b&gt;&lt;br /&gt;The BookLibrary sample application comes with a reporting extension. This extension allows the user to create reports about the books in the library. The extension needs full access to the Book and Person entities (domain objects). &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Characteristics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;The extension can easily be replaced with another implementation (e.g. a mock implementation to simplify the unit testing of the module).&lt;/li&gt;
&lt;li&gt;The module might be implemented in a way that the availability of the extension is optional.&lt;/li&gt;
&lt;li&gt;An extension is part of one module. It cannot be reused by other modules.&lt;/li&gt;&lt;/ul&gt;
 &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sat, 05 Jan 2013 13:08:54 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Modular Architecture 20130105010854P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://waf.codeplex.com/documentation?version=24</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Documentation&lt;/h1&gt;&lt;h2&gt;Architecture&lt;/h2&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Architecture%20-%20Get%20The%20Big%20Picture&amp;referringTitle=Documentation"&gt;Layered Architecture&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Modular%20Architecture&amp;referringTitle=Documentation"&gt;Modular Architecture&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Model-View-ViewModel%20Pattern&amp;referringTitle=Documentation"&gt;Model-View-ViewModel Pattern&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=DataModel-View-ViewModel%20Pattern&amp;referringTitle=Documentation"&gt;DataModel-View-ViewModel Pattern&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.berchtel.com/archive/diplomathesis/html/04-fundamentals.html#Chapter4.2"&gt;Introduction of the IoC container concept&lt;/a&gt;. &lt;br /&gt;This page might help you to understand what MEF does in the sample applications.&lt;br /&gt; 
&lt;h2&gt;Sample Applications&lt;/h2&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=waf&amp;DownloadId=561040"&gt;Waf Information Manager &amp;#40;PDF&amp;#41;&lt;/a&gt; &lt;br /&gt;A modular application that comes with a fake email client and an address book.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Architecture &lt;/th&gt;&lt;th&gt; User Interface &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Layered Architecture &lt;/td&gt;&lt;td&gt; View Composition &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Modular Architecture &lt;/td&gt;&lt;td&gt; UI Workflow (e.g. Wizard) &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Model-View-ViewModel (MVVM)   &lt;/td&gt;&lt;td&gt; Modal Dialogs &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; UI extension services &lt;/td&gt;&lt;td&gt; Custom Control &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Filter data &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt; Domain &lt;/th&gt;&lt;th&gt; Miscellaneous &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Validation (IValidatableObject) &lt;/td&gt;&lt;td&gt; Weak Events &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Unit Testing &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=waf&amp;DownloadId=561043"&gt;Waf Book Library &amp;#40;PDF&amp;#41;&lt;/a&gt; &lt;br /&gt;Supports the user to manage his books. Borrowed books can be tracked by this application.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Architecture &lt;/th&gt;&lt;th&gt; User Interface &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Layered Architecture &lt;/td&gt;&lt;td&gt; Reporting via FlowDocument &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Extensions &lt;/td&gt;&lt;td&gt; Print reports &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Model-View-ViewModel (MVVM) &lt;/td&gt;&lt;td&gt; View Composition &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; DataModel-View-ViewModel &lt;/td&gt;&lt;td&gt; Modal Dialogs &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Sort and Filter data &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt; Domain &lt;/th&gt;&lt;th&gt; Persistence &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Validation (DataAnnotations) &lt;/td&gt;&lt;td&gt; Entity Framework &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; SQL Server CE &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt; Miscellaneous &lt;/th&gt;&lt;th&gt;   &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Weak Events &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Unit Testing &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=waf&amp;DownloadId=561044"&gt;Waf Writer &amp;#40;PDF&amp;#41;&lt;/a&gt; &lt;br /&gt;A simplified word processing application.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Architecture &lt;/th&gt;&lt;th&gt; User Interface &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Layered Architecture &lt;/td&gt;&lt;td&gt; Tabbed MDI &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Model-View-ViewModel (MVVM) &lt;/td&gt;&lt;td&gt; View Composition &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Animated page transition &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Recent file list &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Modal Dialogs &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Message and FileDialogService &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Print Dialog and Print Preview &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt; Miscellaneous &lt;/th&gt;&lt;th&gt;   &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Localization with language selection &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Document Management &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Export FlowDocument as XPS &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Weak Events &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Unit Testing &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=waf&amp;DownloadId=561045"&gt;Waf Localization Sample &amp;#40;PDF&amp;#41;&lt;/a&gt; &lt;br /&gt;Demonstrates a simple way to localize a WPF application.&lt;br /&gt; 
&lt;h2&gt;External Sample Applications&lt;/h2&gt;&lt;a href="http://wafstopwatch.codeplex.com"&gt;Waf Stopwatch&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Architecture: Layered Architecture; Model-View-ViewModel (MVVM)&lt;/li&gt;
&lt;li&gt;User Interface: View Composition; Animated page transition; Modal Dialogs &lt;/li&gt;
&lt;li&gt;Domain: Validation (&lt;b&gt;CustomValidationAttribute&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;Miscellaneous: Localization; &lt;b&gt;Click Once&lt;/b&gt;; Weak Events; Unit Testing&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;&lt;a href="http://fhg.codeplex.com"&gt;Waf File Hash Generator&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Architecture: Layered Architecture, Model-View-ViewModel (MVVM)&lt;/li&gt;
&lt;li&gt;User Interface: View Composition, &lt;b&gt;Drag and Drop&lt;/b&gt;, &lt;b&gt;Windows 7 Taskbar&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;Miscellaneous: &lt;b&gt;Asynchronous Code&lt;/b&gt;, Localization, Click Once, Weak Events, Unit Testing&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Migration&lt;/h2&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Upgrading%20from%20WAF%201.0&amp;referringTitle=Documentation"&gt;Upgrading from WPF Application Framework &amp;#40;WAF&amp;#41; 1.0&lt;/a&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sat, 05 Jan 2013 13:00:45 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20130105010045P</guid></item><item><title>Updated Wiki: Downloads</title><link>http://waf.codeplex.com/wikipage?title=Downloads&amp;version=35</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Downloads Overview&lt;/h2&gt;&lt;h3&gt;Stable&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.400 &lt;/td&gt;&lt;td&gt; Dec 08 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/98850"&gt;WPF Application Framework (WAF) 2.5.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.1 &lt;/td&gt;&lt;td&gt; Jan 03 2013 &lt;/td&gt;&lt;td&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f8d578d5-cf37-461c-882e-d6e4ca39969b"&gt;WAF Project Template&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.0.0.400 &lt;/td&gt;&lt;td&gt; Sep 19 2011 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/73586"&gt;WPF Application Framework (WAF) 2.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 1.0.0.400 &lt;/td&gt;&lt;td&gt; Aug 13 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/50517"&gt;WPF Application Framework (WAF) 1.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.350 &lt;/td&gt;&lt;td&gt; Jun 18 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/47427"&gt;WPF Application Framework (WAF) 1.0.0.350&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Alpha&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.5 &lt;/td&gt;&lt;td&gt; 2.5.0.440 &lt;/td&gt;&lt;td&gt; Mar 09 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/83912"&gt;WAF for .NET 4.5 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.1 &lt;/td&gt;&lt;td&gt; Sep 19 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/52583"&gt;WAF Windows Forms Adapter 1.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Silverlight 3 &lt;/td&gt;&lt;td&gt; 1.0.0.0 &lt;/td&gt;&lt;td&gt; Jul 12 2009 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/30057"&gt;WAF Concepts in Silverlight 3 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Thu, 03 Jan 2013 10:07:16 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Downloads 20130103100716A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://waf.codeplex.com/documentation?version=23</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Documentation&lt;/h1&gt;&lt;h2&gt;Architecture&lt;/h2&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Architecture%20-%20Get%20The%20Big%20Picture&amp;referringTitle=Documentation"&gt;Layered Architecture&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Model-View-ViewModel%20Pattern&amp;referringTitle=Documentation"&gt;Model-View-ViewModel Pattern&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=DataModel-View-ViewModel%20Pattern&amp;referringTitle=Documentation"&gt;DataModel-View-ViewModel Pattern&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.berchtel.com/archive/diplomathesis/html/04-fundamentals.html#Chapter4.2"&gt;Introduction of the IoC container concept&lt;/a&gt;. &lt;br /&gt;This page might help you to understand what MEF does in the sample applications.&lt;br /&gt; 
&lt;h2&gt;Sample Applications&lt;/h2&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=waf&amp;DownloadId=561040"&gt;Waf Information Manager &amp;#40;PDF&amp;#41;&lt;/a&gt; &lt;br /&gt;A modular application that comes with a fake email client and an address book.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Architecture &lt;/th&gt;&lt;th&gt; User Interface &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Layered Architecture &lt;/td&gt;&lt;td&gt; View Composition &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Modular Architecture &lt;/td&gt;&lt;td&gt; UI Workflow (e.g. Wizard) &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Model-View-ViewModel (MVVM)   &lt;/td&gt;&lt;td&gt; Modal Dialogs &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; UI extension services &lt;/td&gt;&lt;td&gt; Custom Control &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Filter data &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt; Domain &lt;/th&gt;&lt;th&gt; Miscellaneous &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Validation (IValidatableObject) &lt;/td&gt;&lt;td&gt; Weak Events &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Unit Testing &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=waf&amp;DownloadId=561043"&gt;Waf Book Library &amp;#40;PDF&amp;#41;&lt;/a&gt; &lt;br /&gt;Supports the user to manage his books. Borrowed books can be tracked by this application.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Architecture &lt;/th&gt;&lt;th&gt; User Interface &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Layered Architecture &lt;/td&gt;&lt;td&gt; Reporting via FlowDocument &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Extensions &lt;/td&gt;&lt;td&gt; Print reports &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Model-View-ViewModel (MVVM) &lt;/td&gt;&lt;td&gt; View Composition &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; DataModel-View-ViewModel &lt;/td&gt;&lt;td&gt; Modal Dialogs &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Sort and Filter data &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt; Domain &lt;/th&gt;&lt;th&gt; Persistence &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Validation (DataAnnotations) &lt;/td&gt;&lt;td&gt; Entity Framework &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; SQL Server CE &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt; Miscellaneous &lt;/th&gt;&lt;th&gt;   &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Weak Events &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Unit Testing &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=waf&amp;DownloadId=561044"&gt;Waf Writer &amp;#40;PDF&amp;#41;&lt;/a&gt; &lt;br /&gt;A simplified word processing application.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Architecture &lt;/th&gt;&lt;th&gt; User Interface &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Layered Architecture &lt;/td&gt;&lt;td&gt; Tabbed MDI &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Model-View-ViewModel (MVVM) &lt;/td&gt;&lt;td&gt; View Composition &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Animated page transition &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Recent file list &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Modal Dialogs &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Message and FileDialogService &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;   &lt;/td&gt;&lt;td&gt; Print Dialog and Print Preview &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;td&gt; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt; Miscellaneous &lt;/th&gt;&lt;th&gt;   &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Localization with language selection &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Document Management &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Export FlowDocument as XPS &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Weak Events &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Unit Testing &lt;/td&gt;&lt;td&gt;   &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=waf&amp;DownloadId=561045"&gt;Waf Localization Sample &amp;#40;PDF&amp;#41;&lt;/a&gt; &lt;br /&gt;Demonstrates a simple way to localize a WPF application.&lt;br /&gt; 
&lt;h2&gt;External Sample Applications&lt;/h2&gt;&lt;a href="http://wafstopwatch.codeplex.com"&gt;Waf Stopwatch&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Architecture: Layered Architecture; Model-View-ViewModel (MVVM)&lt;/li&gt;
&lt;li&gt;User Interface: View Composition; Animated page transition; Modal Dialogs &lt;/li&gt;
&lt;li&gt;Domain: Validation (&lt;b&gt;CustomValidationAttribute&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;Miscellaneous: Localization; &lt;b&gt;Click Once&lt;/b&gt;; Weak Events; Unit Testing&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;&lt;a href="http://fhg.codeplex.com"&gt;Waf File Hash Generator&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Architecture: Layered Architecture, Model-View-ViewModel (MVVM)&lt;/li&gt;
&lt;li&gt;User Interface: View Composition, &lt;b&gt;Drag and Drop&lt;/b&gt;, &lt;b&gt;Windows 7 Taskbar&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;Miscellaneous: &lt;b&gt;Asynchronous Code&lt;/b&gt;, Localization, Click Once, Weak Events, Unit Testing&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Migration&lt;/h2&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Upgrading%20from%20WAF%201.0&amp;referringTitle=Documentation"&gt;Upgrading from WPF Application Framework &amp;#40;WAF&amp;#41; 1.0&lt;/a&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Mon, 31 Dec 2012 17:10:06 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20121231051006P</guid></item><item><title>Updated Wiki: Downloads</title><link>http://waf.codeplex.com/wikipage?title=Downloads&amp;version=34</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Downloads Overview&lt;/h2&gt;&lt;h3&gt;Stable&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.400 &lt;/td&gt;&lt;td&gt; Dec 08 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/98850"&gt;WPF Application Framework (WAF) 2.5.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.5.0.0 &lt;/td&gt;&lt;td&gt; Dec 09 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f8d578d5-cf37-461c-882e-d6e4ca39969b"&gt;WAF Project Template&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 2.0.0.400 &lt;/td&gt;&lt;td&gt; Sep 19 2011 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/73586"&gt;WPF Application Framework (WAF) 2.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.0 &lt;/td&gt;&lt;td&gt; 1.0.0.400 &lt;/td&gt;&lt;td&gt; Aug 13 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/50517"&gt;WPF Application Framework (WAF) 1.0.0.400&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.350 &lt;/td&gt;&lt;td&gt; Jun 18 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/47427"&gt;WPF Application Framework (WAF) 1.0.0.350&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Alpha&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Platform &lt;/th&gt;&lt;th&gt; Version &lt;/th&gt;&lt;th&gt; Date &lt;/th&gt;&lt;th&gt; Download &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 4.5 &lt;/td&gt;&lt;td&gt; 2.5.0.440 &lt;/td&gt;&lt;td&gt; Mar 09 2012 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/83912"&gt;WAF for .NET 4.5 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; .NET Framework 3.5 SP1 &lt;/td&gt;&lt;td&gt; 1.0.0.1 &lt;/td&gt;&lt;td&gt; Sep 19 2010 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/52583"&gt;WAF Windows Forms Adapter 1.0.0.1&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Silverlight 3 &lt;/td&gt;&lt;td&gt; 1.0.0.0 &lt;/td&gt;&lt;td&gt; Jul 12 2009 &lt;/td&gt;&lt;td&gt; &lt;a href="http://waf.codeplex.com/releases/view/30057"&gt;WAF Concepts in Silverlight 3 (Experimental)&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sun, 09 Dec 2012 15:32:37 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Downloads 20121209033237P</guid></item><item><title>Updated Wiki: Home</title><link>http://waf.codeplex.com/wikipage?version=34</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Project Description&lt;/h2&gt;The WPF Application Framework &amp;#40;WAF&amp;#41; is a lightweight Framework that helps you to create well structured WPF Applications. It supports you in applying a Layered Architecture and the Model-View-ViewModel &amp;#40;aka MVVM, M-V-VM, PresentationModel&amp;#41; pattern.&lt;br /&gt;
&lt;h2&gt;Downloads&lt;/h2&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Downloads Overview&lt;/a&gt;: Lists the WPF Application Framework (WAF) downloads for various platforms (e.g. .NET4.5, .NET4, .NET3.5, WPF, Windows Forms, Silverlight3).&lt;br /&gt; 
&lt;h2&gt;Features&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=waf&amp;DownloadId=286510" alt="WPF&amp;#32;Application&amp;#32;Framework&amp;#32;&amp;#40;WAF&amp;#41;" title="WPF&amp;#32;Application&amp;#32;Framework&amp;#32;&amp;#40;WAF&amp;#41;" /&gt;&lt;br /&gt; 
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Architecture&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Architecture%20-%20Get%20The%20Big%20Picture&amp;referringTitle=Home"&gt;Layered Architecture&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;Modular Architecture [1, 2]&lt;/li&gt;
&lt;li&gt;Extensions [3]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Model-View-ViewModel%20Pattern&amp;referringTitle=Home"&gt;Model-View-ViewModel Pattern&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=DataModel-View-ViewModel%20Pattern&amp;referringTitle=Home"&gt;DataModel-View-ViewModel Pattern&lt;/a&gt; [1, 3]&lt;/li&gt;
&lt;li&gt;UI extension services [2]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;User Interface&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;View Composition [1-4]&lt;/li&gt;
&lt;li&gt;UI Workflow [2-4]&lt;/li&gt;
&lt;li&gt;Modal Dialogs [2-4]&lt;/li&gt;
&lt;li&gt;Filter data [2, 3]&lt;/li&gt;
&lt;li&gt;Sort data [3]&lt;/li&gt;
&lt;li&gt;Custom Control [2]&lt;/li&gt;
&lt;li&gt;Tabbed MDI [4]&lt;/li&gt;
&lt;li&gt;Animated page transition [4]&lt;/li&gt;
&lt;li&gt;Reporting via &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.documents.flowdocument.aspx"&gt;FlowDocument&lt;/a&gt; [3]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Domain&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Validation with &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.aspx"&gt;DataAnnotations&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.idataerrorinfo.aspx"&gt;IDataErrorInfo&lt;/a&gt; [1-3]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Persistence&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/data/ef.aspx"&gt;Entity Framework&lt;/a&gt; [3]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/data/ff687142.aspx"&gt;SQL Server Compact Edition&lt;/a&gt; [3]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Miscellaneous&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;DelegateCommand [1-4]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx"&gt;INotifyPropertyChanged&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa970850.aspx"&gt;Weak Events&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;Recent file list [1, 4]&lt;/li&gt;
&lt;li&gt;MessageService [1-4]&lt;/li&gt;
&lt;li&gt;FileDialogService [1, 4]&lt;/li&gt;
&lt;li&gt;Print [3, 4]&lt;/li&gt;
&lt;li&gt;Print Preview [4]&lt;/li&gt;
&lt;li&gt;Export Document as XPS [4]&lt;/li&gt;
&lt;li&gt;Localization [4]&lt;/li&gt;
&lt;li&gt;Unit Testing [1-4]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Footnotes&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;[1] The WPF Application Framework (WAF) directly supports this feature.&lt;/blockquote&gt;&lt;blockquote&gt;[2] The &lt;a href="http://waf.codeplex.com/documentation?referringTitle=Home"&gt;Information Manager&lt;/a&gt; sample application shows how to implement this feature.&lt;/blockquote&gt;&lt;blockquote&gt;[3] The &lt;a href="http://waf.codeplex.com/documentation?referringTitle=Home"&gt;Book Library&lt;/a&gt; sample application shows how to implement this feature.&lt;/blockquote&gt;&lt;blockquote&gt;[4] The &lt;a href="http://waf.codeplex.com/documentation?referringTitle=Home"&gt;Writer&lt;/a&gt; sample application shows how to implement this feature.&lt;/blockquote&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sun, 09 Dec 2012 13:26:58 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121209012658P</guid></item><item><title>Updated Wiki: Home</title><link>http://waf.codeplex.com/wikipage?version=33</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Project Description&lt;/h2&gt;The WPF Application Framework &amp;#40;WAF&amp;#41; is a lightweight Framework that helps you to create well structured WPF Applications. It supports you in applying a Layered Architecture and the Model-View-ViewModel &amp;#40;aka MVVM, M-V-VM, PresentationModel&amp;#41; pattern.&lt;br /&gt;
&lt;h2&gt;Downloads&lt;/h2&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Downloads Overview&lt;/a&gt;: Lists the WPF Application Framework (WAF) downloads for various platforms (e.g. .NET4.5, .NET4, .NET3.5, WPF, Windows Forms, Silverlight3).&lt;br /&gt; 
&lt;h2&gt;Features&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=waf&amp;DownloadId=286510" alt="WPF&amp;#32;Application&amp;#32;Framework&amp;#32;&amp;#40;WAF&amp;#41;" title="WPF&amp;#32;Application&amp;#32;Framework&amp;#32;&amp;#40;WAF&amp;#41;" /&gt;&lt;br /&gt; 
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Architecture&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Architecture%20-%20Get%20The%20Big%20Picture&amp;referringTitle=Home"&gt;Layered Architecture&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;Modular Architecture [1, 2]&lt;/li&gt;
&lt;li&gt;Extensions [3]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=Model-View-ViewModel%20Pattern&amp;referringTitle=Home"&gt;Model-View-ViewModel Pattern&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://waf.codeplex.com/wikipage?title=DataModel-View-ViewModel%20Pattern&amp;referringTitle=Home"&gt;DataModel-View-ViewModel Pattern&lt;/a&gt; [1, 3]&lt;/li&gt;
&lt;li&gt;UI extension services [2]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;User Interface&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;View Composition [1-4]&lt;/li&gt;
&lt;li&gt;UI Workflow [2-4]&lt;/li&gt;
&lt;li&gt;Modal Dialogs [2-4]&lt;/li&gt;
&lt;li&gt;Filter data [2, 3]&lt;/li&gt;
&lt;li&gt;Sort data [3]&lt;/li&gt;
&lt;li&gt;Custom Control [2]&lt;/li&gt;
&lt;li&gt;Tabbed MDI [4]&lt;/li&gt;
&lt;li&gt;Animated page transition [4]&lt;/li&gt;
&lt;li&gt;Reporting via &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.documents.flowdocument.aspx"&gt;FlowDocument&lt;/a&gt; [3]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Domain&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Validation with &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.aspx"&gt;DataAnnotations&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.idataerrorinfo.aspx"&gt;IDataErrorInfo&lt;/a&gt; [1-3]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Persistence&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/data/ef.aspx"&gt;Entity Framework&lt;/a&gt; [3]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/data/ff687142.aspx"&gt;SQL Server Compact Edition&lt;/a&gt; [3]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Miscellaneous&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;DelegateCommand [1-4]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx"&gt;INotifyPropertyChanged&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa970850.aspx"&gt;Weak Events&lt;/a&gt; [1-4]&lt;/li&gt;
&lt;li&gt;Recent file list [1, 4]&lt;/li&gt;
&lt;li&gt;MessageService [1-4]&lt;/li&gt;
&lt;li&gt;FileDialogService [1, 4]&lt;/li&gt;
&lt;li&gt;Print [3, 4]&lt;/li&gt;
&lt;li&gt;Print Preview [4]&lt;/li&gt;
&lt;li&gt;Export Document as XPS [4]&lt;/li&gt;
&lt;li&gt;Localization [4]&lt;/li&gt;
&lt;li&gt;Unit Testing [1-4]&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Footnotes&lt;/b&gt;
&lt;ol&gt;&lt;li&gt;The WPF Application Framework (WAF) directly supports this feature.&lt;/li&gt;
&lt;li&gt;The &lt;a href="http://waf.codeplex.com/documentation?referringTitle=Home"&gt;Information Manager&lt;/a&gt; sample application shows how to implement this feature.&lt;/li&gt;
&lt;li&gt;The &lt;a href="http://waf.codeplex.com/documentation?referringTitle=Home"&gt;Book Library&lt;/a&gt; sample application shows how to implement this feature.&lt;/li&gt;
&lt;li&gt;The &lt;a href="http://waf.codeplex.com/documentation?referringTitle=Home"&gt;Writer&lt;/a&gt; sample application shows how to implement this feature.&lt;/li&gt;&lt;/ol&gt;
 &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jbe2277</author><pubDate>Sun, 09 Dec 2012 13:19:44 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121209011944P</guid></item></channel></rss>