کدهک
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
فریم ورک 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
ابزار Redis محبوبترین دیتابیس جهت ذخیره سازی موقت اطلاعات در حافظه است و از آن برای کش کردن استفاده میشود.
آشنایی با Redis

دیتابیس Redis در واقع از نوع Non-Relational است و در آن از جدول و ردیف خبری نیست. این دیتابیس انواع مختلف اطلاعات را به صورت Key/Value دخیره می کند و در نوع خود سریعترین به شمار می رود.

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

سایت هایی که ترافیک زیادی دارند معمولا از Redis برای کش کردن اطلاعات استفاده می کنند. می توان از آن به عنوان یک دیتابیس NoSQL هم استفاده کرد و اطلاعاتش را در دیسک ذخیره کرد.

این دیتابیس به زبان C و برای سیستم عامل لینوکس طراحی شده است اما امکان نصب آن روی ویندوز وجود دارد. در ASP Core به راحتی می توانید با استفاده از یک Nuget Package از آن استفاده کنید.
ابزار Identity در ASP Core مسئولیت تشخیص هویت و کنترلر دسترسی را به عهده دارد. در نسخه ی جدید می توان از سه روش Role و Claim و Policy دسترسی کاربران را مدیریت کرد.
انواع هویت سنجی در ASP Core Identity

ابزار Identity در ASP Core مسئولیت تشخیص هویت و کنترلر دسترسی را به عهده دارد. این ابزار در نسخه های قبل هم وجود داشت اما مانند سایر قسمتها باز نویسی شده است. در اینجا به سه روش اصلی کنترل دسترسی در Idenity Core می پردازیم.

روش Role-Based

در این روش کاربر بر اساس سمتی که دارد به بخش هایی از سایت دسترسی پیدا می کند. مثلا دسترسی به بخش مدیریت سایت فقط برای کاربرهایی با سمت Admin میسر است. در اینجا ما یک جدول برای نگه داری سمت ها داریم و یک جدول هم برای نگه داری رابطه ی بین کاربران با هر سمت. یک کاربر می تواند چندین سمت داشته باشد.

روش Claims-Based

نسخه ی جدید ASP Core تاکید زیادی به استفاده از این روش دارد. در این روش یک کاربر می تواند چند هویت داشته باشد. هر هویت مشخصه های خودش را دارد. دسترسی های یک کاربر بر اساس مشخصه های هر هویت فرق می کند. مثلا شما برای گرفتن وام به بانک مراجعه می کنید و برای شناسایی کارت ملی ارائه می کنید. مشخصات کارت ملی بخشی از مشخصات شما شامل نام و تاریخ تولد را نشان می دهد و یکی از هویت های شما محسوب میشود. حالا اگر بخواهید وام دانشجویی بگیرید باید ثابت کنید دانشجو هستید. در این مرحله کارت دانشجویی ارائه می کنید که شامل نام دانشگاه و شماره ی دانشجویی است. در سیستم Claims-Based انواع مشخصات شما در یک جدول key/value دخیره می شود و بعدا می توانید دسترسی به اکشن ها و کنترلر ها را بر اساس آن محدود کنید.

روش Policy-Based

این شیوه ترکیبی از روشهای قبل است. می توانید برای اجرای هر کدام از اکشنها یک سیاست یا Policy تعریف کنید که می تواند شامل مجموعه از سمت ها و مشخصه های هویتی (Claims) باشد.

علاوه بر اینها چند روش دیگر هم وجود دارد و باید گفت نسخه ی جدید از هر نظر کامل است. به طور کلی پیاده کردن سیستم امنیتی پیچیده است و بهتر است همیشه از Identity استفاده کنید. این سیستم بسیاری از نکات مهم مانند رمز نگاری را به خوبی رعایت کرده است و سطح امنیت سایت را به میزان قابل توجهی بالا می برد.
داکر وابستگی نرم افزار به سیستم عامل را از بین می برد و ASP Core به طور کامل از آن پشتیبانی می کند. هر داکر شامل یک یا چند کانتینر است که کد پروژه و دیتابیس را درون یک فایل جای میدهد.
چرا Docker طرفدار دارد ؟

