<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>ioc Wiki &amp; Documentation Rss Feed</title><link>http://ioc.codeplex.com/Wiki/View.aspx?title=Home</link><description>ioc Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/wikipage?version=20</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can&amp;#39;t get any more free and unencumbered than that) framework written in C# (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html"&gt;inversion of control and dependency injection&lt;/a&gt; for applications running on any or all of the following platforms:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;.NET Compact Framework 2.0 or 3.5&lt;/li&gt;
&lt;li&gt;.NET Framework 3.5 or 4.0&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2010/08/02/OpenNETCFIoCNowSupportingWinPhone.aspx"&gt;Windows Phone 7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://xamarin.com/monoforandroid"&gt;Mono for Android (MonoDroid)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2010/10/29/AppleNETCFIoCAnIoCContainerForMonoTouch.aspx"&gt;iPhone/MonoTouch&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It&amp;#39;s roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx"&gt;Microsoft&amp;#39;s SCSF&lt;/a&gt; and CAB frameworks, but it&amp;#39;s scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application&amp;#39;s message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in several commercial applications (both desktop and CF) already, so it&amp;#39;s been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx"&gt;SQL CE 3.5&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx"&gt;Smart Device Framework&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Dependency%20Injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Event%20Aggregation&amp;referringTitle=Home"&gt;Event Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Model-View-Presenter%2fController%20Features&amp;referringTitle=Home"&gt;Model-View-Presenter&amp;#47;Controller Features&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx"&gt;Introduction to IoC and the Compact Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx"&gt;The OpenNETCF.IoC Framework: Events&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Performance&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;The OpenNETCF IoC Framework, for Singleton registration and resolution anyway, outperforms other popular IoC frameworks such as Ninject, Unity, Castle Windsor, Structure Map and AutoFac.  For a brief overview of the performance differences, see the following blog entry:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2011/04/29/BenchmarkingOpenNETCFsIoCFramework.aspx"&gt;Benchmarking OpenNETCF&amp;#39;s IoC Framework&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team&amp;#39;s &lt;a href="http://commonservicelocator.codeplex.com"&gt;CommonServiceLocator project&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Usage examples&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;We understand that we need to document the library better.  One of the pitfalls of creating open source projects is that there are often more questions than the developers can answer and we have to decide whether time is better spent adding features or documenting.  As an attempt to provide some developer help, below are links to real-world applications (where the source code is available) that use IoC that may be useful as implementation examples.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://mtcagent.codeplex.com"&gt;OpenNETCF MTConnect VirtualAgent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://orm.codeplex.com"&gt;OpenNETCF ORM&lt;/a&gt; - the desktop source includes an Entity Generator which is a wizard-based application that uses IoC&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Wed, 19 Dec 2012 14:47:49 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121219024749P</guid></item><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/wikipage?version=19</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can&amp;#39;t get any more free and unencumbered than that) framework written in C# (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html" class="externalLink"&gt;inversion of control and dependency injection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for applications running on any or all of the following platforms:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;.NET Compact Framework 3.5&lt;/li&gt;
&lt;li&gt;.NET Framework 3.5 or 4.0&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2010/08/02/OpenNETCFIoCNowSupportingWinPhone.aspx" class="externalLink"&gt;Windows Phone 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://xamarin.com/monoforandroid" class="externalLink"&gt;Mono for Android (MonoDroid)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2010/10/29/AppleNETCFIoCAnIoCContainerForMonoTouch.aspx" class="externalLink"&gt;iPhone/MonoTouch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It&amp;#39;s roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx" class="externalLink"&gt;Microsoft&amp;#39;s SCSF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and CAB frameworks, but it&amp;#39;s scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application&amp;#39;s message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in several commercial applications (both desktop and CF) already, so it&amp;#39;s been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx" class="externalLink"&gt;SQL CE 3.5&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx" class="externalLink"&gt;Smart Device Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Dependency%20Injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Event%20Aggregation&amp;referringTitle=Home"&gt;Event Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Model-View-Presenter%2fController%20Features&amp;referringTitle=Home"&gt;Model-View-Presenter&amp;#47;Controller Features&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx" class="externalLink"&gt;Introduction to IoC and the Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Performance&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;The OpenNETCF IoC Framework, for Singleton registration and resolution anyway, outperforms other popular IoC frameworks such as Ninject, Unity, Castle Windsor, Structure Map and AutoFac.  For a brief overview of the performance differences, see the following blog entry:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2011/04/29/BenchmarkingOpenNETCFsIoCFramework.aspx" class="externalLink"&gt;Benchmarking OpenNETCF&amp;#39;s IoC Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team&amp;#39;s &lt;a href="http://commonservicelocator.codeplex.com" class="externalLink"&gt;CommonServiceLocator project&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Usage examples&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;We understand that we need to document the library better.  One of the pitfalls of creating open source projects is that there are often more questions than the developers can answer and we have to decide whether time is better spent adding features or documenting.  As an attempt to provide some developer help, below are links to real-world applications (where the source code is available) that use IoC that may be useful as implementation examples.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://mtcagent.codeplex.com" class="externalLink"&gt;OpenNETCF MTConnect VirtualAgent&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://orm.codeplex.com" class="externalLink"&gt;OpenNETCF ORM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - the desktop source includes an Entity Generator which is a wizard-based application that uses IoC&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Mon, 20 Feb 2012 17:09:11 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120220050911P</guid></item><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/wikipage?version=18</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can&amp;#39;t get any more free and unencumbered than that) framework written in C# (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html" class="externalLink"&gt;inversion of control and dependency injection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for applications running on any or all of the following platforms:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;.NET Compact Framework 3.5&lt;/li&gt;
&lt;li&gt;.NET Framework 3.5 or 4.0&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2010/08/02/OpenNETCFIoCNowSupportingWinPhone.aspx" class="externalLink"&gt;Windows Phone 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2010/10/29/AppleNETCFIoCAnIoCContainerForMonoTouch.aspx" class="externalLink"&gt;iPhone/MonoTouch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It&amp;#39;s roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx" class="externalLink"&gt;Microsoft&amp;#39;s SCSF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and CAB frameworks, but it&amp;#39;s scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application&amp;#39;s message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in several commercial applications (both desktop and CF) already, so it&amp;#39;s been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx" class="externalLink"&gt;SQL CE 3.5&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx" class="externalLink"&gt;Smart Device Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Dependency%20Injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Event%20Aggregation&amp;referringTitle=Home"&gt;Event Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Model-View-Presenter%2fController%20Features&amp;referringTitle=Home"&gt;Model-View-Presenter&amp;#47;Controller Features&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx" class="externalLink"&gt;Introduction to IoC and the Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Performance&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;The OpenNETCF IoC Framework, for Singleton registration and resolution anyway, outperforms other popular IoC frameworks such as Ninject, Unity, Castle Windsor, Structure Map and AutoFac.  For a brief overview of the performance differences, see the following blog entry:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2011/04/29/BenchmarkingOpenNETCFsIoCFramework.aspx" class="externalLink"&gt;Benchmarking OpenNETCF&amp;#39;s IoC Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team&amp;#39;s &lt;a href="http://commonservicelocator.codeplex.com" class="externalLink"&gt;CommonServiceLocator project&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Usage examples&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;We understand that we need to document the library better.  One of the pitfalls of creating open source projects is that there are often more questions than the developers can answer and we have to decide whether time is better spent adding features or documenting.  As an attempt to provide some developer help, below are links to real-world applications (where the source code is available) that use IoC that may be useful as implementation examples.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://mtcagent.codeplex.com" class="externalLink"&gt;OpenNETCF MTConnect VirtualAgent&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://orm.codeplex.com" class="externalLink"&gt;OpenNETCF ORM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - the desktop source includes an Entity Generator which is a wizard-based application that uses IoC&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Mon, 10 Oct 2011 17:56:54 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20111010055654P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://ioc.codeplex.com/documentation?version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Documentation"&gt;Samples&lt;/a&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 30 Aug 2011 15:23:22 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110830032322P</guid></item><item><title>Updated Wiki: Samples</title><link>http://ioc.codeplex.com/wikipage?title=Samples&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Basic Wizard&lt;/h1&gt;A very good example of using the Dependency Injection container features of the IoC library can be seen by creating a simple Wizard-type application.  We&amp;#39;ve included a sample wizard in the source code tree that provides a solid framework for creating just about any type of wizard you might need, plus it shows how to use different forms of dependency injection (constructor or property) using the IoC framework.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ioc&amp;DownloadId=275509" alt="wizarddiagram.png" title="wizarddiagram.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ioc&amp;DownloadId=275506" alt="iocwizard.png" title="iocwizard.png" /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 30 Aug 2011 15:10:49 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Samples 20110830031049P</guid></item><item><title>Updated Wiki: Samples</title><link>http://ioc.codeplex.com/wikipage?title=Samples&amp;version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Basic Wizard&lt;/h1&gt;A very good example of using the Dependency Injection container features of the IoC library can be seen by creating a simple Wizard-type application.  We&amp;#39;ve included a sample wizard in the source code tree that provides a solid framework for creating just about any type of wizard you might need, plus it shows how to use different forms of dependency injection (constructor or property) using the IoC framework.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ioc&amp;DownloadId=275506" alt="iocwizard.png" title="iocwizard.png" /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 30 Aug 2011 14:59:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Samples 20110830025901P</guid></item><item><title>Updated Wiki: Samples</title><link>http://ioc.codeplex.com/wikipage?title=Samples&amp;version=1</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Basic Wizard&lt;/h1&gt;A very good example of using the Dependency Injection container features of the IoC library can be seen by creating a simple Wizard-type application.  We&amp;#39;ve included a sample wizard in the source code tree that provides a solid framework for creating just about any type of wizard you might need, plus it shows how to use different forms of dependency injection (constructor or property) using the IoC framework.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 30 Aug 2011 14:58:04 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Samples 20110830025804P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://ioc.codeplex.com/documentation?version=1</link><description>&lt;div class="wikidoc"&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Documentation"&gt;Samples&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 30 Aug 2011 14:55:37 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110830025537P</guid></item><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/wikipage?version=17</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can&amp;#39;t get any more free and unencumbered than that) framework written in C# (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html" class="externalLink"&gt;inversion of control and dependency injection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for applications running on any or all of the following platforms:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;.NET Compact Framework 3.5&lt;/li&gt;
&lt;li&gt;.NET Framework 3.5 or 4.0&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2010/08/02/OpenNETCFIoCNowSupportingWinPhone.aspx" class="externalLink"&gt;Windows Phone 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2010/10/29/AppleNETCFIoCAnIoCContainerForMonoTouch.aspx" class="externalLink"&gt;iPhone/MonoTouch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It&amp;#39;s roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx" class="externalLink"&gt;Microsoft&amp;#39;s SCSF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and CAB frameworks, but it&amp;#39;s scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application&amp;#39;s message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in several commercial applications (both desktop and CF) already, so it&amp;#39;s been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx" class="externalLink"&gt;SQL CE 3.5&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx" class="externalLink"&gt;Smart Device Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Dependency%20Injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Event%20Aggregation&amp;referringTitle=Home"&gt;Event Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Model-View-Presenter%2fController%20Features&amp;referringTitle=Home"&gt;Model-View-Presenter&amp;#47;Controller Features&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx" class="externalLink"&gt;Introduction to IoC and the Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Performance&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;The OpenNETCF IoC Framework, for Singleton registration and resolution anyway, outperforms other popular IoC frameworks such as Ninject, Unity, Castle Windsor, Structure Map and AutoFac.  For a brief overview of the performance differences, see the following blog entry:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2011/04/29/BenchmarkingOpenNETCFsIoCFramework.aspx" class="externalLink"&gt;Benchmarking OpenNETCF&amp;#39;s IoC Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team&amp;#39;s &lt;a href="http://commonservicelocator.codeplex.com" class="externalLink"&gt;CommonServiceLocator project&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Usage examples&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;We understand that we need to document the library better.  One of the pitfalls of creating open source projects is that there are often more questions than the developers can answer and we have to decide whether time is better spent adding features or documenting.  As an attempt to provide some developer help, below are links to real-world applications (where the source code is available) that use IoC that may be useful as implementation examples.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://mtcagent.codeplex.com" class="externalLink"&gt;OpenNETCF MTConnect VirtualAgent&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 03 May 2011 14:45:24 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110503024524P</guid></item><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/wikipage?version=16</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can&amp;#39;t get any more free and unencumbered than that) framework written in C# (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html" class="externalLink"&gt;inversion of control and dependency injection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for applications running on any or all of the following platforms:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;.NET Compact Framework 3.5&lt;/li&gt;
&lt;li&gt;.NET Framework 3.5 or 4.0&lt;/li&gt;
&lt;li&gt;Windows Phone 7&lt;/li&gt;
&lt;li&gt;iPhone/MonoTouch&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It&amp;#39;s roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx" class="externalLink"&gt;Microsoft&amp;#39;s SCSF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and CAB frameworks, but it&amp;#39;s scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application&amp;#39;s message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in several commercial applications (both desktop and CF) already, so it&amp;#39;s been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx" class="externalLink"&gt;SQL CE 3.5&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx" class="externalLink"&gt;Smart Device Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Dependency%20Injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Event%20Aggregation&amp;referringTitle=Home"&gt;Event Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Model-View-Presenter%2fController%20Features&amp;referringTitle=Home"&gt;Model-View-Presenter&amp;#47;Controller Features&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx" class="externalLink"&gt;Introduction to IoC and the Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Performance&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;The OpenNETCF IoC Framework, for Singleton registration and resolution anyway, outperforms other popular IoC frameworks such as Ninject, Unity, Castle Windsor, Structure Map and AutoFac.  For a brief overview of the performance differences, see the following blog entry:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2011/04/29/BenchmarkingOpenNETCFsIoCFramework.aspx" class="externalLink"&gt;Benchmarking OpenNETCF&amp;#39;s IoC Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team&amp;#39;s &lt;a href="http://commonservicelocator.codeplex.com" class="externalLink"&gt;CommonServiceLocator project&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Usage examples&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;We understand that we need to document the library better.  One of the pitfalls of creating open source projects is that there are often more questions than the developers can answer and we have to decide whether time is better spent adding features or documenting.  As an attempt to provide some developer help, below are links to real-world applications (where the source code is available) that use IoC that may be useful as implementation examples.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://mtcagent.codeplex.com" class="externalLink"&gt;OpenNETCF MTConnect VirtualAgent&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 03 May 2011 14:43:15 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110503024315P</guid></item><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/wikipage?version=15</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can&amp;#39;t get any more free and unencumbered than that) framework written in C# (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html" class="externalLink"&gt;inversion of control and dependency injection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for applications running on any or all of the following platforms:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;.NET Compact Framework 3.5&lt;/li&gt;
&lt;li&gt;.NET Framework 3.5 or 4.0&lt;/li&gt;
&lt;li&gt;Windows Phone 7&lt;/li&gt;
&lt;li&gt;iPhone/MonoTouch&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It&amp;#39;s roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx" class="externalLink"&gt;Microsoft&amp;#39;s SCSF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and CAB frameworks, but it&amp;#39;s scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application&amp;#39;s message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in several commercial applications (both desktop and CF) already, so it&amp;#39;s been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx" class="externalLink"&gt;SQL CE 3.5&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx" class="externalLink"&gt;Smart Device Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Dependency%20Injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Event%20Aggregation&amp;referringTitle=Home"&gt;Event Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Model-View-Presenter%2fController%20Features&amp;referringTitle=Home"&gt;Model-View-Presenter&amp;#47;Controller Features&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx" class="externalLink"&gt;Introduction to IoC and the Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team&amp;#39;s &lt;a href="http://commonservicelocator.codeplex.com" class="externalLink"&gt;CommonServiceLocator project&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Usage examples&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;We understand that we need to document the library better.  One of the pitfalls of creating open source projects is that there are often more questions than the developers can answer and we have to decide whether time is better spent adding features or documenting.  As an attempt to provide some developer help, below are links to real-world applications (where the source code is available) that use IoC that may be useful as implementation examples.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://mtcagent.codeplex.com" class="externalLink"&gt;OpenNETCF MTConnect VirtualAgent&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Mon, 04 Apr 2011 21:53:40 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110404095340P</guid></item><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/wikipage?version=14</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can&amp;#39;t get any more free and unencumbered than that) framework written in C# (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html" class="externalLink"&gt;inversion of control and dependency injection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for applications running on any or all of the following platforms:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;.NET Compact Framework 3.5&lt;/li&gt;
&lt;li&gt;.NET Framework 3.5 or 4.0&lt;/li&gt;
&lt;li&gt;Windows Phone 7&lt;/li&gt;
&lt;li&gt;iPhone/MonoTouch&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It&amp;#39;s roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx" class="externalLink"&gt;Microsoft&amp;#39;s SCSF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and CAB frameworks, but it&amp;#39;s scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application&amp;#39;s message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in several commercial applications (both desktop and CF) already, so it&amp;#39;s been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx" class="externalLink"&gt;SQL CE 3.5&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx" class="externalLink"&gt;Smart Device Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Dependency%20Injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Event%20Aggregation&amp;referringTitle=Home"&gt;Event Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Model-View-Presenter%2fController%20Features&amp;referringTitle=Home"&gt;Model-View-Presenter&amp;#47;Controller Features&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx" class="externalLink"&gt;Introduction to IoC and the Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team&amp;#39;s &lt;a href="http://commonservicelocator.codeplex.com" class="externalLink"&gt;CommonServiceLocator project&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 02 Nov 2010 14:11:27 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20101102021127P</guid></item><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/wikipage?version=13</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can&amp;#39;t get any more free and unencumbered than that) framework written in C# (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html" class="externalLink"&gt;inversion of control and dependency injection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for applications running on any or all of the following platforms:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;.NET Compact Framework 3.5&lt;/li&gt;
&lt;li&gt;.NET Framework 3.5 or 4.0&lt;/li&gt;
&lt;li&gt;iPhone/MonoTouch&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It&amp;#39;s roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx" class="externalLink"&gt;Microsoft&amp;#39;s SCSF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and CAB frameworks, but it&amp;#39;s scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application&amp;#39;s message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in several commercial applications (both desktop and CF) already, so it&amp;#39;s been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx" class="externalLink"&gt;SQL CE 3.5&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx" class="externalLink"&gt;Smart Device Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Dependency%20Injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Event%20Aggregation&amp;referringTitle=Home"&gt;Event Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Model-View-Presenter%2fController%20Features&amp;referringTitle=Home"&gt;Model-View-Presenter&amp;#47;Controller Features&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx" class="externalLink"&gt;Introduction to IoC and the Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team&amp;#39;s &lt;a href="http://commonservicelocator.codeplex.com" class="externalLink"&gt;CommonServiceLocator project&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 02 Nov 2010 03:47:24 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20101102034724A</guid></item><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/wikipage?version=12</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can&amp;#39;t get any more free and unencumbered than that) framework written in C# (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html" class="externalLink"&gt;inversion of control and dependency injection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for &lt;a href="http://msdn.microsoft.com/en-us/netframework/aa497273.aspx" class="externalLink"&gt;.NET Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; applications (it can be used on the desktop as well).  It&amp;#39;s roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx" class="externalLink"&gt;Microsoft&amp;#39;s SCSF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and CAB frameworks, but it&amp;#39;s scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application&amp;#39;s message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in several commercial applications already, so it&amp;#39;s been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx" class="externalLink"&gt;SQL CE 3.5&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx" class="externalLink"&gt;Smart Device Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Dependency%20Injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Event%20Aggregation&amp;referringTitle=Home"&gt;Event Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Model-View-Presenter%2fController%20Features&amp;referringTitle=Home"&gt;Model-View-Presenter&amp;#47;Controller Features&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx" class="externalLink"&gt;Introduction to IoC and the Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team&amp;#39;s &lt;a href="http://commonservicelocator.codeplex.com" class="externalLink"&gt;CommonServiceLocator project&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Thu, 28 Oct 2010 23:29:56 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20101028112956P</guid></item><item><title>Updated Wiki: Model-View-Presenter/Controller Features</title><link>http://ioc.codeplex.com/wikipage?title=Model-View-Presenter/Controller Features&amp;version=1</link><description>&lt;div class="wikidoc"&gt;This page is to be done.  For now, see the Sample applications.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 01 Dec 2009 21:26:03 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Model-View-Presenter/Controller Features 20091201092603P</guid></item><item><title>Updated Wiki: Event Aggregation</title><link>http://ioc.codeplex.com/wikipage?title=Event Aggregation&amp;version=1</link><description>&lt;div class="wikidoc"&gt;This page is to be done.  For now, see the Sample applications.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 01 Dec 2009 21:25:45 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Event Aggregation 20091201092545P</guid></item><item><title>Updated Wiki: Dependency Injection</title><link>http://ioc.codeplex.com/wikipage?title=Dependency Injection&amp;version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Dependency Injection with the OpenNETCF.IoC Framework&lt;/h1&gt;
The OpenNETCF.IoC Framework support injection of dependency objects through Constructor or Property injection.  Field injection is not recommended, and so I didn't add support for it.  Just like the SCSF, automatic injection is supported only on the Services collection to prevent any ambiguity as to which instance should be injected (the Services collection only allows a single object per reistered type).  Again like the SCSF, automatic injection is provided via the ServiceDependency attribute.&lt;br /&gt;&lt;br /&gt;Assume we have two classes, Foo and Bar.  Bar is a service that implemets IBar, and each instance of Foo needs a reference to the registered IBar service.  This can be achieved through automatic injection.&lt;br /&gt;
&lt;h2&gt;Constructor Injection&lt;/h2&gt;
Foo would define an injection constructor:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
    public class Foo
    {
        public IBar Bar { get; set; }

        [InjectionConstructor]
        public Foo([ServiceDependency]IBar bar)
        {
            // bar is fully constructed here and can be used and/or stored
            Bar = bar;
        }
    }
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;When the Framework is used to create an instance of Foo, the IBar instance will get injected automatically:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
    IBar myBar = RootWorkItem.Services.AddNew&amp;lt;Bar, IBar&amp;gt;();
    Foo instance = RootWorkItem.Items.AddNew&amp;lt;Foo&amp;gt;(&amp;quot;My Foo&amp;quot;);

    // at this point instance.Bar == myBar
&lt;/pre&gt;&lt;br /&gt;
&lt;h2&gt;Property Injection&lt;/h2&gt;
Foo would define an Property with a ServiceDependency.  Note that this proerty does &lt;b&gt;not&lt;/b&gt; have to be public, so injection can still happen while hiding the member from consuming objects.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
    public class Foo
    {
        [ServiceDependency]
        IBar Bar { get; set; }

        public Foo()
        {
          // the Bar property will not be set until *after* this constructor exits
        }
    }
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;When the Framework is used to create an instance of Foo, the IBar instance will get injected automatically:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
    IBar myBar = RootWorkItem.Services.AddNew&amp;lt;Bar, IBar&amp;gt;();
    Foo instance = RootWorkItem.Items.AddNew&amp;lt;Foo&amp;gt;(&amp;quot;My Foo&amp;quot;);

    // at this point instance.Bar == myBar
&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 01 Dec 2009 21:24:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Dependency Injection 20091201092442P</guid></item><item><title>Updated Wiki: Dependency Injection</title><link>http://ioc.codeplex.com/wikipage?title=Dependency Injection&amp;version=1</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Constructor Injection&lt;/h1&gt;
&lt;h1&gt;Property Injection&lt;/h1&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 01 Dec 2009 21:07:10 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Dependency Injection 20091201090710P</guid></item><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/wikipage?version=11</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can't get any more free and unencumbered than that) framework written in CE (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html" class="externalLink"&gt;inversion of control and dependency injection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for &lt;a href="http://msdn.microsoft.com/en-us/netframework/aa497273.aspx" class="externalLink"&gt;.NET Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; applications (it can be used on the desktop as well).  It's roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx" class="externalLink"&gt;Microsoft's SCSF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and CAB frameworks, but it's scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application's message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in several commercial applications already, so it's been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx" class="externalLink"&gt;SQL CE 3.5&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx" class="externalLink"&gt;Smart Device Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;The Basics&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Dependency%20Injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Event%20Aggregation&amp;referringTitle=Home"&gt;Event Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ioc.codeplex.com/wikipage?title=Model-View-Presenter%2fController%20Features&amp;referringTitle=Home"&gt;Model-View-Presenter&amp;#47;Controller Features&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx" class="externalLink"&gt;Introduction to IoC and the Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team's &lt;a href="http://commonservicelocator.codeplex.com" class="externalLink"&gt;CommonServiceLocator project&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Tue, 01 Dec 2009 21:05:57 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091201090557P</guid></item><item><title>Updated Wiki: Home</title><link>http://ioc.codeplex.com/Wiki/View.aspx?title=Home&amp;version=10</link><description>&lt;div class="wikidoc"&gt;The OpenNETCF.IoC Framework it is a public-domain-licensed (you can't get any more free and unencumbered than that) framework written in CE (framework version 3.5) that provides both &lt;a href="http://martinfowler.com/articles/injection.html" class="externalLink"&gt;inversion of control and dependency injection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for &lt;a href="http://msdn.microsoft.com/en-us/netframework/aa497273.aspx" class="externalLink"&gt;.NET Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; applications (it can be used on the desktop as well).  It's roughly modelled after &lt;a href="http://msdn.microsoft.com/en-us/library/aa480482.aspx" class="externalLink"&gt;Microsoft's SCSF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and CAB frameworks, but it's scaled down and optimized for running on mobile and embedded devices, plus I &amp;quot;fixed&amp;quot; stuff that I think the SCSF got wrong (like having a static, globally available RootWorkItem and the ability to insert IMessageFilters into the application's message pump).&lt;br /&gt;&lt;br /&gt;This framework is in use in a couple of commercial applications already, so it's been pretty heavily tested and vetted.  I still want to add a few more features as well and go back through it looking for performance optimizations, but it certainly has enough features to be used in applications today.&lt;br /&gt;&lt;br /&gt;This release also ships with a full-blown, real-world sample application, not just the typical &amp;quot;Northwind&amp;quot; type of application.  The sample is called WiFiSurvey and it can be used to survey WiFi AP coverage of a site and to monitor associated AP changes as well as network addressability of a device.&lt;br /&gt;&lt;br /&gt;WiFiSurvey has a Configuration service, a &lt;a href="http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx" class="externalLink"&gt;SQL CE 3.5&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;-backed Data Access Layer, an Infrastructure module and a an application shell all of which are fully decoupled from one another and that are all loaded dynamically using an XML definition file.  The shell makes use of both a DeckWorkspace and a TabWorkspace, showing you not just how to use them, but also how to create your own workspaces if need be.&lt;br /&gt;&lt;br /&gt;The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:&lt;br /&gt;&lt;br /&gt;ARM-based CE 6.0 with a 320x240 (landscape) display. &lt;br /&gt;Pocket PC 2003 240x320 (portrait) &lt;br /&gt;WinMo 5.0 240x320 (portrait and landscape)&lt;br /&gt;The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.&lt;br /&gt;&lt;br /&gt;As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF &lt;a href="http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx" class="externalLink"&gt;Smart Device Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for getting wireless information.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;Tutorials&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/09/InversionOfControlAndTheCompactFrameworkPartI.aspx" class="externalLink"&gt;Introduction to IoC and the Compact Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/10/TheOpenNETCFIoCFrameworkItemsAndServices.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Items and Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.opennetcf.com/ctacke/2009/03/11/PartIIITheOpenNETCFIoCFrameworkEvents.aspx" class="externalLink"&gt;The OpenNETCF.IoC Framework: Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;b&gt;&lt;u&gt;Common Service Locator Adapter&lt;/u&gt;&lt;/b&gt;&lt;/h2&gt;As of version 1.0.9280, we also support an adapter for the Microsoft Patterns and Practices team's &lt;a href="http://commonservicelocator.codeplex.com" class="externalLink"&gt;CommonServiceLocator project&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;Download the adapter and tests for it over on the Downloads page.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>ctacke</author><pubDate>Wed, 07 Oct 2009 18:19:05 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091007061905P</guid></item></channel></rss>