فریمورک شیرپوینت (SPFx) یک صفحه و مدلی از وب پارت است که امکان کامل برنامهنویسی سمت کلاینت برای شیرپوینت، یکپارچهسازی آسان با اطلاعات موجود در شیرپوینت و حمایت از ابزارهای متن-باز را فراهم میکند. با فریمورک شیرپوینت میتوانید از تکنولوژیهای مدرن و ابزارهای مورد علاقهتان در هر محیط برنامهنویسی که ترجیح میدهید استفاده کنید تا تجربیات پرحاصل و اپهای واکنشگرا و آماده برای نمایش در موبایل را تولید کنید. فریمورک شیرپوینت هم برای شیرپوینت به صورت on-premises و هم به صورت آنلاین مورد استفاده قرار میگیرد.
ویژگیهای اصلی فریمورک شیرپوینت شامل موارد زیر است:
مدل زمان اجرا برای وب پارت Script Editor بهبود پیدا کرده است. این بهبود شامل یک API کلاینت قابل اطمینان، یک شی HttpClient که احراز هویت بر روی شیرپوینت و Office 365 را به عهده دارد، اطلاعات مربوط به Context های سایتهای شیرپویتی، آسانی در تعریف خصیصه و پیکربندی آن ها و غیره است.
اگر پیش از این با سی شارپ آشنا بودهاید و میخواهید بیشتر با برنامهنویسی سمت کلاینت جاوا اسکریپت آشنا شوید، تمامی دانسته های جاوااسکریپ شما در ارتباط با شیرپوینت، قابل انتقال به این شیرپوینت مدرن ۲۰۱۹ خواهد بود. به عنوان مثال دیتا مدلها تغییر نکردهاند، و شما میتوانید برحسب نیاز از همان سرویسهای REST یا JavaScript Object Model(JSOM) استفاده کنید. اگر شما برنامهنویس سی شارپ هستید TypeScript انتقال به جهان جاوا اسکریپت برایتان بسیار زیبا و لذتبخش خواهد بود. انتخاب Integrated Development Environment(IDE) به شما بستگی دارد. تعدادی از برنامهنویسان به استفاده از IDE کراس- پلتفرم Visual Studio Code علاقهمند هستند. در حالیکه تعداد دیگری از برنامهنویسان، استفاده از محصولاتی مانند Sublime و ATOM را ترجیح میدهند.
شیرپوینت در سال ۲۰۰۱ به عنوان یک محصول on-premises ایجاد شد. در طول زمان جامعه بزرگی از برنامهنویسان از جهات مختلفی آن را گسترش و شکل دادهاند. بخش عمدهای از آن، توسط جامعه برنامهنویسی از روشی که Patterns and Practices به کار بردهاند پیروی کردند، که شامل وب پارتها، امکانات XML در شیرپوینت، و غیره است. تعدادی از امکانات با زبان سیشارپ نوشته، به DLL کامپایل شده، و به فارمهای on-premises انتقال یافتهاند.
این معماری برای یک سازمان خوب کار میکرد، اما نه در اشل فضای ابری، که tenant های مختلف با هم در کنار همدیگر اجرا میشوند. در نتیجه، ما دو روش انتخابی را معرفی کردیم: تزریق JavaScript سمت کلاینت، و Add-in های شیرپوینت. هر کدام از این راهکارها نقاط قوت و ضعف خاص خود را دارند.
یکی از رایج ترین وب پارتها در SharePoint online اسکریپتادیتور است. شما میتوانید کدهای جاوا اسکریپت را در درون این وب پارت کپی کنید و اجرای آن را در هنگام رندر شدن صفحه داشته باشید. اگر چه این روش ساده و ابتدایی است، اما موثر نیز هست. در همان Context از صفحه و در همان Document Object Model اجرا میشود، بنابراین میتواند با کنترلهای دیگر صفحه تعامل داشته باشد. کارایی بالایی دارد و بکارگیری آن آسان است.
به هر حال، تعداد کمی نقاط ضعف نیز برای این گرایش وجود دارد. در ابتدا، هنگامی که راهکار خود را پکیجی میکنید که کاربران میتوانند کنترلها را بر روی صفحه قرار دهند، به سختی میتوانید گزینههای تنظیمات را در آن ایجاد نمایید. همچنین، کاربر میتواند صفحه را ویرایش کند و اسکریپت را تغییر دهد، که این امر ممکن است باعث تخریب وب پارت شود. مشکل بزرگ دیگر این است که اسکریپت ادیتور به عنوان “Safe for Scripting” شناخته شده نیست. اغلب سایت کالکشنهای سلف- سرویسی (my-sites, team sites, group sites) دارای ویژگی مشهور به “NoScript” فعال هستند. از نظر تکنیکی، این ویژگی امکان مجوز اضافه یا ویرایش در صفحات را حذف میکند. این به این معنی است که وب پارت اسکریپت ادیتور با اجرای کد آن بلاک خواهد شد.
راهحل برای سایتهایی که در NoScript اجرا میشوند مدل add-in/app-part است. این پیادهسازی یک iFrame ایجاد میکند. مزیت آن این است که چون خارج از سیستم قرار دارد و دسترسی به DOM جاری ندارد، برای کاربران توسعهدهنده قابل اعتمادتر است تا آن را دیپلوی کنند. کاربران نهایی میتوانند این افزونهها را بر روی سایتهای NoScript نصب نمایند.
چندین نقطه ضعف برای این راهکار وجود دارد. در ابتدا این روش یک iFrame اجرا میکند. iFrame کندتر از وب پارت اسکریپت ادیتور است، چرا که نیاز دارد به صفحه دیگری درخواست ارسال کند. صفحه از طریق احراز هویت و تعیین مجوزهای دسترسی، فراخوانیهای خود را به دیتاهای شیرپوینت ایجاد میکند، علاوه بر این کتابخانههای مختلف جاوا اسکریپتی را بارگذاری میکند، و غیره. یک اسکریپت ادیتور ممکن است برای نمونه صد میلی ثانیه برای بارگذاری و رندر زمان صرف کند، در حالی که یک اپ پارت ممکن است به دو ثانیه زمان احتیاج داشته باشد. افزون بر این، به دلیل محدودیتهای iFrame ایجاد طراحی واکنشگرا و توارث CSS تمها دشوار است. iFrame ها امنیت بالاتری دارند، که میتواند برای شما (صفحه شما برای دیگر کنترلهای روی آن غیر قابل دسترسی است) و برای کاربر نهایی(کنترل به اتصال به office 365 دسترسی ندارد) مفید باشد.
از نظر تاریخی، ما وب پارتها را به عنوان اسمبلیهای قابل اعتماد ساختیم، که بر روی سرورهای فضای ابری نصب شوند. به هر حال بخش عمدهای از مدلهای توسعه نرمافزاری مدرن، با مشارکت اجرای جاوا اسکریپتها در یک مرورگر فراخوانیهای REST API به بک-اند شیرپوینت و office 365 را میسازند. اسمبلیهای سی شارپ در این جهان کارایی نخواهند داشت. ما به یک مدل توسعه دیگر نیاز داریم. شیرپوینت فریمورک تحول بعدی در برنامهنویسی شیرپوینت است .
این مقاله ترجمه ای است از Overview of the SharePoint Framework
قسمت های دیگر این مقاله:
شیرپوینت فریمورک (قسمت دوم) پیکربندی محیط توسعه
شیرپوینت فریمورک (قسمت سوم) ساخت اولین وب پارت
شیرپوینت فریمورک (قسمت چهارم) ساختار پروژه وب پارت
گروه ساقه در زمینه شیرپوینت خدمات و محصولات مختلفی ارائه میکند. برای کسب اطلاعات بیشتر سایر مطالب بلاگ را مطالعه کنید. علاوه بر این میتوانید همین حالا با کارشناسان متخصص ما تماس بگیرید.