DotNetZoom – Telegram
DotNetZoom
2.97K subscribers
342 photos
18 videos
36 files
606 links
DotNetZoom
💎 Everything about .NET

ارتباط با مدیر و تبلیغات آگهی استخدام:
@mjebrahimi

لینک گروه ASPNET Core:
https://news.1rj.ru/str/+ufG25x7lVFgyYTNk
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

@IranAspMvc
معرفی ابزار #AutoRest
کد جنریتوری برای OpenAPI Specification که از زبان های مختلفی از جمله C#, Go, Java, Node.js, TypeScript, Python, Ruby و PHP پشتیبانی میکند

اگه توی پروژه های API تون از ابزاری مثل Swagger که بر اساس OpenAPI Specification میاد و از روی API هاتون، مستندات استانداردی رو تهیه میکنه، استفاده میکنید
میتونین در کنارش توسط ابزار AutoRest، کد های لازم برای ارتباط با API هاتون رو در سمت کلاینت در زبان های مختلف به راحتی تولید کنید
در واقع این ابزار میاد و از روی مستندات API هاتون، SDK های لازم سمت کلاینت رو (مثلا برای TypeScript) می سازه و توی پروژه Angular تون میتونین به راحتی از API هاتون استفاده کنین.

ریپازیتوری پروژه :
https://github.com/Azure/autorest
ویدئو آموزشی :
https://bit.ly/2RPEX6c

#Swagger #OpenAPI #Rest #Restful #API #CodeGenerator
_______________
@IranAspMvc
یه سوال جالب و مرتبط با برنامه نویسی! آیا شما به عنوان یه برنامه نویس، فکر میکنین برای تخلیه ذهنی و رفع دغدغه های فکری، Game میتونه کمک کنه؟ آیا خودتون هم گیمر هستین؟
anonymous poll

2- بله کمک میکنه ولی گیمر نیستم – 138
👍👍👍👍👍👍👍 39%

1- بله کمک میکنه، گیمر هم هستم – 108
👍👍👍👍👍 31%

4- خیر نه کمک میکنه و نه گیمر هستم – 89
👍👍👍👍👍 25%

3- خیر کمک نمیکنه ولی گیمر هستم – 16
👍 5%

👥 351 people voted so far.
به عنوان یه برنامه نویس بطور میانگین چه مدت از وقتتون در روز رو صرف Game میکنین؟
anonymous poll

1- اصلا بازی نمی کنم – 246
👍👍👍👍👍👍👍 60%

2- کمتر از 1 ساعت – 89
👍👍👍 22%

3- بین 1 تا 2 ساعت – 53
👍👍 13%

5- بیش از 3 ساعت – 12
▫️ 3%

4- بین 2 تا 3 ساعت – 7
▫️ 2%

👥 407 people voted so far.
❇️ لطفا به هر دو نظر سنجی بالا جواب بدید👆
میتونه به نتایج جالبی منجر بشه 😉
This media is not supported in your browser
VIEW IN TELEGRAM
کتابخانه تبدیل عدد به حروف فارسی

ریپازیتوری مربوطه با استفاده از Angular Pipe و TypeScript
https://github.com/EbrahimHamzeh/NumberToPersian
ریپازیتوری مربوطه برای JavaScript :
https://github.com/mahmoud-eskandari/NumToPersian
______________
@IranAspMvc
DotNetZoom via @vote
یه سوال جالب و مرتبط با برنامه نویسی! آیا شما به عنوان یه برنامه نویس، فکر میکنین برای تخلیه ذهنی و رفع دغدغه های فکری، Game میتونه کمک کنه؟ آیا خودتون هم گیمر هستین؟ anonymous poll 2- بله کمک میکنه ولی گیمر نیستم – 138 👍👍👍👍👍👍👍 39% 1- بله کمک میکنه، گیمر…
نتایج #جالب #نظرسنجی در مورد #Game
http://bit.ly/2sBqTzc
🔰 چند روز پیش نظرسنجی در مورد Game برگزار کردیم که به نتایج جالبی رسیدیم. جامعه آماری مون بیش از 300 نفر بوده و جالبه که تا این لحظه به اعداد رندی هم رسیدیم !

