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

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

لینک گروه ASPNET Core:
https://news.1rj.ru/str/+ufG25x7lVFgyYTNk
Download Telegram
❇️ پیشنهاد نام دامنه وبسایت (Domain Name Generator)

هممون موقع انتخاب کردن نام دامنه یک سایت یا برند همیشه به مشکل میخوریم و نمیدونم چی انتخاب کنیم
شاید یه سری کلمات و ویژگی ها تو ذهنمون هست ولی نمیدونم چطور ترکیبش کنیم که خوب در بیاد، طولانی هم نشه و...

🔹امروز میخوام چندتا ابزار بهتون معرفی کنم که تو این زمینه میتونن کمکمون کنن.
طرز کارش اینطوریه که شما اسم یا اسم هایی که تو ذهنتون هست رو بهشون میدین و اونا بر اساس الگوریتم های مختلف زبانی (مثل مخفف کردن، ترکیب اسم ها و حذف حروف تکراری، افزودن پیشوند ها یا پسوند ها به اسم و...) ، اون کلمات رو با هم ترکیب میکنن و بر اساس ویژگی هاشون به شما پیشنهاد میدن.
همچنین خودشون هم چک میکنن که این دامنه آزاد هست یا خیر.

🔸مثلا وقتی کلمه dotnet رو بدی، پسوند ify و ly رو بهش میچسبونه و نام dotnetify و dotnetly رو بهتون پیشنهاد میده
یا مثلا وقتی کلمه docker رو بدی، پسوند me رو بهش میچسبونه و نام dockerme رو بهتون پیشنهاد میده
خلاصه میتونه کلی ایده بهتون بده که چطوری میتونین یه نام دامنه کوتاه و جذاب پیدا کنین

🔰چهارتا از بهترین هاشون :
https://www.panabee.com/
https://domainwheel.com/
https://www.namemesh.com/
https://namelix.com/
______________
@DotNetZoom
❇️ نکاتی در مورد تست نویسی روی EF6 / EFCore توسط دیتابیس InMemory

🔸یکی از مزیت های الگوی Repository، قابلیت تست پذیری لایه دیتا به واسه ساختن ریپازیتوری های Fake هست. در واقع ریپازیتوری هایی میسازیم که از (مثلا IRepository) ارث بری میکنه ولی به جای ذخیره سازی در بانک اطلاعاتی، دیتا ها رو به صورت InMemory ذخیره و واکشی میکنه
همچنین روش های دیگری برای اینکار وجود داره مثل Mock کردن DbContext یا DbSet که هر کدوم دردسر ها و محدودیت های خودشو داره تا جایی که حتی بخشیدن عطاش به لقاش منطقی تره
اینجا لیستی از بهترین منابعش رو گلچین کردم (1 و 2 و 3 و 4 و 5 و 6 و 7 و 8 و 9) تا واسه خودمم آرشیو بمونه

🔻توی EFCore به دلیل وجود پروایدر InMemory نیازی به این کار نیست و عمل تست نویسی رو برامون خیلی راحت کرده ولی توی EF6 چون پروایدر InMemory نداریم مجبوریم تن به یکی از این بدیم.

🔹پروژه سورس باز و رایگان Effort یک پروایدر InMemory مخصوص Entity Framework هست (که از نسخه های 5 و 6 EF پشتیبانی میکنه) و امکان Unit Test نویسی برای EF رو براحتی براتون فراهم میکنه و سعی کرده
این کتابخونه از برای دیتابیس خودش از NMemory استفاده میکنه که یک Engine دیتابیس رابطه ای InMemory هست و سعی کرده تا حد زیادی رفتار های یک دیتابیس واقعی رو شبیه سازی کنه و از مواردی از جمله Indexes و Foreign Key Relations و Transaction Handling and Isolation و Stored Procedures و... پشتیبانی میکنه پس به نسبت بقیه روش ها (مثل یه List استاتیک!) در مورد شبیه سازی دیتابیس، رفتار بسیار بسیار قابل اعتماد تری ارائه میده

🔰کار باهاش هم خیلی راحته و از لینک و دردسر ها و محدودیت های پیاده سازی روش های قبلی رو نداره
https://entityframework-effort.net/overview
واسه مطالعه بیشتر هم لینک های زیر خوبن (اینجا و اینجا و اینجا)

