# Wednesday, April 01, 2009

I'm in the middle of adding a Passive View Model-View-Presenter(MVP) framework to the OpenNETCF IoC Framework.  I just checked in a working version (it's in the source downloads, not as a release).  If you're interested and want to have a say in how it ends up, go ahead and download it and give me your feedback.  There's a simple usage example in source control.

Wednesday, April 01, 2009 2:10:37 PM (Central Standard Time, UTC-06:00)  #     | 
# Tuesday, March 31, 2009

Another nice addition to the latest drop of the SDF is the ability to get the serial number and manufacturer ID of storage volumes that support it (like SD cards). We did this by simply extending the existing OpenNETCF.IO.DriveInfo class to add a couple new properties.  Here's a quick example of how it works:

foreach(var info in DriveInfo.GetDrives())
{
  Debug.WriteLine("Info for " + info.RootDirectory);
  Debug.WriteLine("\tSize: " + info.TotalSize.ToString());
  Debug.WriteLine("\tFree: " + info.AvailableFreeSpace.ToString());
  Debug.WriteLine("\tManufacturer: " + info.ManufacturerID ?? "[Not available]");
  Debug.WriteLine("\tSerial #: " + info.SerialNumber ?? "[Not available]");
  Debug.WriteLine(string.Empty);
}

Tuesday, March 31, 2009 10:03:33 AM (Central Standard Time, UTC-06:00)  #     | 

The latest drop of the SDF adds a nice little feature for playing tones with the device.  It works a lot like the old Beep API on the desktop where you provide a frequency and a duration and it plays the tone.

Here's a quick example of how it works:

Tone[] scale = new Tone[]
{
  // up fast, using MIDI
  new Tone { Duration = 10, MIDINote = 63},
  new Tone { Duration = 10, MIDINote = 65},
  new Tone { Duration = 10, MIDINote = 67},
  new Tone { Duration = 10, MIDINote = 68},
  new Tone { Duration = 10, MIDINote = 70},
  new Tone { Duration = 10, MIDINote = 72},
  new Tone { Duration = 10, MIDINote = 74},
  new Tone { Duration = 10, MIDINote = 75},

  // down slow, using freq (same notes as above)
  new Tone { Duration = 100, Frequency = 622 },
  new Tone { Duration = 100, Frequency = 587 },
  new Tone { Duration = 100, Frequency = 523 },
  new Tone { Duration = 100, Frequency = 466 },
  new Tone { Duration = 100, Frequency = 415 },
  new Tone { Duration = 100, Frequency = 391 },
  new Tone { Duration = 100, Frequency = 349 },
  new Tone { Duration = 100, Frequency = 311 },
};

SoundPlayer.PlayTone(scale);

You can see that this just plays an ascending scale of notes quickly, then the same scale descending, but slower.  Note that the PlayTone method takes in an array of Tones, and a Tone can be initialized with either a Frequency or MIDI note value.

Tuesday, March 31, 2009 9:57:42 AM (Central Standard Time, UTC-06:00)  #     | 

Smart Device Framework 2.3.0.39 has just been published.  This is primarily a drop to fix several issues with the WirelessZeroConfigNetworkInterface class (it now properly supports WPA and WPA2 access points) but there are a couple cool new features.

Tuesday, March 31, 2009 9:23:49 AM (Central Standard Time, UTC-06:00)  #     | 
# Monday, March 30, 2009

I've pushed up a set of fixes for the OpenNETCF.IoC Framework. See the Project Site for details on what changed.

Monday, March 30, 2009 3:33:24 PM (Central Standard Time, UTC-06:00)  #     | 
# Friday, March 20, 2009

OpenNETCF used to have a product that provided RAS capabilities.  Well Microsoft deprecated RAS in WindowsMobile - starting with WinMo 5.0 as near as I can figure - in favor of Connection Manager.  That depracation actually broke RAS in some scenarios.  FOr example, if you create a RAS connection and then try to use a managed TcpClient, it will try to create it's own connection through the Connection Manager instead of using the connection you created through RAS.

What this did was skyrocket our support incidents for something that we sold very, very few licenses for.  In the interest of keeping our sanity, yet allowing people using plain of Windows CE to still use RAS, we made the decision to just make it a shared source project.  It's now out on CodePlex.  If you need support for it, we still offer consulting services, but everything is there to get you going.

Friday, March 20, 2009 10:54:05 AM (Central Standard Time, UTC-06:00)  #     | 
# Monday, March 16, 2009
I've finally got the CodePlex project set up for the OpenNETCF.IoC framework, so that is now the "official" place to get it.  One thing to note is that my original intent was to publish under a Public Domain license, but evidently it's not one of the options in CodePlex (I'll email them and see what I can do about that).  In the meantime I set it to what looks to be the most permissable license they had - the MIT license.

Monday, March 16, 2009 3:15:30 PM (Central Standard Time, UTC-06:00)  #     |