70% برنامه نویسا فک میکنن Game به تخلیه فکریشون کمک میکنه

30% معتقدن کمک نمیکنه

با اینکه اکثر برنامه نویسا با گیم موافقند ولی 60% شون اصلا بازی نمیکنن

40% برنامه نویسا گیمر هم هستند

21% برنامه نویسا ، کمتر از 1 ساعت در روز صرف Game میکنن (13% بین 1تا2 ساعت در روز)

این آمار نتایج قابل ملاحظه ای درباره مهم بودن Game در بین برنامه نویسا رو نشون میده و اینکه اکثرا تمایل دارند ذهنشون رو تخلیه فکری کنند
راه های مختلفی برای تخلیه فکری وجود داره ولی ظاهرا، گیم یکی از پرطرفدار ترین اون هاست
این که تمام شرکت های بزرگ مثل Google, Facebook و Microsoft هم این قضیه رو به طور جدی تو محیط شرکت اجرایی کردند هم میتونه دلیلش همین اهمیت گیم (یا به طور کلی تر تخلیه فکری) بین برنامه نویسا باشه
قطعا اگه برنامه نویسا، هر روز بعد از کار با ذهنی تخلیه شده از هیاهوی کد و باگ و ارور و... + کمی هیجان، محل کار رو ترک کنند به رضایت شغلی بیشتری توی بلند مدت دست پیدا میکنند
پس بهتره از خودمون شروع کنیم، ما هایی که شرکتی داریم یا سرپرست تیم هست یا به هر طریقی اختیاراتش رو داریم، این بحث رو توی شرکت پیاده کنیم، البته حساب شده، تا اثر سوء نداشته باشه :)
@IranAspMvc
#فیسبوک، الگوریتم #فشرده_سازی خود را در گیتهاب عمومی کرد

پروژه #Zstandard یا به اختصار zstd یک الگوریتم فشرده سازی بدون افت کیفیت با سرعت بالا است که فیسبوک آن را توسعه داده و برای مصارف خود مانند فشرده سازی دیتا و تصاویر و... استفاده میکرد و به تازگی سورس آن را به صورت متن باز منتشر کرده است
توضیحات بیشتر + بنچمارک :
https://facebook.github.io/zstd/
بنچمارک مقایسه zstd با الگوریتم های هم رده دیگه، نشون میده این الگوریتم دارای بیشترین میزان فشرده سازی (Compress Ratio) و سرعت نسبتا خوبی است.
در واقع از جمله سریع ترین الگوریتم ها می توان به LZ4 و برای قوی ترین الگوریتم فشرده سازی به LZMA اشاره کرد ولی الگوریتم Zstd تعادلی میان این دو است.
لینک ریپازیتوری :
https://github.com/facebook/zstd
این کتابخانه با زبان C نوشته شده است و چندین API جهت استفاده دارد. همچنین Wrapper هایی به زبان های زبادی از جمله C#, Java, PHP, Python, NodeJs و ... برای استفاده از API های این کتابخانه فراهم شده است.
در پست بعدی به معرفی کتابخانه های دات نتی آن و ابزار های استفاده از این الگوریتم می پردازیم.
@IranAspMvc
معرفی برنامه ها و کتابخانه های دات نتی جهت استفاده از الگوریتم فشرده سازی #Zstandard

نسخه مخصوص برنامه 7zip با پشتیبانی از الگوریتم #Zstd و چندین الگوریتم دیگر : Brotli, Fast-LZMA2, Lizard, LZ4, LZ5
لینک ریپازیتوری پروژه (شامل بنچمارک الگوریتم ها) و دانلود نسخه 64 بیتی
https://github.com/mcmilk/7-Zip-Zstd
و یا پلاگین مخصوص 7zip جهت استفاده از Zstd
http://www.tc4shell.com/en/7zip/modern7z/