نکته:
🔸تمام روش های بالا و اساسا تمام دیتابیس های InMemory (حتی پروایدر InMemory خود EFCore) یه مشکل اساسی دارن و اون هم اینه که هیچ کدوم نمیتونن 100 درصد رفتار یک دیتابیس واقعی رو شبیه سازی کنن. بدیهی هم هست چون که هیچ کدوم نمیتونن تمام قابلیت های دیتابیس واقعی پروژه شما (مثلا SqlServer) رو داشته باشن.

این کمبود ها که تعدادشونم کم نیست بعضی مواقع باعث مشکل میشن مثلا در مورد دیتابیس InMemory خود EFCore :
▪️شما نمیتونین SP های خودتون رو روش اجرا کنین
▪️شما نمیتونین از Transaction های دیتابیسی استفاده کنین
▪️شما نمیتونین از Function های دیتابیسی و یا کلا هر قابلیت منحصر به دیتابیس تون استفاده کنین
▪️قیودی که فقط توی دیتابیس واقعی اعمال میشن و ...
▪️حتی یک کوئری یکسان روی InMemory و دیتابیس واقعی میتونه نتایج متفاوتی داشته باشه (بدلیل تفسیر متفاوتی ازش توسط پروایدر مربوطه انجام میشه)
▪️در واقع تست درون حافظه‌ی LINQ to Objects با تست واقعی LINQ to Entities که روی یک بانک اطلاعاتی واقعی اجرا می‌شود، الزاما نتایج یکسانی نخواهد داشت
▪️حتی اگه یه متدی که معادل SQL ایی نداره توی کوئری هاتون استفاده کنین، هنگام استفاده از InMemory خطا نمیده ولی موقع دیتابیس واقعی خطای عدم امکان تفسیر به معادل Sql میده

🔹در نتیجه همه اینها پاس شدن یک تست با دیتابیس InMemory الزاما دلیل بر صحت عملکرد پروژه و به معنای درست کار کردن برنامه در دنیای واقعی نیست. و ممکنه همون تست با دیتابیس واقعی به خطا بخوره.

🔸در نهایت هرچند که دیتابیس InMemory رفتار قابل اطمینانی از یه دیتابیس رو نمیتونه شبیه سازی کنه ولی در مورادی که به این تناقض ها بخورد نمیکنیم (معمولا در حد CRUD و یه Storage) میتونه خیلی مفید و کاربردی باشه. فقط نکته اش اینه که حواسمون به این کمبود ها باشه و توصیه میشه که حتما در این گونه موارد که از Integration Test به همراه یک دیتابیس واقعی استفاده کنیم

🔻نظر شما در این باره چیه؟ توی پست های بعدی توضیحات بیشتری خواهم داد.
___________________
@DotNetZoom
🔰 #آیا_میدانستید

که نوع Dictionary در سی شارپ، آیتم ها رو به همون ترتیبی که اضافه میکنین، نگه نمیداره⁉️

https://dotnetfiddle.net/cv49I2
___________________
@DotNetZoom
This media is not supported in your browser
VIEW IN TELEGRAM
🔰 معرفی FilePond : یک پلاگین اپلود زیبا

به همراه کتابخانه یکپارچه شده برای jQuery و Angular و React و Vue

[Demo] https://pqina.nl/filepond
https://github.com/pqina/filepond
____________________
@DotNetZoom
❇️ استفاده از MongoDb در سیستم احراز هویت ASP.NET Core Identity

اگه توی پروژه ASPNET Core ایی تون از MongoDb استفاده میکنین و میخواین از سیستم احراز هویت Identity روش پیاده کنین
این کتابخونه (AspNetCore.Identity.MongoDbCore) کار یکپارچه سازیش رو براتون انجام میده

کتابخانه های زیادی برای پشتیبانی از MongoDb در Identity وجود دارند که من همشون رو بررسی کردم و این بهترینشون و کاملترینشون بود (بعدشم این یکی AspNetCore.Identity.Mongo)

🔰لینک ریپازیتوری گیتهاب (اموزششم توش هست)
https://github.com/alexandre-spieser/AspNetCore.Identity.MongoDbCore

#MongoDb #Identity
__________________
@DotNetZoom
#سری_معرفی_وسایت_های_برتر

معرفی 10 سایت های برتر (سری سوم)
در مورد
#C و NET Core. و ASP.NET Core

