Ejemplo de ObjGen

Ejemplo (pegarlo en http://www.objgen.com/json)

version n = 3.1
releaseDate d = 2014-06-25
demo b = true

// Tabs or spaces define complex values
person
  id number = 12345
  name = John Doe
  phones
    home = 800-123-4567
    mobile = 877-123-1234

  // Use [] to define simple type arrays
  email[] s = jd@example.com, jd@example.org
  dateOfBirth d = 1980-01-02
  registered b = true

  // Use [n] to define object arrays
  emergencyContacts[0]
    name s = Jane Doe
    phone s = 888-555-1212
    relationship = spouse
  emergencyContacts[1]
    name s = Justin Doe
    phone s = 877-123-1212
    relationship = parent

Tfs API - Obtener items [*** 100% funcionando ***]

(fuente para el tema de autenticacion: https://stackoverflow.com/questions/3150260/how-do-you-connect-to-a-tfs-server-in-c-sharp-using-specific-credentials/3150730#3150730)

Instalar con NuGet:

* Microsoft.TeamFoundationServer.ExtendedClient (version 15) ==> agregar todo


* Microsoft.VisualStudio.Services.Client (version 15) ==> se necesita Microsoft.TeamFoundation.Common.dll


* Microsoft.TeamFoundationServer.Client.(version 15) ==> se necesita Microsoft.VisualStudio.Services.WebApi.dll


Ejemplo de uso:

static void Main(string[] args)
{
var urlTfs = "http://Xvir29:8080/tfs";
var workspaceTfs = "X00894";
var pathLocal = @"c:\crusso\X\fuentes";
var teamProject = "Desarrollo";
var usuario = "carusso";
var password = "elpassword";

GetSourceFromTFS(urlTfs, workspaceTfs, pathLocal, teamProject, "WebCreditos", usuario, password);
}



public void GetSourceFromTFS(string urlTfs, string workspaceTfs, string pathLocal, string teamProject, string proyecto, string usuario, string password)
{
var collectionUri = new Uri(urlTfs);

NetworkCredential credential = new NetworkCredential(usuario, password);

NetworkCredential netCred = new NetworkCredential(usuario, password);
var winCred = new Microsoft.VisualStudio.Services.Common.WindowsCredential(netCred);
VssCredentials vssCred = new VssClientCredentials(winCred);
vssCred.PromptType = CredentialPromptType.DoNotPrompt;

Uri tfsUri = new Uri(urlTfs);
var tfs = new TfsTeamProjectCollection(tfsUri, vssCred);         
tfs.EnsureAuthenticated();


var vsStore = tfs.GetService<VersionControlServer>();

var path = pathLocal + "\\" + teamProject + "\\" + proyecto;
var items = vsStore.GetItems("$\\" + teamProject + "\\" + proyecto, VersionSpec.Latest, RecursionType.Full);

var workspace = vsStore.GetWorkspace(workspaceTfs, usuario);

workspace.Get(new string[] { path }, VersionSpec.Latest, RecursionType.Full, GetOptions.GetAll);
}



Compilar desde una aplicacion Web utilizando API build tools

Referencias que se necesitan:
Microsoft.Build
Microsoft.Build.Engine
Microsoft.Build.Framework

Estas dll's se encuentran en C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\

si no aparecen, instalarlos asi:
vs_buildtools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools

o bajarlo de aca: https://www.visualstudio.com/es/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15


using System.Collections.Generic;
using Microsoft.Build.Evaluation;
using Microsoft.Build.Execution;
using System.IO;
using Microsoft.Build.Framework;

            var exitcode = 0;

            string projectFileName = @"C:\crusso\X\fuentes\Desarrollo\WebCreditos\WebCreditos.sln";
            ProjectCollection pc = new ProjectCollection();
            Dictionary<string, string> GlobalProperty = new Dictionary<string, string>();
            GlobalProperty.Add("Configuration", "Release");
            GlobalProperty.Add("Platform", "Any CPU");
            GlobalProperty.Add("OutputPath", Directory.GetCurrentDirectory() + "\\deploy");

            Microsoft.Build.BuildEngine.FileLogger fl = new Microsoft.Build.BuildEngine.FileLogger() { Parameters = @"logfile=c:\temp\log.txt" };

            BuildParameters bp = new BuildParameters(pc);
           
            bp.Loggers = new[] {
                                  new Microsoft.Build.BuildEngine.FileLogger
                                  {
                                    Verbosity = LoggerVerbosity.Normal,
                                    ShowSummary = true,
                                    SkipProjectStartedText = true,
                                    Parameters = @"logfile=c:\temp\log.txt"
                                  }
                                };
           
            BuildManager.DefaultBuildManager.BeginBuild(bp);
            BuildRequestData BuildRequest = new BuildRequestData(projectFileName, GlobalProperty, null, new string[] { "Build" }, null);
            BuildSubmission BuildSubmission = BuildManager.DefaultBuildManager.PendBuildRequest(BuildRequest);
            BuildSubmission.Execute();
            BuildManager.DefaultBuildManager.EndBuild();

            if (BuildSubmission.BuildResult.OverallResult == BuildResultCode.Failure)
            {
                exitcode = 1; //error
                //throw new Exception();
            }
            else
                exitcode = 0;

            return exitcode