Why the repo contains the word Mono
? · mhutch/MonoDevelop.MSBuildEditor · Discussion #197 (original) (raw)
MSBuild Editor is a descendant of an extension I originally created for the MonoDevelop IDE in March 2015. Although it evolved a lot over the years, including porting to Visual Studio, I kept the internal name for nostalgia’s sake.
You must be logged in to vote
2 replies
I see :)
I must say I find references to Mono very confusing these days. Because it can mean:
- old actual Mono
- .NET Core running on non-Windows platforms
That's very understandable! Personally I interpret names as follows:
- "Mono": the mono/mono repo and the runtime/SDK built and distributed from this repo with the primary purpose of .NET Framework compatibility.
- "Mono Project": the open source organization that created and maintained Mono and related projects.
- "Mono Runtime": the part of Mono that is written in C and executes IL code i.e. the JIT, GC, AOT compiler, interpreter. This is the part that has been forked into the dotnet/runtime repo and is now used as the .NET execution engine on some (but not all) non-Windows platforms, principally WebAssembly, iOS and Android.
- "Mono.*" prefix: a library or tool that was developed under the umbrella of the Mono Project that almost certainly also runs on .NET e.g. Mono.Cecil, Mono.TextTemplating, Mono.Options, Mono.Linker etc. Some of these libraries are now used by .NET.
- "MonoDevelop": the cross-platform IDE developed by the Mono Project, which is no longer maintained, but ran on both Mono and .NET Framework, and supported targeting Mono, .NET Framework, and .NET. Both Xamarin Studio and Visual Studio for Mac were highly customized versions of MonoDevelop, with additional extensions and branding, but retaining the ability to load MonoDevelop extensions.
- "MonoDevelop.*" prefix: an extension for the MonoDevelop IDE, or a library for use by an extension for the MonoDevelop IDE. This is where this repo's name came from.
Although this repo currently only builds an extension for Visual Studio, it previously used code sharing strategies to support both Visual Studio and MonoDevelop (and its derivatives), and before that it only supported MonoDevelop.
This is a lot of nuance and context that most folks don't have (and shouldn't need), so I have actively avoided exposing the terms "Mono" and "MonoDevelop" in the VS extension UI and VS Marketplace page, but I didn't feel like renaming the repo and its assemblies and namespaces just yet 🙂