✅ رایگان کردن مقالات سایت Medium با افزونه Medium Unlimited
مقالات خوبی تو سایت مدیوم وجود داره ولی بعضا این رایگان نبودن و قفل شدن مقالاتش رو مخه
هرچند که میشه با یه پنجره Incognito تو کروم (یا InPrivate تو مرورگر Edge) اون رو باز کرد و به رایگان استفاده کرد ولی بازم رو مخه
خلاصه اینکه اگه این قضیه رو مخ شما هم هست، راه حلش خیلی سادس؛ استفاده از فزونه Medium Unlimited
این افزونه به مدت نامحدود، مقالات سایت مدیوم رو واستون رایگان میکنه.
🔹برای مروگر FireFox میتونین توسط این لینک نصبش کنین
🔸ولی برای مروگر های Chrome و Edge جدید (که بر پایه موتور کروم هست) از طریق Web Store کروم قابل نصب نیست و باید دستی نصبش کنین.
برای این کار ابتدا:
1-فایل افزونه رو از مخزن گیتهاب پروژه دانلود کنید و فایل zip اش رو تو یه مسیری extract کنین
2- از قسمت منو گزینه Extensions رو انتخاب کنین و سپس توی صفحه ای که میاد، تیک گزینه Developer Mode رو فعال کنین
3- روی دکمه Load Unpacked کلیک کنین و مسیر پوشه افزونه که قبلا extract کردین رو بهش بدین
4- تمام، لذتشو ببرین
🔰ریپازیتوری پروژه:
https://github.com/manojVivek/medium-unlimited
____________________
@DotNetZoom
مقالات خوبی تو سایت مدیوم وجود داره ولی بعضا این رایگان نبودن و قفل شدن مقالاتش رو مخه
هرچند که میشه با یه پنجره Incognito تو کروم (یا InPrivate تو مرورگر Edge) اون رو باز کرد و به رایگان استفاده کرد ولی بازم رو مخه
خلاصه اینکه اگه این قضیه رو مخ شما هم هست، راه حلش خیلی سادس؛ استفاده از فزونه Medium Unlimited
این افزونه به مدت نامحدود، مقالات سایت مدیوم رو واستون رایگان میکنه.
🔹برای مروگر FireFox میتونین توسط این لینک نصبش کنین
🔸ولی برای مروگر های Chrome و Edge جدید (که بر پایه موتور کروم هست) از طریق Web Store کروم قابل نصب نیست و باید دستی نصبش کنین.
برای این کار ابتدا:
1-فایل افزونه رو از مخزن گیتهاب پروژه دانلود کنید و فایل zip اش رو تو یه مسیری extract کنین
2- از قسمت منو گزینه Extensions رو انتخاب کنین و سپس توی صفحه ای که میاد، تیک گزینه Developer Mode رو فعال کنین
3- روی دکمه Load Unpacked کلیک کنین و مسیر پوشه افزونه که قبلا extract کردین رو بهش بدین
4- تمام، لذتشو ببرین
🔰ریپازیتوری پروژه:
https://github.com/manojVivek/medium-unlimited
____________________
@DotNetZoom
addons.mozilla.org
Medium Unlimited: Read for free – Get this Extension for 🦊 Firefox (en-US)
Download Medium Unlimited: Read for free for Firefox. Unlocks medium.com for unlimited reads, no membership required
✅ 10 کامپوننت برتر رایگان برای Blazor
✔️ Radzen
✔️ Blazorise
✔️ Ant Design Blazor
✔️ MatBlazor
✔️ BlazorStrap
✔️ PanoramicData.Blazor
✔️ MudBlazor
✔️ Element Blazor
✔️ Skclusive.Material.Component
✔️ Blazored
🔰 منبع:
https://medium.com/@alexandre.malavasi/top-10-nice-free-blazor-components-b42875e56b28
___________________
@DotNetZoom
✔️ Radzen
✔️ Blazorise
✔️ Ant Design Blazor
✔️ MatBlazor
✔️ BlazorStrap
✔️ PanoramicData.Blazor
✔️ MudBlazor
✔️ Element Blazor
✔️ Skclusive.Material.Component
✔️ Blazored
🔰 منبع:
https://medium.com/@alexandre.malavasi/top-10-nice-free-blazor-components-b42875e56b28
___________________
@DotNetZoom
✅ تامین امنیت دیتا های حساس و مهم در EF Core
در این پست به معرفی 2 راهکار (یک کتابخانه و دیگری یک مقاله) جهت تامین امنیت اطلاعات حساس و مهم در EF Core میپردازیم
🔸راهکار اول: توسط کتابخانه EntityFrameworkCore.DataEncryption میتونین اطلاعاتتون رو توی دیتابیس رمزنگاری کنین. این کار به سادگی قرار دادن یک اتریبیوت
مثلا برای مقایسه برابری (متد Equals یا دستور ==) مشکلی نداره ولی برای دستور Contains یا ... به مشکل میخورین
🔰ریپازیتوری گیتهاب پروژه + اطلاعات بیشتر
https://github.com/Eastrall/EntityFrameworkCore.DataEncryption
🔹راهکار دوم: فرض کنین شخصی که به دیتابیس دسترسی داره، به صورت دستی و مستقیم (نه از طریق اپلیکیشن ما)، مقداری رو تغییر میده بدون اینکه دسترسی لازم به لحاظ بیزینسی رو داشته باشه.
چطور میتونیم متوجه این قضیه بشیم؟ چطوری از صحت اطلاعات خودمون مطمئن بشیم؟ چطوری میتونیم اصالت اون ها رو تضمین کنیم؟
جواب این سوال رو میتونین توی مقاله زیر که توسط وحید نصیری نوشته شده و از روشی خلاقانه استفاده میکنه پیدا کنین
🔰 تشخیص اصالت ردیفهای یک بانک اطلاعاتی در EF Core
https://www.dotnettips.info/post/3100
نکته: هر دو راهکار بالا database-agnostic هستند یعنی فرقی نمیکنه شما از کدوم دیتابیس پشت EF Core استفاده میکنین؛ با هر دیتابیسی کار میکنه
_______________
@DotNetZoom
در این پست به معرفی 2 راهکار (یک کتابخانه و دیگری یک مقاله) جهت تامین امنیت اطلاعات حساس و مهم در EF Core میپردازیم
🔸راهکار اول: توسط کتابخانه EntityFrameworkCore.DataEncryption میتونین اطلاعاتتون رو توی دیتابیس رمزنگاری کنین. این کار به سادگی قرار دادن یک اتریبیوت
[Encrypted] بر پروپرتی های entity ها تون انجام میشه. در این روش اطلاعات شما موقع insert/update به صورت خودکار Encrypt شده و به صورت رشته توی دیتابیس ذخیره میشن و موقع واکشی هم به صورت خودکار Decrypt میشن لذا برای اعمال بعضی از دستورات شرطی ممکنه دچار مشکل بشین (به خاطر تفاوت مقدار encrypt شده که البته طبیعی هم هست و راه گریزی نیست)مثلا برای مقایسه برابری (متد Equals یا دستور ==) مشکلی نداره ولی برای دستور Contains یا ... به مشکل میخورین
🔰ریپازیتوری گیتهاب پروژه + اطلاعات بیشتر
https://github.com/Eastrall/EntityFrameworkCore.DataEncryption
🔹راهکار دوم: فرض کنین شخصی که به دیتابیس دسترسی داره، به صورت دستی و مستقیم (نه از طریق اپلیکیشن ما)، مقداری رو تغییر میده بدون اینکه دسترسی لازم به لحاظ بیزینسی رو داشته باشه.
چطور میتونیم متوجه این قضیه بشیم؟ چطوری از صحت اطلاعات خودمون مطمئن بشیم؟ چطوری میتونیم اصالت اون ها رو تضمین کنیم؟
جواب این سوال رو میتونین توی مقاله زیر که توسط وحید نصیری نوشته شده و از روشی خلاقانه استفاده میکنه پیدا کنین
🔰 تشخیص اصالت ردیفهای یک بانک اطلاعاتی در EF Core
https://www.dotnettips.info/post/3100
نکته: هر دو راهکار بالا database-agnostic هستند یعنی فرقی نمیکنه شما از کدوم دیتابیس پشت EF Core استفاده میکنین؛ با هر دیتابیسی کار میکنه
_______________
@DotNetZoom
Telegram
Attach Files
✅ داشبورد مدیریت تسک ها برای Quartz .NET
کتابخانه Hangfire (مشابه Quartz) که قدرتمند ترین ابزار برای تسک های زمان بندی شده هست دارای داشبوردی برای مدیریت و نظارت بر تسک ها هست ولی کتابخانه Quartz .NET فاقد چنین داشبوردی هست
🔰اگر از Quartz برای تسک های زمان بندی شده خودتون استفاده میکنین میتونین از 2 کتابخونه کمکی زیر برای بهره مندی از یک داشبورد مدیریتی نظارتی استفاده کنین
🔸کتابخانه Quartzmin
https://github.com/jlucansky/Quartzmin
🔹کتابخانه CrystalQuartz
https://github.com/guryanovev/CrystalQuartz
___________________
@DotNetZoom
کتابخانه Hangfire (مشابه Quartz) که قدرتمند ترین ابزار برای تسک های زمان بندی شده هست دارای داشبوردی برای مدیریت و نظارت بر تسک ها هست ولی کتابخانه Quartz .NET فاقد چنین داشبوردی هست
🔰اگر از Quartz برای تسک های زمان بندی شده خودتون استفاده میکنین میتونین از 2 کتابخونه کمکی زیر برای بهره مندی از یک داشبورد مدیریتی نظارتی استفاده کنین
🔸کتابخانه Quartzmin
https://github.com/jlucansky/Quartzmin
🔹کتابخانه CrystalQuartz
https://github.com/guryanovev/CrystalQuartz
___________________
@DotNetZoom
✅ لاگ کردن خطاها در ASP .NET Core توسط Exception Filter
در ASP .NET Core قابلیتی داریم به نام Filter که این اجازه رو بهمون میده که در مراحل خاصی از پردازش Request وارده، کد های دلخواهمون رو اجرا کنیم. مثلا میتونیم قبل یا بعد از اجرای اکشن، کدی رو اجرا کنیم
به عنوان مثال، یکی از پرکاربرد ترین اکشن فیلتر ها، همین اتیریبیوت [Authorize] هست که قبل از اجرای اکشن مربوطه، احراز هویت رو چک میکنه و در صورتی که کاربر لاگین نکرداه باشه یا دسترسی نداشته باشه، پردازش رو خاتمه میده
این قابلیت بهمون این امکان رو میدن که یه سری از کار های تکراری (یا بهتره بگم cross-cutting concerns) که در لازمه طی پردازش یک درخواست انجام بشن رو براحتی و بدون تکرار کردن کد ها هندل کنیم.
از جمله کار های جالبی که میشه با فیلتر ها انجام داد:
1️⃣ مثلا میتونیم مقادیر ورودی کاربر رو قبل از اجرای اکشن ها به صورت خودکار اعتبار سنجی (ModelState Validation) کنیم تا لازم نباشه ابتدای هر اکشن متد ModelState.IsValid رو چک کنیم
2️⃣ میتونیم خروجی API ها رو یک دست کنیم تا طبق یک ساختار واحد و استاندارد به کلاینت فرستاده بشن (که این مورد در API نویسی بسیار مرسوم هست)
3️⃣ میتونیم مدت زمان اجرای هر اکشن رو اندازه گیری کنیم و در صورتی که بیش از یه مدت مشخصی (مثلا 15 ثانیه) طول بکشه اون رو لاگ کنیم یا یه هشدار صادر کنیم
در ASP .NET Core، فیلتر های مختلفی وجود داره که هرکدوم کاربرد خودشون رو دارن. یکی از این فیلتر ها ExceptionFilter هست که به هنگام رخ دادن Exception ها اجرا میشه
در این مقاله میخوایم به بررسی کامل ExceptionFilter ها بپردازیم و در نهایت یک ExceptionFilter سفارشی بنویسیم که تمام خطا هایی که توی MVC Pipeline مون رخ میده رو متوجه بشیم و توسط EF Core، اون ها رو توی دیتابیس لاگ کنیم
پس با من همراه باشید
https://vrgl.ir/RwHGM
#آرمین_شعیبی_نژاد
__________________
@DotNetZoom
در ASP .NET Core قابلیتی داریم به نام Filter که این اجازه رو بهمون میده که در مراحل خاصی از پردازش Request وارده، کد های دلخواهمون رو اجرا کنیم. مثلا میتونیم قبل یا بعد از اجرای اکشن، کدی رو اجرا کنیم
به عنوان مثال، یکی از پرکاربرد ترین اکشن فیلتر ها، همین اتیریبیوت [Authorize] هست که قبل از اجرای اکشن مربوطه، احراز هویت رو چک میکنه و در صورتی که کاربر لاگین نکرداه باشه یا دسترسی نداشته باشه، پردازش رو خاتمه میده
این قابلیت بهمون این امکان رو میدن که یه سری از کار های تکراری (یا بهتره بگم cross-cutting concerns) که در لازمه طی پردازش یک درخواست انجام بشن رو براحتی و بدون تکرار کردن کد ها هندل کنیم.
از جمله کار های جالبی که میشه با فیلتر ها انجام داد:
1️⃣ مثلا میتونیم مقادیر ورودی کاربر رو قبل از اجرای اکشن ها به صورت خودکار اعتبار سنجی (ModelState Validation) کنیم تا لازم نباشه ابتدای هر اکشن متد ModelState.IsValid رو چک کنیم
2️⃣ میتونیم خروجی API ها رو یک دست کنیم تا طبق یک ساختار واحد و استاندارد به کلاینت فرستاده بشن (که این مورد در API نویسی بسیار مرسوم هست)
3️⃣ میتونیم مدت زمان اجرای هر اکشن رو اندازه گیری کنیم و در صورتی که بیش از یه مدت مشخصی (مثلا 15 ثانیه) طول بکشه اون رو لاگ کنیم یا یه هشدار صادر کنیم
در ASP .NET Core، فیلتر های مختلفی وجود داره که هرکدوم کاربرد خودشون رو دارن. یکی از این فیلتر ها ExceptionFilter هست که به هنگام رخ دادن Exception ها اجرا میشه
در این مقاله میخوایم به بررسی کامل ExceptionFilter ها بپردازیم و در نهایت یک ExceptionFilter سفارشی بنویسیم که تمام خطا هایی که توی MVC Pipeline مون رخ میده رو متوجه بشیم و توسط EF Core، اون ها رو توی دیتابیس لاگ کنیم
پس با من همراه باشید
https://vrgl.ir/RwHGM
#آرمین_شعیبی_نژاد
__________________
@DotNetZoom
✅ پیادهسازی Logging حرفه ای در ASP .NET Core توسط Serilog و ElasticSearch و Kibana
معمولا در معماری میکروسرویس ها، مانیتور کردن و ثبت لاگ های هر میکرو سرویس یک چالش بزرگ محسوب میشه. اینکه ممکنه هر میکروسرویس لاگ مربوط به خودش رو نتونه ثبت کنه و یا خطای مربوط به یک ریکوئست چند میکروسرویس دخیلش باشن و نشه سورس خطا رو پیدا کرد. و در صورت ثبت لاگ ها، چگونه بتونیم از اون ها گزارش بگیریم و یا در صورت نیاز نمودار و چارت براشون درست کنیم.
نوشتن چنین سیستمی چالش های خاص خودش رو داره و موارد بسیار زیادی هست که باید براشون درنظر گرفت مثل ثبت لاگ ها و index کردن اون ها،فیلتر کردن لاگ ها بر حسب سطح یا زمان، قابلیت جستجو بین رکورد های مختلف و همچنین ردیابی یک لاگ که ممکنه چند میکروسرویس در ایجاد اون دخیل باشن
خوشبختانه برای اینکار ابزار های بسیار خوبی وجود داره که کار ما رو به عنوان برنامه نویس بسیار آسون میکنه
یکی از این ابزارهاElasticSearch هست که کار رو برای پیاده سازی Centerlized Logging بسیار آسون میکنه چون در کنار اون میشه از Kibana هم به عنوان داشبورد استفاده کرد که برای فیلتر کردن لاگ ها و همچنین Formatting مناسب لاگ ها ابزار های خیلی خوبی رو در اختیارمون میذاره.
همچنین Trace کردن لاگ ها با استفاده از یک TraceId کاستوم بسیار ساده تر میشه که خود Asp Net Core Logger این امکانات رو به صورت پیش فرض در اختیارمون قرار میده.
در این مقاله به بررسی و پیاده سازی چنین سیستمی در Asp Net Core میپردازیم. همچنین با نصب و تنظیمات ElasticSearch و Kibana در محیط ويندوز و داکر آشنا میشیم
🔰لینک مقاله:
https://vrgl.ir/pcnWp
#بابک_طارمی
________________
@DotNetZoom
معمولا در معماری میکروسرویس ها، مانیتور کردن و ثبت لاگ های هر میکرو سرویس یک چالش بزرگ محسوب میشه. اینکه ممکنه هر میکروسرویس لاگ مربوط به خودش رو نتونه ثبت کنه و یا خطای مربوط به یک ریکوئست چند میکروسرویس دخیلش باشن و نشه سورس خطا رو پیدا کرد. و در صورت ثبت لاگ ها، چگونه بتونیم از اون ها گزارش بگیریم و یا در صورت نیاز نمودار و چارت براشون درست کنیم.
نوشتن چنین سیستمی چالش های خاص خودش رو داره و موارد بسیار زیادی هست که باید براشون درنظر گرفت مثل ثبت لاگ ها و index کردن اون ها،فیلتر کردن لاگ ها بر حسب سطح یا زمان، قابلیت جستجو بین رکورد های مختلف و همچنین ردیابی یک لاگ که ممکنه چند میکروسرویس در ایجاد اون دخیل باشن
خوشبختانه برای اینکار ابزار های بسیار خوبی وجود داره که کار ما رو به عنوان برنامه نویس بسیار آسون میکنه
یکی از این ابزارهاElasticSearch هست که کار رو برای پیاده سازی Centerlized Logging بسیار آسون میکنه چون در کنار اون میشه از Kibana هم به عنوان داشبورد استفاده کرد که برای فیلتر کردن لاگ ها و همچنین Formatting مناسب لاگ ها ابزار های خیلی خوبی رو در اختیارمون میذاره.
همچنین Trace کردن لاگ ها با استفاده از یک TraceId کاستوم بسیار ساده تر میشه که خود Asp Net Core Logger این امکانات رو به صورت پیش فرض در اختیارمون قرار میده.
در این مقاله به بررسی و پیاده سازی چنین سیستمی در Asp Net Core میپردازیم. همچنین با نصب و تنظیمات ElasticSearch و Kibana در محیط ويندوز و داکر آشنا میشیم
🔰لینک مقاله:
https://vrgl.ir/pcnWp
#بابک_طارمی
________________
@DotNetZoom
Forwarded from کدهک
✅ آپلود فایل های بسیار حجیم در ASP.NET Core
واسه فایل های نه چندان حجیم (مثلا تا 200 الی 300 مگابایت) میتونین از 2 آموزش زیر استفاده کنین که ترفنداشو بهتون میگه
http://www.binaryintellect.net/articles/612cf2d1-5b3d-40eb-a5ff-924005955a62.aspx
https://www.talkingdotnet.com/how-to-increase-file-upload-size-asp-net-core/
🔰 ولی اگه فایل هاتون خیلی حجیم هست (مثلا 500 مگ به بالا تاااااا چندین گیگابایت)
بهتره از روش Chunk (خرد کردن فایل حجیم به تکه های کوچیک تر و سپس آپلود این تیکه ها و نهایتا جمع کردنش سمت سرور) استفاده کنین
🔸سمپل زیر این قابلیت رو به خوبی پیاده سازی کرده
واسه این روش باید هم سمت سرور کدشو بنویسین و هم سمت کلاینت، از پلاگینی استفاده کنین که کار Chunk کردن رو براتون انجام بده (البته دستی هم میشه ولی با پلاگین راحت تره) مثلا این سمپل از پلاگین Resumable.js استفاده کرده
https://github.com/edsoncunha/chunked-file-upload-csharp
نکته : واسه اجرا حتما برنامه رو روی Kestrel اجرا کنین وگرنه در حالت IISExpress محدودیت هایی داره
_______________
@DotNetZoom
واسه فایل های نه چندان حجیم (مثلا تا 200 الی 300 مگابایت) میتونین از 2 آموزش زیر استفاده کنین که ترفنداشو بهتون میگه
http://www.binaryintellect.net/articles/612cf2d1-5b3d-40eb-a5ff-924005955a62.aspx
https://www.talkingdotnet.com/how-to-increase-file-upload-size-asp-net-core/
🔰 ولی اگه فایل هاتون خیلی حجیم هست (مثلا 500 مگ به بالا تاااااا چندین گیگابایت)
بهتره از روش Chunk (خرد کردن فایل حجیم به تکه های کوچیک تر و سپس آپلود این تیکه ها و نهایتا جمع کردنش سمت سرور) استفاده کنین
🔸سمپل زیر این قابلیت رو به خوبی پیاده سازی کرده
واسه این روش باید هم سمت سرور کدشو بنویسین و هم سمت کلاینت، از پلاگینی استفاده کنین که کار Chunk کردن رو براتون انجام بده (البته دستی هم میشه ولی با پلاگین راحت تره) مثلا این سمپل از پلاگین Resumable.js استفاده کرده
https://github.com/edsoncunha/chunked-file-upload-csharp
نکته : واسه اجرا حتما برنامه رو روی Kestrel اجرا کنین وگرنه در حالت IISExpress محدودیت هایی داره
_______________
@DotNetZoom
Telegram
Attach Files
✅ هفته به هفته با برترین مقالات NET.
اگه علاقمند به مطالعه برترین مقالات دات نت و دنبال کردن اخبار روز دنیای دات نت هستین، بهترین راه اینه که تو سایت های خبرنامه هفتگی این حوزه ثبت نام کنین تا هر هفته، محبوب ترین مقالات و اخبار رو تو ایمیل خودتون دریافت کنین
🔰لیست زیر گلچینی از بهترین سایت های خبرنامه های دات نتی هست. کافیه توش ثبت نام کنین یا با برنامه های فید خوان RSS اونا رو دنبال کنین
🔸https://csharpdigest.net/
🔹https://dotnet.libhunt.com/
🔸https://aspnetcore.news/
🔹https://dotnetkicks.com/
🔸https://discoverdot.net/
🔹https://www.dotnetweekly.com/
🔸https://www.alvinashcraft.com/
🔹https://olegkarasik.wordpress.com/
🔸https://dotnettips.info/ (آخرین لینک ها و خبر ها)
___________________
@DotNetZoom
اگه علاقمند به مطالعه برترین مقالات دات نت و دنبال کردن اخبار روز دنیای دات نت هستین، بهترین راه اینه که تو سایت های خبرنامه هفتگی این حوزه ثبت نام کنین تا هر هفته، محبوب ترین مقالات و اخبار رو تو ایمیل خودتون دریافت کنین
🔰لیست زیر گلچینی از بهترین سایت های خبرنامه های دات نتی هست. کافیه توش ثبت نام کنین یا با برنامه های فید خوان RSS اونا رو دنبال کنین
🔸https://csharpdigest.net/
🔹https://dotnet.libhunt.com/
🔸https://aspnetcore.news/
🔹https://dotnetkicks.com/
🔸https://discoverdot.net/
🔹https://www.dotnetweekly.com/
🔸https://www.alvinashcraft.com/
🔹https://olegkarasik.wordpress.com/
🔸https://dotnettips.info/ (آخرین لینک ها و خبر ها)
___________________
@DotNetZoom
Forwarded from سفر کهکشان با ابوراجا :)
بعضی نیازهای روزمره برنامه نویسی در همه زبان ها همیشه مورد نیاز هستند. مهم ترین اینها توابع و کتابخانه های کار با اعداد و زبان و تبدیل های مختلف اونهاست.
حالا آقای علی ترکی عزیز به همراه چندنفر دیگر یک کتابخانه با کیفیت برای js نوشتند که تقریبا همه این نیازهای روزمره را پوشش میدهد.
نمونه مواردی که این کتابخانه پوشش میدهد:
• تبدیل اعداد به حروف و برعکس (مثلا:تبدیل ۳۰۰ به سی صد و برعکس).
• حذف و اضافه کردن کاما به اعداد.
• تبدیل اعداد فارسی به انگلیسی و عربی و عربی به انگلیسی و فارسی.
• تایید و اعتبارسنجی کد ملی.
• دریافت نام استان و شهرستان با کد ملی.
• تایید و اعتبارسنجی شماره عابر بانک.
• دریافت نام بانک توسط شماره عابر بانک.
• تایید و اعتبارسنجی متن فارسی ( به عنوان مثال: درصورتی که متن وارد شده فارسی باشد true برمیگرداند )
• تمیز کردن متن فارسی از حروف عربی و unicode ها.
تمامی مثال ها و اطلاعات تکمیلی رو میتونید توی صفحه گیت هاب پروژه مشاهده کنید.
https://github.com/persian-tools/persian-tools
@abooraja_ir
حالا آقای علی ترکی عزیز به همراه چندنفر دیگر یک کتابخانه با کیفیت برای js نوشتند که تقریبا همه این نیازهای روزمره را پوشش میدهد.
نمونه مواردی که این کتابخانه پوشش میدهد:
• تبدیل اعداد به حروف و برعکس (مثلا:تبدیل ۳۰۰ به سی صد و برعکس).
• حذف و اضافه کردن کاما به اعداد.
• تبدیل اعداد فارسی به انگلیسی و عربی و عربی به انگلیسی و فارسی.
• تایید و اعتبارسنجی کد ملی.
• دریافت نام استان و شهرستان با کد ملی.
• تایید و اعتبارسنجی شماره عابر بانک.
• دریافت نام بانک توسط شماره عابر بانک.
• تایید و اعتبارسنجی متن فارسی ( به عنوان مثال: درصورتی که متن وارد شده فارسی باشد true برمیگرداند )
• تمیز کردن متن فارسی از حروف عربی و unicode ها.
تمامی مثال ها و اطلاعات تکمیلی رو میتونید توی صفحه گیت هاب پروژه مشاهده کنید.
https://github.com/persian-tools/persian-tools
@abooraja_ir
✅ وب اسمبلی (WebAssembly) چیه؟ و چرا آینده Web هست؟!
وب اسمبلی (یا WASM مخفف WebAssembly) یک زبان low-level (سطح پایین) با فرمت Binary (دو-دویی) هست که توسط مرورگر اجرا میشه
🔸در اینجا چندتا نکته مهم وجود داره:
1️⃣ اول اینکه یه زبان سطح-پایین هست و با پرفرمنسی نزدیک به Native اجرا میشه (اصلا یکی از اهداف اصلی ایجاد WASM اجرا سریع تر کدها توی مروگر بود)
2️⃣ برخلاف js به جای اینکه فرمت متنی داشته باشه، فرمت باینری (دو-دویی) داره که باعث میشه کد حجم کمتری داشته باشه در نتیجه این به معنی بارگزاری سریع تر نیز هست
در واقع وقتی کدی قراره human-readable باشه حجم بیشتری میگیره تا اینکه باینری باشه. مشابه این اتفاق برای سریالایز کردن به json در مقایسه با binary formatter هایی مانند protobuf و message-pack هم اتفاق میافته. ضمن اینکه کدی که به صورت باینری باشه امکان فشرده سازی بیشتر و بهینه تری داره
3️⃣ علاوه بر حالت باینری، یه حالت متنی (به صورت S-expression) هم داره که human-readable هست و قابلیت دیباگ و خوانایی خوبی داره
این فرمت در قالب فایل های با پسوند wat. یا wast. ذخیره میشه که میتونین نمونه کدش رو اینجا ببینین (البته در گذشته این دو معادل هم بودند ولی جدیدا بیشتر wat. برای اینکار استفاده میشه)
4️⃣ گرچه در ابتدا WASM برای اجرا توی مروگر طراحی شده بود ولی بعد ها توی پلتفرم های دیگه هم مورد استقبال قرار گرفت و یه سری Runtime هایی (مانند wasmer و wasmtime) براش نوشته شد که این امکان رو میده که برنامه های WASM رو توی Desktop و IoT و Server و... اجرا بشن
5️⃣ این زبان در کنار خودش یه سری کامپایلر (از جمله emnoscripten و binaryen) ارائه داده تا زبان های low-level ایی همچون C و ++C و Rust بتونن کدشون رو به WASM کامپایل کنن
زبان های دیگه هم از جمله #C و Java و Python و Go به این سمت حرکت کردن و امکان اجرای کد هاشون رو توی مرورگر فراهم کردند
به عنوان مثال Blazor امکان اجرا کد های #C رو در مرورگر فراهم میکنه
مزیت این روش اینه که شما به زبون های دلخواه خودتون میتونین کدی بنویسین که توی مرورگر اجرا بشه. یعنی اصلا نیاز نیس زبان WASM رو بلد باشین.
🔹حالا سوال مهم اینه که این زبان جای JavaScript رو میگیره؟
جواب: نه، اصلا نمیتونه. WASM اومده که مکمل JS باشه و ضعف های اون رو برطرف کنه
زبان JS تو پلتفرم های زیادی استفاده میشه و جامعه بسیار بزرگی داره پس نه WASM نه هیچ زبان دیگه ای نمی تونه اون رو کنار بزنه (حداقل به این زودی ها نه)
در واقع تنها مزیت منحصر به فرد JS سمت Front این بود که تنها پادشاه سمت مرورگر بود. ولی الان که امکان اجرای زبان های دیگه سمت مرورگر فراهم شده عملا راه برای ظهور پادشاه های دیگری هم فراهم شده
یکی از کارهای دیگری که در این زمینه انجام شده AssemblyScript هست که در واقع یک کامپایلر TypeScript به WASM هست که سینتکس کدش کاملا TS نیست ولی شبیه اونه و نهایتا کد های شما رو به WASM کامپایل میکنه
🔸در آخر نکته مهم اینه که که بدونین این تکنولوژی محکوم به اینه که آینده وب باشه!
یعنی حتی اگه این زبان از خودش هیچ آورده ای هم نداشته باشه بازم مسیر توسعه وب در آینده به سمت اون هدایت میشه (توسط دست های پشت پرده :دی) .
چرا؟ چون توسط بنیاد W3C (کنسرسیوم جهانی وب) به عنوان یه استاندارد شناخته شده و نیز شرکتای غولی همچون Google و Microsoft و Mozilla و Apple و Intel و Red Hat و... روش سرمایه گذاری کردن
میگن اگه میخوای پیش گوی خوبی باشی، آینده رو پیش بینی نکن، اون رو بساز. و این ها در واقع کسانی هستند که مسیر توسعه وب رو پیش بینی نمیکنند بلکه اون رو خودشون میسازند
🔰اگه میخواین بیشتر در مورد WebAssembly بدونین این مقاله خوبیه
_______________
@DotNetZoom
وب اسمبلی (یا WASM مخفف WebAssembly) یک زبان low-level (سطح پایین) با فرمت Binary (دو-دویی) هست که توسط مرورگر اجرا میشه
🔸در اینجا چندتا نکته مهم وجود داره:
1️⃣ اول اینکه یه زبان سطح-پایین هست و با پرفرمنسی نزدیک به Native اجرا میشه (اصلا یکی از اهداف اصلی ایجاد WASM اجرا سریع تر کدها توی مروگر بود)
2️⃣ برخلاف js به جای اینکه فرمت متنی داشته باشه، فرمت باینری (دو-دویی) داره که باعث میشه کد حجم کمتری داشته باشه در نتیجه این به معنی بارگزاری سریع تر نیز هست
در واقع وقتی کدی قراره human-readable باشه حجم بیشتری میگیره تا اینکه باینری باشه. مشابه این اتفاق برای سریالایز کردن به json در مقایسه با binary formatter هایی مانند protobuf و message-pack هم اتفاق میافته. ضمن اینکه کدی که به صورت باینری باشه امکان فشرده سازی بیشتر و بهینه تری داره
3️⃣ علاوه بر حالت باینری، یه حالت متنی (به صورت S-expression) هم داره که human-readable هست و قابلیت دیباگ و خوانایی خوبی داره
این فرمت در قالب فایل های با پسوند wat. یا wast. ذخیره میشه که میتونین نمونه کدش رو اینجا ببینین (البته در گذشته این دو معادل هم بودند ولی جدیدا بیشتر wat. برای اینکار استفاده میشه)
4️⃣ گرچه در ابتدا WASM برای اجرا توی مروگر طراحی شده بود ولی بعد ها توی پلتفرم های دیگه هم مورد استقبال قرار گرفت و یه سری Runtime هایی (مانند wasmer و wasmtime) براش نوشته شد که این امکان رو میده که برنامه های WASM رو توی Desktop و IoT و Server و... اجرا بشن
5️⃣ این زبان در کنار خودش یه سری کامپایلر (از جمله emnoscripten و binaryen) ارائه داده تا زبان های low-level ایی همچون C و ++C و Rust بتونن کدشون رو به WASM کامپایل کنن
زبان های دیگه هم از جمله #C و Java و Python و Go به این سمت حرکت کردن و امکان اجرای کد هاشون رو توی مرورگر فراهم کردند
به عنوان مثال Blazor امکان اجرا کد های #C رو در مرورگر فراهم میکنه
مزیت این روش اینه که شما به زبون های دلخواه خودتون میتونین کدی بنویسین که توی مرورگر اجرا بشه. یعنی اصلا نیاز نیس زبان WASM رو بلد باشین.
🔹حالا سوال مهم اینه که این زبان جای JavaScript رو میگیره؟
جواب: نه، اصلا نمیتونه. WASM اومده که مکمل JS باشه و ضعف های اون رو برطرف کنه
زبان JS تو پلتفرم های زیادی استفاده میشه و جامعه بسیار بزرگی داره پس نه WASM نه هیچ زبان دیگه ای نمی تونه اون رو کنار بزنه (حداقل به این زودی ها نه)
در واقع تنها مزیت منحصر به فرد JS سمت Front این بود که تنها پادشاه سمت مرورگر بود. ولی الان که امکان اجرای زبان های دیگه سمت مرورگر فراهم شده عملا راه برای ظهور پادشاه های دیگری هم فراهم شده
یکی از کارهای دیگری که در این زمینه انجام شده AssemblyScript هست که در واقع یک کامپایلر TypeScript به WASM هست که سینتکس کدش کاملا TS نیست ولی شبیه اونه و نهایتا کد های شما رو به WASM کامپایل میکنه
🔸در آخر نکته مهم اینه که که بدونین این تکنولوژی محکوم به اینه که آینده وب باشه!
یعنی حتی اگه این زبان از خودش هیچ آورده ای هم نداشته باشه بازم مسیر توسعه وب در آینده به سمت اون هدایت میشه (توسط دست های پشت پرده :دی) .
چرا؟ چون توسط بنیاد W3C (کنسرسیوم جهانی وب) به عنوان یه استاندارد شناخته شده و نیز شرکتای غولی همچون Google و Microsoft و Mozilla و Apple و Intel و Red Hat و... روش سرمایه گذاری کردن
میگن اگه میخوای پیش گوی خوبی باشی، آینده رو پیش بینی نکن، اون رو بساز. و این ها در واقع کسانی هستند که مسیر توسعه وب رو پیش بینی نمیکنند بلکه اون رو خودشون میسازند
🔰اگه میخواین بیشتر در مورد WebAssembly بدونین این مقاله خوبیه
_______________
@DotNetZoom
❇️ یه وایت بورد آنلاین خیلی خوب واسه کار های تیمی
🔸خیلی وقتا موقع کار تیمی لازم میشه با هم تیمی تون تعامل داشته باشین، روی وایت برد برای هم توضیح بدین، شکل رسم کنین و یا استیکی نوت بچسبونین
حالا که خیلی از برنامه نویسا به صورت ریموت کار میکنن وجود یه وایت بورد آنلاین خیلی میتونه کاربردی باشه
🔹سایت miro یه وایت برد آنلاین خیلی باحال و کاربردی هست که توش میتونین فلوچارت رسم کنین، با ماژیک شکل رسم کنین، Stiky Note بچسبونین و افراد مختلفی به اون متصل بشن و به صورت Real-time با هم دیگه تعامل کنن (البته پولیه ولی نسخه رایگانش تا محدودیت 3 تا بورد رو به شما میده)
🔰چند نمونه از کاربرد هاش برای تیم ها میتونه اینها باشه:
✔️ ترسیم فلوچارت و فرایند های بین فرم ها
✔️ ترسیم نیازمندی های پروژه
✔️ برنامه ریزی های گروهی
✔️ طوفان فکری و ایده پردازی جمعی
✔️ برگزاری رویداد های Event Storming جهت فهم بهتر دامنه
✔️ و...
https://miro.com/
__________________
@DotNetZoom
🔸خیلی وقتا موقع کار تیمی لازم میشه با هم تیمی تون تعامل داشته باشین، روی وایت برد برای هم توضیح بدین، شکل رسم کنین و یا استیکی نوت بچسبونین
حالا که خیلی از برنامه نویسا به صورت ریموت کار میکنن وجود یه وایت بورد آنلاین خیلی میتونه کاربردی باشه
🔹سایت miro یه وایت برد آنلاین خیلی باحال و کاربردی هست که توش میتونین فلوچارت رسم کنین، با ماژیک شکل رسم کنین، Stiky Note بچسبونین و افراد مختلفی به اون متصل بشن و به صورت Real-time با هم دیگه تعامل کنن (البته پولیه ولی نسخه رایگانش تا محدودیت 3 تا بورد رو به شما میده)
🔰چند نمونه از کاربرد هاش برای تیم ها میتونه اینها باشه:
✔️ ترسیم فلوچارت و فرایند های بین فرم ها
✔️ ترسیم نیازمندی های پروژه
✔️ برنامه ریزی های گروهی
✔️ طوفان فکری و ایده پردازی جمعی
✔️ برگزاری رویداد های Event Storming جهت فهم بهتر دامنه
✔️ و...
https://miro.com/
__________________
@DotNetZoom
❇️ یک پروژه FullStack سورس باز SPA با Angular 11 و Asp.Net Core 5.0
💎 تکنولوژی ها و امکانات :
✔️ASP.NET Core 3.1
✔️Entity Framework Core 3.1
✔️Sql Server and Sqlite supporte
✔️Identity Server 4
✔️Angular 8
✔️Secure - CSP Headers
✔️SignalR
✔️SASS
✔️Angular Best practices
✔️Clean Architecture
✔️PWA support
✔️SSR (Server side rendering)
✔️Fast Unit Testing with Jest.
✔️E2E testing with Protractor.
✔️Compodoc for Angular documentation
✔️Swagger as Api explorer
🔰مخزن گیتهاب
https://github.com/asadsahi/AspNetCoreSpa
_________________
@DotNetZoom
💎 تکنولوژی ها و امکانات :
✔️ASP.NET Core 3.1
✔️Entity Framework Core 3.1
✔️Sql Server and Sqlite supporte
✔️Identity Server 4
✔️Angular 8
✔️Secure - CSP Headers
✔️SignalR
✔️SASS
✔️Angular Best practices
✔️Clean Architecture
✔️PWA support
✔️SSR (Server side rendering)
✔️Fast Unit Testing with Jest.
✔️E2E testing with Protractor.
✔️Compodoc for Angular documentation
✔️Swagger as Api explorer
🔰مخزن گیتهاب
https://github.com/asadsahi/AspNetCoreSpa
_________________
@DotNetZoom
GitHub
GitHub - fullstackproltd/AspNetCoreSpa: Asp.Net 7.0 & Angular 15 SPA Fullstack application with plenty of examples. Live demo:
Asp.Net 7.0 & Angular 15 SPA Fullstack application with plenty of examples. Live demo: - GitHub - fullstackproltd/AspNetCoreSpa: Asp.Net 7.0 & Angular 15 SPA Fullstack application ...
❇️ ترجمه گروهی کتاب کدتمیز Clean Code
https://github.com/Noah1001000/clean-code-persian
____________________
@DotNetZoom
https://github.com/Noah1001000/clean-code-persian
____________________
@DotNetZoom
Forwarded from کدهک
آشنایی با Mini-Profiler
با استفاده از miniprofiler می توانید مدت زمانی که برای اجرای هر عملیات طول میکشد بدست آورید و پرفورمنس بخش های مختلف وبسایت خود را بررسی کنید .
https://youtu.be/83Vqz1lb3V4
با استفاده از miniprofiler می توانید مدت زمانی که برای اجرای هر عملیات طول میکشد بدست آورید و پرفورمنس بخش های مختلف وبسایت خود را بررسی کنید .
https://youtu.be/83Vqz1lb3V4
✅ سایت ساز Ghost : یک CMS ساده و سبک Nodejs ایی مناسب برای وبلاگ شخصی
اگه قصد راه اندازی یه بلاگ شخصی ساده و راحت دارین، سایت ساز Ghost شاید بهترین گزینه برای شما باشه
✔️ کلی تم زیبا و متنوع داره
✔️ کلی افزونه کاربردی داره
✔️ خیلی خوش دست و راحته
✔️ بسیار سبکه و میتونه از دیتابیس SQLite استفاده کنه
✔️ قابل سفارشی سازی هست و رایگانه
🔸مشاهده Demo و Showcase ها
🔹مشاهده مستندات و آموزش ها
🔰ریپازیتوری گیتهاب پروژ + طریقه استفاده
https://github.com/TryGhost/Ghost
___________________
@DotNetZoom
اگه قصد راه اندازی یه بلاگ شخصی ساده و راحت دارین، سایت ساز Ghost شاید بهترین گزینه برای شما باشه
✔️ کلی تم زیبا و متنوع داره
✔️ کلی افزونه کاربردی داره
✔️ خیلی خوش دست و راحته
✔️ بسیار سبکه و میتونه از دیتابیس SQLite استفاده کنه
✔️ قابل سفارشی سازی هست و رایگانه
🔸مشاهده Demo و Showcase ها
🔹مشاهده مستندات و آموزش ها
🔰ریپازیتوری گیتهاب پروژ + طریقه استفاده
https://github.com/TryGhost/Ghost
___________________
@DotNetZoom
✅ بررسی عملی CQRS - بخش اول: مقدمه ای بر CQRS
حتما راجب CQRS شنیده اید. در لغت CQRS مخفف Command and Qhery Responsibility Segregation می باشد که در اون سعی میکنیم مدل های خواندن و نوشتن و همچنین مسیر خواندن و نوشتن داده را از یکدیگر جدا کنیم. CQRS مزایای زیادی رو به همراه داره از جمله اینکه با جدا شدن مدل Read و Write میتونیم جداگانه روی هر کدوم optimization انجام بدیم و پرفرمنس مربوط به هر بخش رو جداگانه بهبود بدیم.
در این مقاله چند قسمتی به بررسی عملی CQRS می پردازیم و به تکنیک های ویژه پیاده سازی اون به وسیله الگوی Mediator و کتابخانه MediatR میپردازیم، و سعی میکنیم با جداسازی مدل های Read و Write و همچین دیتابیس های مربوط به هر بخش، یک سولوشن تمیز رو ارائه بدیم
#بابک_طارمی
🔰لینک مقاله:
https://vrgl.ir/01pUA
____________________
@DotNetZoom
حتما راجب CQRS شنیده اید. در لغت CQRS مخفف Command and Qhery Responsibility Segregation می باشد که در اون سعی میکنیم مدل های خواندن و نوشتن و همچنین مسیر خواندن و نوشتن داده را از یکدیگر جدا کنیم. CQRS مزایای زیادی رو به همراه داره از جمله اینکه با جدا شدن مدل Read و Write میتونیم جداگانه روی هر کدوم optimization انجام بدیم و پرفرمنس مربوط به هر بخش رو جداگانه بهبود بدیم.
در این مقاله چند قسمتی به بررسی عملی CQRS می پردازیم و به تکنیک های ویژه پیاده سازی اون به وسیله الگوی Mediator و کتابخانه MediatR میپردازیم، و سعی میکنیم با جداسازی مدل های Read و Write و همچین دیتابیس های مربوط به هر بخش، یک سولوشن تمیز رو ارائه بدیم
#بابک_طارمی
🔰لینک مقاله:
https://vrgl.ir/01pUA
____________________
@DotNetZoom
ویرگول
بررسی عملی CQRS- بخش اول: مقدمه ای بر CQRS
در این مقاله چند قسمتی، قرار است به صورت عمیق به بررسی CQRS بپردازیم و تکنیک های لازم برای پیاده سازی یک پروژه به صورت CQRS را بررسی کنیم
✅ افزونه Enhanced GitHub برای گیتهاب باز ها
این افزونه امکانات خوبی رو به گیتهاب شما اضافه میکنه
1- نمایش حجم ریپازیتوری
2- نمایش حجم هر فایل
3- امکان دانلود تک فایل دلخواه از ریپازیتوری
🔸لینک دانلود
https://chrome.google.com/webstore/detail/enhanced-github/anlikcnbgdeidpacdbdljnabclhahhmd
🔹مخزن گیتهاب و اموزش استفاده
https://github.com/softvar/github-plus
____________________
@DotNetZoom
این افزونه امکانات خوبی رو به گیتهاب شما اضافه میکنه
1- نمایش حجم ریپازیتوری
2- نمایش حجم هر فایل
3- امکان دانلود تک فایل دلخواه از ریپازیتوری
🔸لینک دانلود
https://chrome.google.com/webstore/detail/enhanced-github/anlikcnbgdeidpacdbdljnabclhahhmd
🔹مخزن گیتهاب و اموزش استفاده
https://github.com/softvar/github-plus
____________________
@DotNetZoom
✅ آموزش gRPC در ASP.NET Core - قسمت اول
جی آر پی سی (gRPC) یک فریمورک رایگان، پر سرعت، قدرتمند و متن بازِ RPC است که توسط Google توسعه داده شده.
توسط این فریمورک میتوان API هایی از نوع RPC ساخت. مکانیزم RPC این امکان رو به ما میده که API هایی توسط یک برنامه Server به بیرون ارائه بشه و Client ها بتونن اون ها رو فراخوانی کنن.
فریمورک gRPC برای تبادل دیتا بین کلاینت و سرور از Protocol Buffer (یا به اختصار protobuf) استفاده میکنه که یک کتابخونه Serializer به صورت باینری هست که بسیار سریع هست
و به خاطر مزایایی که gRPC داره، استفاده از اون برای تعامل بین Microservice ها خیلی مورد استقبال قرار گرفته
🔰از مزایای gRPC میشه به موارد زیر اشاره کرد
1️⃣ سریع تر از RESTful هست
2️⃣ بدلیل فشرده سازی ایی که توسط protobuf انجام میشه حجم دیتای کمتری رد و بدل میشه و درنتیجه سریعتر از JSON هست
3️⃣ از HTTP2 استفاده میکنه که نسبت به نسخه های قبلی HTTP سریعتر و امن تر هست
4️⃣ از 3 روش Streaming پشتیبانی میکنه: از کلاینت به سرور، از سرور به کلاینت، و نیز Streaming دو طرفه
5️⃣ ساختار contract-first داره و توی همه زبان ها میشه ازش استفاده کرد
در این مقاله میخواهیم یک آشنایی اجمالی با gRPC داشته باشیم و یک پروژه خیلی ساده رو با اون در ASP.NET Core پیاده سازی کنیم
#آرمین_شعیبی_نژاد
https://vrgl.ir/U1mV1
________________
@DotNetZoom
جی آر پی سی (gRPC) یک فریمورک رایگان، پر سرعت، قدرتمند و متن بازِ RPC است که توسط Google توسعه داده شده.
توسط این فریمورک میتوان API هایی از نوع RPC ساخت. مکانیزم RPC این امکان رو به ما میده که API هایی توسط یک برنامه Server به بیرون ارائه بشه و Client ها بتونن اون ها رو فراخوانی کنن.
فریمورک gRPC برای تبادل دیتا بین کلاینت و سرور از Protocol Buffer (یا به اختصار protobuf) استفاده میکنه که یک کتابخونه Serializer به صورت باینری هست که بسیار سریع هست
و به خاطر مزایایی که gRPC داره، استفاده از اون برای تعامل بین Microservice ها خیلی مورد استقبال قرار گرفته
🔰از مزایای gRPC میشه به موارد زیر اشاره کرد
1️⃣ سریع تر از RESTful هست
2️⃣ بدلیل فشرده سازی ایی که توسط protobuf انجام میشه حجم دیتای کمتری رد و بدل میشه و درنتیجه سریعتر از JSON هست
3️⃣ از HTTP2 استفاده میکنه که نسبت به نسخه های قبلی HTTP سریعتر و امن تر هست
4️⃣ از 3 روش Streaming پشتیبانی میکنه: از کلاینت به سرور، از سرور به کلاینت، و نیز Streaming دو طرفه
5️⃣ ساختار contract-first داره و توی همه زبان ها میشه ازش استفاده کرد
در این مقاله میخواهیم یک آشنایی اجمالی با gRPC داشته باشیم و یک پروژه خیلی ساده رو با اون در ASP.NET Core پیاده سازی کنیم
#آرمین_شعیبی_نژاد
https://vrgl.ir/U1mV1
________________
@DotNetZoom
ویرگول
آموزش gRPC در ASP.NET Core - قسمت اول
در این مقاله با gRPC به صورت اجمالی آشنا می شویم و یک gRPC سرویس خیلی ساده همراه با ASP.NET Core میسازیم.
This media is not supported in your browser
VIEW IN TELEGRAM
❇️ کدنویسی سریع تر و راحت تر در Visual Studio با این ترفند
🔶 توسط این قابلیت چیزایی که namespace شون رو using نکردین هم براتون توی IntelliSense میاره و زمانی که تایپ تون کامل بشه خودش namespace اش رو هم using میکنه. اینطوری دیگه لازم نیس نگران این باشین که فلان class یا extension method توی کدوم namespace بود (چیزی شبیه Resharper)
🔷 این قابلیت از قبل به Visual Studio 2019 اضافه شده ولی هنوز به صورت Experimental (آزمایشی) هست و به صورت پیشفرض فعال نیست
🔰 واسه فعال کردنش باید برین توی منوی Tools سپس گزینه Options رو انتخاب کنین و از قسمت زیر (یا سرچ کردن متن IntelliSense توی سرچ باکس)
▶️ TextEditor > C# > IntelliSense
و گزینه زیر رو "تیک کامل" بزنین.
✅ Show items for unimported namespaces (experimental)
___________________
@DotNetZoom
🔶 توسط این قابلیت چیزایی که namespace شون رو using نکردین هم براتون توی IntelliSense میاره و زمانی که تایپ تون کامل بشه خودش namespace اش رو هم using میکنه. اینطوری دیگه لازم نیس نگران این باشین که فلان class یا extension method توی کدوم namespace بود (چیزی شبیه Resharper)
🔷 این قابلیت از قبل به Visual Studio 2019 اضافه شده ولی هنوز به صورت Experimental (آزمایشی) هست و به صورت پیشفرض فعال نیست
🔰 واسه فعال کردنش باید برین توی منوی Tools سپس گزینه Options رو انتخاب کنین و از قسمت زیر (یا سرچ کردن متن IntelliSense توی سرچ باکس)
▶️ TextEditor > C# > IntelliSense
و گزینه زیر رو "تیک کامل" بزنین.
✅ Show items for unimported namespaces (experimental)
___________________
@DotNetZoom
❇️ افزونه Refined GitHub مخصوص Github باز های حرفه ای
اینقدر قابلیت های کاربردی و مفیدی که به گیتهاب شما اضافه میکنه زیادهههه، که نمیشه اصلا لیست کرد!
کافیه یه سر به لیست features هاش توی ریپازیتوریش بزنین
فقط به درد گیتهاب باز های حرفه ای میخوره نه اونایی که فقط از گیتهاب دانلود و clone و یا حتی pull, commit و push بلدن!
خیلی خیلی به درد کسایی میخوره که issue میزنن، fork میکنن، branch میسازن، pull request میزنن، comment میزارن و توی discussion ها فعال هستند.
🔸لینک دانلود افزونه مخصوص Chrome
https://chrome.google.com/webstore/detail/refined-github/hlepfoohegkhhmjieoechaddaejaokhf
🔹مخزن گیتهاب و اموزش استفاده
https://github.com/sindresorhus/refined-github
__________________
@DotNetZoom
اینقدر قابلیت های کاربردی و مفیدی که به گیتهاب شما اضافه میکنه زیادهههه، که نمیشه اصلا لیست کرد!
کافیه یه سر به لیست features هاش توی ریپازیتوریش بزنین
فقط به درد گیتهاب باز های حرفه ای میخوره نه اونایی که فقط از گیتهاب دانلود و clone و یا حتی pull, commit و push بلدن!
خیلی خیلی به درد کسایی میخوره که issue میزنن، fork میکنن، branch میسازن، pull request میزنن، comment میزارن و توی discussion ها فعال هستند.
🔸لینک دانلود افزونه مخصوص Chrome
https://chrome.google.com/webstore/detail/refined-github/hlepfoohegkhhmjieoechaddaejaokhf
🔹مخزن گیتهاب و اموزش استفاده
https://github.com/sindresorhus/refined-github
__________________
@DotNetZoom