In Case You Missed It... - Port 25: The Open Source Community at Microsoft
< Back to Blogs
In Case You Missed It... by admin on April 27, 2006 07:34PM

Original Post:

Tuesday, April 18, 2006 4:30 AM by Rick Strom

Ok Bill, I have a real suggestion here that is hopefully within the scope of what you are doing (and hopefully you're still reading the comments here). I'd also like to voice it to someone else at Microsoft since the MS rep I spoke to tonight blew me off.

Visual Studio 2005 should support CVS out of the box, or via an after-market but MS-developed add-in.  The Microsoft rep knew as well as I do why Microsoft wants to push "Team System" over CVS -- namely, because it makes OSS development  on SourceForge (and elsewhere) for the Windows platform a pain in the butt.

I love Visual Studio -- since I switched, I haven't looked back.  But its hard to fully love a product that doesn't do something which really should be quite obvious.  If Microsoft is worried about the potential harm that would come from facilitating development of SourceForge projects, or CVS projects in general, I think they are missing the bigger picture.  A first class compiler like VS 2005 with a built in CVS client?  You wouldn't just dominate the market, you'd own it.  You would also benefit from a much larger number of (free) applications for the Windows OS, which would in turn reduce the chance of losing users to a Linux desktop.

"Trust me, Team System is better than CVS" and "maybe SourceForge will look into Team System" are not good answers (but those are the answers I got from the MS rep).  Casual users can be convinced to do things a certain way, but developers generally tend to like to decide for themselves how they want to work.  One of the things that has made Visual Studio so great is that it tries -- and succeeds, for the most part -- to be everything to everybody.  With VS 2005 they seem to be going in another direction, and that makes it hard for me to seriously consider the upgrade from VS 2003.

Response:

Hi Rick,

My name is Eric Lee, and I’m the product manager for Team Foundation Server – a product in the Visual Studio Team System family.

First, let me apologize on behalf of the Microsoft rep that blew you off about this - Visual Studio is certainly a product who cares very deeply about the opinions of its customers.

You have a good point – simple, bullet-proof, cheap/free version control is certainly something that all developers need; whether they are doing OSS, running a small business, or part of large enterprise. 

Before I try to address your question directly, let me spend a paragraph or two talking about how we think of version control and extending Visual Studio at Microsoft – I’d be happy to hear your opinions on this.

The introduction of Team System gives us two version control offerings from Microsoft – Visual Source Safe and Team Foundation Server (TFS).  Visual Source Safe (VSS) is what we like to think of as where change management begins – it’s simple, relatively cheap, easy to setup and doesn’t require a server.

VSS will start to bog down a bit when it’s pushed beyond its scope – for example, it has no work item tracking, limited remote access and limited parallel development capabilities.  This is where Team Foundation Server comes in – Team Foundation Server is a from-the-ground up implementation of version control, work item tracking, and release/project management integrated into a single collaboration server.  TFS uses XML Web Services for communication and SQL Server 2005 as its data store.  Both TFS and VSS integrate out of the box with Visual Studio 2005.

In terms of extending Visual Studio, we have always been very cognizant of making Visual Studio as extensible as possible – both for commercial and non-commercial partners.  Lost in all of the announcements of Visual Studio 2005 is that our Visual Studio Industry Partner Program (VSIP) now has a free membership option.  This membership gives you access to the SDK that enables extension of VS2005. 

Part of the Visual Studio SDK is the MSSCCI interface (pronounced ‘misky’) that enables partners to implement version control providers; this interface is part of our SCC API.  This interface has become something of a de facto standard for development environments.  This interface gives you access to events like ‘user is trying to edit a file’ so that you can implement your ‘check-out’ operation.  This interface also allows you to provide locked and unlocked glyphs – basically all the aspects of a version control system.  We provide a skeleton version control provider as an example.  Integrating CVS with Visual Studio would involve writing a provider that uses MSSCCI – there are some examples out there today.

Now to address your concern more directly; CVS – VS integration is a perfect example of the balancing act we have to do in Visual Studio.  On one hand, an ‘out of the box’ solution might be very appealing to our customers; but on the other hand, doing this would take an opportunity away from our partners.  In order for Visual Studio to be successful, we feel we have to build it as a platform, and help create a healthy ecosystem of partners.  Doing this means providing viable opportunities for our partners to build value onto VS.  Finding this balance isn’t an exact science, we use a number of ways to get feedback from our partners and we disclose our early plans to our VSIP Alliance and Premier partners.  All of this is done to try to find a happy medium; we don’t do this perfectly all the time, but it is certainly something we constantly evaluate and invest a great deal of time in.

CVS integration in particular – because of the potential partner opportunity and the overlap it would introduce with VSS and TFS - is likely not something we would produce out of the box with Visual Studio. 

However, the idea of a simple, bullet-proof, built-in version control system is something we are thinking hard about for future versions of Visual Studio.  The idea of what is integrated in an IDE is changing and expanding all the time, maybe it is time to include version control as a natural part of an IDE?  Would that be a streamlined version of TFS, a free copy of VSS, or something else?  These are certainly all possibilities.  I’d be happy to discuss your thoughts on this as well.

Thanks for taking the time to share your opinion with us.

Eric.

Comments RSS
  1. That's all nice, but to date, there's not a decent, reliable CVS plugin that works directly with VS in a transparent fashion.

    Your "Oh, CVS is a third party opportunity, if we do it we step on our partners" falls down in the face of the fact that Microsoft, by writing their own code repository/VCC system is *stepping on third party opportunities". Who's going to waste the time with this when you ship a direct competitor that works without any plugin, development, and worries about the next update to VS breaking it?

    So far, the answer's zero in my testing.

    Considering that Eclipse and Apple both ship plugins to the major VC systems, i.e. CVS and Subversion, and it hasn't "killed third party opportunities", your argument here is pretty weak.

    We don't need you to include a complete CVS/SVN system with VS. Just a way to say "Use CVS, Use Subversion" without days of googling and testing. I know it would have saved me a week of work, and gotten our .Net people up to where our eclipse people are in a trice if Microsoft would stop viewing Open Source as the enemy all the time.

    Shipping VSS would be worthless to us, we're trying to get OFF of that buggy, slow crappile. We already have CVS, it's working quite well. Just write a friggin' plugin that allows VS to work with CVS, preferably over SSH, and that would be a real reason for us to upgrade to VS 2005, which we haven't done yet, as there's no compelling reason for us to spend the cash.

    (Oooh..open source support will MAKE YOU MONEY. There's a radical thought.)

    posted at 09:24PM 04/27/2006
  2. nektar said:

    You say:
    "CVS integration in particular - because of the potential partner opportunity and the overlap it would introduce with VSS and TFS - is likely not something we would produce out of the box with Visual Studio."
    I strongly suspect that the only reason why you do not ship an add-in for CVS is the second one. The first one is just the excuse. In other words, there are many examples where you have not thought of your partners in the past and you have killed them instead. Also, since you already ship two source code solutions, even though Source Safe has many problems, why should a partner be bothered to write an add-in for CVS? There would be no money insentive for it, since in any case CVS is free, and if customers are willing to spend some money they will not spend it to buy a 3rd party add-in just for interoperability but they would prefer to spend it on a better source code management solution. The only way that you would have a CVS add-in be successful is if that were free. And so this would only happen if the community would produce. However, the open source community is not interested in enhansing Microsoft product, like it does with Eclipse, etc. This perhaps is another great problem that Microsoft is facing: the unwillingness of the open source community to enhanse Microsoft products or perhaps not the same amount of zeal that the community shows for improving other non-Microsoft products.
    Therefore, you should either build a CVS add-in yourselves or make your ties with the open source community stronger by enabling mutual assistance between Microsoft and the community. If you assist the community you are going to get back in return. Until now, assisting the community was by no means not a priority at your company but rather the opposite.

    posted at 04:23AM 04/28/2006
  3. Rick, are you unsatisfied with the third-party add-ins like Igloo?  

    posted at 09:14AM 04/28/2006
  4. einhverfr said:

    Hi all;

    I think it is a mistake for Microsoft not to provide a client plugin for CVS and Subversion with Visual Studio.  The issue is actually very simple:  to be ultimately competitive, you need to be abe to provide for companies what they want.

    I understand the concern that doing so might undermine VSS/TFS, but I don't think that argument is sufficient.  You are selling your Windows solutions because people find them useful.  In order to do so, you should provide a standard foundation of functionality in your products.  This means interfacing with major competitors, such as CVS at least and possibly Subversion.

    As for the partner argument, I can understand your concern.  However, I think that you are placing the partner opportunities in the wrong place.  The right place for partner solutions is not in the low-end commonly available revision control systems, but in the high-end markets.  Allowing for plugins that integrate with Bitkeeper, Clearcase, etc. is a far greater opportunity to partner vendors than integration with CVS.   In both cases, there is a strong need, but with CVS,  the ability to get people to go and pay for yet another product is a harder sell.

    You may laugh at this but I have met developers at *major* development firms who have turned to Emacs as a source code editor over Visual Studio both for productivity and CVS integration reasons.

    Best Wishes,
    Chris Travers
    Metatron Technology Consulting

    posted at 12:44PM 04/28/2006
  5. jdzions said:

    I guess I'm missing something here.

    CVS and Subversion have healthy user and developer communities. They extend those tools, add new features, fix bugs, hook them to other apps, etc. That's what open source tools are all about.

    Microsoft has fully documented everything that needs to be done to tie those tools into Visual Studio (MSSCCI, if I remember right). Anyone who wants it can build the kind of connection component you're talking about.

    At least three people here have said they want it. They've all described it in such a way that I (a reasonably competent and experienced developer) can conclude it's not all that hard a project.

    So why aren't you building it? Why are the ones already built "not good enough"? Why does it have to come from Microsoft?

    If emacs meets developer needs (and it's a powerful tool, and it was my personal IDE for the first half of my career), then use it. If the additional value provided to your developers by Visual Studio doesn't exceed the cost your organization would need to expend to build the integration component needed to tie VS to CVS, or Subversion, then it makes financial sense to stick with emacs.

    You'd have to argue that the incremental value to an organization of Visual Studio is so small that no 3rd party developer would see a market, build the component, and sell it to you for less than that incremental value. And if the incremental value is that small, then there's not a whole lot of reason for Microsoft to invest those resources, either.

    If the developer community for CVS and Subversion, a recognizably altruistic bunch of folks who are known for putting in way more effort than is of direct reward to themselves, don't see any payback in building this integration, I'm having a hard time seeing the business case for Microsoft to do it, either.

    posted at 05:39PM 04/28/2006
  6. einhverfr said:

    My previous post was written in the spirit of helpful advice.  I don't use Windows for development anymore, and I don't own a recent copy of Visual Studio.  So I am not a good person to develop it.  Indeed, it makes little difference *to me* if Microsoft chooses to develop such a plugin or not.

    I don't know about other posters here but I don't personally have a stake in this issue.  So I am not likely to find the time to develop this add-in.  However, I think that if Microsoft wants to create a better product, they might want to re-evaluate whether to interface with CVS at least (and maybe subversion) out of the box, leaving the third party ISV's to provide integration solutions for high-end SCM solutions.

    Otherwise you are right-- there is no reason I can think of why such a plugin could not be written and made open source.

    Best Wishes,
    Chris Travers
    Metatron Technolog Consulting

    posted at 06:35PM 04/28/2006
  7. jdzions,

    Why is the answer here always "Microsoft should do none of the interop work beyond APIs"

    Here's one. If there are many IDEs that allow me to develop Windows software, and the only one that makes using CVS a pain in the ass is also the only one that's useless for almost anything BUT windows software, then why should I use it?

    Microsoft and the port25 people can talk all the interop PR-ese they want, but as we see, when you ask *Microsoft* to actually do SOME of the work of interop, they suddenly have a list of reasons that all boil down to, "We don't want to and you can't make us"

    Well, we ain't buying another overpriced code management solution from  Microsoft, and if Microsoft refuses to play nice with everyone else, then maybe we don't need to buy our IDEs from them anymore either.

    posted at 06:24PM 04/29/2006
  8. Hi all, its Rick Strom, reinvented as "stromdotcom" for the new comment system.

    > Rick, are you unsatisfied with the third-party add-ins like Igloo?

    I've actually just switched to Subversion, so I'm using Ankh with Visual Studio.  It's nice, but apparently they've only recently began testing with VS2005.  It works well enough with VS2003, and I wouldn't say I'm unsatisfied, but I still think an MS developed add-in would really increase the value of VS, simply by virtue of making its users happy.

    I wish I had saved a copy of the email I sent to Eric following up his response to my original post, but I can paraphrase:

    > In order for Visual Studio to be successful, we feel we
    > have to build it as a platform, and help create a healthy
    > ecosystem of partners.  Doing this means providing viable
    > opportunities for our partners to build value onto VS.

    It is my position, as a developer of software that I do -gasp!- sell, that the way to make a product successful is to make it do what the user wants it to do.  While I'm in no position to question Microsoft's business plan, I still think that basic idea is unquestionably true.  Before building partnerships with third-party developers, forcing things like Team System on the world, etc., you should really focus on the end user.

    The problem with a SVN or CVS plugin being developed by a third party is that open source (read _unpaid_) developers are going to be asked to spend hundreds of dollars on a simple little add in that lets them continue to do what could be considered unpaid community service.  I don't see how that makes sense.

    Why this should matter to Microsoft: this is one reason why OSS software is so successful -- because its developers make software that people use, rather than making software that they think people should use, and then taking whatever steps necessary to make sure they have no choice but to use it.  That plan has served Microsoft well in the past, but the fact that we are all discussing these things on Port25 right now indicates that even Microsoft is prepared to admit that this model is failing.

    posted at 11:25PM 04/29/2006
  9. > So why aren't you building it? Why are the ones already
    > built "not good enough"? Why does it have to come from
    > Microsoft?

    Because we're talking about a product developed by third-parties using the MSSCCI interface (and I am totally, completely unfamiliar with MSSCCI and its capabilities so my argument might fall flat here) versus a product developed by the same team at the same house that developed Visual Studio itself -- not with MSSCCI but actually a part of Visual Studio.

    posted at 11:52PM 04/29/2006
  10. Wow, lots of discussion on this topic :)  I was away at a friend's wedding this past week so apologies for not responding.  Let me read Rick's email and go through these reponses today - I'll be back with my thoughts ...

    Thanks!

    Eric.

    posted at 12:52PM 05/01/2006
Post a Comment
*
*