کدهک
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
دیتابیس SQLite سبک است و بدون نیاز به سرور مرکزی کار میکند. از این رو برای پروژه های کوچک مناسب است.
در این جدول محدودیت های SQLite که در EF Core پشتبانی میشود لیست شده است.
دوره ی آموزشی مبانی برنامه نویسی در ASP Core

تعداد ویدیو ها : 25 قسمت
مدت زمان : یک ساعت و 56 دقیقه
حجم دانلود : 166 مگابایت
کیفیت فایها : 720p
فرمت فایلها : mp4
لینک دانلود : http://codehaks.com
در EF Core برای ایجاد کلیدهای ترکیبی باید از Fluent API استفاده کنید و دیگر Attribute ها قابل استفاده نیستند.
در ASP Core می توانید بجای استفاده از IISExpress از خود سایت برای میزبانی و اجرای سایت استفاده کنید. این قابلیت با استفاده از Kestrel ممکن میشود.
در ASP Core وقتی از Self-Hosting استفاده می کنید روند اجرای برنامه با جزئیات کامل در لوگ ثبت میشود و می توانید آن را در CMD مشاهده کنید.
این جزئیات شامل عملیات های SQL در EntityFramework هم میشود.
آشنایی با Anaemic Domain Model و Rich Domain Model

یک Anaemic Domain Model به مدلی (کلاس) گفته میشود که فقط دارای خصوصیات است و از خودش رفتاری ندارد. در واقع یک سری Property دارد بدون آنکه متدی درونش تعریف شده باشد.
طبیعی است که این نوع مدل ها امکان اعتبار سنجی از داده های خود را ندارند. معمولا وقتی از یک ADM استفاده می کنید لایه ی سرویس عملیات Validation ، Business Logic را انجام میدهد. که نتیجه اش داشتن لایه سرویس قطور با انبوه کد است.

در مقابل Rich Domain Model سهم بیشتری از عملیات را درون خود انجام میدهد و سعی می کند بر مبنای برنامه نویسی شی گرا حداکثر استفاده را از قابلیت های یک Class ببرد. در نتیجه Service Layer کوچکتر شده و یا ممکن است اصلا وجود نداشته باشد.

در بسیاری موارد ADM یک Anti-pattern شناخته میشود . مخصوصا اگر Business Logic در پروژه پیچیده باشد مدیریت کردن داده ها به صورت فرآیندی ( متدها) مشکل میشود. اما این مسئله مطلق نیست. اگر بخواهیم اصول SOLID را در برنامه نویسی در نظر بگیریم داشتن یک کلاس که همه کار انجام میدهد با اصلی که می گوید هر کلاس تنها و تنها باید مسئول انجام یک کار باشد در تضاد است.

در نهایت شما باید به هدف فکر کنید. باید بسنجید با توجه به شرایط موجود کدام روش مناسب است. آیا پروژه خود را بر اساس مفاهیم و الگوها پیاده می کنید یا از الگوها و مفاهیم برای پیاده سازی پروژه خود استفاده می کنید ؟
نگاهی به ADM در مقایسه با RDM که Domain-Driven Design استفاده میشود.
اصل حداقل شگفتی

در طراحی مهندسی Principle of least astonishment یا اصل حداقل شگفتی به تلاش برای عدم سورپرایز کردن کاربر سیستم تعریف میشود.

مثلا در سیستم عامل ویندوز وقتی دکمه ی F1 کیبورد را میزنید انتظار دارید که صفحه ی راهنما نرم افزار یا سیستم عامل را مشاهده کنید. اگر می خواهید اصل حداقل شگفتی را رعایت کرده باشید نباید برای F1 کاربرد دیگری تعریف کنید.

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

این اصل در برنامه نویسی هم اهمیت زیادی دارد. کدها باید گویا باشد و متدها نباید به گونه ای رفتار کنند که کاربر (در اینجا برنامه نویس) را سردرگم کند. در واقع یک متد تنها باید کاری را انجام دهد که در اسمش آمده و نه هیچ کار دیگری. از طرف دیگر استفاده از تکنیک ها خلاقانه برای حل مشکل باید به حداقل برسد. وقتی در یک تیم کار می کنید یا افراد دیگری باید کدهای شما را بررسی کنند راه حل های غیر متعارف می تواند میزان پیچیدگی کد را بالا ببرد و فهم آن را برای همه مشکل کند.
سیستم تزریق وابستگی در ASP Core دارای سه نوع چرخه ی Transient و Scoped و Singleton است.
در ASP Core یک سیستم تزریق وابستگی کم حجم و ساده پیاده شده است که نیاز به استفاده از سایر IoC ها از قبیل StructureMap و Ninject یا AutoFac را از بین میبرد. به طور کلی می توان به سه روش کلاسها (سرویسها) را در این فریم ورک تزریق کرد.

1- حالت Transient
در این روش سرویس در هربار که فراخوانی شود ایجاد میشود.

2- حالت Scoped
در این روش سرویس به ازای هر Request تنها یکبار ایجاد میشود.

3- حالت Singleton
در این روش سرویس تنها در اولین فراخوانی ایجاد میشود و در دفعات بعد از همان سرویس استفاده میشود.
کنترلر در ASP Core

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

1- نام کلاس دارای پسوند Controller باشد
2- از کلاسی ارث بری کند که آن کلاس دارای پسوند Controller باشد.
3- با اتریبیوت [Controller] مشخص شده باشد.

همچنین نباید دارای اتریبیوت [NonController] باشد.
اکشن ها در ASP Core

در ASP Core اکشن دارای خروجی IActionResult است که در مقایسه با نسخه ی قبلی دامنه ی گسترده ای را پوشش میدهد. با ترکیب شدن Web API درون MVC اکنون می توان پیامهای HTTP مانند BadRequest یا OK را مستقیما به کاربر برگشت داد. در نسخه ی جدید کلاس ApiController دیگر وجود ندارد.

همه ی متدهای Public درون کنترلر یک Action محسوب میشوند مگر اینکه با [NonAction] علامتگذاری شده باشند.

پارامترهای تعریف شده در یک اکشن به صورت خودکار با Model Binding پردازش میشوند و ModelState.IsValid در این نسخه مانند MVC5 عمل میکند.
شبیه سازی خطای NotFound یا 404 با استفاده از یک اکشن فیلتر در ASP MVC 5

لینک گیست :
https://gist.github.com/codehaks/d4172388f869956e79e932b2763504bf
کدهک
شبیه سازی خطای NotFound یا 404 با استفاده از یک اکشن فیلتر در ASP MVC 5 لینک گیست : https://gist.github.com/codehaks/d4172388f869956e79e932b2763504bf
در پروژه های Live گاهی لازم میشود یک بخش از سایت را سریع از سرویس خارج کنید. یک روش حذف فایلهای مربوط به آن بخش است. اما وقتی یک تیم همزمان روی پروژه کار میکندحذف کردن فایل ممکن است عواقب پیش بینی نشده ی زیادی داشته باشد. همچنین شاید در آینده بخواهید این قسمت را دوباره به سرویس برگردانید یا حتی باگی در کار باشد که مجبور شوید به نسخه ی قبلی سویچ کنید.

یک راه ساده و سریع این است که با استفاده از یک اکشن فیلتر تمام درخواستهایی که به کنترلر مربوط ارسال میشود مسدود کنید. در این تکنیک خطای 404 ایجاد میشود و بقیه ی کار به سیستم مدیریت خطا واگذار میشود.
آموزش برنامه نویسی در ASP.NET Core 2.0 آموزش #C و تکنیک های پیشرفته در کد نویسی Web Development

https://www.aparat.com/codehaks