✅ DotNetZoom 💎 Everything about .NET نویسنده : محمد جواد ابراهیمی Senior .NET Developer and Consultant @mjebrahimi 09136461951
سومین #گپ_تکنیکال «فلسفه نرمافزار»
با موضوع: «Software Architecture: Performance»
با حضور
#مهران_داودی
#یاسر_مرادی
لطفا نظرتون رو هم در مورد گپ این هفته بنویسید برامون :)
@SoftwarePhilosophy
@SoftwarePhilosophy
@SoftwarePhilosophy
✅ هشتمین گفتگوی فنی #فری_تاک
با موضوع : Security
سه شنبه 28 اردیبهشت، ساعت 21:00
ارائه دهندگان: محمدجواد ابراهیمی - مجتبی تاجیک
در این گفتگو درباره مهم ترین آسیب پذیری های امنیتی در پروژه های نرم افزاری خصوصا Web Application ها و نیز راه حل ها و Best Practice های جلوگیری از این مشکلات صحبت خواهیم کرد
در این جلسه میزبان مجتبی تاجیک عزیز هستیم که تخصصا تو حوزه امنیت کار میکنه و بیش از 15 سال تجربه داره
#فری_تاک یک گفتگوی فنی در مورد توسعه نرم افزار (بیشتر متمرکز بر دات نت) هست که هر هفته سه شنبه ها ساعت 21:00 برگزار میشه
این گفتگو صوتی هست و توسط قابلیت Voice Chat تلگرام (چیزی شبیه به Clubhouse یا Spaces توئیتر) در همین کانال برگزار میشه
ویس جلسات گفتگو ضبط شده و در آخر همینجا منتشر خواهد شد
جهت استفاده از قابلیت Voice Chat از آپدیت بودن تلگرامتون اطمینان حاصل کنین.
ویس ضبط شده جلسات قبل رو میتونین با هشتگ #فری_تاک پیدا کنین.
___________________
@DotNetZoom
✅ کدنوسی و دیباگ تو Windows، اجرا تو Linux !
از زمان cross-platform شدن دات نت (در NET Core.) بدلیل قدرت و امنیت بیشتر Linux در سمت سرور و نیز به خاطر ارزان بودن سرور های لینوکسی نسبت به ویندوزی، خیلی از شرکت ها تصمیم به مهاجرت و استفاده از Linux در سمت سرور کردند
نکته ای هست اینه که درسته که NET Core. کراس پلتفرم هست ولی کدنویسی شما میتونه الزاما کراس پلتفرم نباشه و روی لینوکس خطا بده.
به عنوان یه مثال مسیر فایل ها در لینوکس با کاراکتر "/" مشخص میشن ولی در ویندوز با کاراکتر "\". یا مثلا اگر از api ها و کتابخانه های platform-specific مثلا برای دسترسی به registery ویندوز یا حتی p/invoke کردن api های سیستم عامل (که مشخصا در دیگری وجود ندارند) و....
همه اینها باعث میشه کد شما الزاما توی لینوکس به درستی کار نکنه. از این رو این که کد های خودتون رو روی لینوکس هم تست بکنین و از صحت عملکردش اطمینان حاصل کنین بسیار حائز اهمیت هست.
خب یک راهش اینه که کلا به لینوکس مهاجرت کنین ولی اگر لینوکس بلد نیستین یا راه دستتون نیست، گزینه مناسبی هم نمیتونه باشه. از طرفی اگر کدتون رو صرفا روی لینوکس اجرا و تست کنین، شما دیگه نمیتونین از صحت عملکردش روی ویندوز مطمئن بشین.
بهترین راه میتونه این باشه که شما روی ویندوز پروژه تون رو توسعه بدین و بتونین هم روی ویندوز و هم روی لینوکس اجرا و تست اش کنین
خوشبخانه این کار توسط قابلیت WSL2 (مخفف Windows Subsystem for Linux) و افزونه Visual Studio Code Remote امکان پذیره. شما میتونین یک محیط کامل Linux ای برای اجرا و تست برنامه هایی که در محیط Windows توسعه میدین داشته باشین.
.
در واقع شما عین سابق در محیط ویندوز توسط VS Code، کدنویسی و Debug میکنین ولی برنامه هاتون عملا روی Linux اجرا میشه.
این قابلیت به شما کمک میکنه که بتونین کد هاتون رو در محیط Linux هم تست کنین و از اجرای صحیح برنامه های cross-platform اتون اطمینان حاصل کنین
🔰آموزشش دیگه توی این پست نمیگنجه. به لینک های زیر مراجعه کنین
اول از فعال بودن WSL روی ویندوز تون و آپدیت بودنش به نسخه WSL2 اطمینان حاصل کنین و بعد از طریق آموزش های اقدام کنین
🔸Linux Development on Windows with WSL and Visual Studio Code
- Part 1
- Part 2
- Part 3
🔹[Video] Developing on Windows with WSL2 (Subsystem for Linux), VS Code, Docker, and the Terminal
_______________
@DotNetZoom
دوستان واقعا این تاک ها اونم هر هفته کلی انرژی ازمون میگیره و خستمون میکنه
اولا ممنون بابت انرژی مثبتی که میدین
دوماً ارزشمند ترین کاری که از سمت شما میتونه خستگی رو از تنمون در کنه و بهمون انگیزه برای ادامه بده اینه که اگه براتون مفید بوده یا دوس داشتین این تاک ها رو، برای بقیه هم بفرستید و به اشتراک بگذارید بقیه هم لذت ببرن. همین :)
با هشتگ #فری_تاک میتونین ویس ضبط شده جلسات رو پیدا کنین
ممنون، موفق باشین🌹
✅ ویس ضبط شده هفتمین گفتگوی فنی #فری_تاک با موضوع Testing
ارائه دهندگان : محمدجواد ابراهیمی، معین تاجیک
_________________
@DotNetZoom
✅ هفتمین گفتگوی فنی #فری_تاک
با موضوع : Testing
سه شنبه 21 اردیبهشت، ساعت 21:00
ارائه دهندگان: محمدجواد ابراهیمی - معین تاجیک
#فری_تاک یک گفتگوی فنی در مورد توسعه نرم افزار (بیشتر متمرکز بر دات نت) هست که هر هفته سه شنبه ها ساعت 21:00 برگزار میشه
این گفتگو صوتی هست و توسط قابلیت Voice Chat تلگرام (چیزی شبیه به Clubhouse یا Spaces توئیتر) در همین کانال برگزار میشه
ویس جلسات گفتگو ضبط شده و در آخر همینجا منتشر خواهد شد
جهت استفاده از قابلیت Voice Chat از آپدیت بودن تلگرامتون اطمینان حاصل کنین.
ویس ضبط شده جلسات قبل رو میتونین با هشتگ #فری_تاک پیدا کنین.
___________________
@DotNetZoom
✅ 10 افزونه برتر که یک Github-باز باید اونا رو داشته باشه
1️⃣ Enhanced GitHub
کاربردی ترین و پر فیچر ترین افزونه گیتهاب که کلی قابلیت و بهبود رو به صفحات گیتهاب شما اضافه میکنه و کارکردن با اون رو خیلی راحت تر (این یکی جزء باید های منه)
2️⃣ GitHub Hovercard
یه افزونه باحال و فوق العاده مفید که باعث میشه وقتی موس تون رو روی لینک یه issue یا commit یا repo یا user میگیرین، یه پیش نمایش از اون به صورت hover card نمایش داده بشه
3️⃣ File Icons for GitHub and GitLab
یه افزونه خیلی باحال که کنار فایل های ریپازیتوری، آیکون مخصوص بهش رو نمایش میده
4️⃣ Octotree
یه افزونه باحال و کاربردی که میاد فایل ها و فولدر های ریپازیتوری تون رو به صورت درختی (tree) نمایش میده (مثل پنجره Solution Explorer در VS)
5️⃣ GitHub Isometric Contributions
یه افزونه باحال که میاد و Contribution Graphs یا همون نمودار مشارکت های شخص رو به صورت 3 بعدی و ملموس تر نشون میده
6️⃣ Sourcegraph
یه افزونه کاربردی که امکان Go to definition و Find references رو به کد های ریپازیتوری اضافه میکنه و توسطش میتونین ببینین کجا این کلاس یا متد تعریف شده و کجا های دیگه ازش استفاده شده
7️⃣ GitHub Writer
این افزونه به شما این امکان رو میده که موقع نوشتن متن Issue و Pull Request و Comment بتونین از امکانات یک rich-text editor (مانند CKEditor) استفاده کنین
8️⃣ Git History Browser Extension
یه افزونه باحال که به شما این امکان رو میده بتونین تاریخچه تغییرات و Commit های یه فایل رو به شکلی زیبا تر و ملموس تر ببینین.
9️⃣ GitZip for github
بعضی وقتا لازم میشه صرفا یه سری فایل یا پوشه خاص رو از یه مخزن دانلود (نه کل مخزن رو که ممکنه خیلی حجیم باشه). این افزونه کاربردی به شما اجازه میده که Folder یا File هایی از یک ریپازیتوری گیتهاب رو به دلخواه در قالب یک فایل Zip دانلود کنین
🔟 Refined GitHub
اینم مثل همون اولی میمونه و کلی قابلیت و بهبود باحال و کاربردی به صفحات ریپازیتوری اضافه میکنه و کار کردن با اونها رو خیلی راه دست تر
🔸به شخصه این لیست جز باید های منه و خیلی سال هست که ازشون استفاده میکنم و بسیار راضی ام. واسه دیدن اطلاعات بیشتر در مورد قابلیت هاشون حتما لینک هاشون رو ببینید. در ضمن این افزونه ها برای روی مروگر Chrome هستند و قاعدتا روی Edge هم قابل نصب هستند
__________________
@DotNetZoom
✅ ویس ضبط شده ششمین گفتگوی فنی #فری_تاک با موضوع CQRS
ارائه دهندگان : محمدجواد ابراهیمی، معین تاجیک
_________________
@DotNetZoom
✅ گفتگوی فنی #فری_تاک با موضوع CQRS تا یک ساعت دیگه برگزار میشه
Читать полностью…✅ نکات Refactoring برای برنامه نویسان #C
در برنامهنویسی کامپیوتر، به ویژگیها یا نشانههایی در کد یک برنامه که حاکی از وجود مشکلاتی در عمق برنامه باشند، Code Smell گفته میشود. تعیین اینکه چه چیزی Code Smellمحسوب میشود یا نه، وابسته به فرد توسعهدهنده، زبان برنامهنویسی و متد توسعه میباشد اما یک سری Code Smell معمول وجود دارد که در این مقاله قصد داریم به آنها اشاره و راه حل های Refactor آن ها را بیان نماییم
#بابک_طارمی
https://vrgl.ir/rJhub
___________________
@DotNetZoom
❇️ معرفی پروژه فروشگاهی eShopOnWeb جهت Code Review و ایده برداری
به همراه eBook آموزشی به صورت PDF
Sample ASP.NET Core 5.0 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder.تکنولوژی ها و تکنیک های استفاده شده:
✅ مباحث و کلمات کلیدی ایی که در این جلسه از #فری_تاک در موردشون صحبت کردیم
- کش چیه؟
- اهمیتش Cache و اینکه کجاها استفاده میشه؟
- چه چیزایی رو کش کنیم و چه چیزایی رو نه؟
- روش های کشینگ
- Data Caching
- In-Memory
- Distributed
- BackPlane/Hybrid Cache
- Http Response Caching
- Varnish (Caching HTTP reverse proxy)
- Cache Invalidation
- Caching Libraries in .NET
- EasyCaching
- CacheManager
- IMemoryCache
- IDistributedCache (SqlServer, StackExchangeRedis)
- EFCoreSecondLevelCacheInterceptor
- Redis vs Memcached
- Single Thread vs Multi thread
- Data Structures
- Streaming
- Pub/Sub
- HA/Clustering
- Caching/Redis Best Practices
- Avoid Large Values
- Avoid Long Keys
- Avoid No TTL Keys (infinite)
- Serialization
- MessagePack
- Protobuf
- Newtonsoft.Json
- System.Text.Json
- Compression
- EasyCompressor
- LZ4
- Zstd
- GZip/Deflate
- Brotli
- Redis GUI Management
- Redis Desktop Manager
- RedisInsight
- Another Redis Desktop Manager
✅ پنجمین گفتگوی فنی #فری_تاک
با موضوع : تکنیک Caching و روش های مختلف آن
سه شنبه 7 اردیبهشت، ساعت 21:00
با حضور محمدجواد ابراهیمی و معین تاجیک
#فری_تاک یک گفتگوی فنی در مورد توسعه نرم افزار (بیشتر متمرکز بر دات نت) هست که هر هفته سه شنبه ها ساعت 21:00 برگزار میشه
این گفتگو صوتی هست و توسط قابلیت Voice Chat تلگرام (چیزی شبیه به Clubhouse یا Spaces توئیتر) در همین کانال برگزار میشه
ویس جلسات گفتگو ضبط شده و در آخر همینجا منتشر خواهد شد
جهت استفاده از قابلیت Voice Chat از آپدیت بودن تلگرامتون اطمینان حاصل کنین.
سه شنبه ساعت 21:00 منتظرتون هستیم
_______________
@DotNetZoom
✅ معرفی REST API Guideline شرکت های بزرگ + Best Practice ها
🔸Microsoft REST API Guidelines
🔹Microsoft Best Practices for Web API design
🔸Microsoft Best Practices for Web API implementation
🔹Google API Design Guide
🔸PayPal API Design Guidelines
🔸Stackoverflow Best practices for REST API design
🔸Best Practices for Designing a Pragmatic RESTful API
__________________
@DotNetZoom
آموزش نصب و راه اندازی CKEditor در ASP NET Core
https://youtu.be/eCTN_BpOYig
❇️ معرفی 4 ابزار Code Generator مخصوص EF Core
🔸دو تای اولی بهترین افزونه های ویژوال استادیو جهت Reverse Engineering مخصوص EF Core هستند که ساخت کلاس های Entity/Poco از روی دیتابیس از پیش موجود رو خیلی ساده و به صورت GUI برای شما انجام میدن
1️⃣ EF Core Power Tools
2️⃣ EntityFramework Reverse POCO Generator
🔹این یکی اما هم یه scaffolding engine هست که هم با EF Core کار میکنه هم با Dapper؛ هم ViewModel و Controller میسازه هم کلاس های TypeScript
3️⃣ CatFactory
🔰آموزش ها:
✔️Scaffolding Dapper with CatFactory
✔️Scaffolding View Models with CatFactory
✔️Scaffolding Entity Framework Core 2 with CatFactory
✔️Scaffolding ASP.NET Core 2 with CatFactory
✔️Scaffolding TypeScript with CatFactory
🔸این یکی هم یه کد ساز مخصوص EF Core هست که مثل scaffolding عمل میکنه منتها برای Web API و کد کامل پروژه رو از روی دیتابیس از پش موجود شما تولید میکنه از جمله Model ها، Mapping ها، Validation ها و Controller ها و...
4️⃣ EntityFrameworkCore.Generator
🔰آموزش ها:
✔️Generate ASP.NET Core WebAPI model with Entity Framework Core Generator
✔️https://github.com/ErikEJ/EFCorePowerTools/wiki/Reverse-Engineering
✔️https://efg.loresoft.com/en/latest/
___________________
@DotNetZoom
✅ آموزش زمانبندی کارها با HangFire در Asp.Net Core
در هر برنامه ای اجرای تسک های پس زمینه یکی از بخش های مهم برنامه تلقی میشود. این تسک ها شامل مواردی است که برنامه باید بطور خودکار در زمان های مشخص آن هارا اجرا کند. HangFire یکی از محبوترین پکیج ها برای پیاده سازی تسک های پس زمینه میباشد که مدیریت اجرا و مهم تر ، زمانبندی آن ها را بر عهده دارد. در این مقاله سعی شده تسک های پس زمینه را شرح دهیم و به انواع زمانبندی آن ها با کمک HangFire بپردازیم.
#سجاد_کاردل
https://vrgl.ir/bMkS1
پ.ن: یه آموزش جامع و در عین حال مختصر و مفید در باره hangfire و مقایسه اون با quartz که ابزار های مفیدی هم داخل خودش معرفی کرده
___________________
@DotNetZoom
✅ مباحث و کلمات کلیدی ایی که در این جلسه از #فری_تاک در موردشون صحبت کردیم
- Importance of Testing.
- Type of Tests : Unit - Integration - End2End - Acceptance.
- What, Why, How TDD?
- What, Why, How BDD?
- What, Why, How Mocking?
- What is Fixture - Test Data Generator?
- Properties of a Good Test.
- Database Testing Tips.
ویدئو ها و دوره های آموزشی:
- TDD - Test Driven Development in C#
- BDD - Automated Acceptance Testing with SpecFlow and Gherkin
- Testing .NET Code with xUnit.net: Getting Started
- Introduction to .NET Testing with NUnit 3
- Properties of a Good Test by Kent Beck
کتاب های این زمینه:
- Test Driven Development
- Growing Object-Oriented Software, Guided by Tests
- Working Effectively with Unit Tests
- The Art of Unit Testing
- BDD in Action
کتابخانه های کمکی تست:
FluentAssertions, Shouldly, Moq4, NSubstitute, FakeItEasy, Mongo2Go, EfCore.TestSupport - SqlInMemory, Effort.EF6 - AutoFixture, NBuilder, GenFu, Specflow, LightBDD
___________________
@DotNetZoom
آموزش پیاده کردن پترن pub/sub با کمک Redis در ASP NET Core 5.0
https://youtu.be/RVMOGcHxjy0
✅ مباحث و کلمات کلیدی ایی که در این جلسه از #فری_تاک در موردشون صحبت کردیم
- What is CQRS? Why do we need that?
- Relation to "Database per Service pattern"
- Advantages
- Different Databases
- Read: Redis, Elastic, Mongo, ...
- Write: SQL-Server, PostgreSQL, ...
- Different Data Access
- SoC
- Scale
- Task-based UI
- More simple queries
- Disadvantages
- Inconsistency
- Complexity in implementation
- Code Duplication
- Implementation areas (Application, Database, ...)
- Domain-Events
- What is Mediator? How MediatR help us?
- Relation with Event-Sourcing
منابع/مقالات مرتبطت با بحث:
1- الگو طراحی Mediator
2- سری مقالات "پیاده سازی CQRS توسط MediatR"
___________________
@DotNetZoom
گفتگو شروع شدا عقب نمونین از بحث :)
البته ویس ضبط شده رو هم توی کانال قرار میدیم ✌️
چگونه Redis را در Docker نصب و راه اندازی کنیم؟
https://youtu.be/y6aT7kHDebw
✅ ششمین گفتگوی فنی #فری_تاک
با موضوع : CQRS
سه شنبه 14 اردیبهشت، ساعت 21:00
ارائه دهندگان: محمدجواد ابراهیمی - معین تاجیک
#فری_تاک یک گفتگوی فنی در مورد توسعه نرم افزار (بیشتر متمرکز بر دات نت) هست که هر هفته سه شنبه ها ساعت 21:00 برگزار میشه
این گفتگو صوتی هست و توسط قابلیت Voice Chat تلگرام (چیزی شبیه به Clubhouse یا Spaces توئیتر) در همین کانال برگزار میشه
ویس جلسات گفتگو ضبط شده و در آخر همینجا منتشر خواهد شد
جهت استفاده از قابلیت Voice Chat از آپدیت بودن تلگرامتون اطمینان حاصل کنین.
ویس ضبط شده جلسات رو میتونین با هشتگ #فری_تاک پیدا کنین.
___________________
@DotNetZoom
✅ یک #نکته - آزاد سازی فضای درایو C با حذف پکیج های Nuget اضافی
وقتی یه پکیچ nuget رو نصب میکنید اون رو توی یه پوشه ای به ازای کاربری جاری سیستم عامل ذخیره میکنه (کش میکنه)
این باعث میشه که دفعات بعدی که اون پکیچ رو لازم دارید دیگه از اینترنت دانلود نکته و از کش شما بخونه. البته اگر ورژن جدید تری اومده باشه که توی پوشه کش شما وجود نداشته باشه اون رو دانلود میکنه و به لیست ورژن های قبلی ایی که داشتین اضافه میکنیه
این عمل خیلی خوبه و باعث میشه معمولا پکیج های اضافه دانلود نکنین و از کش نصب میکنه پس سرعت restore شدن پکیج ها خیلی بالا میره ولی در طولانی مدت باعث میشه حجم خیلی زیادی اشغال کنه. مثلا من که سالی 12 ماه ویندوز عوض نمیکنم و پکیج ها و ورژن های زیادی توی سیستمم ذخیره شده بود یه چند مدتی بود که فضای درایو C ایم کم بیاد و الان که این پوشه رو چک کردم بیش از 10 گیگابایت حجم داشت!
🔰واسه حذف این پکیج ها 2تا راه وجود داره:
1️⃣ مسیر زیر روی توی آدرس بار بزنین و دستی اون پوشه رو حذف کنین
%userprofile%\.nuget\packages
2️⃣ ویژوال استادیو رو باز کنین و از منو Tools به مسیر زیر برین (مانند تصویر)
Tools > NuGet Package Manager > General
و سپس دکمه Clear All NuGet Cache(s) رو بزنین. (ممکنه واسه چند لحظه هنگ کنه برنامه)
🔸این حذف کردن هیچ مشکلی هم براتون به وجود نمیاره فقط اگر پکیج هاتون شناسایی نشد رو Solution راست کلیک کنین و گزینه Restore Nuget Packages رو بزنین یا توسط NET Core CLI. دستور dotnet restore رو پروژه/سلشون تون اجرا کنین (این کار برای بار اول کمی زمان میبره تا همه رو دانلود کنه - یادتون نره یه بارم VS رو باز و بسته کنین)
___________________
@DotNetZoom
✅ ویس ضبط شده پنجمین گفتگوی فنی #فری_تاک با موضوع Caching
_________________
@DotNetZoom
✅ سری آموزش چند مستاجری (Multi-Tenant) در ASP .NET Core
معماری چند مستاجری یا Multi Tenant به معماری گفته میشه که در اون "یک" نسخه از برنامه قادر هست به چندین Tenant (مستاجر) خدمات ارائه بده مثلا سایت های ارائه وبلاگ که هر کس میتونه وبلاگ خودش رو داشته باشه ولی اینطور نیست که به ازای هر دارنده وبلاگ، یه نسخه مجزا از وبسایت و دیتابیس رو براش لانچ کنن. یا مثلا یک فروشگاه Market Place که هر کس میتونه فروشگاه خودش رو داشته باشه ولی همگی از یک نسخه از وبسایت و دیتابیس تغذیه میکنن.
استراتژی های مختلفی هم برای طراحی دیتابیس اش وجود داره. که هر کدوم مزایا و معایب خودشون رو دارن. مثلا :
دیتابیس مجزا به ازای هر tenant
یک دیتابیس مشترک ولی scheme مجزا به ازای هر tenant
یا دیتابیس و scheme مشترک ولی جدا سازی اطلاعات بر اساس سطر های جداول
در اینجا سعی کردم لیستی از منابع آموزشی این معماری رو براتون تهیه کنم
🔸آموزش های تکی
✔️ معماری پایگاه داده چند مستاجری (Multi-Tenant Data Architecture)
✔️ پیاده سازی برنامههای چند مستاجری در ASP.NET Core
✔️Writing Multitenant ASP.NET Core Applications
✔️Building Multi-Tenant Applications Using ASP.NET 5
🔹سری 8 قسمتی از Gunnar Peipman
1️⃣ Global query filters in Entity Framework Core 2.0
2️⃣ Implementing tenant providers on ASP.NET Core
3️⃣ Implementing database per tenant strategy on ASP.NET Core
4️⃣ Handling missing tenants in ASP.NET Core
5️⃣ Unit testing multi-tenant database provider
6️⃣ Defensive database context for multi-tenant ASP.NET Core applications
7️⃣ Tenant-based dependency injection in multi-tenant ASP.NET Core applications
8️⃣ Using configurable composite command in multi-tenant ASP.NET Core application
🔸سری 4 قسمتی از Carl Rippon
1️⃣ Creating a Multi-Tenant ASP.NET Core Web API with SQL Server RLS
2️⃣ Creating a Multi-Tenant ASP.NET Core Web API with Dapper and SQL RLS
3️⃣ Integration Testing on ASP.NET Core Web API controllers with a SQL backend
4️⃣ ASP.NET Core Web API Multi-Tenant JWTs
🔹سری 5 قسمتی از Michael McKenna
1️⃣ Creating a multi-tenant .NET Core Application - Tenant resolution
2️⃣ Creating a multi-tenant .NET Core Application - Tenant containers
3️⃣ Creating a multi-tenant .NET Core Application - Tenant specific options
4️⃣ Creating a multi-tenant .NET Core Application - Tenant specific authentication
5️⃣ Migrating multi-tenancy to .NET Core 3.1 (LTS)
🔰بهترین فریمورک های Multi-Tenant
✔️ https://github.com/Finbuckle/Finbuckle.MultiTenant
✔️ https://github.com/cloudscribe/cloudscribe
✔️ https://github.com/OrchardCMS/OrchardCore
✔️ https://github.com/aspnetboilerplate/aspnetboilerplate
__________________
@DotNetZoom
ویژوال استودیو 2022 به طور کامل از پردازنده های 64 بیتی پشتیبانی میکند و محدودیت حافظه 4 گیگابایتی آن روی devenv.exe برطرف شده است. به این ترتیب امکان باز کردن سولوشن هایی با هزاران پروژه و چند صد هزار فایل ممکن شده است.
این نسخه قرار است از MAUI هم پشتیبانی کند وامکان پیاده سازی اپ های با UI یکسان در انواع پلتفرم ها را فراهم میکند.
پیش بینی میشود نسخه 22 به همراه دات نت 6 در اواخر سال جاری میلادی منتشر شود.
آموزش کار با Lazy در سی شارپ
https://youtu.be/Oyl8wbYvIT4