This page is likely outdated. Visit the new documentation for updated content.

Project type converter for SL, MT, ASP.NET, ASP.NET MVC, etc

Status Owner Importance Complexity MD Version
Pending Normal Medium

A way to convert projects from one project type to another. Generally additional work will be needed to make them compile, but at least, copying the file list over would be useful, e.g converting a Silverlight library project to a MonoTouch library project.

Quick create project from directory

Status Owner Importance Complexity MD Version
Pending Normal Medium

It’s a common request from users new to MD to be able to create a new project from all the files directory. It’s relatively easy to to do using the “show all file” and “include to project” feature, but these aren’t easy to discover.

More assembly references by default

Status Owner Importance Complexity MD Version
Pending Normal Medium

A common problem that new users have it to be missing references to System, System.Core, System.Xml. It’s trivial for users who know what they’re doing to to remove these refs, so all of the default project templates should have these refs, and maybe more.

Save named policy sets and apply to projects

Status Owner Importance Complexity MD Version
Completed Normal Medium

Save policy sets with user-specified names, and apply these named policy sets to projects.

Status Owner Importance Complexity MD Version
Completed mhutch Normal 3d 2.4

Proper support for MSBuild file links in projects, i.e. respecting the project-relative path instead of flattening them as we currently do. This affects a lot of people bringing projects from VS.

Support for per-solution assembly resolution rules

Status Owner Importance Complexity MD Version
Assigned lluis Normal 1w 2.8

We need to somehow support custom rules for resolving referenced assemblies in solutions. This would solve the problem we have in MD, where add-ins in Extras needs to reference assemblies generated in the Main solution. There are however, important issues to be resolved:

  • Resolving assemblies is not enough, we need to resolve packages, since makefiles depend on it.
  • Looking for local .pc files is not going to work on Windows.
  • Ideally we could resolve as project references when possible, to get live code completion information, and working cross-solution go-to-definition, rename, etc.

WCF service references

Status Owner Importance Complexity MD Version
Completed lluis Normal 2d 2.4

WCF service references using svcutil.

Only rebuild dependent projects if public API changes

Status Owner Importance Complexity MD Version
Pending Normal Medium

After building an assembly, hash the public API using Cecil. The public API would be stored in a marker file which would be updated when the hash changed. This marker file would be used as the build time of the assembly when checking whether to rebuild dependent assemblies.

mhutch has written a proof-of-concept command-line API hashing tool that takes about 400ms to hash MonoDevelop.Ide.dll on a 2.5GHz Core2. It doesn’t handle attributes, and uses a fairly inefficient giant StringBuilder approach instead of hashing block by block.

This would make it much faster to build large solutions like MD after making small changes to core assemblies, but would slightly slow down other cases.

Remove .NET 1.1 support

Status Owner Importance Complexity MD Version
Pending Normal 2.8

Remove support for .NET 1.1, since it will not be supported anymore by Mono.

Remove MD1 file format support

Status Owner Importance Complexity MD Version
Pending Normal 2.8

We could kill a lot of dead code if we remove it, especially after moving to xbuild. How many users are really using it? At the very least can we make it an import-only option, or remove support for creating new MD1 projects.

Mac Multi-Project Support

Status Owner Importance Complexity MD Version
Pending Normal Medium 2.8

For good Mac support, we really need to be able to support having multiple windows with different solutions, but sharing a single main menu and dock icon.

  • PROPOSAL (mhutch): I propose we hack this using a small core process that owns the dock and main menu, and IPC to communicate with multiple real MD instances.