[Mono-dev] Microsoft.TeamFoundation APIs

Steve Deobald steve at deobald.ca
Wed Dec 20 18:30:59 EST 2006


Joel, this rocks!

I'd love to take a look at this when I get back to Canada for the
holidays. I spent some between-project time on Turtle, an open source
GUI wrapper around TFS.EXE. The problem with this, of course, is that
it was only a wrapper around TFS.EXE. :-)

You can take a look at the project page here:

http://www.codeplex.com/Wiki/View.aspx?ProjectName=Turtle

It was basically abandoned in its current form, but it's fully
functional. Just as people were staffed back onto projects that paid
money, it was widely determined that a re-write of Turtle that acted
more like a subversion client would be preferrable and possible. Let
me know if you're interested in quickly discussing the high-level
design for this.

-Steve

PS: The current incarnation of Turtle is a WinForms app, but it
wouldn't break my heart to rip out with WinForms views and drop in
Gtk#.

On 12/19/06, joel reed <joel.reed at ddiworld.com> wrote:
> Rafael Teixeira wrote:
> > Hi Joel,
> >
> > Nice work so far but I couldn't find an open source TFS server to match
> > it...
> >
> > Can you point me to some open source implementation of a backend to your
> > APIs?
>
> I wish I could. TeamFoundation server consists of a SQL Server database,
> sharepoint site, and an application tier consisting of a lot of web
> services. It would be much more difficult to try and duplicate the
> server side, then the client side, imho. I just want a client personally
> so I could checkin/checkout code, respond to bugs, etc. on my *nix box.
>
> If you are really motivated, then another option would be to connect to
> the TeamFoundation server on Microsoft's codeplex site
> (http://www.codeplex.com). Its the only TFS server I know of that is
> accessible via the Internet. However, to do this, you must have a
> registered account, and be a "developer" or "coordinator" on a codeplex
> project. Not very helpful, except for those very motivated to help
> implement/test these APIs.
>
> jr
>
>
> >
> > Regards,
> >
> > On 12/19/06, joel reed <joel.reed at ddiworld.com> wrote:
> >> Just in the interest of getting what I have done out their now, I'm
> >> posting the following gzip'd patch against the 12/18/06 olive tree.
> >>
> >> Currently implemented functionality:
> >>
> >>    Get list of all projects in a repository
> >>    Get project by name
> >>    Get project by url
> >>    Querying labels
> >>    Downloading files
> >>    Get list of all files in a project
> >>
> >> The patch adds a tool/tfs/tfs.cs which you can use to try out the above
> >> functionality on a TFS server of your choice.
> >>
> >> Here's what's in the patch.
> >>
> >> (2225 /usr/local/src/olive) lsdiff ~/olive-with-tfs.v1.diff
> >> olive/class/Makefile
> >> olive/class/Microsoft.TeamFoundation/Assembly/AssemblyInfo.cs
> >> olive/class/Microsoft.TeamFoundation/ICommonStructureService.cs
> >> olive/class/Microsoft.TeamFoundation/Makefile
> >> olive/class/Microsoft.TeamFoundation/Microsoft.TeamFoundation.dll.sources
> >> olive/class/Microsoft.TeamFoundation/ProjectInfo.cs
> >> olive/class/Microsoft.TeamFoundation/ProjectProperty.cs
> >> olive/class/Microsoft.TeamFoundation/ProjectState.cs
> >> olive/class/Microsoft.TeamFoundation.Client/Assembly/AssemblyInfo.cs
> >> olive/class/Microsoft.TeamFoundation.Client/CommonStructureService.cs
> >> olive/class/Microsoft.TeamFoundation.Client/Makefile
> >> olive/class/Microsoft.TeamFoundation.Client/Microsoft.TeamFoundation.Client.dll.sources
> >>
> >> olive/class/Microsoft.TeamFoundation.Client/Microsoft.TeamFoundation.Client_test.dll.sources
> >>
> >> olive/class/Microsoft.TeamFoundation.Client/TeamFoundationServer.cs
> >> olive/class/Microsoft.TeamFoundation.Client/Test/CommonStructureServiceTest.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.Client/Test/TeamFoundationServerTest.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.Common/Assembly/AssemblyInfo.cs
> >> olive/class/Microsoft.TeamFoundation.Common/InvalidPathException.cs
> >> olive/class/Microsoft.TeamFoundation.Common/Makefile
> >> olive/class/Microsoft.TeamFoundation.Common/Microsoft.TeamFoundation.Common.dll.sources
> >>
> >> olive/class/Microsoft.TeamFoundation.Common/TeamFoundationServerException.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Assembly/AssemblyInfo.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ChangesetVersionSpec.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ChangeType.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/DateVersionSpec.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/DeletedState.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ExceptionEventArgs.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Failure.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/GetOperation.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/GetOptions.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/GetRequest.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/GettingEventArgs.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Item.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ItemNotMappedException.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ItemSet.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ItemSpec.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ItemType.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/LabelVersionSpec.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/LatestVersionSpec.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/LockLevel.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Makefile
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/MappingException.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Microsoft.TeamFoundation.VersionControl.Client.dll.sources
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Microsoft.TeamFoundation.VersionControl.Client_test.dll.sources
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/PendingChangeEventArgs.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ProcessingChangeEventArgs.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/RecursionType.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Repository.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/RepositoryProperties.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/SecurityChange.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/TeamProjectFolderOptions.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Test/VersionControlServerTest.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Test/WorkingFolderTest.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/VersionControlException.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/VersionControlLabel.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/VersionControlServer.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/VersionSpec.cs
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/WorkingFolder.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/WorkingFolderType.cs
> >>
> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Workspace.cs
> >> olive/README.tfs
> >> olive/tools/Makefile
> >> olive/tools/tfs/Makefile
> >> olive/tools/tfs/tfs.cs
> >> olive/tools/tfs/tfs.exe.sources
> >> olive/tools/tfs/TODO
> >> olive/tools/tfs/USAGE
> >>
> >> thanks,
> >>
> >> jr
> >>
> >>
> >> Charlie Poole wrote:
> >> > Hi Joel,
> >> >
> >> >> Charlie Poole wrote:
> >> >>> Separate from the question of where this belongs and how it
> >> >> relates to
> >> >>> Mono, I'd love to have a way to access the Microsoft CodePlex
> >> >>> repositories that doesn't involve use of TFS.
> >> >> Good idea. I'll test my code against codeplex in addition to
> >> >> my local TFS server.
> >> >
> >> > Let me know if I can help.
> >> >
> >> >>> Any thoughts of working on the Microsoft unit test APIs? There's a
> >> >>> work in progress to allow NUnit to run those tests, but it
> >> >> requires a
> >> >>> copy of the Microsoft dlls to do it. Removing that
> >> >> limitation would be
> >> >>> quite powerful.
> >> >> When I finish up what I need with the version control APIs,
> >> >> I'd probably take a look at the issue tracking stuff next.
> >> >> The unit test APIs would be interesting, but I prefer just
> >> >> using Nunit :)
> >> >
> >> > I have no objections to that. :-)
> >> >
> >> > Charlie
> >> >
> >> >> jr
> >> >>
> >> >>
> >> >>> Charlie
> >> >>>
> >> >>>> -----Original Message-----
> >> >>>> From: mono-devel-list-bounces at lists.ximian.com
> >> >>>> [mailto:mono-devel-list-bounces at lists.ximian.com] On
> >> >> Behalf Of joel
> >> >>>> reed
> >> >>>> Sent: Saturday, December 16, 2006 7:09 PM
> >> >>>> To: mono-devel
> >> >>>> Subject: [Mono-dev] Microsoft.TeamFoundation APIs
> >> >>>>
> >> >>>> I've been working on implementing the Team Foundation
> >> >> Server APIs and
> >> >>>> currently have partial implementations of about 45 classes. I'm
> >> >>>> currently working on the test suite and fixing bugs, comparing the
> >> >>>> test suite output against my implementation and MS's. As
> >> >> part of this
> >> >>>> work, I also have a tfs.exe utility that can display all
> >> >> the projects
> >> >>>> in a repository and download all the files in any
> >> >> particular project.
> >> >>>> These are the namespaces I've been working on:
> >> >>>>    Microsoft.TeamFoundation
> >> >>>>    Microsoft.TeamFoundation.Common
> >> >>>>    Microsoft.TeamFoundation.Client
> >> >>>>    Microsoft.TeamFoundation.VersionControl.Client
> >> >>>>
> >> >>>> I've been working on this within the context of the mono
> >> >> olive tree.
> >> >>>> That is, I've added all my code to this tree locally, and
> >> >> integrated
> >> >>>> it into the build system.
> >> >>>>
> >> >>>> Is the olive project the right place for an implementation
> >> >> of the the
> >> >>>> Team Foundation Server APIs? Or the mono project? Or just
> >> >> a separate
> >> >>>> sourceforge project? Just looking for some guidance here.
> >> >>>>
> >> >>>> jr
> >> >>>>
>
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
>
>



More information about the Mono-devel-list mailing list