در گذشته اگر می خواستید یک برنامه ی ASP با دیتابیس MSSQL در سرور لینوکس اجرا کنید باید یک ماشین مجازی می ساختید و روی آن ویندوز نصب می کردید و بعد تازه دات نت و SQL Server نصب می کردید. تازه می توانستید سایت را روی IIS اجرا کنید.

وقتی از Docker استفاده می کنید نیاز به ماشین مجازی ندارید. علاوه بر این نیاز به نصب نرم افزارهای جانبی مانند SQL Server هم ندارید. می توانید کل سایت و دیتابیس و حتی کل SQL Server را درون یک فایل که اصطلاحا Container خوانده میشود قرار دهید و آن را در لینکوس با یک خط فرمان اجرا کنید. با داکر یک برنامه همه جا یکسان کار میکند. در واقع با داکر عبارت معروف " روی سیستم من که اجرا میشه " دیگر از بین میرود.

هر چند ASP Core خودش در لینکوس و macOS قابل اجرا است اما استفاده از Docker عملیات انتشار سایت را بسیار ساده می کند. مخصوصا وقتی که برنامه ی شما قرار است روی چند سرور اجرا شود یا قصد جابجایی آن را به یک سرور جدید داشته باشید فقط باید یک فایل را کپی کنید.

خیلی از نرم افزارها نسخه ی Docker دارند که مانند Nuget از Docker Hub قابل دانلود و نصب است. مثلا SQL Server 2017 را می توانید با حجم 2 گیگ روی هر سیستمی اجرا کنید بدون اینکه نیاز به طی کردن مراحل طولانی نصب داشته باشد. IIS و Node و MySQL و Redis و حتی سیستم عامل Ubuntu هم از طریق Docker قابل نصب است.

برای نصب داکر باید تحریم ها را دور بزنید و آن را دانلود کنید. همچنین فقط از سیستم عامل های x64 پشتیبانی می کند. بعد از نصب به یک محیط Console دسترسی پیدا میکنید که دستورات داکر را اجرا می کند.

در حال حاضر Docker سر و صدای زیادی به پا کرده و مقالات و کتابهای زیادی در مورد آن منتشر می شود. بسیاری از شرکتها تمامی کارهای سرور را با Docker انجام می دهند و تخصص در این زمینه می تواند فرصت های شغلی زیادی ایجاد کند.
مقایسه ساختار بین Docker و Virtual Machine
دیتابیس RavenDB از نوع Document است و در زبان سی شارپ با دات نت Core برنامه نویسی شده است.
کجا باید از RavenDB استفاده کنیم ؟

دیتابیس های Document نوع خاصی از دیتابیس های غیر SQL است که تمرکزش روی ذخیره ی اطلاعات به شکل سند است. هر سند دارای خصوصیات مدل است و "نشانی "دارد که مشخص می کند نوع اطلاعات ذخیره شده در سند چیست.

وقتی از دیتابیس های اسنادی استفاده می کنید لازم نیست سند شما همیشه یک قالب داشته باشد. در هر لحظه می تواند فیلد جدیدی به سند اضافه کنید بدون آنکه لازم باشد برگردید و اطلاعات گذشته را تغییر دهید. اضافه کردن انواع جدید سند به سادگی اجرای دستور ذخیره ی سند است. لازم نیست ساختار گذشته ی دیتابیس را تغییر دهید.

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

اما در RavenDB یا دیتابیس های مشابه مانند MongoDB و CouchDB کافی است یک کلاس برای محصول جدید ایجاد کنیم و اطلاعات را ذخیره کنیم. دیتابیس خودش با ترفندهایی که دارد اطلاعات مشابه را به Collection تبدیل می کند .

استفاده از RavenDb برای همه ی کارها مناسب نیست همانطور که SQL همیشه بهترین راه حل نیست. بهتر است برای هر کاری ابزار خودش را بشناسیم. ضمن اینکه تجربه ی کار با یک نوع متفاوت دیتابیس می تواند افق های جدیدی برای شما باز کند.
مقایسه مسیر پیاده سازی پروژه به دو روش MVC و Razor Page در ASP Core
فریم ورک Vue.js با "شیب ملایم" در حال رشد است و به زودی خود را به صدر بهترین های SPA میرساند.