For those that haven't experienced Second Life, it is an online virtual world imagined and created entirely by its residents. Noticed that I said experienced, rather than played, since Second Life isn't really what you'd call a game. Best of all, Second Life doesn't cost a thing to experience (though owning land can be costly).
Since it's 2003 launch, Second Life has grown to inhabit millions upon millions of residents. Inside Second Life you're introduced to a world of entertainment, experiences, and creations of fellow residents, and are able to begin choosing your own destiny where you can do basically anything that you can imagine.
Second Life consists of a large server farm primarily running on Linux operating systems. Among these servers there are login servers, user servers, space servers, data servers, simulators and several others. The simulators themselves are responsible for running the physics engine, collision detection, and sending updates to the client viewers. The client viewers handle the location of objects, determining velocity and other physical information, but do not handle any sort of detection collision. A robust scripting language, the Linden Scripting Language (LSL), is available to the residents themselves so that they can create the world as they see it. This script runs within the simulators' virtual machine. This is where Mono comes in. A beta is officially in progress to test LSL compilation to Mono bytecode within a beta set of simulators with Mono viewers!
For those that aren't aware of Mono, it is an open-source implementation of the .NET Framework which allows client and server .NET applications to run on Linux, Solaris, Mac OS X, Windows and Unix.
Second Life allows for endless opportunity for its residents to say skydive, visit foreign countries, participate in political debates, build homes, run businesses, and the list goes on and on as far as you can imagine. My personal favorite thing to do in Second Life is to participate in Second Life .NET Users Group (SLDNUG). This is a community of Microsoft .NET users sharing ideas, participating in group presentations hosted by Microsoft developers, and helping to bring more users to the community itself. If interested, you can join SLDNUG by visiting the Facebook page.