آموزش فارسي انگولار

آموزش فارسي انگولار

انگولار یا asp.net core؟ (بخش دوم)
 

باسلام خدمت شما دوستان عزیز. در بخش قبل دوره ی آموزشی انگولار و asp.net core ما یک توضیح کلی راجع به این دو فریمورک به شما عزیزان دادیم. حال در این قسمت به ادامه بخش قبل می پردازیم. با ما همراه باشید.

یادگیری انگولار

آموزش Angular و Asp.net core (بخش دوم)

 

باسلام خدمت شما دوستان عزیز. در بخش قبل دوره ی آموزشی انگولار و asp.net core ما یک توضیح کلی راجع به این دو فریمورک به شما عزیزان دادیم. حال در این قسمت به ادامه بخش قبل می پردازیم. با ما همراه باشید.

 

دوران تکامل ASP .Net Core

بیان آنچه در دو سال اخیر در دنیای ASP.NET Core اتقاق افتاده است کار ساده ای نیست. به طور خلاصه، میتوانیم بگوییم مسلما با تغییرات مهمی در دنیای Net Framework. روبرو شده ایم.
ASP.Net Core 1.0 که در سال 2016 بوجود آمد، پیاده سازی دوباره تکنولوژی ASP.Net بود. این نسخه جدید فریمورکی بود که تمام تکنولوژی های وب قبلی مانند MVC ،Web Api ،Web Pageها را در یک ماژول به نام  MVC6 یکی میکرد.این فریمورک جدید که دارای قابلیت نصب بر روی پلت فرم های مختلف بود، به نام NET Core. نام گذاری شد. این فریمورک شامل کامپایلر متن بازاست که امروزه Roslyn نامیده میشود. موتور اجراکننده دستورات Net. به نام CoreCLR که وظیفه تبدیل کدها به زبان ماشین را بر عهده دارد و کامپایلر RyuIT میباشد.
نسخه آخر Net Core. به نام Core 1.1 که شامل ویژگی های جدید، افزایش عملکرد فریمورک، از بین رفتن  باگ ها و حل مشکلات  سازگاری نسبت به نسخه قبلی بود، در اواخر سال 2016  نهایی شد. 
.
هرکسی ممکن است از آنچه برای ASP.NET5 و WebApi2 اتفاق افتاد شگفت زده شود، چون این عناوین نام هایی بودند که تا  اواسط سال 2016 مورد استفاده قرار میگرفتند.بعد از آن توسعه دهندگان Net. تصمیم گرفتند نام ASP.NET5 را به ASP.NET Core  تغییر دهند. 
 

در مورد Web Api2 میتوان گفت که فریمورک اختصاصی برای ایجاد سرویس های HTTP بود که داده ها را به فرمت JSON یا XML  منتقل میکند. این تکنولوژی برای نخستین بار بعنوان جانشین پلت فرم MVC بوجود آمد، سپس با ادغام در تکنولوژی جدید، MVC6 را بوجود آوردند. اکنون WebApi2 بعنوان یک ماژول جداگانه در Asp.Net Core  قرار داده شده است.

قابلیت های جدید در Angualr

آنگولار، نسخه جدید AngularJS میباشد.این نسخه بازنویسی کامل AngularJS بوده و کاملا با AngularJS متفاوت میباشد.در آنگولار که بر پایه TypeScript میباشد، ویژگیهای ECMAScript6 نیزاضافه گردیده است. بیشتر توسعه دهندگان وب با تایپ اسکریپت آشنا میباشند. در صورت عدم آشنایی نگران نباشید، در ادامه شما را با آن آشنا خواهیم کرد.
هر توسعه دهنده وبی که با AngularJS آشنا باشد، مسلما با تعداد زیادی از تغییرات مانند تفاوت در نحوه کدنویسی، تفاوت در نحوه طراحی اپلیکیشن ها نسبت به نسخه جدیدآنگولار مواجه شده است. آنگولار ماژولار بر پایه طراحی کامپوننت بوده و قابلیت تزریق وابستگی را پشتیبانی میکند در حالیکه در نسخه قبلی آن یا AngularJS این قابلیت ها پشتیبانی نمی شد.
به هر حال مهم ترین قابلیتی که باعث میشود علیرغم وجود کتابخانه های معتبر در جاوااسکریپت مانند ReactJS ،EmberJS همچنان آنگولار را توصیه کنیم وجود قابلیت های بسیار در آنگولار میباشد. همچنین ترکیب شدن آن با زبان تایپ اسکریپت که به آن ثبات میدهد باعث گردیده است تا آنگولار نسبت به رقبای خود مناسب تر باشد. همه این موارد بین 9 تا 12 ماه گذشته مورد تائید قرار گرفته است، زمانیکه پروژه آنگولار در نیمه دوم 2016 بعنوان آنگولار 2 و در نیمه اول 2017 بعنوان آنگولار 4 معرفی گردید و از نظر ثبات، کارایی، ویژگی های جدید و بدون از دست دادن سازگاریهای قبلی امتیازات خوبی بدست آورد.همه این موارد باعث میگردد تا نسبت به آن مشتاق باشیم و امیدواریم این روند خوب ادامه داشته باشد. 

