A software development kit (SDK) is a set of tools for developing in a particular programming language (in our class, C#). Developing in a language means everything from compiling to running and (when things go wrong) to debugging programs.
The Microsoft SDK is the proprietary implementation of .Net. It runs only on Windows and is the primary development framework for all things Microsoft.
The Mono Project SDK <http://mono-project.com> is the free/open source equivalent implementation of the Microsoft SDK. It runs on all major platforms (including Windows) and is needed in situations where you want to develop .Net applications on non-Windows platforms.
As an interesting aside, the company whose developers lead the work on the Mono SDK are working on commercial tools that allow you to develop/run applications written in .Net on Apple iOS and Android mobile devices (phones and tablets).
While just about everything you need to create programs can, indeed, be found in the SDK, it is not long before you wish there were an “app for that” so to speak. While most programmers who developed code (like your instructors) in the 1970s-1990s learned to program directly with the SDK using the command line, today’s programmers largely to prefer working in an IDE.
There are two major IDEs for .Net development, which we explain briefly below:
In addition, there is another Windows-specific IDE, SharpDevelop, that inspired the creation of MonoDevelop. It is still actively maintained and provides a somewhat “lighter weight” alternative to Visual Studio for Windows users. Like MonoDevelop, it is aimed at developers who would prefer a more free/open source “friendly” version.
In the interest of providing a consistent experience for our students, we will be using Mono (the SDK) and MonoDevelop (the IDE) for everything we demonstrate in class. We will also be encouraging you to use it for your work, especially if you are interested in non-Microsoft platforms.
Our notes assume for the most part that you are working with Mono and MonoDevelop. In most cases, what we are showing you in Mono and MonoDevelop will translate almost as is to the Microsoft equivalents. However, there are some tools, such as the csharp interpreter, that have a rough analog in Microsoft’s tools but in a somewhat limited form. As there is significant evolution of both the Microsoft and Mono toolchains–a fancy word we want you to know and a more elegant way of saying SDK–we’ll issue updates to these notes.
Because the Mono Project web page is known to change frequently, these instructions are designed to be as generic as possible. If you have any questions, you should contact the instructors immediately or seek tutoring help.
Here is how to do a quick sanity check of your Mono setup:
Here is how to do a quick sanity check of your Mono setup:
We only provide instructions for Debian-based Linux distributions such as Ubuntu.
MonoDevelop releases on Linux tend to lag behind the official stable release.
This page, https://launchpad.net/~keks9n/+archive/monodevelop-latest,
describes how to update your MonoDevelop setup if it is not version 2.8 or later as we’ll need for this course.
We wish to stress that Linux is recommended for students who already have a bit of programming experience under their belts. It can take a significant amount of energy to get a Linux setup up and running and to tweak it to your liking. While it has gotten ever so much easier since the 1990s when it first appeared, we encourage you to set it up perhaps a bit later in the semester or consider running it using virtualization software (on Mac or Windows) such as VirtualBox or VMware.