کدهک
1.92K subscribers
1.3K photos
7 videos
1 file
681 links
آموزشگاه تخصصی دات نت

https://codehaks.com

لینکدین :
https://www.linkedin.com/in/codehaks

یوتیوب:
https://www.youtube.com/@codehaksfa

ارتباط با مدیر :
Admin: @codehak
Email: ghods.hakim@hotmail.com
call: 09380146555
Download Telegram
کتاب مختصر و مفید درباره ASP Core

این کتاب به زبان انگلیسی و در 124 صفحه تهیه شده و به صورت مختصر مفید شما را با مبانی برنامه نویسی در محیط ASP Core آشنا می کند. این کتاب به صورت رایگان است و شامل قوانین کپی رایت نمی شود. می توانید آن را از وبلاگ شخصی نویسنده دانلود کنید.

https://www.recaffeinate.co/book/
در ASP Core اطلاعات Session را می توان در Cookie ذخیره کرد هم در حافظه ی سرور نگه داشت.
در دنیای وب HTTP یک محیط State-less است و محلی برای ذخیره سازی موقعیت جاری ندارد. اطلاعات HTTP بین دو درخواست حفظ نمی شود. از این رو برای انتقال اطلاعات به Request های بعدی نیاز به ابزار کمکی داریم .

در ASP Core مانند نسخه های قبل امکان استفاده از Session وجود دارد. به طور پیش فرض اطلاعات Session در کوکی ذخیره میشود. مدت زمان پیش فرض برای نگه داری اطلاعات 20 دقیقه است که می توانید تغییر دهید. همچنین از آنجا اطلاعات در کوکی مرورگر نگه داری میشود اگر کاربر مرورگر خود را هنگام کار عوض کند اطلاعات Session از بین میرود.

روش دیگر ذخیره ی Session استفاده از حافظه ی سرور است. در این روش اطلاعات به صورت محلی در سرور ذخیره میشود. این روش بار بیشتری به سرور وارد می کند و آپدیت کردن و بروز رسانی سرور را مشکلتر میکند.

نباید اطلاعات محرمانه را در Session ذخیره کرد. همچنین اطلاعات آن مختص به یک کاربر نیست و ممکن است کاربر دیگر با استفاده از همان مرورگر بتواند از Session قبلی استفاده کند.

بر خلاف گذشته اطلاعات Session قفل نمی شود و هر درخواست جدید می تواند آن را تغییر دهد. در واقع اگر چند درخواست بخواهند اطلاعات Session را تغییر دهند آخرین درخواست برنده میشود.

استفاده از Session به طور کلی توصیه نمی شود و بهتر است تا می توانید از آن صرف نظر کنید. اما در ASP Core ابزار خوبی برای مدیریت Session وجود دارد.
سال گذشته شرکت Raygun اعلام کرد با مهاجرت از Nodejs به ASP Core بازدهی سایتهایش بدون هیچ تغییر سخت افزاری به میزارن 2000 درصد بهبود پیدا کرده است. این یعنی 20 برابر شدن ظرفیت سرورها بدون هزینه اضافی!
فریم ورک ASP Core چقدر سریع است ؟
فریم ورک ASP Core چقدر سریع است ؟

در مقایسه با نسخه ی قدیمی پیشرفت ASP Core بسیار چشمگیر است و فرسنگها از نزدیکترین رقیبش یعنی Nodejs فاصله دارد. البته مبنای بررسی ما فریم ورکهای وبی است که قابلیت پیاده سازی یک سایت کامل را دارند و فقط برای شبکه های مخابراتی یا میکروسرویسهای اختصاصی طراحی نشده اند.

در چند سال اخیر Nodejs سریعترین فریم ورک تحت وب به شمار میرفت و آمار آن اصلا با ASP MVC 5 قابل مقایسه نبود. سرعت همیشه یکی از مهمترین عوامل انتخاب تکنولوژی است و در مورد Raygun نشان میدهد فریم ورک چقدر می تواند در این زمینه اهمیت داشته باشد.

برای مقایسه سرعت ابتدا باید یک مبنای مشترک داشته باشیم. در این زمینه سایت Techempower با ارائه ی یک Benchmark معتبر توانسته اعتماد برنامه نویسان و شرکتهای نرم افزاری را جلب کند.

آمارهای Techempower همه ی شرایط اجرای سایت ها را پوشش نمیدهد و هنوز راه درازی دارد تا به عنوان مرجع کامل مورد استفاده قرار بگیرد. اما دید مناسبی از عملکرد انواع فریم ورکها و سرورها در شرایط مختلف ارائه می دهد.

اولین مبنای سرعت تست Plaintext است. در این تست سرور فقط عبارت Hello World را به کلاینت برمی گرداند. این ساده ترین شکل پاسخ است و طبیعی است که اگر فریم ورکی در این زمینه کند عمل کند در سایر زمینه ها هم کند است. وقتی در سال 2016 اولین آمار ASP Core در این تست نمایش داده شده همه را هیجان زده کرد. تعداد درخواست های پاسخ داده شده از 50 هزار در ثانیه (در ASP MVC قدیم) به 1.15 میلیون (در ASP Core ) رسید. یعنی عملکرد ASP Core در مقایسه با ASP 4.6 حدود 23 برابر بهتر شده بود.

آخرین آمار رسمی Techempower در روز ولنتاین منتشر شد و برای ASP Core 2 رکورد 2.216 میلیون را ثبت کرده است.
سورس یک پروژه میان افزار

پیاده سازی یک میان افزار همراه با Extention و بخش Options در ASP Core که یک فایل انتخابی را به کاربر بر میگرداند.

https://github.com/codehaks/Codehaks.Middlewares.SendFile
پروژه دمو با Vue.js

