بررسی اجمالی برنامه نویسی شیرپوینت (SharePoint Framework -SPFx)

SharePoint Framework یک مدلی است از یک صفحه وب که با توسعه شیرپوینت client-side  و ادغام آسان با داده های شیرپوینت را فراهم می کند و همچنین از ابرازهای متن باز یا open source پشتیبانی کاملی دارد. با SharePoint Framework شما می توانید از فناورهای مدرن وب و ابزارهایی که برای توسعه محیط مورد نظر برای کسب تجربیات سازنده و از برنامه های که از پیش تعیین شده استفاده کنید. SharePoint Framework برای شیرپوینت آنلاین و   on-premises کار می کند (شیرپوینت 2016 با  سرویس پک 2 و شیرپوینت 2019)

آموزش spfx - sharepint framework

مسیر یادگیری SPFX

ویژگی های کلیدی Framework SharePoint عبارتند از:

  • در زمینه کاربر فعلی و اتصال در مرورگر اجرا می شود. iFrames برای سفارش سازی وجود ندارد (جاوا اسکریپت به طور مستقیم به صفحه تعبیه شده است).
  • کنترل ها در صفحه عادی DOM ارائه شده است.
  • کنترل ها پاسخگو و طبیعتا قابل دسترسی هستند.
  • این توسعه دهنده قادر هست علاوه بر چرخه به ارائه کردن، بارگذاری ، مرتب کردن، از بین بردن و تغییرات پیکربندی و موارد دیگر دسترسی پیدا کند.
  • این روش framework-agnostic یا چارچوب آگنوستیک است. شما می توانید از هر چارچوب جاوا اسکریپت که دوست دارید استفاده کنید: React، Handlebars، Knockout، Angular و غیره.
  • Toolchain براساس ابزارهای متداول متن باز توسعه دهنده کلاینت مانند npm، TypeScript، Yeoman، webpack و gulp است.
  • عملکرد آن قابل اعتماد است.
  • کاربران نهایی می توانند از راه حل های SPFx client-side که توسط مدیران موقت ( یا نمایندگان خود) در همه سایت ها، از جمله تیم خدمات، گروه یا سایت های شخصی ، تأیید شده، استفاده کنند.
  • بخش وب SPFx را می توان به هر دو صفحه کلاسیک و مدرن اضافه کرد.
آموزش spfx - sharepint feamework

 زمان اجرا مدل، در قسمت وب ویرایشگر اسکریپت بهبود می یابد. شامل یک API کلاینت قوی، یک HttpClient است که از طریق تایید هویت به شیرپوینت و Office 365، اطلاعات متنی، تعریف و تنظیمات آسان و موارد دیگر، رسیدگی می کند.

 اگر در ابتدا با C# کار می کنید و می خواهید در مورد توسعه دهنده client-side جاوا اسکریپت بیشتر بدانید. با این حال، بیشتر دانش شما درباره ی جاوا اسکریپت مربوط به شیرپوینت که به طور کامل قابل انتقال است، زیرا مدل های داده تغییری نداشته و شما از همان خدمات REST یا شیء جاوا اسکریپت (JSOM) بسته به نیاز خود استفاده می کنید. اگر شما یک توسعه دهنده # C هستید، تایپ اسکریپت یک انتقال دهنده ی خوب به جهان جاوا اسکریپت است. انتخاب IDE برای شما مناسب است. بسیاری از توسعه دهندگان مایل به استفاده از IDE Cross-Platform Visual Studio Code می باشند. بسیاری از توسعه دهندگان نیز محصولاتی مانند Sublime و ATOM را استفاده می کنند. شما می توانید از روشی که برای شما مناسب هست استفاده کنید.

چرا چارچوب شیرپوینت (SharePoint Framework)؟

شیرپوینت به عنوان یک محصول on-premises در سال 2001 راه اندازی شد. با گذشت زمان، یک انجمن بزرگ توسعه دهنده آن را از بسیاری جهات بسط و گسترش داده است. در بیشتر موارد، جامعه توسعه دهنده به دنبال الگوهای و شیوه هایی است که تیم توسعه دهنده شیرپوینت از آن استفاده می کند، از جمله بخش های وب، ویژگی XML  شیرپوینت و موارد دیگر. بسیاری از ویژگی ها در# C  نوشته شده است. به DLLs کامپایل شده و در فرم های on-premises  قرار گرفته اند. این نوع معماری تنها در محیط های با یک محیط محدود انجام میشود. اما نمی توان آن را با cloud هم مقیاس دانست زیرا این روش بصورت  side-by-side کاربرد دارد. در نتیجه، ما دو مدل جایگزین را معرفی کردیم: روش client-side JavaScript injection و روش SharePoint Add-in  که هر دو روش دارای مزایا و معایب است.

JavaScript injection

