DotNet | دات نت
1.12K subscribers
663 photos
229 videos
484 files
705 links
تو این روزا بهتره که همیشه علم خودمون رو بالا ببریم و بتونیم با سریع ترین راه ممکن خودمونو بروز نگه داریم.
- سعی کنیم از کمترین امکانات بیشترین بهره رو ببریم
منتظرت هستیم😉
دنیا رو جای بهتری برای یادگیری کنیم 🌹
#course #book


🆔 @dotnetcode
Download Telegram
❇️ بازنویسی یک برنامه‌ی قدیمی Web Form با DDD، TDD و NET Core

پیشنهاد میکنم این مقاله طولانی رو بخونین، موارد خیلی زیادی رو به صورت عملی یاد میگیرین
فقط کافیه لیست تکنولوژی ها و معماری های استفاده شده رو ببینین تا به پر مایه بودنش پی ببرین

- #DDD & #CQRS
- Using CoreDdd (a library to work with DDD and CQRS.)
- #TDD & #Unit_Testing
- Using #NUnit (a unit test framework)
- Using #Shouldly (an assertion framework for NUnit)
- Using #Nhibernate ORM & CoreDdd.Nhibernate (for persistence layer)
- Using #FluentNHibernate (for database mappings)
- #Mocking & #Fake Services
- Using #FakeItEasy (an easy mocking framework)
- Adding ASP NET Core & built-in IOC Container
- #Command_Handler Pattern
- #Domain_Events Handler Pattern
- Domain Events Message Handler Pattern
- Adding #Message_Bus
- Using #Rebus & Rebus.Async (a message bus library)
- Using Await/Async for Performance Boost

🔸لینک مقاله :
https://bit.ly/2UpoW5F
🔹ریپازیتوری پروژه :
https://github.com/xhafan/legacy-to-coreddd
کمپانی اینتل اخیرا از پردازنده‌های جدید نسل یازدهمی خود رونمایی کرد. این شرکت همزمان با عرضه پردازنده‌های مذکور به معرفی یک لوگوی مینیمالیستی جدید پرداخت. این لوگو سومین نمونه مورد استفاده توسط کمپانی تا به امروز محسوب می‌شود. این طراحی جدید جایگزین لوگوی قدیمی می‌شود که در آن واژه Intel درون یک دایره محصور شده است. لوگوی سابق از سال 2006 با اشکال مختلف از سوی کمپانی مورد بهره‌برداری قرار گرفته است.

همچنین لوگوی جدید با بهره‌گیری از الگوی طراحی مینیمالیستی‌تر برای کلیه محصولات کمپانی از سرورهای Xeon گرفته تا تراشه‌های حافظه Optane به نماد تجاری اینتل جانی تازه می‌بخشد.
❇️ مجموعه آموزش های Microservices در NET Core.

اگر در اینترنت به دنبال آموزش های Microservices گشته باشین متوجه میشین که اکثر مقالات یا به صورت کلی و عمومی هستند (نه مختص دات نت) و یا برای زبان های دیگه اند و در نهایت اونایی هم مختص دات نت باشن به صورت پراکنده در فضای اینترنت پخش شده اند

علاوه بر این، مبحث Microservices دارای موضوعات متعدد و بزرگی هست و نمیشه اون رو با یک یا چند مقاله جسته و گریخته یاد گرفت واسه همین به یک سری آموزش نیاز دارید.
همچنین بعد از یادگیری مفاهیم پایه این مبحث، بهترین چیزی که میتونه شما رو بر روی این موضوع مسلط کنه، بررسی سورس نمونه پروژه های واقعی که بر پایه Microservices و NET Core. نوشته شده اند هست

🔰ریپازیتوری زیر سعی کرده بهترین آموزش های Microservices که مختص NET Core. هستند رو گردآوری کنه و در پایان لیستی از پروژه های سورس باز گیتهاب که با این معماری نوشته شده اند رو جمع آوری کنه

اگر علاقمند به یادگیری Microservices در NET Core. هستید این بهترین منبع رایگانی هست که میتونه به شما کمک کنه

https://github.com/mjebrahimi/Awesome-Microservices-NetCore
__________
#یک_نکته