در این پروژه لیست کامل کشورها رو با استفاده از ajax بارگذاری می کنیم و سپس با کمک Vue.js آنها را در یک جدول نمایش می دهیم.
قابلیت جستجوی نام کشورها و فیلتر کردن آنها بر اساس قاره هم اضافه شده است. همچنین شما می توانید همه ی ستونها را از بالا به پایین یا از پایین به بالا مرتب کنید.
برای جستجو و فیلتر سازی از lodash.js استفاده شده است .

https://github.com/codehaks/WorldVue
در ویژوال استودی پروژه ی پیش فرض بر پایه ی Razor Page ایجاد میشود.
نگاهی دوباره به Razor Pages

تیم ASP Core تلاش زیادی می کند استفاده از Razor Pages را بجای MVC جا بندازد. الگوی MVC سالها از محبوبترین روشهای پیاده سازی سایت بوده است اما اشکالاتی هم دارد.

در الگوی MVC همیشه نیاز به کنترلر دارید. حتی وقتی می خواهید یک صفحه ی ساده "ارتباط با ما" نمایش دهید باید کنترلر و اکشن داشته باشید. همچنین مدل و ویو و کنترلر در فولدرهای مجزا نگه داری میشوند و مدیریت کردن پروژه در درازمدت سخت میشود. اگر بخواهید یک کنترلر را به همراه مدل و ویوهایش به یک پروژه ی دیگر منتقل کنید با دردسرهای زیادی روبرو هستید.

در Razor Pages دیگر کنترلر نداریم و اکشن ها می توانند درون فایل ویو یا در یک فایل همنام ویو (مانند کلاسهای Win Form) قرار گیرند. در الگوی MVC در واقع Controller اهمیت ندارد بلکه اکشن های درون کنترلر هستند که درخواستها را مدیریت می کنند. این دقیقا بخشی است که Razor Pages روی آن تاکید دارد.

وقتی از Razor Pages استفاده می کنید تمام قابلیتهای MVC را دارید. بخشی از MVC است و درون یک سرویس بارگذاری میشود. وقتی یک پروژه ی MVC در ASP Core ایجاد می کنید همزمان Razor Page هم به پروژه اضافه میشود. می توانید بخشی از سایت را MVC و بخش دیگر را با Razor Page طراحی کنید.

در Razor Page طراحی سایت بجای کنترلر روی صفحه تمرکز دارد. ابتدا صفحه ی HTML را ایجاد می کنید و سپس اکشن های آن را (اگر لازم داشت) می سازید. برای سایتهایی که صفحات زیادی دارند گزینه ی مناسبی است اما برای وب سرویس ها یا پروژه هایی که از AJAX زیاد استفاده می کنند کارایی ندارد.

مایکروسافت تاکید می کند که Razor Page فقط برای طراحی سایت های کوچک نیست و می توانید برای پیاده سازی هر سایتی از آن استفاده کنید. اما برنامه نویسان پر سابقه ی MVC هنوز با شک و تردید به این تکنولوژی نگاه می کنند.
مقایسه تعداد ستاره ها در Github نشان میدهد فریم ورک Vue.js با سرعت بیشتری در حال رشد است و به زودی از React پیشی میگیرد.
ایوان یو موسس فریم ورک Vue.js مدتی در گوگل روی پروژه ی انگولار کار میکرد.
می گوید "تصمیم گرفتم بهترین قسمتهای انگولار را بردارم و یک فریم ورک سبک پیاده کنم که آن همه بار اضافی نداشته باشد".
فریم ورک dotnet Core علاوه بر ویندوز از macOS و Linux پشتیبانی می کند. با استفاده از Core CLI و VSCode می توانید هر جایی پروژه را پیاده سازی و منتشر کنید.
چه سیستم عامل هایی از ASP Core پشتیبانی می کنند ؟

فریم ورک ASP Core با هدف پشتیبانی از چند سیستم عامل شروع شد. این پروژه آنقدر موفق بود که مایکروسافت تصمیم گرفت تیم ASP را مامور پروژه ی جدید دات نت کند. بجای ASP کار روی نسخه ی جدید دات نت ادامه پیدا کرد و حالا dotnet Core علاوه بر پشتیبانی از 80 درصد dotnet 4.5 روی همه ی سیستم عامل های محبوب اجرا می شود.

مایکروسافت پا را فراتر گذاشت و حالا یک نسخه از Visual Studio را هم برای macOS منتشر کرده است. یعنی برنامه نویسانی که به محصولات اپل علاقه دارند هم می توانند روی پروژه های دات نت Core کار کنند.

در این میان موفق ترین محصول را می توان بدون شک VSCode دانست. این ادیتور کم حجم حالا به محبوب ترین ابزار کد نویسی تبدیل شده است و بسیاری از برنامه نویسان قدیمی Python یا PHP را به سمت خود کشانده است. پشتبانی از چند سیستم عامل و محیط کاربری ساده و خوش دست در کنار افزونه های فراوان ابزاری را فراهم کرده است که کهنه کار ترین طرفداران Eclipse و Sublime را قانع کند.

برای برنامه نویسی ASP Core در لینوکس کافی است SDK آن را نصب کنید و با استفاده از Command Line Interface در خط فرمان پروژه را بیلد یا اجرا کنید. در این میان VSCode تجربه ی کاملی از کار با سی شارپ و دی باگ فراهم می کند. همچنین به راحتی می توانید سورس کدها را در GIT نگه داری کنید.

لیست کامل سیستم عامل هایی که ASP Core پشتیبانی می کند را در لینک زیر دنبال کنید :

https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0-supported-os.md
آشنایی با انواع فیلترها در ASP Core

http://codehaks.com/gallery/more/9/actionfilter-asp-core