رویکرد Full-Stack

یادگیری چگونگی استفاده از Asp.Net Core و Angular به معنای کار کردن به عنوان برنامه نویس Front-End (سمت کلاینت) و Back-End (سمت سرور) میباشد. به عبارت دیگر یک برنامه نویس Full-Stack  قادر به طراحی و برنامه نویسی یک محصول از ابتدا تا انتها میباشد. در نهایت برای رسیدن به چنین دستاوردی میبایست در زمینه های زیر به دانش قابل قبولی دست یابید:


1)برنامه نویسی سمت سرور
2)برنامه نویسی سمت کلاینت
3)طراحی واسط کاربری و ایجاد تجربه خوب محصول برای کاربر
4)طراحی پایگاه داده، مدل سازی، پیکربندی و مدیریت
5)مدیریت و پیکربندی وب سرور مورد نظر
6)توسعه برنامه کاربردی تحت وب


در نگاه اول ممکن است چنین رویکردی که هر برنامه نویس میبایست تمام موارد فوق را انجام دهد معقولانه بنظر نرسد. هر برنامه نویسی میداند که برنامه نویسی سمت سرور و سمت کلاینت به تجربیات و تخصص های مختلفی نیاز دارد، بنابراین سوالی که بایستی به آن جواب داد این است که چرا یک برنامه نویس میبایست به تخصص های مورد نظر دست یابد؟
قبل از پاسخ به این سوال، میبایست درک کلی از عبارت "توانایی داشتن" بدست آوریم. ما مجبور نیستیم روی هر یک از موارد بالا متخصص شویم. وقتی نیاز داریم که بعنوان یک برنامه نویس Full-Stack کار کنیم، آنچه واقعا به آن نیاز داریم بالابردن سطح آگاهی هایمان(همان فیلدی که مشغول به یادگیری هستیم) است. این بدین معنی است که نیاز داریم نحوه کارکرد Back-End و چگونگی ارتباط آن با بخش Front-End را بدانیم. ما نیاز داریم نحوه ذخیره سازی داده ها، واکشی داده ها و چگونگی نمایش آن را در سمت Front-End بدانیم. ما نیاز داریم نحوه تعامل کامپوننت های مختلف برنامه و چگونگی ارتباط آنها با یکدیگر را بدانیم. نیاز داریم از مکانیزم های احراز هویت، استراتژیهای امنیتی و بهینه سازی، تکنیک های پخش کردن پروسس ها بر روی چندین سرور اطلاعات کافی داشته باشیم. موارد ذکر شده بدین معنی نیست که ما میبایست در هر یک از زمینه ها دارای تخصص فراوانی باشیم. با این وجود، اگر میخواهیم بعنوان برنامه نویس Full-Stack کار کنیم ، نیاز داریم تا مفهوم، قانون و حوزه هر یک از موارد ذکر شده در بالا را بدانیم تا در صورت نیاز بتوانیم با آنها کار کنیم.


برنامه  SPA 