ترجیحا متد های async را به روش sync و توسط Task.Wait و Task.Result فراخوانی نکنید زیرا باید block شدن ترد جاری شده و حتی میتواند باعث dead-lock شود.

ولی اگر جایی مجبور شدید به این صورت استفاده کنید (مثلا در سازنده کلاس زیرا نمی توان async/await استفاده کرد) به جای
task.Wait();
var result = task.Result;
حتما حتما از روش زیر استفاده کنید
var result = task.GetAwaiter().GetResult();

این روش دقیقا مانند روش اول است حتی بحث dead-lock و blocking ترد هم صادق است ولی ...
در روش اول اگر خطایی رخ دهد استثنای صادر شده را در یک AggregateException محصور شده پرتاب میکند که بررسی Detail آن سخت تر و نامفهوم تر است ولی در روش دوم اگر خطایی رخ دهد یک Exception معمولی پرتاب میشود

منابع :
https://codurance.com/2018/12/06/wait-and-getawaiter/
https://stackoverflow.com/questions/17284517
_______________
🔰 نمونه مثالی از ASP.NET Core و Entity Framework Core به همراه معماری DDD و CQRS و Event Sourcing

🔸تکنولوژی ها و کتابخانه های استفاده شده :
- ASP NET Core 2.2 (with .NET Core 2.2)
- ASP NET MVC Core
- ASP NET WebApi Core
- ASP NET #Identity Core
- Entity Framework Core 2.2
- .NET Core Native DI
- #AutoMapper
- #FluentValidator
- #MediatR
- #Swagger UI
🔹معماری و پترن های استفاده شده :
- Full architecture with responsibility separation concerns, #SOLID and #Clean_Code
- #DDD : Domain Driven Design (Layers and Domain Model Pattern)
- #Domain_Events
- #Domain_Notification
- #CQRS (Imediate Consistency)
- #Event_Sourcing
- #UnitofWork
- #Repository and Generic Repository

🔰ریپازیتوری پروژه :
https://github.com/EduardoPires/EquinoxProject
برنامه your phone مایکروسافت هم اکنون اپلیکیشن های اندروید را بر روی ویندوز باز میکند.
این ویژگی کاربرد بالایی دارد و به شما اجازه می‌دهد که برنامه‌های موبایل را بر روی کامپیوتر خود اجرا یا پین کنید. مایکروسافت این قابلیت را اکنون منتشر کرده، اما فعلاً نمی‌توانید چندین برنامه را بصورت همزمان اجرا کنید. اگرچه این محدودیت برای کاربران وجود دارد اما می‌توان از یک اپلیکیشن موبایل را در کنار یک برنامه کامپیوتر استفاده کرد.

ویژگی‌ جدید برنامه Your Phone تا این لحظه بصورت انحصاری به وسیله گوشی‌های سامسونگ پشتیبانی می‌شود. بطور دقیق، استفاده از این قابلیت به گوشی‌های گلکسی S9 و دستگاه‌های جدیدتر، گلکسی نوت 9 و مدل‌های جدیدتر، گوشی‌های منعطف سامسونگ و تعدادی از گوشی‌های سری گلکسی A محدود می‌شود.
3️⃣1️⃣ سطح معلومات خود رو مدام افزایش دهید، توانایی درک مسائل و حل آن‌ها بسیار مهم است.

4️⃣1️⃣ به‌روز رسانی ابزار‌ها را جدی بگیرید و مدام مستندات مراجع رو مطالعه کنید.

5️⃣1️⃣ زبان‌های برنامه‌نویسی را ابزار‌های موجود در جعبه ابزار خود بدانید و از هر کدام در جای مناسب استفاده کنید.

6️⃣1️⃣ شکرگزار باشید و از تلاش منصرف نشوید، من قبلاً در مقالات و کتاب‌های خود به این موضوع اشاره کرده‌ام، زمانی که خسته شده‌اید و احساس می‌کنید توان ادامه ندارید، در این لحظه شک نکنید، که شما به موفقیت بسیار نزدیک شده‌اید.