یکی از محبوب ترین بخش های وب در SharePoint Online، ویرایشگر اسکریپت (Script Editor)  است. شما می توانید جاوا اسکریپت را در قسمت وب Editor  script جا به جا کنید و زمانی که صفحه ارائه شود ، جاوا اسکریپت را اجرا کنید. این روش ساده و ابتدایی است اما موثر می باشد. آن را در یک صفحه مرورگر مشابه به عنوان صفحه اجرا می کند و در همان DOM است، بنابراین می تواند با سایر کنترل های صفحه ارتباط برقرار کند. روشی نسبتا قابل استفاده و ساده ای می باشد.

با این وجود در این روش چند معایب وجود دارد.

اول، در حالی که می توانید بسته راه حل خود را ارائه دهید به طوری که کاربران نهایی می توانند کنترل را بر روی صفحه کاهش دهند و شما نمی توانید به راحتی گزینه های پیکربندی را ارائه دهید. همچنین کاربر نهایی می تواند صفحه را ویرایش کند و اسکریپت را تغییر دهد که می تواند بخشی از وب را از بین ببرد.

دوم، یکی دیگر از مشکلات بزرگ این است که بخشی از ویرایشگر اسکریپت به عنوان «Safe For Scripting» مشخص نشده است.

سوم، بسیاری از سایت های سرویس خودپرداز (سایت های من، سایت های تیم، سایت های گروهی) یک ویژگی به نام “NoScript” را فعال کرده اند. از لحاظ فنی، حذف مجوز افزودن / سفارشی کردن صفحات (ACP) در شیرپوینت است. این به این معنی است که بخشی از وب ویرایشگر اسکریپت از اجرای این سایت ها مسدود خواهد شد.

SharePoint Add-in model

گزینه متداول برای راه حل هایی که در سایت های NoScript اجرا می شود، مدل add-in / app-part است. این پیاده سازی یک iFrame را ایجاد می کند که در آن تجربه واقعی ساکن و اجرا می شود. مزیت این روش آن است که به دلیل اینکه خارج از سیستم می باشد و دسترسی به / DOM  اتصال (connection) ندارد، دسترسی به اطلاعات با اطمینان و اعتماد برای کارکنان آسانتر می باشد. کاربران نهایی می توانند افزونه هایی (add-ins) را در سایت های NoScript نصب کنند.

بعضی از معایب این روش نیز وجود دارد. اول، آنها در یک iFrame اجرا می شوند. iFrames کند تر از بخش ویرایشگر اسکریپت هستند، زیرا نیاز به یک درخواست جدید به یک صفحه دیگر دارد. صفحه مورد نظر باید از طریق احراز هویت شناسایی و تماس های خود را برای دریافت اطلاعات از شیرپوینت، و بارگیری از انواع کتابخانه های جاوا اسکریپت و موارد دیگر انجام دهد.

دوم، بخشی از وب ویرایشگر اسکریپت معمولا می تواند، مثلا 100 میلی ثانیه برای بارگذاری و ارائه کند، در حالی که یه قسمت از برنامه ممکن است 2 ثانیه یا بیشتر طول بکشد.

سوم، علاوه بر این، مرز iFrame باعث ایجاد مشکلاتی برای ایجاد طرح های پاسخگو و به دست آوردن اطلاعات CSS و ارجاع آنها می شود.  iFramesدارای امنیت بالاتری هستند که می تواند برای شما مفید باشد (صفحه شما توسط سایر کنترل های صفحه غیر قابل دسترسی است) و برای کاربر نهایی (کنترل هیچ ارتباطی با Office 365 ندارد).

قسمتهای وب را به عنوان مجموعه کامل C# ایجاد کردیم که در سرورهای  Coludنصب شده است. با این حال، مدل های توسعه دهنده فعلی در اکثر موارد شامل جاوا اسکریپت در مرورگر که باعث می شود REST API بارگزاری شوند برای دست یافتن به  SharePoint و Office 365. اما مجموعه های C#  دیگر کاربردی ندارند و ما نیاز به یک مدل توسعه یافته جدیدتر داریم که SharePoint Framework  می تواند روش تکامل یافته تری در توسعه شیرپوینت باشد.

گام بعدی چیست؟

بخش های وب SharePoint Framework در حال حاضر در دسترس عموم قرار گرفته است. ما براساس بازخورد و تجارب شما در طول زمان به ارائه و به روز رسانی و اصلاحیه ها ادامه می دهیم. برای هر گونه ویژگی های اضافی Framework SharePoint که برای اولین بار در حالت پیش نمایش راه اندازی می شوند، شما ممکن است در اطراف نام API ها ، جریان ها و موارد دیگر تغییراتی را تجربه کنید. به روز رسانی های آتی در SharePoint Framework با محیط گذشته سازگار خواهد بود و می توانید مسیر کار خود را ادامه دهید.