بهترین روش برنامه‌نویسی در شیرپوینت ( Server Side VS Client Side )

برنامه­‌نویسی سمت سرور(Server Side) همانطور که از اسم آن مشخص است با زبان­هایی مانند C# و VB.NETسمت سرور نوشته می‌شود و روی سرور اجرا می‌شود. در طرف دیگر برنامه‌­نویسی سمت کاربر (Client Side) با زبان‌­هایی مانند جاوااسکریپت و فریم ورک‌­های آن نوشته می‌شود و روی مرورگر (Browser) کاربر اجرا می‌شود.

همیشه در پروژه­‌های شیرپوینتی و سازمان‌های مختلف که از شیرپوینت استفاده می‌کنند این سوال مطرح است که “بهترین روش برای توسعه نیازها استفاده از برنامه­‌نویسی سمت سرور است یا برنامه نویسی سمت کاربر؟” برای پاسخ به این سوال ابتدا باید با امکانات این دو روش برنامه‌­نویسی در شیرپوینت بیشتر آشنا شویم و پس از بیان تفاوت­‌ها به این سوال جواب بدهیم.

بهترین روش برنامه‌نویسی در شیرپوینت

بررسی اجمالی

سفارشی‌‌سازی شیرپوینت در سمت سرور با استفاده از ASP.NET انجام می‌شود که در آن کدها از .NET Framework استفاده خواهند کرد و با زبان­‌هایی مثل C# و VB.NET نوشته می‌شود.

بر خلاف کدنویسی سمت سرور، کدها در برنامه‌نویسی سمت کاربر در صفحه گذاشته می‌شود و توسط مرورگر کاربر اجرا می‌شود. برنامه­‌ها با زبان‌هایی مانند JavaScript  نوشته شده و می‌توانند با تمامی موارد داخل صفحه تعامل داشته باشد.

مزیت­‌ها

استفاده اززبان­‌هایی مانند C# که برروی امکانات بسیار زیاد .NET Framework قراردارد مزیت­‌های بسیار زیادی به برنامه‌نویسان Server Side شیرپوینت داده مانند ارث­‌بری، اینترفیس­‌ها و چندریختی که از امکانات زبان­‌های برنامه‌نویسی شی­‌گرا می‌باشد. با توجه به این موارد از مزیت­‌های این روش برنامه‌نویسی شیرپوینت می‌توان موارد زیر را نام برد.

  • توسعه یک نیاز برای تمامی سایت­‌های شیرپوینت
  • قابلیت تبدیل برنامه به یک فیچر برای یک سایت
  • قابلیت نوشتن Event Receiver برای اتفاقات رخ داده در سایت‌­ها مانند ذخیره یک آیتم یا بارگذاری یک سند
  • قابلیت توسعه برنامه ها به صورت App یا Sharepoint Add-In
  • ایجاد جاب­‌هایی برای اجرای زمانبدی شده کدها