🔶 اگه مشتاق به یادگیری و مطالعه هستین این میتونه بهترین پست برای شما باشه. توی این سری پست ها هربار 10 وبسایت که از نظر سطح علمی و کیفیت محتوا، بروز و متنوع بودن بهترین هستند رو معرفی میکنم👌
اینا در واقع منابعی هستند که خودم معمولا دنبالشون میکنم

🔷 یادتون نره واسه رفقاتون بفرستید✌️
1️⃣ https://fullstackmark.com/
2️⃣ https://www.syncfusion.com/blogs/
3️⃣ https://weblog.west-wind.com/
4️⃣ https://www.blog.jamesmichaelhickey.com/
5️⃣ https://logcorner.com/
6️⃣ https://cmatskas.com/
7️⃣ http://www.tugberkugurlu.com/
8️⃣ https://dotnetcoretutorials.com/
9️⃣ https://damienbod.com/
🔟 https://chrissainty.com/
_________________
@DotNetZoom
Forwarded from کدهک
آموزش آپلود کردن فایل در ASP NET Core

در این ویدیو تمامی مراحل آپلود کردن فایل در ASP NET Core آموزش داده میشود. فایل با IFormFile از مرورگر کاربر دریافت میشود و در فولدر سرور کپی میشود. در ادامه با محدود کردن دسترسی به فایل آشنا میشوید.

https://codehaks.com/go/eoz
کتابخانه اعتبارسنجی FoolProof برای ASP.NET Core

خیلی وقتا لازم میشه یه سری اعتبارسنجی روی مقادیر ورودی کاربر داشته باشیم. مثلا مقدارش کمتر یا بیشتر از فلان مقدار نباشه و ... تو این شرایط معمولا خودمون میایم و یه Attribute Validation سفارشی ایجاد میکنیم (که تازه اعتبار سنجی سمت کلاینت با jQuery رو هم نداره و فقط سمت سرور چک میشه) ولی الان میخوام یه کتابخونه رو معرفی کنیم که کارتون رو خیلی راحت میکنه.

🔸کتابخانه FoolProof.Core تعداد زیادی Attribute برای اعتبار سنجی مقادیر کاربر داره که همگی علاوه بر Server-side از Client-side Validation هم پشتیبانی میکنن. نسخه قدیمی آن (foolproof) برای ASPNET MVC سابق است.
(آموزش استفاده از آن در سایت dotnettips) ولی این نسخه از ASPNET Core پیشتیبانی میکنه

🔹لیست Attribute های پشتیبانی شده:
✔️ Is
✔️ EqualTo
✔️ NotEqualTo
✔️ GreaterThan
✔️ LessThan
✔️ GreaterThanOrEqualTo
✔️ LessThanOrEqualTo
✔️ Improved required validators:
✔️ RequiredIf
✔️ RequiredIfNot
✔️ RequiredIfTrue
✔️ RequiredIfFalse
✔️ RequiredIfEmpty
✔️ RequiredIfNotEmpty
✔️ RequiredIfRegExMatch
✔️ RequiredIfNotRegExMatch
✔️ In
✔️ NotIn

🔰لینک پکیچ Nuget و مخزن گیتهاب
https://www.nuget.org/packages/FoolProof.Core/
https://github.com/rpgkaiser/FoolProof.Core

#FoolProof #Validation #اعتبارسنجی
__________________
@DotNetZoom
❇️ نمونه معماری پیاده سازی شده با ASP.NET Core و Angular و DDD

Architecture with .NET Core 3.1, ASP.NET Core 3.1, Entity Framework Core 3.1, C#, Angular 9.1, Clean Code, SOLID, DDD, Code Analysis, Docker and more.

🔸Technologies
✔️ .NET Core 3.1
✔️ ASP.NET Core 3.1
✔️ Entity Framework Core 3.1
✔️ C# 8.0
✔️ Angular 9.1
✔️ Typenoscript
✔️ JWT
✔️ FluentValidation
✔️ Scrutor
✔️ Serilog
✔️ Docker
✔️ Azure DevOps
✔️ ...
🔹Practices
✔️ Clean Code
✔️ SOLID Principles
✔️ DDD (Domain-Driven Design)
✔️ Unit of Work Pattern
✔️ Repository Pattern
✔️ ...

https://github.com/rafaelfgx/Architecture
________________
@DotNetZoom
معرفی Design Pattern ها به همراه مثال در زبان های مختلف

یکی از بهترین سایت هایی که میشه به عنوان مرجع برای #DesignPattern ها بهش نگاه کرد سایت زیر هست.