2 کتابخانه سی شارپی جهت استفاده از Zstd در دات نت
https://github.com/skbkontur/ZstdNet
https://github.com/bp74/Zstandard.Net
طرز کارشون به این صورته که آرایه ای از byte ها رو دریافت کرده و فشرده سازی میکنن. مثال کامل هم داخلش هست
شما میتونین تصاویر یا فایل هایی که میخواین ذخیره کنین (چه توی دیتابیس و چه توی هارد) رو byte[] اش رو بخونین، فشرده کنین و سپس ذخیره کنین
@IranAspMvc
نگاشت خودکار اشیاء توسط #AutoMapper و #Reflection - ایده شماره 2

لینک مقاله :
https://www.dotnettips.info/post/2988
لینک ریپازیتوری :
https://github.com/mjebrahimi/auto-mapping

- در قسمت قبل، یک کلاس جنریک را به نام BaseDto ایجاد کردیم که با ارث بری Dto‌های پروژه از این کلاس، علاوه بر متد‌های ToEntity و FromEntity جهت ساده سازی عملیات نگاشت، Mapping‌های لازم بین Dto‌ها و Entity‌های مربوطه، توسط Reflection به صورت خودکار انجام می‌شد.
- در این قسمت می‌خواهیم مکانیزم Mapping خودکار را کمی تغییر داده و قابلیت سفارشی سازی Mapping‌ها را نیز فراهم کنیم.

#پیشنهاد میکنم حتما بخونین و لذت ببرین :)
@IranAspMvc
پروژه ای جهت پیاده سازی ایده های خلاقانه در ASPNET Core
https://github.com/aspnet/Entropy/

بررسی سورس کد این پرژه، ایده‌های بسیار جالبی به شما میدهد. پیشنهاد میکنم حتما کد هاشو بررسی کنید. نکات آموزشی زیادی داخل هست.

چند پروژه منتخب :
- پروژه Mvc.GenericControllers : ساخت کنترولر برای Entity‌ها بدون کدنویسی!
- پروژه Mvc.CustomRoutingConvention : مسیریابی بر اساس namespace کنترولر‌ها
- پروژه Localization.EntityFramework : مدیریت منابع چند زبانگی توسط EntityFramework
@IranAspMvc
تقویم شمسی، قمری و میلادی به همراه انتخاب‌گر زمان و تاریخ برای Kendo UI
https://github.com/kitcat2014/KendoUI_Gregorian-Persian-Hijri_Calendar-DatePicker-TimePicker
_______________
@IranAspMvc
This media is not supported in your browser
VIEW IN TELEGRAM
#آیا_میدانستید

آیا میدانستید اگر در یک ریپازیتوری Github، دکمه "T" را فشار دهید، صفحه ای برای جستجوی فایل ها بر اساس "نام و مسیر" برای شما باز میشود؟
بدون شک این راحت ترین و سریع ترین راه جستجوعه برای زمانی که میدونین دنبال چه فایلی میگردین😎