#نکته #پند #توصیه #نکات #مشاوره #رایگان #برنامه‌نویس #برنامه‌نویسی #مشتری #اصول
شرکت مایکروسافت در پروژه ای موسوم به پروژه Natick پس از دو سال اقدام به بیرون آوردن یک مرکز داده که در بستر دریا قرار داده بود، کرده و متوجه تفاوت عملکردی محسوس آن با مراکز داده موجود روی خشکی شده است. بله، مایکروسافت پس از دو سال دیتاسنتر زیر آب خود را با نتایج امیدوار کننده به سطح زمین آورد که حالا نتایجش امیدوار کننده به نظر می رسد.
معرفی کتابخانه EFCore.BulkExtensions
در سری #معرفی_اکستنشن_های_کاربردی_EFCore
Entity Framework Core Bulk Batch Extensions for Insert Update Delete and Read (CRUD) operations on SQL Server

خیلی وقتا نیاز میشه یک مرتبه حجم زیادی از رکورد ها رو توسط EFCore ذخیره کنین (مثلا import کردن از یه فایل excel)
در حالت عادی (متد Add و یا AddRange)، رکورد های شما به صورت تکی Insert میشه و سرعت بالایی نداره، بر خلافش اما، در روش Bulk Insert، همه رکورد ها به صورت یکجا Insert میشن و سرعت بسیار بسیار بالایی داره این روش (حتی تا 20 برابر سریع تر!)

این کتابخونه بی نظیر، قابلیت انجام عملیات Bulk و Batch رو در EF Core فراهم میکنه و از async هم پیشتیبانی میکنه :
- Bulk operations (Insert, Update, Delete, Read, Upsert, Sync)
- Batch operations (Delete, Update)

* برای مقایسه پرفرمنس و تفاوت سرعت بین روش عادی و Bulk هم تصویر پست گویای همه چی هست

لینک ریپازیتوری + مثال و توضیحات :
https://github.com/borisdj/EFCore.BulkExtensions

#Bulk #EFCore #Performance
در اتفاقی غیرمنتظره، انویدیا ساعاتی پیش اعلام کرد نسخه‌ی فعلی SLI را پایان راه می‌رساند. SLI به شما امکان می‌دهد بیش از یک کارت گرافیک انویدیا را به‌صورت هم‌زمان روی سیستم نصب کنید تا به قدرت گرافیکی بهتر برای اجرای بازی و دیگر اهداف دست یابید. انویدیا می‌گوید از تاریخ ۱ ژانویه‌ی ۲۰۲۱ (۱۲ دی ۱۳۹۹) به‌بعد، پروفایل درایور جدید SLI را برای کارت‌های گرافیک سری RTX 2000 منتشر نمی‌کند.

تیم سبز می‌گوید پیش‌نیازها و ابزارهای لازم را دراختیار توسعه‌دهندگان بازی‌ها و موتور‌های بازی‌سازی قرار می‌دهد و این یعنی استفاده از SLI منوط به این است که توسعه‌دهنده، بهینه‌سازی‌های خاصی در بازی اعمال کند. انویدیا می‌گوید با ظهور APIهای گرافیکی سطح پایینی نظیر دایرکت‌ایکس و Vulkan، توسعه‌دهندگان می‌توانند پشتیبانی از SLI را به‌صورت بومی به بازی‌های خود اضافه کنند و نیاز به پروفایل درایو SLI مستقل را از بین ببرند.

انویدیا در بیانیه‌ی مطبوعاتی جدید خود اعلام کرد برای GeForce RTX 3090 و دیگر کارت‌های گرافیکی که در آینده عرضه می‌شوند و توانایی استفاده از SLI را دارند، SLI تنها درصورتی پشتیبانی می‌شود که توسعه‌دهنده‌ی بازی، پیش‌نیازهای آن را درون بازی خود پیاده‌سازی کرده باشد. آن‌دسته از بازی‌های دایرکت‌ایکس ۱۲ که به‌صورت بومی از SLI پشتیبانی می‌کنند شامل Shadow of the Tomb Raider و Civilization VI و Sniper Elite 4 و Gears of War 4 و Ashes of the Singularity: Escalation and Hitman می‌شوند.

این اتفاق چه معنایی برای SLI دارد؟ طی چند سال گذشته، انویدیا بهبودهای خاصی در SLI اعمال نکرد و به‌نظر می‌رسید توجه چندانی به آن نشان نمی‌دهد. کارت‌های گرافیک سری GTX 900 آخرین معماری انویدیا بودند که به‌طور کامل از SLI پشتیبانی می‌کردند؛ به‌خصوص پیکربندهایی ویژه‌ی SLI دو و سه طرفه.
❇️ معرفی Awesome های NET. و NET Core.

