PnP که مخفف Practices and Patterns است یک پروژه منبع باز جامعه محور است که در آن مایکروسافت و اعضای انجمن یک الگوی پیاده سازی برای Office 365 و SharePoint در محل ایجاد کرده اند. یکی از شاخه های توسعه PnP در کتابخانه PnP Core CSOM است.
کتابخانه PnP Core متدهای افزونه CSOM را برای توسعه مدل افزودنی شیرپوینت 2016 فراهم می کند. اسناد رسمی از اینجا قابل دسترسی است . کتابخانه PnP Core بهره وری توسعه دهندگان را با انتزاع عملیات پیچیده افزایش می دهد. در این مقاله نحوه راه اندازی کتابخانه هسته PnP از راه دور و کار با شیرپوینت 2016 با استفاده از یک برنامه کنسول را خواهیم دید.
برای کار با کتابخانه PnP Core ابتدا باید Nuget Package Manager را نصب کنیم که در این مقاله توضیح داده شده است.هنگامی که کتابخانه هسته PnP اضافه شد، می توانیم با استفاده از یک برنامه کنسول، پیاده سازی را آغاز کنیم.
ساختار پروژه
یک برنامه کنسول ایجاد کنید و مراجع زیر را اضافه کنید.
- Microsoft.SharePoint.Client;
- OfficeDevPnP.Core;
محدوده مقاله انجام عملیات زیر با استفاده از PnP Core CSOM Library خواهد بود.
- اضافه کردن مدیر مجموعه سایت جدید
- مدیران مجموعه سایت را بازیابی کنید
مدیر مجموعه سایت را اضافه کنید
- نمونه ای از مدیر احراز هویت ایجاد کنید که برای ایجاد زمینه مشتری استفاده می شود.
- //Get instance of Authentication Manager
- OfficeDevPnP.Core.AuthenticationManager authenticationManager = new OfficeDevPnP.Core.AuthenticationManager();
- //Create authentication array for site url,User Name,Password and Domain
- string[] authArray = { "http://sharepoint2016/sites/HOL", "Priyaranjan","password-1","SharePointHOL" };
- با ارسال جزئیات احراز هویت به شی مدیر احراز هویت، Context Client ایجاد کنید.
- var clientContext = authenticationManager.GetNetworkCredentialAuthenticatedContext(authArray[0], authArray[1],authArray[2], authArray[3])
- var clientContext = authenticationManager.GetNetworkCredentialAuthenticatedContext(authArray[0], authArray[1],authArray[2], authArray[3])
- یک شیء موجودیت کاربر ایجاد کنید و کاربر را به عنوان مدیر مجموعه سایت اضافه کنید
- List<OfficeDevPnP.Core.Entities.UserEntity> adminColl = new List<Core.Entities.UserEntity>();
- Core.Entities.UserEntity admin = new Core.Entities.UserEntity();
- admin.LoginName = @"SharePointHOL\Jinesh";
- adminColl.Add(admin);
- clientContext.Web.AddAdministrators(adminColl);
خروجی
پس از اجرای اسکریپت، مدیر مجموعه سایت را اضافه می کند و پیام موفقیت کنسول را نشان می دهد.
همچنین میتوانیم مدیران مجموعه جدید سایت را از صفحه تنظیمات سایت نیز بررسی کنیم.
مدیران مجموعه سایت را دریافت کنید
- نمونه ای از مدیر احراز هویت ایجاد کنید که برای ایجاد زمینه مشتری استفاده می شود
- //Get instance of Authentication Manager
- OfficeDevPnP.Core.AuthenticationManager authenticationManager = new OfficeDevPnP.Core.AuthenticationManager();
- //Create authentication array for site url,User Name,Password and Domain
- string[] authArray = { "http://sharepoint2016/sites/HOL", "Priyaranjan","password-1","SharePointHOL" };
- با ارسال جزئیات احراز هویت به شی مدیر احراز هویت، Context Client ایجاد کنید
- var clientContext = authenticationManager.GetNetworkCredentialAuthenticatedContext(authArray[0], authArray[1],authArray[2], authArray[3])
- var clientContext = authenticationManager.GetNetworkCredentialAuthenticatedContext(authArray[0], authArray[1],authArray[2], authArray[3])
- یک شیء موجودیت کاربری ایجاد کنید و مدیران مجموعه سایت را دریافت کنید
- List < OfficeDevPnP.Core.Entities.UserEntity > adminColl = new List < Core.Entities.UserEntity > ();
- adminColl = clientContext.Web.GetAdministrators();
- int i = 0;
- foreach(Core.Entities.UserEntity admin in adminColl)
- {
- i++;
- Console.WriteLine("Site Collection Administrator " + i + " : " + admin.LoginName);
- }
خروجی
پس از اجرای اسکریپت، مدیر مجموعه سایت دریافت می کند و در کنسول نشان داده می شود.
کد کامل
- //Get instance of Authentication Manager
- OfficeDevPnP.Core.AuthenticationManager authenticationManager = new OfficeDevPnP.Core.AuthenticationManager();
- //Create authentication array for site url,User Name,Password and Domain
- string[] authArray = {
- "http://sharepoint2016/sites/HOL",
- "Priyaranjan",
- "password-1",
- "SharePointHOL"
- };
- try {
- //Create the client context
- using(var clientContext = authenticationManager.GetNetworkCredentialAuthenticatedContext(authArray[0], authArray[1], authArray[2], authArray[3])) {
- List < OfficeDevPnP.Core.Entities.UserEntity > adminColl = new List < Core.Entities.UserEntity > ();
- adminColl = clientContext.Web.GetAdministrators();
- int i = 0;
- foreach(Core.Entities.UserEntity admin in adminColl) {
- i++;
- Console.WriteLine("Site Collection Administrator " + i + " : " + admin.LoginName);
- }
- Console.ReadLine();
- }
- } catch (Exception ex) {
- Console.WriteLine("Exception : " + ex.Message);
- }
خلاصه
بنابراین ما دیدیم که چگونه با استفاده از PnP Core Component، مدیران مجموعه سایت جدید را به سرور شیرپوینت 2016 اضافه کنیم.