The topic of a manual or getting started guide for developers has come up time and time again. We may be able to do this by writing small articles on the wiki and eventually compiling these together into a single guide. The following seem like they would be good sections for a guide.
The following is a work in progress. Feel free to add sections or articles under existing sections.
Installation and setup
Hello world plug-in
The plug-in and command classes
The objects (CRhinoObject)
User feedback (CRhinoGet)
Application and Document level user data
Object level user data
Installers, licensing, localization, and marketing support
Question: In the Rhino.NET SDK every class has an interface that it derives from that starts with an I. What is the difference?
The Rhino.NET SDK is written as a wrapper around the standard Rhino C++ SDK with efforts made to try and keep the .NET classes and functions as close of a match as possible to the wrapped C++ classes. In C++ there is syntax for something called const (google C++ const keyword for more information.) In short const says that you are not able to modify any of the internal contents of a class.
There is no const concept in the .NET framework. (At least through version 2.0 .NET. This may change in the future.) This is where we used an interface to represent a const C++ class. Every I interface in Rhino.NET represents the const version of a C++ class, you can call functions that do not change the internal data of the class. The class that is derived from the I interface (begins with M or On) is the non-const class that you can call functions on to modify the internal data.