Moving from Smart Device Framework 1.4 to 2.0, we made a huge breaking change to the code base by separating out the OpenNETCF.Configuration namespace into a separate assembly. The reason for this is two-fold:
- Configuration is relatively large
- We had requests from folks who wanted the Configuration namespace without the extra footprint of the rest of OpenNETCF.dll
By removing the Configuration namespace from OpenNETCF.dll, we’ve reduced its footprint by greater than 10% to 180K. The new OpenNETCF.Configuration.dll is 28K on its own. Making this change doesn’t come free though. OpenNETCF.dll now has a dependency on OpenNETCF.Configuration.dll. The reason for this is that some of the classes in the Diagnostics namespace rely on the interfaces in the Configuration namespace.
One of the other problems we faced with SDF 1.4 is the undocumented fact that to work with the Configuration classes, you needed a machine.config in \Windows\Config on your device. This tripped up a few people, so we’ve removed the dependency on machine.config by embedding it directly into the assembly. This means that OpenNETCF.Configuration.dll is completely standalone and free from any dependencies and you can use it your applications without installing the rest of the Smart Device Framework.
For the next release of the SDF (v2.1; later this year), I’m working on ways to make it easier to work with app.config files within Visual Studio. Right now, you’ve got to add the file yourself, then rename it to exactly the same name as the project output. How many times have you added an app.config and forgot to do that? Well, we’re going to take away that step of the process. I’m also working on ways to make editing the config files less like hacking XML in a text editor and more like you’re really configuring some options in your app. I’ll be posting some more about that in the near future.