C# ASP.NET'te Project Server ve Project Online

Project Online ve Project Server, Microsoft tarafından sağlanan zengin özelliklere sahip proje ve portföy yönetimi çözümleridir. Her iki çözüm de proje oluşturmak ve yönetmek için neredeyse benzer özellikler sunar, ancak gereksinimlerinize en uygun çözümün hangisi olduğuna bağlı olarak farklılık gösterir. Örneğin, donanım ve yazılım üzerinde daha fazla kontrole sahip şirket içi çözüm istiyorsanız, Project Server’ı tercih edebilirsiniz. Öte yandan Project Online, kendi altyapınıza ihtiyaç duymadan Project Server’ın bulut tabanlı bir örneği olarak hizmet verir.

Projelerin bilgilerine, uygulamalarınız içinden Project Server/Online’dan erişmeniz gereken durumlar olabilir. Bu gibi durumların üstesinden gelebilmek için bu yazıda size C# kullanarak .NET uygulamalarınız (ASP.NET vb.) veya web servisleriniz içerisinde Project Server veya Project Online üzerinde/üzerinden proje oluşturmayı/okumayı göstereceğim. .

Proje Sunucusu/Çevrimiçi için C# API’si

Yeni projeler oluşturmak ve mevcut projeleri Project Server/Online’dan okumak için Aspose.Tasks for .NET kullanacağız. MS Project dosyalarını .NET Standard veya .NET Core uygulamalarında programlı olarak okumak ve yazmak için platformlar arası bir sınıf kitaplığıdır. API, NuGet üzerinde barındırılır ve İndirilenler bölümünde bir MSI paketi ve sıkıştırılmış DLL olarak bulunur.

Project Server ile Çalışma

Bu bölümde, Proje Sunucusuna nasıl bağlanacağınızı ve projeleri nasıl okuyacağınızı veya oluşturacağınızı göstereceğim. Proje Sunucusuna bağlanmak için aşağıdaki ayrıntıları bilmeniz gerekir:

C# ile Project Server’dan Projeleri Okuyun

Aşağıda, Project Server’a bağlanma ve ondan proje listesini alma adımları yer almaktadır.

Aşağıdaki kod örneği, C# dilinde Project Server’dan projelerin nasıl okunacağını gösterir.

string url = "https://contoso.sharepoint.com";
string domain = "CONTOSO.COM";
string userName = "Administrator";
string password = "MyPassword";

NetworkCredential windowsCredentials = new NetworkCredential(userName, password, domain);
ProjectServerCredentials projectServerCredentials = new ProjectServerCredentials(url, windowsCredentials);
ProjectServerManager manager = new ProjectServerManager(projectServerCredentials);

var list = manager.GetProjectList();
foreach (var projectInfo in list)
{
    Console.WriteLine("{0} - {1} - {2}", projectInfo.Id, projectInfo.CreatedDate, projectInfo.Name);
}

C# ile Proje Sunucusunda Proje Oluşturma

Project Server’da bir proje oluşturmak pasta kadar basittir. Önceki örnekte yaptığınız gibi Proje Sunucusuna bağlanın, Project sınıfını kullanarak proje dosyasını (.mpp) yükleyin ve ProjectServerManager.CreateNewProject() yöntemini çağırın.

Aşağıdaki kod örneği, C# ile Project Server’da yeni bir projenin nasıl oluşturulacağını gösterir.

Project project = new Project("New Project.mpp");
NetworkCredential windowsCredentials = new NetworkCredential("Administrator", "MyPassword", "CONTOSO.COM");
ProjectServerCredentials projectServerCredentials = new ProjectServerCredentials("https://contoso.sharepoint.com", windowsCredentials);
ProjectServerManager manager = new ProjectServerManager(projectServerCredentials);
manager.CreateNewProject(project);

Project Online ile Çalışma

Project Online ile çalışmak, Project Server ile çalışmaya oldukça benzer ve yalnızca bağlantı oluşturmada farklılık gösterir. Project Online’a bağlanmak için aşağıdaki ayrıntıları bilmeniz gerekir:

  • URL
  • Kullanıcı adı
  • Şifre

C# ile Project Online’dan Projeleri Okuyun

Projeleri Project Online’dan okumak için izlenecek adımlar şunlardır:

Aşağıdaki kod örneği, Project Online’dan proje listesinin nasıl alınacağını gösterir.

const string SharepointDomainAddress = "https://contoso.sharepoint.com";
const string UserName = "admin@contoso.onmicrosoft.com";
const string Password = "MyPassword";

ProjectServerCredentials credentials = new ProjectServerCredentials(SharepointDomainAddress, UserName, Password);
ProjectServerManager manager = new ProjectServerManager(credentials);
IEnumerable<ProjectInfo> list = manager.GetProjectList();

foreach (var info in list)
{
    Project project = manager.GetProject(info.Id);
    Console.WriteLine("{0} - {1} - {2}", info.Name, info.CreatedDate, info.LastSavedDate);
    Console.WriteLine("Resources count: {0}", project.Resources.Count);

    // bir kullanıcı projeyi ham veri akışı olarak okuyabilir
    var stream = manager.GetProjectRawData(info.Id);

    // ham proje verileriyle çalışma
}

C# ile Project Online’da Proje Oluşturma

Project Online’da yeni bir proje oluşturmak için izlenecek adımlar şunlardır:

Aşağıdaki kod örneği, C# ile Project Online’da yeni bir projenin nasıl oluşturulacağını gösterir.

string sharepointDomainAddress = "https://contoso.sharepoint.com";
string userName = "admin@contoso.onmicrosoft.com";
string password = "MyPassword";

ProjectServerCredentials credentials = new ProjectServerCredentials(sharepointDomainAddress, userName, password);

Project project = new Project("New Project.mpp");

ProjectServerManager manager = new ProjectServerManager(credentials);
manager.CreateNewProject(project);

Aspose.Tasks for .NET hakkında daha fazla bilgi edinin

Aspose.Tasks for .NET kullanarak proje yönetimi hakkında daha fazla bilgiyi belgelerden edinebilirsiniz.