<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-718054447780519622</id><updated>2011-07-08T06:31:08.772-07:00</updated><category term='netmf'/><category term='interop'/><category term='xpe'/><category term='wince'/><category term='webcasts'/><category term='posready'/><category term='wes'/><category term='training'/><title type='text'>Adeneo Embedded</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://adeneo-embedded.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://adeneo-embedded.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Joe Broxson (Adeneo Embedded)</name><uri>http://www.blogger.com/profile/16524238852642737028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-718054447780519622.post-1204893856982849564</id><published>2010-01-19T10:14:00.001-08:00</published><updated>2010-01-19T10:20:16.939-08:00</updated><title type='text'>Thank you Microsoft!</title><content type='html'>It's only been a couple of years since I left Microsoft, but they decided to honor me this year by making me an Embedded MVP!&lt;br /&gt;&lt;br /&gt;So, I would like to thank Microsoft for the award, and say that I look forward to working for the embedded community in every way I can this year.  It should be a great one!&lt;br /&gt;&lt;br /&gt;-Joe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/718054447780519622-1204893856982849564?l=adeneo-embedded.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adeneo-embedded.blogspot.com/feeds/1204893856982849564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=718054447780519622&amp;postID=1204893856982849564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/1204893856982849564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/1204893856982849564'/><link rel='alternate' type='text/html' href='http://adeneo-embedded.blogspot.com/2010/01/thank-you-microsoft.html' title='Thank you Microsoft!'/><author><name>Joe Broxson (Adeneo Embedded)</name><uri>http://www.blogger.com/profile/16524238852642737028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-718054447780519622.post-5491993915408261518</id><published>2010-01-19T10:05:00.000-08:00</published><updated>2010-01-19T10:13:36.866-08:00</updated><title type='text'>YouTube Videos</title><content type='html'>I've created a couple of YouTube videos that might be of interest to everyone, thought I would post the links.&lt;br /&gt;&lt;br /&gt;The first is about a &lt;a href="http://www.youtube.com/watch?v=y3c5TZVSFzY"&gt;network projector &lt;/a&gt;I created using a Gumstix OMAP module running our BSP and a Pico Projector from Texas Instrument. &lt;br /&gt;&lt;br /&gt;The second talks about &lt;a href="http://www.youtube.com/view_play_list?p=111E39117CC85C38"&gt;Silverlight for Windows Embedded &lt;/a&gt;(new with Windows Embedded CE 6.0 R3).  It gives a general overview as well as a demo on creating a very simple UI with Platform Builder and Expression Blend.&lt;br /&gt;&lt;br /&gt;I hope you guys enjoy them!&lt;br /&gt;&lt;br /&gt;-Joe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/718054447780519622-5491993915408261518?l=adeneo-embedded.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adeneo-embedded.blogspot.com/feeds/5491993915408261518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=718054447780519622&amp;postID=5491993915408261518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/5491993915408261518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/5491993915408261518'/><link rel='alternate' type='text/html' href='http://adeneo-embedded.blogspot.com/2010/01/youtube-videos.html' title='YouTube Videos'/><author><name>Joe Broxson (Adeneo Embedded)</name><uri>http://www.blogger.com/profile/16524238852642737028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-718054447780519622.post-743141413095132660</id><published>2009-12-11T08:35:00.001-08:00</published><updated>2009-12-11T09:01:39.405-08:00</updated><title type='text'>Device Emulator Networking on Windows 7</title><content type='html'>I was an early adopter of Windows 7. Most Windows CE developers that I talk to are still running Windows XP, but more and more are switching. About half of the developers in our office are now running 7.&lt;br /&gt;&lt;br /&gt;I understand why people have been slow to transition - especially after the difficulties many experienced with Vista, but I've been running Platform Builder on 7 since before it RTM'd, and I've been very happy with it.&lt;br /&gt;&lt;br /&gt;... with one exception. If you enable networking in Device Emulator, you will get an error; it just won't work. This is because of a dependency on the Virtual Network Service from Virtual PC 2007. Even if you install Virtual PC for Windows 7, it won't work -- they made some changes to the drivers.&lt;br /&gt;&lt;br /&gt;I've made it for months without needing this feature, but of course once I needed it, I *really* needed it. The good news is, that part of Virtual PC is a nice little stand alone service that you can install and get this to work.  Rather than digging in and figuring out how to fix this myself, I decided to first see if anyone else had already managed to get it to work.&lt;br /&gt;&lt;br /&gt;I found a great &lt;a href="http://www.brianpeek.com/blog/archive/2009/05/02/windows-virtual-pc-and-the-microsoft-device-emulator.aspx"&gt;blog entry &lt;/a&gt;from Brian Peek - it's a great step-by-step document that explains how to get VPC2007, extract, and install the service needed. Thanks Brian!&lt;br /&gt;&lt;br /&gt;-Joe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/718054447780519622-743141413095132660?l=adeneo-embedded.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adeneo-embedded.blogspot.com/feeds/743141413095132660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=718054447780519622&amp;postID=743141413095132660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/743141413095132660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/743141413095132660'/><link rel='alternate' type='text/html' href='http://adeneo-embedded.blogspot.com/2009/12/device-emulator-networking-on-windows-7.html' title='Device Emulator Networking on Windows 7'/><author><name>Joe Broxson (Adeneo Embedded)</name><uri>http://www.blogger.com/profile/16524238852642737028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-718054447780519622.post-3253947072287441148</id><published>2009-09-25T10:20:00.000-07:00</published><updated>2009-09-25T10:48:53.688-07:00</updated><title type='text'>Highlights from ESC</title><content type='html'>I just got back from the Embedded Systems Conference in Boston, and the conference was great this year.  I was running some of the labs in the "Build Your Own Embedded System" (BYOES) track this year on Windows Embedded Standard 2011 (Windows 7 Embedded). &lt;br /&gt;&lt;br /&gt;The labs went very well and we got great feedback from everyone that attended.  I wrote a lot of code for these labs including a Managed wrapper that allows for discovery and control of devices that use the WSDAPI and PnP-X.  I did a lot of research while preparing for the show and found that there is no code out there today to do this.  I will be posting the code in the coming weeks, so if you are interested, keep an eye open for that.&lt;br /&gt;&lt;br /&gt;Besides the work I did on these labs, some of our other engineers were working on an amazing demo for the Kevin Dallas keynote address.  It is a webpad style device running a very cool XAML based UI running on Windows Embedded CE 6.0 R3 (codenamed Cashmere).  We had the device in our booth for the rest of the show and were able to show it to everyone that came by.&lt;br /&gt;&lt;br /&gt;Because of the new Silverlight features in R3, a design company was able to create the look and feel for this demo, put together a UI, and provide us the XAML.  Once we had this, Nick McCarty (one of our eMVPs) worked with a couple of other engineers to hook up the code-behind to make the demo work.  It only took them about a week and a half to get this working.   &lt;br /&gt;&lt;br /&gt;This ability to seperate the UI design from the code is a great feature that people have been doing on desktop Windows using WPF and Silverlight for quite some time, but now with R3, we can do the same on Windows CE.  Very cool.&lt;br /&gt;&lt;br /&gt;You can take a look at the &lt;a href="http://www.youtube.com/windowsembedded#play/all/uploads-all/1/G61ZO8w2qU0"&gt;keynote &lt;/a&gt;on YouTube.  Nick's project is shown at 0:22-2:30 in this video.  They didn't seem to capture much of the device in the videos they posted, but it should give you an idea.&lt;br /&gt;&lt;br /&gt;-Joe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/718054447780519622-3253947072287441148?l=adeneo-embedded.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adeneo-embedded.blogspot.com/feeds/3253947072287441148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=718054447780519622&amp;postID=3253947072287441148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/3253947072287441148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/3253947072287441148'/><link rel='alternate' type='text/html' href='http://adeneo-embedded.blogspot.com/2009/09/highlights-from-esc.html' title='Highlights from ESC'/><author><name>Joe Broxson (Adeneo Embedded)</name><uri>http://www.blogger.com/profile/16524238852642737028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-718054447780519622.post-2803954909451554710</id><published>2009-09-14T10:57:00.001-07:00</published><updated>2009-09-14T11:07:03.418-07:00</updated><title type='text'>Upcoming trainings and ESC-East</title><content type='html'>Adeneo has some trainings coming up, the links are at the end of this post (I'll be doing the ones in Dallas and Boston).  But, in addition I will be doing some Hands-on-labs at the Embedded Systems Conference in Boston.  These labs will be on Windows Embedded Standard 2010 (Windows 7 Embedded!).&lt;br /&gt;&lt;br /&gt;For more information on the Hands-on-labs, check out the &lt;a href="https://www.cmpevents.com/ESCe09/a.asp?option=C&amp;amp;V=1&amp;amp;SB=3"&gt;ESC web site&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Worldwide training:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.adetelgroup.com/mailing/090928-Linux-Freescale-Paris/090928-Linux-Freescale-Paris.htm"&gt;http://www.adetelgroup.com/mailing/090928-Linux-Freescale-Paris/090928-Linux-Freescale-Paris.htm &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.adetelgroup.com/mailing/090928-US-wince-Freescale-Dallas/090928-US-wince-Freescale-Dallas.htm"&gt;http://www.adetelgroup.com/mailing/090928-US-wince-Freescale-Dallas/090928-US-wince-Freescale-Dallas.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.adetelgroup.com/mailing/091005-wince-TI-Munich/091005-wince-TI-Munich.htm"&gt;http://www.adetelgroup.com/mailing/091005-wince-TI-Munich/091005-wince-TI-Munich.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.adetelgroup.com/mailing/091019-US-wince-TI-Boston/091019-US-wince-TI-Boston.htm"&gt;http://www.adetelgroup.com/mailing/091019-US-wince-TI-Boston/091019-US-wince-TI-Boston.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.adetelgroup.com/mailing/091019-wince-atmel-milano/091019-wince-atmel-milano.htm"&gt;http://www.adetelgroup.com/mailing/091019-wince-atmel-milano/091019-wince-atmel-milano.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/718054447780519622-2803954909451554710?l=adeneo-embedded.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adeneo-embedded.blogspot.com/feeds/2803954909451554710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=718054447780519622&amp;postID=2803954909451554710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/2803954909451554710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/2803954909451554710'/><link rel='alternate' type='text/html' href='http://adeneo-embedded.blogspot.com/2009/09/upcoming-trainings-and-esc-east.html' title='Upcoming trainings and ESC-East'/><author><name>Joe Broxson (Adeneo Embedded)</name><uri>http://www.blogger.com/profile/16524238852642737028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-718054447780519622.post-261503921537211965</id><published>2009-08-14T09:59:00.000-07:00</published><updated>2009-08-14T10:13:27.830-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wes'/><category scheme='http://www.blogger.com/atom/ns#' term='wince'/><category scheme='http://www.blogger.com/atom/ns#' term='xpe'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='webcasts'/><category scheme='http://www.blogger.com/atom/ns#' term='posready'/><title type='text'>Web Casts and Videos</title><content type='html'>I've been pretty busy the last few months delivering trainings and going to conferences, but there has been some of my content posted up to Microsoft.com that I thought I would let you all know about!&lt;br /&gt;&lt;br /&gt;The first three are &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;webcasts&lt;/span&gt;, they are all 100 level, but are a good explanation of some of the OTHER embedded technologies from Microsoft besides Windows Embedded CE.  Here are the links:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/events/series/windowsembedded.aspx?tab=Webcasts&amp;amp;seriesid=122&amp;amp;webcastid=6314"&gt;&lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;MSDN&lt;/span&gt; &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;Webcast&lt;/span&gt;: How to Tell If Your Project or Solution is "Embedded" (Level 100)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/events/series/windowsembedded.aspx?tab=Webcasts&amp;amp;seriesid=122&amp;amp;webcastid=6317"&gt;&lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;MSDN&lt;/span&gt; &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;Webcast&lt;/span&gt;: Windows Embedded Standard 2009 for Windows Developers (Level 100)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/events/series/windowsembedded.aspx?tab=Webcasts&amp;amp;seriesid=122&amp;amp;webcastid=6319"&gt;&lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;MSDN&lt;/span&gt; &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;Webcast&lt;/span&gt;: Windows Embedded &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;POSReady&lt;/span&gt; for Windows Developers (Level 100)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The next link is to a set of videos I did at the Microsoft Studios.  This is a web version of 4-day Windows CE 6.0 training that I deliver.   I see this as a good introduction, or review if you've been through the training already, but it is not a replacement.  The content is much shorter, and not nearly as dynamic as having a speaker standing in front of you talking.  Instead of having the audience do labs, I also had to convert these to demostrations, I am pretty happy with those.  I feel like this format for the training is a bit... dry...  but it is a good first step for those of you that want to get an understanding of CE and learn the tools a little.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/windowsembedded/ce/aa731296.aspx"&gt;Building Solutions with Windows Embedded CE 6.0 R2 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-Joe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/718054447780519622-261503921537211965?l=adeneo-embedded.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adeneo-embedded.blogspot.com/feeds/261503921537211965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=718054447780519622&amp;postID=261503921537211965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/261503921537211965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/261503921537211965'/><link rel='alternate' type='text/html' href='http://adeneo-embedded.blogspot.com/2009/08/web-casts-and-videos.html' title='Web Casts and Videos'/><author><name>Joe Broxson (Adeneo Embedded)</name><uri>http://www.blogger.com/profile/16524238852642737028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-718054447780519622.post-5384050385373318776</id><published>2009-01-21T09:45:00.000-08:00</published><updated>2009-01-21T22:52:07.937-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netmf'/><category scheme='http://www.blogger.com/atom/ns#' term='interop'/><title type='text'>Using Interop in the .NET Micro Framework</title><content type='html'>The &lt;a href="http://www.microsoft.com/netmf"&gt;.NET Micro Framework&lt;/a&gt; is a sleek and robust way of bringing high-level functionality, quickly and easily, to low-specification platforms.  A developer can enable a standard suite of features on a device using the &lt;a href="http://store.microsoft.com/microsoft/-NET-Micro-Framework/product/667DC827?WT.mc_id=netmicroframework"&gt;Micro Framework Porting Kit&lt;/a&gt;.  But what do you do when the functionality you want &lt;i&gt;isn't&lt;/i&gt; supported in the Porting Kit?&lt;br /&gt;&lt;br /&gt;One of the coolest new features of Micro Framework version 3.0 is &lt;a href="http://en.wikipedia.org/wiki/Interop"&gt;Interop&lt;/a&gt; - the ability to extend the Micro Framework's functionality, adding features with C# interfaces in a fairly straightforward way.  As the .NET MF is still young, this is extremely useful for filling in the blanks in the Micro Framework specification.  At Adeneo we've already used interop to implement real-time timekeeping, power management, audio playback, and other features not natively supported by the MF.&lt;br /&gt;&lt;br /&gt;In the following piece, I'll walk through the process of adding an interop feature to an existing Micro Framework port, step by step - although Microsoft &lt;a href="http://blogs.msdn.com/netmfteam/pages/using-interop-in-net-micro-framework-v3-0.aspx"&gt;recommends a method&lt;/a&gt; using their SolutionWizard tool, we've found this to be pretty flimsy.  I'll use the example of a GPIO-driven LED feature, which is fairly simple from the driver perspective, but should be suitable for demonstrating the vast possibilities that interop gives us.  &lt;i&gt;Some of what I describe below is by convention, and not strictly necessary, so if you're wondering about a particular step - feel free to experiment.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr width="50%"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:larger;"&gt;Step 0: The Starting Point&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As is hopefully obvious, this walkthrough assumes you've already got a piece of MF-compatible hardware, as well as &lt;b&gt;Visual Studio 2008 SP1&lt;/b&gt; and the &lt;b&gt;Micro Framework SDK 3.0&lt;/b&gt; (the SDK is freely available &lt;a href="http://www.microsoft.com/netmf/download/default.mspx"&gt;from Microsoft&lt;/a&gt;) for creating Micro Framework projects.&lt;br /&gt;&lt;br /&gt;The walkthrough additionally assumes that you have access to the .NET Micro Framework &lt;b&gt;Porting Kit&lt;/b&gt;, version 3.0, as well as the ability to &lt;b&gt;build&lt;/b&gt; ports within the kit.  (I will not describe the build process, as the kit's included documentation does a sufficient job of this.)  It also assumes, for the sake of example, an LED driver which already exists in C++ code, and can be compiled/linked into your port.  I'll assume that this driver has the following example functions:&lt;br /&gt;&lt;pre class=srccode&gt;    // enable the selected pin for LED control&lt;br /&gt;    BOOL LED_Initialize(GPIO_PIN PinLED);&lt;br /&gt;&lt;br /&gt;    // return the pin to general availability&lt;br /&gt;    BOOL LED_Uninitialize(GPIO_PIN PinLED);&lt;br /&gt;&lt;br /&gt;    // turn the LED on (when passed TRUE) or off (when passed FALSE)&lt;br /&gt;    void LED_SetState(GPIO_PIN PinLED, BOOL TurnOn);&lt;br /&gt;&lt;br /&gt;    // return TRUE if the LED is on, or FALSE if the LED is off&lt;br /&gt;    BOOL LED_GetState(GPIO_PIN PinLED);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;For brevity I will not go into detail on how to implement a GPIO-driven LED driver, the mechanics of which should be pretty straightforward.&lt;br /&gt;&lt;br /&gt;&lt;hr width="50%"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:larger;"&gt;Step 1: Create Your C# Interface (Library)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The process of implementing interop starts at the top: designing the C# class you'll use as the high-level interface.  Open Visual Studio, and create a new project of type &lt;tt&gt;Micro Framework&lt;/tt&gt; -&gt; &lt;tt&gt;Class Library&lt;/tt&gt;.  For organizational purposes, I suggest that you create this project in your &lt;tt&gt;PortingKit\Solutions\[Your Solution]\ManagedCode\&lt;/tt&gt; folder, although you &lt;i&gt;can&lt;/i&gt; put it wherever you want.&lt;br /&gt;&lt;br /&gt;Within this library, name and describe the C# functions you'll use to access your driver.  Note well that a later step compiles a &lt;i&gt;checksum&lt;/i&gt; of this library into your project, and so you should try to finalize this interface first, else you'll have to update &lt;i&gt;more&lt;/i&gt; files later.&lt;br /&gt;&lt;br /&gt;Here's an example for C# control of an LED, starting from a Library project named &lt;tt&gt;LEDInterop&lt;/tt&gt;:&lt;br /&gt;&lt;pre name=addlines class=srccode&gt;using System;&lt;br /&gt;using Microsoft.SPOT;&lt;br /&gt;using Microsoft.SPOT.Hardware;          // for Cpu.Pin type&lt;br /&gt;using System.Runtime.CompilerServices;&lt;br /&gt;&lt;br /&gt;namespace LEDInterop&lt;br /&gt;{&lt;br /&gt;    public class LED&lt;br /&gt;    {&lt;br /&gt;        public LED(Cpu.Pin PinLED)&lt;br /&gt;        {&lt;br /&gt;            _pin = (UInt32)PinLED;&lt;br /&gt;            LED_Enable(_pin);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        ~LED()&lt;br /&gt;        {&lt;br /&gt;            LED_Disable(_pin);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public bool IsOn&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                if (LED_Get(_pin) == 1)&lt;br /&gt;                    return true;&lt;br /&gt;                else&lt;br /&gt;                    return false;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                if (value)&lt;br /&gt;                    LED_Set(_pin, 1);&lt;br /&gt;                else&lt;br /&gt;                    LED_Set(_pin, 0);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        //--//&lt;br /&gt;&lt;br /&gt;        // this is the LED object's associated pin&lt;br /&gt;        private UInt32 _pin;&lt;br /&gt;&lt;br /&gt;        [MethodImpl(MethodImplOptions.InternalCall)]&lt;br /&gt;        private extern void LED_Enable(UInt32 PinLED);&lt;br /&gt;&lt;br /&gt;        [MethodImpl(MethodImplOptions.InternalCall)]&lt;br /&gt;        private extern void LED_Disable(UInt32 PinLED);&lt;br /&gt;&lt;br /&gt;        [MethodImpl(MethodImplOptions.InternalCall)]&lt;br /&gt;        private extern Byte LED_Get(UInt32 PinLED);&lt;br /&gt;&lt;br /&gt;        [MethodImpl(MethodImplOptions.InternalCall)]&lt;br /&gt;        private extern void LED_Set(UInt32 PinLED, Byte State);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;There are a few things to note about this C# code sample:&lt;br /&gt;&lt;br /&gt;&amp;#8226; This example uses the &lt;tt&gt;Cpu.Pin&lt;/tt&gt; type, which requires the &lt;tt&gt;Microsoft.SPOT.Hardware&lt;/tt&gt; reference.  Right-click on &lt;tt&gt;References&lt;/tt&gt; in the Solution Explorer and select &lt;tt&gt;Add Reference...&lt;/tt&gt;, then click the &lt;tt&gt;.NET&lt;/tt&gt; tab and choose &lt;tt&gt;Microsoft.SPOT.Hardware&lt;/tt&gt; - without this, the LEDInterop project will not build!&lt;br /&gt;&lt;br /&gt;&amp;#8226; "Interop" functions - that is, functions which are defined in C++, but accessible in C# - are marked with this attribute:&lt;br /&gt;&lt;pre class=srccode&gt;    [MethodImpl(MethodImplOptions.InternalCall)]&lt;/pre&gt;&lt;br /&gt;These properties are inherited from &lt;tt&gt;System.Runtime.CompilerServices&lt;/tt&gt; and, together with &lt;tt&gt;extern&lt;/tt&gt;, indicate that the function is implemented in C++.&lt;br /&gt;&lt;br /&gt;&amp;#8226; The above sample has some forms of artificial abstraction (&lt;tt&gt;bool&lt;/tt&gt; to &lt;tt&gt;Byte&lt;/tt&gt;, &lt;tt&gt;Cpu.Pin&lt;/tt&gt; to &lt;tt&gt;UInt32&lt;/tt&gt;) that may seem unintuitive.  Interop functions can only accept parameters of, and return values in, a limited number of types.  Per Microsoft's documentation, here is a table of the allowed types and how they link up, e.g. a &lt;tt&gt;Byte&lt;/tt&gt; in the CLR (C#) is the same as a &lt;tt&gt;UINT8&lt;/tt&gt; in the Porting Kit (C++):&lt;br /&gt;&lt;br /&gt;&lt;table class=srccode&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C# Type&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;C++ Type&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;C++ Array Type&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.Byte&lt;/td&gt;&lt;td&gt;UINT8, BYTE&lt;/td&gt;&lt;td&gt;CLR_RT_TypedArray_UINT8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.UInt16&lt;/td&gt;&lt;td&gt;UINT16&lt;/td&gt;&lt;td&gt;CLR_RT_TypedArray_UINT16&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.UInt32&lt;/td&gt;&lt;td&gt;UINT32&lt;/td&gt;&lt;td&gt;CLR_RT_TypedArray_UINT32&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.UInt64&lt;/td&gt;&lt;td&gt;UINT64&lt;/td&gt;&lt;td&gt;CLR_RT_TypedArray_UINT64&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.SByte&lt;/td&gt;&lt;td&gt;INT8&lt;/td&gt;&lt;td&gt;CLR_RT_TypedArray_INT8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.Int16&lt;/td&gt;&lt;td&gt;INT16&lt;/td&gt;&lt;td&gt;CLR_RT_TypedArray_INT16&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.Int32&lt;/td&gt;&lt;td&gt;INT32&lt;/td&gt;&lt;td&gt;CLR_RT_TypedArray_INT32&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.Int64&lt;/td&gt;&lt;td&gt;INT64&lt;/td&gt;&lt;td&gt;CLR_RT_TypedArray_INT64&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.Single&lt;/td&gt;&lt;td&gt;float&lt;/td&gt;&lt;td&gt;CLR_RT_TypedArray_float&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.Double&lt;/td&gt;&lt;td&gt;double&lt;/td&gt;&lt;td&gt;CLR_RT_TypedArray_double&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;System.String&lt;/td&gt;&lt;td&gt;LPCSTR&lt;/td&gt;&lt;td&gt;&lt;i&gt;Not Supported&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;The C++ array types can be accessed with subscripts (&lt;tt&gt;Array[i]&lt;/tt&gt;), but otherwise do not behave quite like normal C arrays.  See &lt;tt&gt;PortingKit\CLR\Include\TinyCLR_Interop.h&lt;/tt&gt; for more information on these custom types.&lt;br /&gt;&lt;br /&gt;&amp;#8226; You can build this project in Debug or in Release mode; either is fine.  The rest of this example will assume you've remained in Debug mode.&lt;br /&gt;&lt;br /&gt;&lt;hr width="50%"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:larger;"&gt;Step 2: Insert Stubbed Functionality Into Your Port&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once your C# interface is well designed, you're ready to move back down to C++.  Open your project's &lt;tt&gt;Properties&lt;/tt&gt; (by right-clicking on the project, or double-clicking &lt;tt&gt;Properties&lt;/tt&gt; in the Solution Explorer panel) and click the &lt;tt&gt;.NET Micro Framework&lt;/tt&gt; tab.  Below your deployment options - which don't matter at all for your Library - is a checkbox labeled &lt;tt&gt;Generate native stubs for internal methods&lt;/tt&gt;.  Check this box, and Build your project; this will construct stubbed-out C++ files for your interop interface, in the directory named below the checkbox - by default, in a &lt;tt&gt;Stubs&lt;/tt&gt; sub-folder within your project folder.  It will also, of course, generate the binary form of your C# class for a reference assembly.&lt;br /&gt;&lt;br /&gt;First, copy the compiled binary files (your project's &lt;tt&gt;bin&lt;/tt&gt; folder) into your Porting Kit Solution.  I suggest putting them in the base project folder, e.g. &lt;tt&gt;PortingKit\Solutions\[Your Solution]\ManagedCode\LEDInterop\&lt;/tt&gt;.  These files are required for building your port, and for Micro Framework applications to use your new functionality.&lt;br /&gt;&lt;br /&gt;Open the stubbed driver folder, and you should see several generated C++, H, and Project files.  Following the example above,&lt;br /&gt;&lt;br /&gt;&amp;#8226; &lt;tt&gt;dotNetMF.proj&lt;/tt&gt; &amp;mdash; project file for the generated code&lt;br /&gt;&amp;#8226; &lt;tt&gt;LEDInterop.cpp&lt;/tt&gt; &amp;mdash; properties of your class&lt;br /&gt;&amp;#8226; &lt;tt&gt;LEDInterop.featureproj&lt;/tt&gt; &amp;mdash; project file for the C# feature&lt;br /&gt;&amp;#8226; &lt;tt&gt;LEDInterop.h&lt;/tt&gt; &amp;mdash; methods of your class&lt;br /&gt;&amp;#8226; &lt;tt&gt;LEDInterop_LEDInterop_LED.cpp&lt;/tt&gt; &amp;mdash; implementation of the C#/C++ link&lt;br /&gt;&amp;#8226; &lt;tt&gt;LEDInterop_LEDInterop_LED.h&lt;/tt&gt; &amp;mdash; definitions for this implementation&lt;br /&gt;&amp;#8226; &lt;tt&gt;LEDInterop_LEDInterop_LED_mshl.cpp&lt;/tt&gt; &amp;mdash; CLR wrappers for your interop functions&lt;br /&gt;&lt;br /&gt;Take this folder and copy its contents into your Solution as well - I'd suggest &lt;tt&gt;PortingKit\Solutions\[Your Solution]\DeviceCode\LED\&lt;/tt&gt;.  You'll need to edit two files to add the driver to your port.&lt;br /&gt;&lt;br /&gt;&amp;#8226; &lt;tt&gt;LEDInterop.featureproj&lt;/tt&gt; - You'll need to change two paths in this file to accomodate your port.  The tag that refers to an &lt;tt&gt;MMP_DAT_CreateDatabase&lt;/tt&gt; path should point to the &lt;tt&gt;.pe&lt;/tt&gt; file from your Library project:&lt;br /&gt;&lt;pre class=srccode&gt;    &amp;lt;MMP_DAT_CreateDatabase Include="$(SPOCLIENT)\Solutions\[Your Solution]\ManagedCode\LEDInterop\bin\Debug\LEDInterop.pe" /&amp;gt;&lt;/pre&gt;&lt;br /&gt;You also want to point the &lt;tt&gt;RequiredProjects&lt;/tt&gt; path to your stubbed files:&lt;br /&gt;&lt;pre class=srccode&gt;    &amp;lt;RequiredProjects Include="$(SPOCLIENT)\Solutions\[Your Solution]\DeviceCode\LED\dotNetMF.proj" /&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&amp;#8226; &lt;tt&gt;TinyCLR.proj&lt;/tt&gt; - You also need to add this library and feature to your CLR project, in &lt;tt&gt;PortingKit\Solutions\[Your Solution]\TinyCLR\TinyCLR.proj&lt;/tt&gt;.  Open up this file, and near the top should be a list of &lt;tt&gt;.featureproj&lt;/tt&gt; Import references: add yours in here.&lt;br /&gt;&lt;pre class=srccode&gt;    &amp;lt;Import Project="$(SPOCLIENT)\Solutions\[Your Solution]\DeviceCode\LED\LEDInterop.featureproj" /&amp;gt;&lt;/pre&gt;&lt;br /&gt;Note that this Import must be &lt;i&gt;above&lt;/i&gt; the Import for &lt;tt&gt;$(SPOCLIENT)\tools\targets\Microsoft.SPOT.System.Interop.Settings&lt;/tt&gt; - otherwise, your project will not build!&lt;br /&gt;&lt;br /&gt;You must also add an inclusion statement for the project that builds your new interop library, and the library itself.  (The name of your library is tagged as &lt;tt&gt;AssemblyName&lt;/tt&gt; in the generated &lt;tt&gt;dotNetMF.proj&lt;/tt&gt; file.)  Somewhere in the list of included libraries for TinyCLR, add the project and driver library:&lt;br /&gt;&lt;pre class=srccode&gt;    &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;        &amp;lt;RequiredProjects Include="$(SPOCLIENT)\Solutions\[Your Solution]\DeviceCode\LED\dotNetMF.proj" /&amp;gt;&lt;br /&gt;        &amp;lt;DriverLibs Include="LEDInterop.$(LIB_EXT)" /&amp;gt;&lt;br /&gt;    &amp;lt;/ItemGroup&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;That's it!  Now if you rebuild and flash your port, it should include your new interop feature.  You can verify this by checking the output log at CLR startup - an assembly reference of your feature's name (in our case, &lt;tt&gt;LEDInterop&lt;/tt&gt;) should appear in the list of included assemblies.&lt;br /&gt;&lt;br /&gt;&lt;hr width="50%"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:larger;"&gt;Step 3: Implement Your Feature&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Now that the pieces are in place, it's time to link them together.  One of the C++ files you generated previously (for the example, &lt;tt&gt;LEDInterop_LEDInterop_LED.cpp&lt;/tt&gt;) serves as a bridge between your C# interface and your C++ codebase.  This file contains skeleton functionality for the C# functions you defined as &lt;tt&gt;InternalCall&lt;/tt&gt;, and which you will now fill in.&lt;br /&gt;&lt;br /&gt;Following the example, here's how you might fill in this file:&lt;br /&gt;&lt;pre name=addlines class=srccode&gt;#include "LEDInterop.h"&lt;br /&gt;#include "LEDInterop_LEDInterop_LED.h"&lt;br /&gt;&lt;br /&gt;using namespace LEDInterop;&lt;br /&gt;&lt;br /&gt;void LED::LED_Enable( CLR_RT_HeapBlock* pMngObj, UINT32 param0, HRESULT &amp;hr )&lt;br /&gt;{&lt;br /&gt; // param0 == PinLED&lt;br /&gt; if(LED_Initialize((GPIO_PIN)param0) == FALSE)&lt;br /&gt;  hr = CLR_E_INVALID_ARGUMENT;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void LED::LED_Disable( CLR_RT_HeapBlock* pMngObj, UINT32 param0, HRESULT &amp;hr )&lt;br /&gt;{&lt;br /&gt; // param0 == PinLED&lt;br /&gt; if(LED_Uninitialize((GPIO_PIN)param0) == FALSE)&lt;br /&gt;  hr = CLR_E_INVALID_ARGUMENT;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;UINT8 LED::LED_Get( CLR_RT_HeapBlock* pMngObj, UINT32 param0, HRESULT &amp;hr )&lt;br /&gt;{&lt;br /&gt; // param0 == PinLED&lt;br /&gt; if(LED_GetState((GPIO_PIN)param0) == TRUE)&lt;br /&gt;  return 1;&lt;br /&gt; else&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void LED::LED_Set( CLR_RT_HeapBlock* pMngObj, UINT32 param0, UINT8 param1, HRESULT &amp;hr )&lt;br /&gt;{&lt;br /&gt; // param0 == PinLED&lt;br /&gt; // param1 == TurnOn&lt;br /&gt; if(param1 == 1)&lt;br /&gt;  LED_SetState((GPIO_PIN)param0, TRUE);&lt;br /&gt; else&lt;br /&gt;  LED_SetState((GPIO_PIN)param0, FALSE);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;The trickiest thing about this file is the function parameters.  Note that the C# parameters are renamed when they come down to this level, in the form &lt;tt&gt;param0&lt;/tt&gt;, &lt;tt&gt;param1&lt;/tt&gt;, and so on.  For this reason it's wise to put some documentation in this file explaining what each of the parameters means.&lt;br /&gt;&lt;br /&gt;With this new implementation, build your port, and flash it again.  Now everything is assembled.&lt;br /&gt;&lt;br /&gt;&lt;hr width="50%"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-size:larger;"&gt;Step 4: Use It!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To use your interop feature in a C# application, you'll need to include the library reference.  Open a new or existing Micro Framework application project.  Right-click on &lt;tt&gt;References&lt;/tt&gt; in the Solution Explorer and select &lt;tt&gt;Add Reference...&lt;/tt&gt;, then click the &lt;tt&gt;Browse&lt;/tt&gt; tab and browse for the output of your interop library - for the example, &lt;tt&gt;PortingKit\Solutions\[Your Solution]\ManagedCode\LEDInterop\bin\Debug\LEDInterop.dll&lt;/tt&gt; - and add this Reference to your project.  Now, you have access to the interop class you defined in Step 1.&lt;br /&gt;&lt;br /&gt;Here's an example Micro Framework console application to control two LEDs:&lt;br /&gt;&lt;pre name=addlines class=srccode&gt;using System;&lt;br /&gt;using Microsoft.SPOT;&lt;br /&gt;using Microsoft.SPOT.Hardware;&lt;br /&gt;// NOTE: you'll also need a reference to your&lt;br /&gt;//  hardware assembly, to use its pins!&lt;br /&gt;using LEDInterop;&lt;br /&gt;&lt;br /&gt;namespace MFConsoleApplication&lt;br /&gt;{&lt;br /&gt;    public class Program&lt;br /&gt;    {&lt;br /&gt;        public static void Main()&lt;br /&gt;        {&lt;br /&gt;            LED led1 = new LED(Pins.GPIO_PORT_A_00);&lt;br /&gt;            LED led2 = new LED(Pins.GPIO_PORT_B_01);&lt;br /&gt;&lt;br /&gt;            led1.IsOn = true;&lt;br /&gt;            if(led2.IsOn)&lt;br /&gt;                Debug.Print("led2 is on!");&lt;br /&gt;            else&lt;br /&gt;                Debug.Print("led2 is off!");&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;hr width="50%"/&gt;&lt;br /&gt;&lt;br /&gt;Controlling hardware through intuitive C# interfaces is what the .NET Micro Framework is all about, and with a little practice, it's fairly easy to use interop features to push your platform beyond the standard Micro Framework: CODEC control, PWM, and arbitrary GPIO peripherals are only a few examples.  Interop opens the door to a whole world of new Micro Framework-driven applications.&lt;br /&gt;&lt;br /&gt;- &lt;a href="mailto:tsuereth@adeneo-embedded.com"&gt;TS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr width="50%"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;NOTES&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&amp;#8226; Properties of your C# class - such as &lt;tt&gt;_pin&lt;/tt&gt; in our &lt;tt&gt;LEDInterop&lt;/tt&gt; example - will be made accessible to your C++ code in the stub-generation process.  If you create a property of a type that isn't compatible with C++ (per the table in Step 1), your C++ project will not build; but if you aren't using this property in C++, you can comment out the declaration for it in the &lt;tt&gt;.h&lt;/tt&gt; file.&lt;br /&gt;&lt;br /&gt;&amp;#8226; As remarked in Step 2, the order in which you Import &lt;tt&gt;.featureproj&lt;/tt&gt; references matters.  Make sure you place them correctly!&lt;br /&gt;&lt;br /&gt;&amp;#8226; Changing the layout of your interop library class will require that you update all of your generated C++/H files, as they contain, among other things, a checksum of the class's signature.  Be sure you update all of the generated files (and the binary output!) every time you change your interop library.&lt;br /&gt;&lt;br /&gt;&amp;#8226; The &lt;tt&gt;.pe&lt;/tt&gt; binary file will only contain the aforementioned checksum value if the &lt;tt&gt;Generate native stubs for internal methods&lt;/tt&gt; box is checked.  If you build your class library without this checked, your port will be unable to accept deployed applications!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/718054447780519622-5384050385373318776?l=adeneo-embedded.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adeneo-embedded.blogspot.com/feeds/5384050385373318776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=718054447780519622&amp;postID=5384050385373318776' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/5384050385373318776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/5384050385373318776'/><link rel='alternate' type='text/html' href='http://adeneo-embedded.blogspot.com/2009/01/using-interop-in-net-micro-framework.html' title='Using Interop in the .NET Micro Framework'/><author><name>Terry Suereth (Adeneo Corp)</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-718054447780519622.post-286540983932418036</id><published>2008-11-20T17:11:00.000-08:00</published><updated>2009-01-20T16:26:48.353-08:00</updated><title type='text'>Welcome!</title><content type='html'>Hello everyone, and welcome to our new blog. Let me introduce myself, I am the Senior Development Lead for North America at Adeneo. Essentially it's my job to make sure that our projects run smoothly and to help out with the "hard problems" that always come up when you are doing embedded development.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some of our world-wide dev's have their own blogs, but after seeing some of the complex and interesting issues that my developers have come across, I felt it was important that we have a centralized place to share these ideas and discoveries with the larger community.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We will cover a variety of topics since we work with a variety of technologies. We look forward to hearing your feedback as we being to post new entries.&lt;br /&gt;&lt;br /&gt;If you have feedback or suggestions for topics that you would like to send me directly, please feel free to contact me at jbroxson at adeneo-embedded.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/718054447780519622-286540983932418036?l=adeneo-embedded.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adeneo-embedded.blogspot.com/feeds/286540983932418036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=718054447780519622&amp;postID=286540983932418036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/286540983932418036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/718054447780519622/posts/default/286540983932418036'/><link rel='alternate' type='text/html' href='http://adeneo-embedded.blogspot.com/2008/11/welcome.html' title='Welcome!'/><author><name>Joe Broxson (Adeneo Embedded)</name><uri>http://www.blogger.com/profile/16524238852642737028</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
