# Wednesday, May 16, 2012

We recently needed the ability to do most-recently-updated data caching in our Solution Family products.  Since the products use the OpenNETCF ORM Framework, it only made sense to update the framework itself to include events that fire whenever an Insert, Update or Delete occurs.  In fact I added Before and After versions for each. While I was at it, I also added a full complement of virtual On[Before|After][Insert|Update|Delete] methods to the DataStore base, allowing DataStore implementers to hook into the process as well.  I’m thinking I’ll use those at some point in the future to add some form of Trigger capabilities.

Wednesday, May 16, 2012 12:14:53 PM (Central Daylight Time, UTC-05:00)  #     | 
# Wednesday, April 18, 2012

I'm trying my hand at making using some of our stuff a bit easier.  Today I burned some time trying to understand the project template infrastructure and the result was the creation of a couple VSIX files for installing IoC templates into Visual Studio. 

Right now it only supports desktop projects (IoC supports Windows Phone, Mono for Android, Monotouch and Compact Framework). I've also not figured out how to actually deploy the IoC and Extensions binaries with the templates, so when you create your project, the References section will contain IoC references, but they'll be broken.  Still, as a first cut it greatly simplifies setting up a new IoC UI (SmartClientApplication) or IoC Module project.

You can install the templates in one of three ways:

Wednesday, April 18, 2012 2:04:05 PM (Central Daylight Time, UTC-05:00)  #     | 
# Friday, March 30, 2012

Ages ago I created an SDK that allows you to extract device CAB files and create a replacement for wceload if you wanted (we used this on a couple customer applications).  We also tried to sell it as an experiment in "value-based pricing".  Well the experiment showed, largely, that people would pay the minimum and very, very rarely come back and pay anything more so either it was of low value, or people are just cheap.

At any rate, I don't feel like maintaining it internally any longer so it has become yet another project that I've open sourced for the community at large.  The full download is now available over on Codeplex.

Friday, March 30, 2012 10:55:07 AM (Central Standard Time, UTC-06:00)  #     | 
# Tuesday, March 06, 2012

I just got an email in the Support inbox over at OpenNETCF asking about the libraries support (or really lack thereof) for Wireless Networking in Windows Embedded Compact 7 (rolls off the tongue, doesn’t it?).  While this is a question about a specific feature of the SDF, it really opens up the broader question of what our plans are for the future of the whole product.  In fact you could say it really opens up the question on what our general company plans and philosophy are.

First, let’s address this specific issue, as it deserves answering and has a little bit of a back story leading to a minor rant which is always fun. 

The SDF supports an object model for wireless networks that is based around the Wireless Zero Config (WZC) API.  Microsoft introduced WZC in CE 5.0 (IIRC) in an attempt to “standardize” the way the platform and apps would communicate with the wireless drivers, since NDIS doesn’t really have any specification for a lot of the wireless properties.  While I applaud the spirit, WZC is convoluted at best, and was definitely not designed to make the life of someone who has to use P/Invoke to communicate with it any easier.  Still, it was some sort of standardization so we rolled up our sleeves and created a managed interface for it. 

I’ll readily admit that what we ended with isn’t ideal, but I’m a fierce self critic and I rarely think what we do is as good as it could be.  Still it provided a programmatic interface for something that a *lot* of people wanted and that Microsoft had not implemented in managed code.

Well with Compact 7 (I’ll just call it CE7) Microsoft decided that WZC wasn’t the way to go, but instead Native WiFi was.  Painfully they didn’t follow a sensible “deprecated but supported” track for WZC and support side-by-side, they just dropped WZC support altogether.  That meant that we could not interface with a wireless adapter under CE7 using our existing code base at all – it was a flat-out break.

To make things worse, Microsoft went radio-silent for about 2 years (and still counting – yes I’m looking at you Redmond!) on what, if any, future the Compact Framework, or CE for that matter, might have.  The original WZC work was probably 4-6 weeks of development and it required that we buy several devices for testing.  Believe me, it was a real pain in the ass.  Do we (more specifically do *I*) really feel like doing that all again for the Native WiFi interfaces?  If I do, where do I get a CE7 device with WiFi support?  If I do all of that work, what’s the ROI if Microsoft kills the Compact Framework?  What’s the ROI if they revive it and implement Wireless themselves?

It’s really difficult to answer those questions, and we’re not the only ones who are wondering these things.  I can say, though, that we’ve very recently decided that yes, we will continue to do both support and new development for the SDF.  What that new development will entail I can’t say.  Not because it’s some big secret, but because I can’t make those plans until Microsoft tells us their plans (and they haven’t).  If they decide to release a new version of the Compact Framework, I’d like to not have a load of functionality duplication between it and the SDF.

So, is the SDF a dead product?  No.  We will continue to support it and have plans for feature additions.  We just don’t know exactly what those features will be or when they will be written (confidence inspiring, I know). 

Will we provide Wireless support for CE7?  If Microsoft does not, then yes, we will.  Again, we don’t know if they will or not.  If they did, we don’t know when that would be.  Ideally, though, programming for WZC and Native WiFi should be the same, so if they don’t do it, we’ll add support that looks and feels just like what’s in the SDF today.  If they do add it, I’d be inclined to update our object model to match theirs (keeping the old stuff for compatibility though).

Don’t read too much into this.  Yes, I’m optimistic about the Compact Framework and Windows CE Windows Embedded Compact but I’ve been using them for over a decade and I’ve based a whole lot of my knowledge, business and life on them.  I almost have to be optimistic.  But let’s face it, CE and the CF are still great tools for delivering products.  We’re still shipping products based on them.  Still doing new development and new installs.  Still writing proposals for them. 

Yes, we’ve tested the waters with Android and iOS.  We’ve even delivered finished products for them both, but using those tolls only reinforced my feelings about the strength and possibilities of the CF and CE and we’re still committed to using and supporting them.

Tuesday, March 06, 2012 5:25:57 PM (Central Standard Time, UTC-06:00)  #     | 
# Thursday, February 23, 2012

I've been working in the Windows Embedded space for over a decade now, and I must say it's a far different picture today than it was in years past.  That's not a jaded nostalgia either - Windows Embedded used to have a real annual conference at nice venues in Las VEgas.  We has good speakers and great content.  The teams in Redmond shared loads of info about what was going on and what was coming down the pike.  Teams cared about what they were doing and what their customers wanted.

Slowly, though, it seems to have atrphied to the state that it's in today.  I know of no one using Compact 7 in an actual product.  The Compact Framework hasn't had an update in something like 4 years and there is absolutely no word at all what its future might be.  The tools required to do development for non Windows Phone devices are no longer available unless you purchase a full (expensive) MSDN subscription.  I can usually count the number of questions that get asked in public forums and places like Stack Overflow in a week on two hands - sometimes just one.

Today I got what had to be one of the most telling things I've seen though.  A sign that the people is Redmond just don't care any longer either.  For years, Microsoft has sent out a monthly embedded newsletter - the Windows Embedded InfoBlast - and while the quality of the contents has been in the same slow decline as the rest of the industry, the one I received today just pegged the "I no longer give a shit" meter.  This is exactly how it looks in Outlook for me:

 

Obviously either no one cared enough to even look at that before it went out, or if the did they didn't care if anyone actually read it.  Looking at it is like looking into the sun, but without the benefit of the warmth on your face.

Thursday, February 23, 2012 11:44:33 PM (Central Standard Time, UTC-06:00)  #     |