پیشنهاد میکنم یه چرخی توش بزنین ببینین چه کتابخونه هایی واسه چه کارایی هست، چیا رو بلد نیستین و... کلا دنیا دست کیه!

https://github.com/quozd/awesome-dotnet

https://github.com/thangchung/awesome-dotnet-core
______________
مایکروسافت امروز با انتشار ویدئویی از کاربران خواست به میترا عزیزی راد بپیوندند و در زمینه هوش مصنوعی و بازاریابی نوآوری به آن کمک کنند.
مایکروسافت: به میترا عزیزی راد ، CVP ما در زمینه هوش مصنوعی و بازاریابی نوآوری بپیوندید ، زیرا او مرحله مجازی را در #MSIgnite طی می کند تا درباره رویکرد مایکروسافت در زمینه نوآوری و چگونگی روندهای اصلی در هوش مصنوعی به تحول مشاغل کمک کند.
مقایسه کارآیی روش‌های مختلف جایگزین کردن حروف در یک رشته در برنامه‌های NET.

چند وقت با وحید نصیری dotnettips.ir واسه یکی از ریپازیتوری هاش در مورد یه موضوع performance ایی بحث میکردیم و من یه Sample زدم براش
https://github.com/mjebrahimi/Micro-Optimization-Samples/tree/master/Replace-CharArray-Benchmark

🔸حالا وحید عزیز زحمت کشیدند و یه مقاله آموزشی کامل درباره این موضوع تهیه کرده
هرچند که این موضوع micro optimization ایی هست و به درد جونیور یا میدل ها نمیخوره ولی به سنیور ها خوندنشو پیشنهاد میکنم
https://www.dotnettips.info/post/3242

🔹در اینجا از Span برای افزایش سرعت و همچنین کاهش میزان memory allocation استفاده کردم
از این تکنیک جهت کار با رشته ها توی وب سرور Kesterl به شدت استفاده شده و میزان زیادی از پرفرمنسش رو مدیون این تکنیک هست

توی این ریپو برخی نکات micro optimization ایی که بهش برمیخورم و بنچمارک میگیرم رو نگهداری میکنم
دیدن خالی از لطف نیست و نکات جالب و advance ایی توش هست
https://github.com/mjebrahimi/Micro-Optimization-Samples
_______________
قابلیت Meet Now اسکایپ به ویندوز ۱۰ اضافه میشود

ما در مطلبی موضوعی نوشته بودیم که مایکروسافت جلسات اسکایپ را رایگان کرد. هم اکنون همان قابلیت Meet Now را مایکروسافت در آپدیت بعدی بطور کامل به ویندوز ۱۰ اضافه میکند. یعنی نیازی به نصب برنامه برای شرکت در جلسات نخواهید داشت و با ویندوز ۱۰ مستقیما وارد جلسه خواهید شد. ویژگی جدید ویندوز ۱۰…

جهت مشاهده مطلب روی لینک زیر بزنید

#اخبار_فناوری

#Meet_Now #skype #Windows_10 #اسکایپ #جلسه_آنلاین #ویندوز_10

https://www.lunatech.ir/?p=8169
❇️ کیفیت پایین یعنی سرعت پایین 👌

کدی پرفرمنس خوبی داره که قطعا کیفیت خوبی داشته باشه (پیچیدگی کم - خوانایی بالا - تست پذیری - توسعه پذیری و...)

🔰 چندتا از بهترین مقالات Code Quality (معیار های کد با کیفیت)

https://www.perforce.com/blog/sca/what-code-quality-and-how-improve-it

https://www.sealights.io/test-metrics/code-quality-metrics-is-your-code-any-good/

https://www.it-cisq.org/standards/code-quality-standards/
💡💡دانستنیها💡💡

آیا میدانستین IDE جذاب و پر طرفدار Visual Studio Code با زبان JavaScript توسعه داده شده است و از طریق محیطی بنام Electron.js به نرم افزار دسکتاپی بدل شده.

________
👍1