این سایت خیلی روون و ساده الگو های برنامه نویسی رو توضیح داده، براشون مثال زده و توی زبان های مختلفی از جمله #C و JavaScript و Java و Python و ... پیاده سازیشون کرده

1️⃣ https://refactoring.guru/design-patterns/catalog
2️⃣ https://www.dofactory.com/net/design-patterns

🔰2تا ریپوی زیر هم پیاده سازی ایی از این دیزاین پترن ها در سی شارپ هست
1️⃣ https://github.com/exceptionnotfound/DesignPatterns
2️⃣ https://github.com/HamidMosalla/CSharpDesignPatterns
_____________________
@DotNetZoom
Forwarded from کدهک
آشنایی با Docker

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

https://cutt.ly/ortrfXx
Forwarded from کدهک
آشنایی با Docker - قسمت دوم

در این ویدیو با استفاده از Docker دیتابیس Redis رو نصب و اجرا می کنیم
سپس از پروژه ASP NET Core یک Image داکر تهیه می کنیم.

https://tinyurl.com/cdhk-docker2
❇️ ابزار های کاربردی برای یک Web Developer
#جعبه_ابزار

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

🔹Image Compressor
🔸Javanoscript Minifer
🔹CSS Minifier
🔸JavaScript Beautifier
🔹Unminify HTML, CSS and JS
🔸Unminify/Formating JSON - Check/Validating JSON
🔹Browse JSON in TreeView
🔸Regex (Regular Expression) Tester and Highlighting
🔹Unicode Converter
🔸Url Decoder/Encoder
🔹Converter Toolbox
🔸Hash Text and File
🔹Web Developer Toolbox
🔸Check Domain and Whois
🔹IP to Location
🔸Website Traffic Statistics
🔹SEO Checker
🔸Rank Checker
🔹Analytics & Tracking
🔸Speed Checker and Performance Optimization
🔹Webiste Monitoring / Uptime Checker
🔸Text Compare / Difference Checker
🔹Port Checker
🔸DNS Checker
🔹DNS Lookup
🔸SSL/TLS Checker
🔹Security Checker
🔰آدرس ریپازیتوری گیتهاب
https://github.com/mjebrahimi/Awesome-Tools-For-WebDevelopers
____________________
@DotNetZoom
#سری_معرفی_وسایت_های_برتر

معرفی 10 سایت های برتر (سری چهارم)
در مورد
#C و NET Core. و ASP.NET Core

🔶 اگه مشتاق به یادگیری و مطالعه هستین این میتونه بهترین پست برای شما باشه. توی این سری پست ها هربار 10 وبسایت که از نظر سطح علمی و کیفیت محتوا، بروز و متنوع بودن بهترین هستند رو معرفی میکنم👌
اینا در واقع منابعی هستند که خودم معمولا دنبالشون میکنم

🔷 یادتون نره واسه رفقاتون بفرستید✌️

1️⃣ https://www.dotnetcurry.com/
2️⃣ https://referbruv.com/blog/
3️⃣ https://codingsight.com/
4️⃣ https://www.danylkoweb.com/
5️⃣ https://buildplease.com/
6️⃣ http://www.binaryintellect.net/
7️⃣ https://ranjeet.dev/
8️⃣ https://dontcodetired.com/blog
9️⃣ https://gunnarpeipman.com/
🔟 https://codeopinion.com/
_________________
@DotNetZoom
اپ رستوران با ASP.NET Core و معماری Microservices

Restaurant App is a sample open source e-Commerce application for ordering foods, powered by polyglot microservices architecture and cross-platform development using
✔️ ASPNET Core
✔️ EF Core
✔️ Microservices
✔️ Architecture
✔️ Xamarin Forms
✔️ Identity Server
✔️ Angular
✔️ React
✔️ Docker

🔰https://github.com/chayxana/Restaurant-App
_______________
@DotNetZoom
مدیریت دیتابیس های SQLite با SQLiteStudio

برنامه SQLiteStudio یکی از بهترین و محبوب ترین برنامه های مدیریت دیتابیس های SQLite هست که به صورت رایگان و Cross-Platform وجود داره.
https://github.com/pawelsalawa/sqlitestudio

🔸برنامه محبوب دیگر SQLiteBrowser نام داره که این هم رایگان و Cross-Platform هست
https://sqlitebrowser.org/
https://github.com/sqlitebrowser/sqlitebrowser

