Project Server و Project Online در سی شارپ ASP.NET

Project Online و Project Server راه حل های مدیریت پروژه و پورتفولیو با ویژگی های غنی هستند که توسط مایکروسافت ارائه شده اند. هر دو راه حل تقریباً طیف مشابهی از ویژگی ها را برای ایجاد و مدیریت پروژه ها ارائه می دهند، با این حال، بر اساس اینکه کدام راه حل به خوبی با نیازهای شما مطابقت دارد، متفاوت هستند. به عنوان مثال، اگر می خواهید راه حل داخلی با کنترل بیشتری بر سخت افزار و نرم افزار داشته باشید، می توانید Project Server را انتخاب کنید. از سوی دیگر، Project Online به عنوان یک نمونه مبتنی بر ابر از Project Server بدون نیاز به زیرساخت های شخصی شما عمل می کند.

ممکن است مواردی وجود داشته باشد که نیاز به دسترسی به اطلاعات پروژه ها از سرور پروژه/آنلاین از داخل برنامه های خود داشته باشید. برای مقابله با چنین مواردی، در این مقاله به شما نشان خواهم داد که چگونه با استفاده از سی شارپ، پروژه ها را روی/از روی Project Server یا Project Online در برنامه های دات نت (ASP.NET و غیره) یا سرویس های وب خود ایجاد یا بخوانید. .

C# API برای Project Server/Online

برای ایجاد پروژه های جدید و خواندن پروژه های موجود از Project Server/Online، از Aspose.Tasks for .NET استفاده می کنیم. این یک کتابخانه کلاس بین پلتفرمی برای خواندن و نوشتن فایل‌های MS Project به صورت برنامه‌نویسی در برنامه‌های NET Standard یا NET Core است. API در NuGet میزبانی می شود و همچنین به عنوان بسته MSI و DLL فشرده در بخش Downloads موجود است.

کار با Project Server

در این بخش، نحوه اتصال به Project Server و خواندن یا ایجاد پروژه ها را به شما نشان خواهم داد. برای اتصال به Project Server باید جزئیات زیر را بدانید:

خواندن پروژه ها از Project Server در سی شارپ

مراحل زیر برای اتصال به Project Server و بازیابی لیست پروژه ها از آن است.

  • کلاس NetworkCredential را نمونه سازی کنید و آن را با اعتبارنامه ها مقداردهی اولیه کنید.
  • یک شی از کلاس ProjectServerCredentials ایجاد کنید و آن را با URL سرور پروژه و شی NetworkCredential مقداردهی کنید.
  • یک شی از کلاس ProjectServerManager ایجاد کنید و لیستی از پروژه ها را با استفاده از روش ProjectServerManager.GetProjectList() دریافت کنید.

نمونه کد زیر نحوه خواندن پروژه ها از Project Server در سی شارپ را نشان می دهد.

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);
}

ایجاد پروژه در سرور پروژه در سی شارپ

ایجاد یک پروژه در Project Server به سادگی پای است. به سادگی به همان روشی که در مثال قبلی انجام دادید به Project Server متصل شوید، فایل پروژه (mpp.) را با استفاده از کلاس Project بارگیری کنید و روش ProjectServerManager.CreateNewProject() را فراخوانی کنید.

نمونه کد زیر نحوه ایجاد یک پروژه جدید روی Project Server در سی شارپ را نشان می دهد.

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 کاملاً شبیه کار با Project Server است و فقط در ایجاد اتصال متفاوت است. برای اتصال به Project Online، باید جزئیات زیر را بدانید:

  • URL
  • نام کاربری
  • کلمه عبور

خواندن پروژه ها از Project Online در سی شارپ

مراحل زیر برای خواندن پروژه ها از Project Online آمده است:

نمونه کد زیر نحوه بازیابی لیست پروژه ها را از Project Online نشان می دهد.

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);

    // یک کاربر می تواند پروژه را به عنوان جریان داده خام بخواند
    var stream = manager.GetProjectRawData(info.Id);

    // کار با داده های خام پروژه
}

ایجاد یک پروژه در پروژه آنلاین در سی شارپ

مراحل زیر برای ایجاد یک پروژه جدید در Project Online آمده است:

نمونه کد زیر نحوه ایجاد یک پروژه جدید در Project Online در سی شارپ را نشان می دهد.

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 برای دات نت بیشتر بیاموزید

می‌توانید در مورد مدیریت پروژه با استفاده از Aspose.Tasks برای دات‌نت از مستندات اطلاعات بیشتری کسب کنید.