.net для Perforce API?

В настоящее время я разрабатываю приложение в .NET 4, которое должно взаимодействовать с сервером Perforce.

Моя команда ранее разработала какую-то оболочку с использованием API Perforce, но ее недоставало довольно много случаев использования и не обрабатывает исключения. Короче говоря, это не то, что я действительно могу использовать как есть, так как это потребует значительных усилий, чтобы сделать его "пуленепробиваемым", насколько это возможно.

Мне было интересно, существует ли оболочка API Perforce для .NET, которая правильно обрабатывает исключения?

Поскольку я оценивал удобство использования нашей внутренней оболочки, я придумал список исключений и прецедентов, которые необходимо обработать нашему приложению (и оболочке нужно было бы выбросить).

Список был довольно исчерпывающим, что побудило меня задаться вопросом, существует ли какая-то оболочка.

Ответ 1

Возможно, вы захотите проверить библиотеку P4API.NET, которая предоставляется Perforce. Или вы могли бы использовать библиотеку P4.NET, которая не является официальным релизом от Perforce, но существует некоторое время.

Я использовал P4.NET несколько раз и был очень доволен этим. Вы можете получить библиотеки .NET 4 здесь, так как я считаю, что исходная библиотека поддерживала только .NET 2.

Ответ 2

Существует также моя (не так хорошо протестированная) оболочка С# вокруг p4 exe. Главное (только?) Преимущество этого над другими заключается в том, что он строит и работает под моно. Это не зависит от COM файлов или от существующих библиотек С++.

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. Я не пытался быть забавным, сохраняя его в github:)