One of the smaller new "features" of SharpDevelop 3 is improved readonly project and solution support. However small this feature is, it's quite useful.
Why readonly project support?
The first question is why? Many developers might be asking themselves when they would ever encounter a project or solution file with the readonly attribute set. Well the most common scenario, or at least the scenario where I encounter this is when the project is controlled by Visual Source Safe.
Visual SourceSafe, and version control software modeled after it, is designed around a model of one person checks out a file at a time and has exclusive access to it until they check it in. There is support for multiple checkouts, and merging, but these features are frowned upon by many SourceSafe users. To enforce this behavior on the client end, files in your sandbox that are not checked out are marked readonly. Visual Studio handles checking out files and marking them read-write when you attempt to edit them.
Ok, but if you use Visual SourceSafe, you probably also use Visual Studio!
This is probably true in the general case, and true in my specific case. My employer has us use Visual SourceSafe and Visual Studio. For the most part I use these tools to develop code for my employer. I'm not going to use another source control repository. Using a central repository is more important than than using one with a checkin/checkout model I agree with. However, sometimes I want to use a feature of SharpDevelop not available in Visual Studio. Or maybe I already have 2-3 copies of Visual Studio open and need to have a few more solutions open to browse through. SharpDevelop has a much smaller memory footprint than Visual Studio.
Ok so what does it look like already?
Well here is an example screenshot of readonly and non readonly projects in a readonly solution. Basically all that changed since SharpDevelop 2 is the IDE doesn't try to save the *proj file or sln file. It also won't let you do anything to modify the file. Finally, as illustrated, it lets you know the file is readonly in the project panel.