Finding methods in .netmf

Yeah, this is a nasty problem.

I find the Object Browser does a pretty good job of finding stuff… provided you have your search scope set up properly - maybe even using a Custom Component Set.

For example, I searched for “drawrect” and found Microsoft.SPOT.Bitmap.DrawRectangle. Unfortunately it returns nothing if you set the Browse scope to “.Net Micro Framework”… for some reason it doesn’t recognise a lot of classes as NETMF.

In this example, there’s nothing however that tells you that you’re heading for a dead-end on the device. If you try and use Microsoft.SPOT.Bitmap on a Panda II for example, you’ll only get an error at runtime - and it is a bad error too… “An unhandled exception of type ‘System.NotSupportedException’ occurred in DataSpot.Firmware.exe”

I have a suggestion… Why don’t we use a shopping cart website and make a community effort of loading all the NETMF classes, descriptions and importantly… supported platforms and related modules. Think about it… “Shoppers who used Microsoft.SPOT.Bitmap also used , Gadgeteer, Spider, Glide”. Maybe this can also be the “module market” someone talked about - but for software libraries.

I’m still on my first cup of coffee… Sorry, I’m not following what you’re saying :frowning:

.Net classes and libraries are like goodies in a (big) shop. You need to get the right product connected with the right customer. Online shopping sites are very good at organising things in a catalog and helping you find what you are looking for and even stuff you weren’t looking for but could be useful anyway.

This was just thinking aloud about an alternative to MSDN. Documentation that feels more like exploring and shopping than digging and searching.

Arguably not my best idea ever so just ignore it :slight_smile:

I’ve just started .NET-MF and am surprised, like other contributors to this topic, that there is no easy access to what is available in the libraries. Coming from the hardware side I would have expected a datasheet for each Microsoft or GHI sourced file listing its contents and with a small example of the deployment of each method. I have found some accidentally and they are very helpful but how does one employ a new method if its existence is not divulged in plain text somewhere obvious?

For example, I want to set up an SPI link between my FEZ Spider and an ADS1274 ADC. I know exactly which pins to connect and the various information they will convey. Is it really necessary to work blind and find out by accident how to address the FEZ spider’s SPI ports and to build the necessary buffers to receive data from the ADC? I’m not looking for someone to give me coding advice but it would be nice to know that there is a list somewhere saying that THIS library has SPI functionality, that the methods are as follows, and that a typical setup would need the following things. Surely the marvellous people who wrote the .NET_MF libraries want us to know what they have done?

Welcome to the community!

Have you looked at the API references:

Yes I have, and it was because I failed to find either “interrupt” or “SPI” methods by a brute force search in the APIs - there doesn’t seem to be a search facility - that I wrote my previous comment. I am still working on both and have found “SPI” in Visual C# 2010 Express by looking on the off chance inside the Gadgeteer.Interfaces reference in its object browser.

I have also found instances of interrupts being used on blogs e.g.;

But I still can’t find the library for interrupts. This worries me because there seem to be two flavours; with and without threading and I don’t know which to use.

I have seen similar discussions several times in the past. Each time I ask for an example of what everyone is looking for and never seem to get an answer. Can someone point to or identify a product where they have seen what they need?

Apart from the datasheet example I mentioned previously, the best example of what we “newbies” need, in my experience, is the "properties box attached to each component in MatrixMultimedia’s Flowcode (free download available). Each has an explicit description of the parameters to be set and a help page explaining the choices for each. I had hoped that something similar exists for the excellent but incomplete Microsoft Visual C# express toolbox gadgeteer windows. Right clicking on them brings up both properties and help windows but they are empty of useful content. So, there it is; a couple of weeks’ work for an expert, and a tenfold increase in satisfied customers!


Visual Studio does have a similar property area for GUI controls. For non-GUI controls Intellisense and the object browser are used.

One of the difficulties of the .NET documentation are classes are organized under namespaces. The classes are usually have a name that describes their function, but the namespaces are a bit more obscure.

With each new release of a MF SDK, I open the API documents and skim the contents of all the namespaces. I do this, so later when I need something, I will recall having seen the appropriate class.

I feel you angst on learning a new library. I have just started to learn Mac programming. I need to learn a new development environment (XCode) and new set of libraries(Cocoa?). The Apple mindset is very different from Microsoft.

I have bought a book, and I am reading how to develop for Apple from the ground up. But I have one advantage, I have done this many times before, and I realize that for a while I will be lost. At some point, when I find the Rosetta stone of Apple, the light will turn on. Until then patience patience is my mantra.

My suggestion is read, look at examples and the projects on this site, and eventually you too will see the light. We were all where you are once upon a time.

[Mike steps off his soap box]

Again,… searching on Microsoft is nearly useless…everything comes back with 200+ hits & 199 of them have nothing to do with .netmf…we want only results that apply to .netmf.

An alphabetical ist with a short description would work wonders. Maybe an Excel spreadsheet, so things could be sorted by keyword…graphics, I/O, bitmap, timers, interrupts, memory, etc…then you could find what applies to what you are working on at the moment.

I’m sure you are right. I just wish I had the ability of my bilingual grandchildren to learn languages!