@IranAspMvc
معرفی کتابخانه 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
@IranAspMvc
دانلود کتاب رایگان TypeScript for C# Programmers به صورت PDF
لینک دانلود :
https://ufile.io/ydp6c
@IranAspMvc
مجموعه آموزش ویدئویی فارسی زامارین اندروید به صورت رایگان منتشر شد. از طریق لینک زیر می تونید همه قسمت ها را آنلاین ببینید یا دانلود کنید.
مدرس: ابوالفضل رجب پور
https://rajabpour.net/?p=81
سرفصل ها:
۰- مقدمه ای بر زامارین Xamarin
۱- چرا زامارین مهم است – یک داستان واقعی
۲- آموزش نصب زامارین در ویژوال استودیو – قسمت اول
۲- آموزش نصب زامارین در ویژوال استودیو – قسمت دوم
۳- نصب شبیه ساز جنی موشن Genymotion
۴- ساخت یک برنامه ساده
۵- پلتفرم زامارین
۶- ساختار یک برنامه اندروید
۷- کنترل های طراحی صفحات در اندروید
۸- ساختار پروژه فروشگاه کتاب
۹- ساخت صفحه نمایش جزئیات کتاب
۱۰- متصل کردن دیتا به صفحه نمایش کتاب
۱۱- ساخت یک لیست ویو ساده listview
۱۲- ساخت لیست ویو سفارشی custom listview
۱۳- انتقال دیتا بین اکتیویتی ها
۱۴- ساخت یک وب سرویس rest در asp.net
۱۵- فراخوانی وب سرویس rest در زامارین
۱۶- ذخیره سازی دیتای ساده در زامارین
۱۷- ذخیره سازی دیتا در زامارین با استفاده از sqlite
۱۸- صفحه ثبت نام و سفارش کتاب
۱۹- سبک متریال دیزاین اندروید material design
۲۰- کار با دفترچه تلفن در اندروید
۲۱- ارسال پیامک از طریق کد و دریافت پیام
۲۲- کار با گالری تصویر در اندروید
۲۳- انتشار برنامه اندروید در کافه بازار

#آموزش #فارسی #زامارین #اندروید
خااااار و مادر سرعت توی عملیات Linq با کتابخانه LinqFaster !

این کتابخانه با استفاده از تکنولوژی SIMD (ساده بگم : پردازش برداری موازی و فوق سریع) و پردازش موازی با Multi-Threading اومده و متد های کمکی مشابه ایی نوشته که عملیات Linq رو با سرعت بالا و مصرف حافظه کمتر انجام میده.
فقط کافیه بنچمارک رو توی تصویر ببینین :)

LinqFaster
متد‌های کمکی Linq با پرفرمنس بالا
https://www.nuget.org/packages/LinqFaster/

LinqFaster.SIMD
متد‌های کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD
https://www.nuget.org/packages/LinqFaster.SIMD/

LinqFaster.Parallel
متد‌های کمکی Linq با پرفرمنس بالا با استفاده از پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.Parallel/

LinqFaster.SIMD.Parallel
متد‌های کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD و پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.SIMD.Parallel/

لینک ریپازیتوری :
https://github.com/jackmott/LinqFaster

#Linq #Performance
@IranAspMvc
کتابخانه EasyCaching : قابلیت Caching با امکانات زیاد اما یکپارچه و آسان!
https://github.com/dotnetcore/EasyCaching
این کتابخانه، تکنولوژی‌ها و کتابخانه‌های زیر را در راستای ایجاد یک Caching کامل و با امکانات زیاد، یکپارچه کرده و استفاده از آنها را آسان می‌کند.
Caching Providers
- Memory
- Redis
- SQLite
- Memcached
- Hybrid(Combine local caching and distributed caching)
- Disk
Serializer Extensions
- BinaryFormatter
- MessagePack
- Json
- ProtoBuf
Caching Interceptor
- AspectCore
- Castle
Caching Bus
- Redis
- RabbitMQ
_______________
@IranAspMvc
کتابخانه EasyCaching : قابلیت #Caching با امکانات زیاد اما یکپارچه و آسان!
https://github.com/dotnetcore/EasyCaching
این کتابخانه، تکنولوژی‌ها و کتابخانه‌های زیر را در راستای ایجاد یک Caching کامل و با امکانات زیاد، یکپارچه کرده و استفاده از آنها را آسان می‌کند.
Caching Providers
- #Memory
- #Redis
- SQLite
- #Memcached
- Hybrid(Combine local caching and distributed caching)
- Disk
Serializer Extensions
- BinaryFormatter
- #MessagePack
- Json
- #ProtoBuf
Caching Interceptor
- AspectCore
- Castle
Caching Bus
- #Redis
- #RabbitMQ
_______________
@IranAspMvc