🔹اگرم خیلی کم سروکارتون به SQLite میافته و صرفا یه ابزار آنلاین خوب واسه کار باهاش نیاز دارین سایت SQLiteOnline بهترینشه
https://sqliteonline.com/
__________________
@DotNetZoom
❇️ کج فهمی های yield در سی شارپ❗️

کلمه کلیدی yield معمولا به اشتباه توی برنامه نویسای سی شارپ جا افتاده
اکثرا فکر میکنن که صرفا یه سینتکس راحت تر به جای پر کردن یه List و return کردن اون هست در صورتی که اصل ماجرا چیز دیگس!

🔸شاید تعجب کنین از شنیدن اینکه متدی که داخلش از yield return استفاده شده باشه مادامی که به دستورات اجرا کننده مانند foreach یا ToList یا FirstOrDefault و... نرسه، بدنه اش اجرا نمیشه (مشابه IQuerable) زمانی هم که اجرا میشه فقط به تعداد لازم گردش میکنه.
تصویر زیر پست رو ببینین تا کامل متوجه بشین

🔹در واقع قابلیت yield return به شما امکان به تعویق انداختن (deferred execution) کد های Iteration رو میده تا به جای اینکه Iteration در لحظه فراخوانی متد و به تعداد کامل انجام بشه در "زمان لازم" و به "تعداد لازم" گردش انجام بشه.
این کار باعث میشه Memory Allocation کمتری داشته باشین چرا که تعداد کمتری Iteration انجام میشه و زمانش هم به تعویق میافته.

🔰جهت مطالعه بیشتر لینک های زیر رو دنبال کنین
https://www.dotnettips.info/post/984
https://www.dotnettips.info/post/985
https://www.kenneth-truyers.net/2016/05/12/yield-return-in-c/
https://docs.microsoft.com/en-us/dotnet/csharp/iterators
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield
_______________
@DotNetZoom
Forwarded from کدهک
آشنایی با قابلیت های Blazor

در این ویدیو یک اپ CRUD پیاده شده با Blazor در حالت Server-side را بررسی می کنیم.

https://youtu.be/Px9WedDTjQg
❇️ نمونه پروژه ASP.NET Core با معماری Clean Architecture

ASP.NET Core 3.1 samples with
✔️ Angular 9.0 sample
✔️ React 16.13 sample
✔️ Vue 2.6 sample
✔️ Clean Architecture
✔️ Domain-Driven Design
✔️ CQRS
✔️ Event Sourcing
✔️ SOLID
✔️ Asp.Net Core Identity
✔️ Identity Server 4 Admin UI
✔️ Entity Framework Core
✔️ Blazor
✔️ Selenium E2E Testing
✔️ SignalR Notification
✔️ Hangfire Tasks Scheduling
✔️ Health Checks
✔️ Security Headers, ...

🔰https://github.com/phongnguyend/Practical.CleanArchitecture
_______
@DotNetZoom
#Interface #Pattern #DI

❇️از اینترفیس ها بیش از حد استفاده نکنید!

یکی از نشانه های برنامه نویسانِ بزرگ و حرفه ای، استفاده ی به جا، مناسب و به دور از اغراق، از مفاهیم و الگوهای برنامه نویسی است. هدف همه ی ما، داشتن کدی تمیز و خوانا، با قابلیت نگهداری بالا و امکانِ استفاده ی مجدد است .
خوشبختانه اینترفیس ها (Interface)، تحققِ بسیاری از این موارد را برایمان ممکن کرده اند. مخصوصا وقتی صحبت از تزریق وابستگی ها (Dependency Injection) و یا انجام آزمون های واحد (Unit Testing) به میان می آید، بدون کوچکترین تعلل به سراغ تعریف اینترفیس به ازای تک تک کلاس ها می رویم. اما آیا واقعا در تمامی موارد و سناریوها نیاز به تعریف این اینترفیس ها داریم؟!

اگر شما هم از آن دسته از برنامه نویسانی هستید، که عادت به تعریف اینترفیس ها و پیچیده کردنِ روال، بدون در نظر گرفتن و ارزیابیِ شرایطِ موجود را دارید، مطالعه ی مقاله ی زیر شاید موجب تجدید نظر در این دیدگاه شود:

http://blog.hovland.xyz/2017-04-22-stop-overusing-interfaces/

_______
@DotNetZoom