2012-02-05 16 views
10

Attualmente sto sviluppando un'applicazione in .NET 4 che deve interagire con un server Perforce.. Wrapper net per le API Perforce?

Il mio team ha precedentemente sviluppato una sorta di wrapper utilizzando l'API Perforce, ma è privo di alcuni casi d'uso e non gestisce correttamente le eccezioni. In breve, non è qualcosa che posso davvero usare così com'è, poiché richiederebbe uno sforzo considerevole per renderlo il più possibile "a prova di proiettile".

Mi chiedevo se esiste un wrapper API Perforce esistente per .NET che gestisce correttamente le eccezioni?

Mentre stavo valutando l'usabilità del nostro wrapper interno, ho trovato un elenco di eccezioni e casi d'uso che la nostra applicazione avrebbe dovuto gestire (e che il wrapper avrebbe dovuto gettare).

L'elenco era abbastanza esaustivo, il che mi ha spinto a chiedermi se esistesse già una specie di wrapper.

+2

Il primo risultato di una rapida ricerca su google di * perforce C# api *: http://public.perforce.com/guest/robert_cowham/perforce/API /p4com/main/index.html –

+0

Non sto cercando un'API, sto cercando un wrapper. –

+3

dal link che M.Babcock ha pubblicato: "P4API.Net è un codice completamente gestito ed è completamente supportato da Perforce.Questa è ora l'interfaccia consigliata da utilizzare su Windows" –

risposta

10

È possibile controllare la libreria P4API.NET fornita da Perforce. Oppure puoi usare la libreria P4.NET, che non è una versione ufficiale di Perforce, ma è in circolazione da un po 'di tempo.

Ho usato P4.NET diverse volte, e ne sono stato abbastanza contento. È possibile ottenere le librerie .NET 4 here, poiché credo che la libreria originale avesse solo il supporto per .NET 2.

+0

Molto apprezzato Mike, darò un'occhiata a entrambi. Hai usato anche P4API.NET? Mi stavo chiedendo come sia il confronto. –

+0

Non ho ancora usato P4API.NET (è nella mia lista delle cose da fare), ma ho brevemente esaminato la documentazione. Ricordo di aver pensato che sembrava un po 'paragonabile a P4.NET. –

3

C'è anche il mio (non ben collaudato) C# wrapper attorno al exe p4. Il vantaggio principale (solo?) Di questo rispetto agli altri è che costruisce e lavora anche in mono. Non dipende dalle librerie COM o perforce C++.

https://github.com/inorton/p4-sharp

P4Shell p = new P4Shell(); 

if (p.Login("inb","password")) 
    Console.WriteLine("logged in"); 

Console.WriteLine(p.WorkspaceName); 
Console.WriteLine(p.WorkspaceRoot); 

var dirs = p.Dirs("//nCipher/dev/home/inb/*"); 

foreach (var d in dirs) 
    Console.WriteLine(" + {0}", d); 

P.S. Non stavo cercando di essere divertente memorizzandolo in github :)