در این قسمت از وبسایت پرووید قسمت سوم از سری آموزش فریم ورک Blazor برای توسعه نرم افزارهای تحت وب را به صورت رایگان به شما تقدیم می کنیم. در ابتدا توصیه میکنیم که در صورت تمایل حتماً از بسته ی آموزش ویدئویی شروع به کار با Blazor در ASP.NET Core و بسته ی آموزش ویدئویی بلیزر (Blazor) پیشرفته و ساخت برنامه های تجاری و بسته ی آموزش ویدئویی Authentication و Authorization در بلیزر (Blazor) دیدن بفرمایید. در این قسمت قصد داریم در رابطه با توسعه وب در سمت Client و یا اصطلاحاً کلا Client-Side Web Development و اهمیت آن صحبت کنیم.
توسعه تحت وب در سمت کلاینت
احتمالاً میدانید که تمامی فریم ورک های توسعه نرمافزارهای به مبتنی بر .Net از قبل ASP.NET Web Forms یک موضوع مشترک داشتند و آن هم این که اصطلاحاً همگی آنها Server-Rendered بودند، حال در رابطه با ماهیت Server-Rendered بودن صحبت خواهیم کرد. در اپلیکیشنهای وبه صورت Server-Rendered عمل میکنند زمانی که یک مرورگر یک Request را به سمت سرور ارسال میکند کدهایی در سمت سرور اجرا خواهد شد. برای مثال کدهایی که با فریم ورک .Net و تکنولوژی ASP.NET Web Forms نوشته شدند، این موضوع باعث ایجاد شدن یک Response و یا پاسخ می گردد؛ حال این Response به مرورگر کاربر ارسال می شود در چنین مدل فرآیندی مرورگر به عنوان یک موتور Render کردن خروجی و یا اصطلاحاً Rendering Engine ایفای نقش میکند. علاوه بر این ذکر این موضوع نیز ضروری است که کار اصلی ایجاد کردن UI و یا واسط کاربری برنامه و سپس از اجرا کردن Business Logic و همچنین مدیریت کردن state، همگی در سمت سرور اتفاق میافتند. حال قرار است که کمی در رابطه با توسعه نرمافزارهای وب سمت Client صحبت کنیم.
احتمالاً میدانید که امروز مرورگرهای وب رفتهرفته پیشرفته تر شدند و بسیاری از قابلیت های جدید را در خود پیاده سازی نمودند. قابلیت های جدید از قبیل استانداردهای باز وب امکان دسترسی پیدا کردن یک وب اپلیکیشن را به بسیاری از قابلیت های ماشین Client می دهند، بنابراین چرا نباید از موضوعاتی از قبیل قدرت محاسباتی، فضای ذخیره سازی، حافظه و دیگر منابع مربوط به دستگاه Client استفاده کرد. به عبارت دیگر قابلیتهای مربوط به UI Interaction و یا تعاملات کاربر با واسط کاربری برنامه میتواند در سمت Client اتفاق بیفتند و یا بخشی از آن در سمت سرور و بخشی از آن در سمت Client مدیریت و Handle بگردد. در واقع به طور کلی میتوان Logic و Data ی مربوطه به آن را در سرور نگهداری کرد و اصطلاحاً Server-Side عمل نمود و علاوه بر این Web API ها و فراخوانی های مربوطه با استفاده از تکنولوژیهای از قبیل Web Sockets را مورد استفاده قرار داد. این مزیتها میتوانند به برنامه نویسان وب انعطافپذیری بیشتری بدهند. احتمالاً می دانید که در این راستا زبان جاوا اسکریپت یکی از محبوب ترین زبان ها به حساب میآیند. ضمناً در رابطه با این موضوع می توانید از آموزش متنی جاوا اسکریپت و برنامه نویسی وب و بسته ی آموزش ویدئویی جاوا اسکریپت دیدن کنید.
علاوه بر جاوا اسکریپت امروزه فریم ورک های مختلفی برای مدیریت کردن UI ی سمت Client مطرح شدند از آنها شامل Angular و React و Vue.js می باشند که برای تمامی این ها آموزشهای بر روی وبسایت پرووید از قبیل آموزش ویدئویی توسعه وب با انگولار جی اس (AngularJS) و بسته ی آموزش ویدئویی شروع به کار با React.js و بسته ی آموزش ویدئویی شروع به کار با Vue.js روی او منتشر شدند. این ابزارها به شما کمک می کند تا بتوانید توسعه سمت Client را به طور بهتر و دقیق تر انجام بدهیم.
برنامه نویسانی که با تکنولوژی ASP.NET Web Forms عمل میکنند میتوانند از نوشتن کدهای که در سمت Client اجرا می شوند نیز استفاده کنند. برخی از این قابلیت ها در ASP.NET Ajax که به عنوان یکی از فریم ورک های جاوا اسکریپت در ASP.NET Web Forms قرار داده شده است ، قابل پیاده سازی هستند. اما حقیقت موضوع این است که مرتبط کردن دو فریم ورک کاملا مختلف یعنی .Net و جاوااسکریپت هزینه زیادی را خواهد داشت. برای مثال برنامه نویسان باید به طور موازی در هر دوی این پلتفرم ها و زبان های مربوطه و البته ابزارها، مهارت ها و تجارب کافی داشته باشند کدهای نوشته شده نمیتواند به طور مشترک بین Client و Server به اشتراک گذاشته شوند و این موضوع خود میتواند باعث Code Duplication و یا کدهای تکراری و همچنین سربار مهندسی بگردند. در رابطه با Code Duplication و موضوعات مربوط به آن توصیه میکنیم که از بسته ی آموزش ویدئویی ریفکتورینگ در سی شارپ استفاده کنید.
بنابراین برای ما کمی دشوار است که فریم ورک .Net را با فضای مربوط به جاوا اسکریپت که یک سابقه طولانی را در پشت سر خود دارد مرتبط کنیم. فریم ورک های توسعه نرمافزارهای وب front-end و ابزارهای مورد استفاده در آنها امروزه به طور مرتب در حال تکامل و تغییر هستند، برای مثال هایی از قبیل Grunt و Gulp و Angular و React و Vue.js هم یکی از ابزارهایی هستند که امروز برای توسعه وب سمت Client از آنها استفاده می شوند. ابزارهای دیگری از قبیل jQuery و Knockout نیز از این قضیه مستثنی نیستند. در رابطه با jQuery و Knockout نیز توصیه می کنیم از آموزش ویدئویی توسعه وب با جی کوئری (jQuery) برای آموزش ویدئویی شروع به کار و ساخت پروژه عملی با Knockoutjs استفاده کنید.
ممکن است که از خود بپرسید آیا به جای استفاده کردن از جاوا اسکریپت در فضای یک مرورگر امکان دیگری نیز وجود دارد؟ خوشبختانه امروز جواب این سوال بله است چرا که با استفاده از Blazor و دانش شما در سی شارپ و فریم ورک .Net می توانید کدهای را بنویسید که در مرورگر کاربر اجرا بشوند در رابطه با این موضوع و موضوعات مرتبط با آن در قسمت بعدی از این آموزش به طور مفصل صحبت خواهیم کرد.