برای نشان دادن چگونگی کارکرد ASP.NET Core و Angular میتوان از ساخت برنامه تک صفحه ای یا SPA کمک گرفت. دلیل اینکار کاملا بدیهی میباشد، استفاده از SPA بهترین ویژگی ها برای نشان دادن چگونگی این کارکرد در اختیار ما قرار میدهد. ما میتوانیم برای رسیدن به جواب سوالاتمان با مدرنترین الگوها و  رابط های کاربر مانند HTML5 ، وب هوک ها، در خواست های انتقال داده، کامپوننت های پویای وب، اتصال  داده های سمت رابط کاربرو معماری AJAX کار کنیم.


ویژگیهای مشترک در برنامه SPA 

بطور خلاصه میتوان گفت، یک برنامه SPA برنامه کاربردی تحت وبی میباشد که سعی دارد تجربه کار کردن با برنامه کاربردی که بر روی یک کامپیوتر نصب شده است را برای کاربر نهایی فراهم نماید. در یک برنامه SPA، محتوا و منابع برنامه ( شامل HTML ، JavaScript ،  CSS ) در یک صفحه بارگذاری شده یا هنگامی که به آن نیاز است بصورت دینامیک واکشی میشود. این بدین معناست که در اینگونه برنامه ها صفحه رفرش یا بارگذاری مجدد نمیشود. این گونه برنامه ها به تغییرات و عملیات کاربر واکنش نشان میدهد و تمام عملیات مربوط به سمت سرور در پشت صحنه انجام میگیرد.


ویژگیهای کلیدی که امروزه توسط برنامه های SPA ارائه میگردد شامل موارد زیر است:


1) عدم دریافت تمام بخش HTML از سمت سرور
برنامه SPA قادر است بهنگام نیاز فقط بخشی از رابط کاربری را بجای درخواست کل صفحه HTML از سمت سرور دریافت کند. این قابلیت توسط SoC یا Separation Of Concerns حاصل میشود. این بدین معنی است که داده ها توسط لایه ای به نام Data layer از لایه Model جدا شده اند. لایه ای به نام لایه View وظیفه نشان دادن داده ها را بر عهده دارد.


2) مسیریابی موثر
یک برنامه SPA قادر است وضعیت جاری کاربر، مسیرهای پیمایش کاربر در صفحات را توسط مسیریابهای سازماندهی شده جاوااسکریپت پیگیری نماید. اینکار توسط دو تکنیک Hashbang و HTML5 History API پیاده سازی میشود. ما در مورد این دو تکنیک در بخش های بعدی که مربوط به پیاده سازی Back-End میباشد بحث خواهیم کرد.


3) کارائی و انعطاف پذیری
یک برنامه کاربردی SPA تمام بخش رابط کاربری خود را (فایل های مربوط به آنگولار ، بوت استرپ، جی کوئری و ... ) در سمت کلاینت انتقال میدهد. اینکار برای بالابردن کارائی سطح شبکه موثر میباشد.
به هر حال مهم ترین مزیتی که در این حالت برای برنامه نویس بوجود می آید این است که میتواند بخش Front-End را بدون کوچکترین تاثیر بر روی سرور برنامه نویسی کند.
ویژگیهای ذکر شده در بالا مهمترین دستاورد برنامه های SPA  میباشد بطوریکه بسیاری از برنامه های وب از حالت MPA Multiple Page Application  به حالت  SPA تغییر کرده اند. تکنولوژی دیگری که از سال 2015 بسیار مشهور شده است به نام NWA یا Native Web Application میباشد که برای پیاده سازی تعداد زیادی ماژولهای SPA  در ساختار چند صفحه ای به جای ساخت یک SPA تک صفحه ای بکار میرود.
قابل ذکر است که تعداد زیادی از صفحات SPA و NWA در سطح اینترپرایز وجود دارند که امروزه به کاربران بیشماری سرویس میدهند.سرویس هایی مانند WhatsApp وب، Teleport وب، Flicker، بعلاوه تعداد بسیاری از وب سرویس های شرکت گوگل شامل Gmail، Contacts، SpreadSheet، Map و غیره، همگی بصورت SPA و NWA میباشند.

امیدواریم این بخش از آموزش Angular و Asp.net core برای شما عزیزان مفید واقع گردیده باشد.

"تهیه شده در مجموعه ABLY"

   

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس