It took a long time to get here, but we’ve finally release what I’m calling the version 1.0 (pervious version were 0.9.x) release of the OpenNETCF.IoC Framework. In case you’ve not been tracking this project, it is a public-domain-licensed (you can’t get any more free and unencumbered than that) framework that provides both inversion of control and dependency injection for .NET Compact Framework applications (it can be used on the desktop as well). It’s roughly modelled after Microsoft’s SCSF and CAB frameworks, but it’s scaled down and optimized for running on mobile and embedded devices, plus I “fixed” 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).
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.
This release also ships with a full-blown, real-world sample application, not just the typical “Northwind” 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.
WiFiSurvey has a Configuration service, a SQL CE 3.5-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.
The WiFiSurvey application has a single source base for all target platforms and has been tested on the following platforms:
- ARM-based CE 6.0 with a 320×240 (landscape) display.
- Pocket PC 2003 240×320 (portrait)
- WinMo 5.0 240×320 (portrait and landscape)
The IoC framework has additionally been tested on x86-based CE 5.0 and CE 6.0 devices.
As a side note, the WiFiSurvey sample application is also a good example of using the OpenNETCF Smart Device Framework for getting wireless information.