در طرف دیگر برنامه‌نویسی سمت کلاینت شیرپوینت امکانات بسیار زیادی به برنامه‌نویسان شیرپوینت می‌دهد. امکاناتی که با استفاده از آن می‌توان وب‌پارت­‌ها و یا صفحاتی با طراحی مطلوب ایجاد نمود و یا با استفاده از این امکانات HTML یا CSS های صفحات شیرپوینت را تغییر داد. از مزیت‌های برنامه‌­نویسی سمت کاربر شیرپوینت می‌توان موارد زیر را نام برد.

  • زمان پاسخ برنامه‌های سمت کاربر بسیار بالاتر است به دلایلی مانند اینکه می‌توان فقط قسمتی از صفحه را بروزرسانی نمود
  • امکان توسعه وب پارت­‌های سرچ سرویس شیرپوینت که قادرند اطلاعات را از تمامی سایت­‌های شیرپوینت به کاربران با فرمت مناسب نشان دهند.
  • فشار کمتر به سرورها به دلیل اینکه بسیاری از تغییرات و بروزرسانی‌ها سمت مرورگر انجام می‌شود و سرورها برای این بروزرسانی‌ها درگیر نمی‌شوند. این مورد به خودی خود باعث بهتر شدن کارآیی سرورها می‌شود.
  • قابلیت استفاده از فریم ورک­‌های روز دنیا مثل React ،Angular ،Vue.js و… در برناه‌ها و وب‌پارت‌های تولید شده
  • توسعه امکانات جدید مایکروسافت در شیرپوینت با استفاده از برنامه‌نویسی سمت کاربر
  • عدم تاثیر کدهای نوشته شده به صفحات و سایت­‌های دیگر
  • عدم نیاز اتصال به سرورهای شیرپوینت برای توسعه
  • بارگذاری کدهای خروجی در لایبری‌های شیرپوینت و استفاده از آنها در صفحات و وب پارت­‌ها
  • توسعه بیشتر ابزار کدنویسی سمت کاربر در شیرپوینت با توجه به Road Map مایکروسافت
  • اجرای کدها با استفاده از دسترسی کاربر لاگین شده و اعمال محدودیت­‌های دسترسی کاربران
  • استفاده از ابزارهای متنوع برای ارتباط با سرور شیرپوینت مانند وب سرویس­های REST و CSOM وJSOM

محیط توسعه و Debugging کدها

برای برنامه نویسی Server Side شیرپوینت نیاز به سروری که شیرپوینت روی آن نصب و کانفیگ شده باشد از الزامات است ( به دلیل استفاده و رفرنس دادن DLL ها و Namespace های  شیرپوینت در کد) بنابراین برنامه‌نویسان نیاز به یک فارم توسعه شبیه به فارم عملیاتی دارند تا بتوانند کدهای خود را روی آن نوشته و تست نمایند و سپس به سرور عملیاتی منتقل و Deploy کنند. همچنین برای شروع توسعه نیاز به نصب برنامه visual studio نیز می‌باشد.

در هر بار Debug یا Deploy برنامه‌های سمت سرور کاربران سامانه­‌های شیرپوینت با قطعی هر چند اندک مواجه خواهند شد پس بهتر است پس از اطمینان از صحت برنامه آنرا به فارم عملیاتی منتقل نمود.

در طرف دیگر برنامه‌نویسان سمت کاربر می‌توانند با استفاده از یک ویرایشگر متن مانندNotepad و Notepad++ کدهای خودرا بنویسند یا با استفاده از ویرایشگرهای متن مخصوص برنامه‌نویسان Client Side مانند VS Code ،Sublime  ،Atom و.. کدهای خود را بنویسند و مستندسازی نمایند. همچنین برای محیط توسعه نیازی به یک سرور جداگانه نیست و برنامه­‌نویس میتواند در سایت مخصوص به سامانه تمامی کدهای خود را بارگذاری و استفاده نماید.

برای Debug کردن کدهای Client Side مرورگرها ابزار بسیار زیادی دارند تا برنامه‌نویس بتواند با استفاده از آنها کدهای خود را دیباگ نماید.

با توجه به تمامی موارد ذکر شده بالا انتخاب بین برنامه نویسی Server Side و Client Side کاملا وابسته به نیاز و نحوه‌­ی استفاده دارد.

وابسته به نیاز در حال توسعه در شیرپوینت مسلما برای سرعت و کارآیی هر چه بیشتر سایت‌های شیرپوینت، زمان پاسخ مطلوب صفحات طراحی شده و بقیه موارد ذکر شده بهتر این است که اولین گزینه استفاده از کدنویسی Client Side باشد. همچنین با توجه به Road Map مایکروسافت که به صورت کلی مسیر خود را در طراحی امکانات جدید شیرپوینت به سمت برنامه نویسی Client Side برده است به نظر استفاده از این نوع برنامه نویسی در شیرپوینت سازگارتر و قابل اطمینان تر خواهد بود.