Visual Studio Survey: Help us understand your experiences working with MPFproj

Coordinator
Mar 24, 2010 at 7:57 PM

As we start to plan the next version of Visual Studio, we are interested to understand what has worked well and what needs improvement for our customers who are creating or maintaining project systems.
What would be useful:

  • A brief description of your project system – its goals, customers, requirements such as multi-targeting support, round-tripping, project properties, etc.
  • Why did you decide to use MPF?  What were you using earlier?
  • What are your pain main point areas? Please feel free to elaborate on issues.
    • Creating a new project system
    • Maintaining it through Visual Studio releases
  • What is your perception of how MPFproj covers the following areas?
    • Extensibility
    • Scalability
    • Code Quality
    • Testing support
    • Application designer support
    • Security
  • Would you recommend using MPF? Please elaborate on your reasons.

Please feel to send your replies directly to selmai (at) microsoft.com.

Thanks,

Visual Studio Team

Aug 29, 2010 at 8:12 PM

Hello Selmai,

I am setting up a project type which let maintain, compile and "should" deploy Database Upgrade xml files (with my own schema). Those xmls, in brief, contains sql command that must be executed against a target database to upgrade that database from and up to a particular "version" and some details that let also maintain that "version" number into the target database.

When I compile, the output should be an sql that could be run into ssms or with sqlcmd and when I deploy the deploy process will really execute that script against the target database.

Multi-targeting support and project properties are

I decided to use MPF because visual studio integration of the xml database upgrade files into a project should sounds familar to our developper as well as the process of compiling and deploying them. I also consider msbuild integration. And indeed, the build and deploy task will be msbuild tasks so we should be able to deploy our database upgrades with new version of our software onto clients machines with msbuild.

The biggest pain area is the total absence of support or even some tuto on IVsDeployableProjectCfg interface (I finally found that this interface should be implemented to have visual studio in build Deploy support)... Also, if I decided to have a Publish target, is there anything similar to the IVsDeployableCfg interface? You known, a project type does not stop after Compile as IronPython... Deploy and or Publish are frequent tasks that should be lightened...

My perceptions about MPFProj are quite very goods even if i do only cover a few percentage of that project

Yes, I would recommend using MPF because I feel there is very good knowledge of the visual studio architecture that are captured into well wriiten code. It is really a good source of samples extending visual studio...

But please, would it be possible to have at least some walktrough about the IVsDeployableProjectCfg interface (I just know I must implement it but don't know really how...) and same about publishing?

Regards

Sep 7, 2010 at 2:08 PM

Hi Selmai,

We use VS shell to create a development environment for our digital signal processors. These are C programmable devices so we use the MPF to build a project system similar to VC++ in functionality.

It would be nice if creating a project system for a language would mean more 'configuration' (XML) and less code, just like what the VC team has done in 2010.

Regards,

-Martin

 

 

 

 

Coordinator
Sep 7, 2010 at 3:05 PM

Martin,

Thank you for your feedback. I forward your request to our project team. We will keep your suggestion in mind while designing feature MPFProj releases.

Please feel free to contact us with any feedback you have on MPFProj .

Thanks,
Selma

From: martin_filteau [mailto:notifications@codeplex.com]
Sent: Tuesday, September 07, 2010 7:08 AM
To: Selma Ikiz
Subject: Re: Visual Studio Survey: Help us understand your experiences working with MPFproj [MPFProj10:207187]

From: martin_filteau

Hi Selmai,

We use VS shell to create a development environment for our digital signal processors. These are C programmable devices so we use the MPF to build a project system similar to VC++ in functionality.

It would be nice if creating a project system for a language would mean more 'configuration' (XML) and less code, just like what the VC team has done in 2010.

Regards,

-Martin

Read the full discussion online.

To add a post to this discussion, reply to this email (MPFProj10@discussions.codeplex.com)

To start a new discussion for this project, email MPFProj10@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com

Oct 10, 2010 at 2:15 PM

Hi, Selmai

I am currently in the middle of developing a project system for Boo http://boo.codehaus.org/ Since VS 2005 I had quite a few run ins with VS extensibility, primarily packages, but as far as project system usually I was able to get away with project flavoring. This is the first time I face creation of a full blown project system from scratch.

Anyway – to answer your questions:

The project system is supposed to integrate Boo compiler into the VS IDE. Out of the box Boo provides the compiler, interpreter and the target file/tasks compatible with MSBuild. As we decided to use Boo in our development we needed a way to integrate Boo development in our development process. As our IDE is Visual Studio we need a way to compile/debug Boo in Visual Studio side by side with majority of our code which will remain in C#.

The decision to use MPF was easy – the alternative is to implement all nitty gritty myself. Considering how much ground would have to be covered, I think I would not take this project on without MPF. Without (before) the Boo project system I had to compile the Boo part of our app separately and maintain the dll dependencies manually

As far as main points – the intended use of the Boo project system is to be used in a standard development process – I should be able to compile/run/debug entire solution with Boo code mixed with code in any other language directly from IDE. Publish/Deploy from VS is not a concern at this time.

For the pain/concerns, I have two major ones.

First of all the documentation is very poor, I would hazard to say it is virtually nonexistent. For over 600 virtual methods which can be overridden there is a total of may be 30 pages of documentation. Of course you also have comments in the code and comparing with the MPF predecessor – the base project system, a part of VS2008 SDK, they are much more informative, still, using MPF requires a lot of guessing and stepping through the code. From the MPF integration standpoint my project turned out to be pretty simple, but this simplicity is based on the knowledge gathered during my 5 years of messing with VS Extensibility. I plan to blog about my experience with MPF in the near future.

A bigger concern is that it is not clear what is the goal of the MPF project? Is it supposed to be a stable API to create project systems? Or it is just a loose collection of code for anybody to play with? Considering the vast area to be covered by the project system multiplied by wild variety of use cases it is inevitable there will be issues and outright bugs. How fast they will be addressed? And who and how is watching over the project so that fixing one issue does not create a different one. I ran into a small problem myself and I found a solution good enough for me (see the issue I submitted) but is it good enough for everybody else? The concern here is that a thousand developers will pull MPF in a thousand different directions, as a result when you guys release a new version of MPF for a new version of VS, it will not be compatible with any of them. So I as well as a thousand of others will have to start over from scratch.

In light of the latter my question is – are any of the native MS Project systems based on MPF? To the best of my knowledge the answer is no. I know for sure that IronPython as well as FSharp are both based on the previous incarnation of MPF – sort of. But not the latest one.

As to recommending – my recommendation would be stay away from MPF if you can, use project flavoring, or if possible do not touch the project system at all, but if you need to build a project system from scratch I think MPF is the only viable option. You guys did a great job putting it all together and isolating small guys like myself from the COM hell. Certainly with a project this huge there is always room for making it simpler, better, but we (at least I) are much better with it than without.

Sincerely

Michael Feingold

www.ndjango.org

www.bistroframework.org

http://fsprojectextender.codeplex.com/

http://workflowserver.com/

P.S. I tried to post a replay via e-mail and it bounced back, so now I do it through the web site. My apologies if you will get it twice