سرویسهای Azure Container:
راهنمای میزبانی Docker Images
اگر با docker کار میکنید و میخواهید آنها را در Azure مستقر کنید، ممکن است تعجب کنید که از کدام سرویس استفاده کنید. Azure چندین گزینه برای میزبانی docker images ارائه میدهد، مانند Container Registry، Container Instance، Container App و Web App for Containers.
سرویس Container Registry
سرویس Container Registry یک سرویس رجیستری خصوصی است که به شما امکان میدهد docker images های خود را در Azure ذخیره و مدیریت کنید. میتوانید از آن برای push و pull کردن image ها از هر کلاینت داکر استفاده کنید یا آن را با سایر سرویسهای Azure مانند Azure DevOps، Azure Kubernetes Service یا Azure Functions ادغام کنید.
سرویس Container Instances
سرویس Container Instances سرویسی است که به شما امکان میدهد برنامههای تک کانتینری یا چند کانتینری را در Azure بدون نیاز به مدیریت زیرساخت اجرا کنید. میتوانید در صورت درخواست، نمونههای کانتینر را ایجاد و حذف کنید و فقط برای منابعی که استفاده میکنید پول پرداخت کنید.
سرویس Container App
سرویس Container App سرویس جدیدی است که به شما امکان میدهد برنامه های کانتینری را در Azure با حداقل پیکربندی و مدیریت اجرا کنید. میتوانید docker های خود را در یک محیط بدون سرور مستقر کنید که بهطور خودکار بر اساس تقاضا کاهش یا افزایش مییابد.
سرویس Web App for Containers
سرویس Web App for Containers سرویسی است که به شما امکان میدهد برنامه های وب را در Azure با استفاده از docker image اجرا کنید. میتوانید image های خود را از Container Registry یا هر رجیستری دیگر deploy کنید و از ویژگیها و ابزارهای مشابه برنامههای وب معمولی مانند دامنههای سفارشی، گواهیهای SSL، اسلاتهای استقرار، پشتیبانگیری و تشخیص استفاده کنید.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
راهنمای میزبانی Docker Images
اگر با docker کار میکنید و میخواهید آنها را در Azure مستقر کنید، ممکن است تعجب کنید که از کدام سرویس استفاده کنید. Azure چندین گزینه برای میزبانی docker images ارائه میدهد، مانند Container Registry، Container Instance، Container App و Web App for Containers.
سرویس Container Registry
سرویس Container Registry یک سرویس رجیستری خصوصی است که به شما امکان میدهد docker images های خود را در Azure ذخیره و مدیریت کنید. میتوانید از آن برای push و pull کردن image ها از هر کلاینت داکر استفاده کنید یا آن را با سایر سرویسهای Azure مانند Azure DevOps، Azure Kubernetes Service یا Azure Functions ادغام کنید.
سرویس Container Instances
سرویس Container Instances سرویسی است که به شما امکان میدهد برنامههای تک کانتینری یا چند کانتینری را در Azure بدون نیاز به مدیریت زیرساخت اجرا کنید. میتوانید در صورت درخواست، نمونههای کانتینر را ایجاد و حذف کنید و فقط برای منابعی که استفاده میکنید پول پرداخت کنید.
سرویس Container App
سرویس Container App سرویس جدیدی است که به شما امکان میدهد برنامه های کانتینری را در Azure با حداقل پیکربندی و مدیریت اجرا کنید. میتوانید docker های خود را در یک محیط بدون سرور مستقر کنید که بهطور خودکار بر اساس تقاضا کاهش یا افزایش مییابد.
سرویس Web App for Containers
سرویس Web App for Containers سرویسی است که به شما امکان میدهد برنامه های وب را در Azure با استفاده از docker image اجرا کنید. میتوانید image های خود را از Container Registry یا هر رجیستری دیگر deploy کنید و از ویژگیها و ابزارهای مشابه برنامههای وب معمولی مانند دامنههای سفارشی، گواهیهای SSL، اسلاتهای استقرار، پشتیبانگیری و تشخیص استفاده کنید.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Azure Container Services: A Guide to Hosting Docker Images
If you are working with docker images and want to deploy them to Azure, you might be wondering which...
👍7
سرویس Azure pipeline
یک Pipeline دنبالهای از مراحل است که نحوه ساخت، آزمایش و استقرار برنامه را مشخص میکند. شما میتوانید یک pipeline را با استفاده از YAML یا یک رابط کاربری گرافیکی بنویسید. YAML یک قالب داده قابل خواندن برای انسان است که به شما امکان میدهد وظایف و تنظیمات pipeline خود را در یک فایل متنی مشخص کنید.
استفاده از Microsoft Hosted Agent
یک Microsoft Hosted Agent ماشین مجازی از پیش پیکربندی شدهای است که توسط مایکروسافت مدیریت میشود و در Azure اجرا میگردد. بسته به پلتفرم برنامه خود، میتوانید از میان انواع مختلفی از hosted agents ها مانند ویندوز، لینوکس یا macOS انتخاب کنید. کار با یک Microsoft Hosted Agent بسیار راحت است زیرا نیازی به نگهداری یا به روز رسانی آن ندارید، اما دارای محدودیتهایی است، مانند:
- شما فقط میتوانید یک کار را در یک زمان در یک hosted agent اجرا کنید.
- شما حداکثر ۱۸۰ دقیقه برای هر کار در یک hosted agent زمان دارید.
- شما فضای دیسک و حافظه محدودی در یک hosted agent دارید.
- شما نمیتوانید نرم افزار یا ابزارهای سفارشی را روی یک hosted agent نصب کنید.
استفاده از Self-Hosted Agent
یک Self-Hosted Agent ماشینی است که شما مالک و مدیر آن هستید و در Azure DevOps ثبت نام میکنید. میتوانید از هر دستگاهی که حداقل شرایط لازم را دارد، مانند ویندوز، لینوکس یا macOS استفاده کنید. یک Self-Hosted Agent کنترل و انعطاف پذیری بیشتری را بر روی pipeline خود به شما میدهد، اما به نگهداری و امنیت بیشتری نیز نیاز دارد. برخی از مزایای استفاده از یک عامل خود میزبان عبارتند از:
- شما میتوانید چندین کار را به طور همزمان در یک نماینده خود میزبان اجرا کنید.
- شما هیچ محدودیت زمانی برای هر شغل در یک نماینده خود میزبان ندارید.
- شما فضای دیسک و حافظه بیشتری در یک عامل خود میزبان دارید.
- میتوانید نرمافزار یا ابزارهای سفارشی را روی یک عامل خود میزبان نصب کنید.
استفاده از Microsoft Hosted Agent یا Self-Hosted Agent
برای تصمیم گیری در مورد استفاده از یک Microsoft Hosted Agent یا یک Self-Hosted Agent برای pipeline خود، باید موارد زیر را در نظر بگیرید:
- پیچیدگی و الزامات برنامه شما.
- فرکانس و مدت اجرای خط لوله شما.
- هزینه و در دسترس بودن منابع
به طور کلی، اگر برنامه شما ساده است و به نرم افزار یا ابزار خاصی نیاز ندارد، و اگر pipeline خود را گهگاهی و برای مدت زمان کوتاهی اجرا میکنید، می توانید از یک Microsoft Hosted Agent استفاده کنید. اگر برنامه شما پیچیده است و به نرم افزار یا ابزار سفارشی نیاز دارد، و اگر خط لوله خود را به طور مکرر و برای مدت طولانی اجرا میکنید، ممکن است بخواهید از یک Self-Hosted Agent استفاده کنید.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
یک Pipeline دنبالهای از مراحل است که نحوه ساخت، آزمایش و استقرار برنامه را مشخص میکند. شما میتوانید یک pipeline را با استفاده از YAML یا یک رابط کاربری گرافیکی بنویسید. YAML یک قالب داده قابل خواندن برای انسان است که به شما امکان میدهد وظایف و تنظیمات pipeline خود را در یک فایل متنی مشخص کنید.
استفاده از Microsoft Hosted Agent
یک Microsoft Hosted Agent ماشین مجازی از پیش پیکربندی شدهای است که توسط مایکروسافت مدیریت میشود و در Azure اجرا میگردد. بسته به پلتفرم برنامه خود، میتوانید از میان انواع مختلفی از hosted agents ها مانند ویندوز، لینوکس یا macOS انتخاب کنید. کار با یک Microsoft Hosted Agent بسیار راحت است زیرا نیازی به نگهداری یا به روز رسانی آن ندارید، اما دارای محدودیتهایی است، مانند:
- شما فقط میتوانید یک کار را در یک زمان در یک hosted agent اجرا کنید.
- شما حداکثر ۱۸۰ دقیقه برای هر کار در یک hosted agent زمان دارید.
- شما فضای دیسک و حافظه محدودی در یک hosted agent دارید.
- شما نمیتوانید نرم افزار یا ابزارهای سفارشی را روی یک hosted agent نصب کنید.
استفاده از Self-Hosted Agent
یک Self-Hosted Agent ماشینی است که شما مالک و مدیر آن هستید و در Azure DevOps ثبت نام میکنید. میتوانید از هر دستگاهی که حداقل شرایط لازم را دارد، مانند ویندوز، لینوکس یا macOS استفاده کنید. یک Self-Hosted Agent کنترل و انعطاف پذیری بیشتری را بر روی pipeline خود به شما میدهد، اما به نگهداری و امنیت بیشتری نیز نیاز دارد. برخی از مزایای استفاده از یک عامل خود میزبان عبارتند از:
- شما میتوانید چندین کار را به طور همزمان در یک نماینده خود میزبان اجرا کنید.
- شما هیچ محدودیت زمانی برای هر شغل در یک نماینده خود میزبان ندارید.
- شما فضای دیسک و حافظه بیشتری در یک عامل خود میزبان دارید.
- میتوانید نرمافزار یا ابزارهای سفارشی را روی یک عامل خود میزبان نصب کنید.
استفاده از Microsoft Hosted Agent یا Self-Hosted Agent
برای تصمیم گیری در مورد استفاده از یک Microsoft Hosted Agent یا یک Self-Hosted Agent برای pipeline خود، باید موارد زیر را در نظر بگیرید:
- پیچیدگی و الزامات برنامه شما.
- فرکانس و مدت اجرای خط لوله شما.
- هزینه و در دسترس بودن منابع
به طور کلی، اگر برنامه شما ساده است و به نرم افزار یا ابزار خاصی نیاز ندارد، و اگر pipeline خود را گهگاهی و برای مدت زمان کوتاهی اجرا میکنید، می توانید از یک Microsoft Hosted Agent استفاده کنید. اگر برنامه شما پیچیده است و به نرم افزار یا ابزار سفارشی نیاز دارد، و اگر خط لوله خود را به طور مکرر و برای مدت طولانی اجرا میکنید، ممکن است بخواهید از یک Self-Hosted Agent استفاده کنید.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Azure pipeline
Azure pipeline is a cloud-based service that allows you to automate the build, test and deployment of...
👍9❤1
مقایسه Azure Event Grid و Event Hub
سرویس Azure Event Grid سرویسی است که به شما امکان میدهد رویدادها را از هر منبعی به هر مقصدی هدایت کنید. میتوانید از آن برای واکنش به تغییرات منابع Azure خود مانند storage blobs، resource groups یا subnoscriptions استفاده کنید. همچنین میتوانید از آن برای ادغام با سرویسهای third-party مانند GitHub، Twilio یا SendGrid استفاده کنید.
سرویس Azure Event Hub سرویسی است که به شما امکان میدهد حجم زیادی از دادههای streaming را دریافت و پردازش کنید. میتوانید از آن برای گرفتن دادهها از دستگاهها، حسگرها، برنامهها یا گزارشها استفاده کنید. Azure Event Hub میتواند میلیونها رویداد در ثانیه را با تأخیر کم و قابلیت اطمینان بالا مدیریت کند. همچنین میتوانید از آن برای تجزیه و تحلیل و تبدیل دادهها با استفاده از تحلیل جریان Azure، Azure Functions یا Spark استفاده کنید.
تفاورت Azure Event Grid و Azure Event Hub
تفاوت اصلی بین Azure Event Grid و Azure Event Hub در نوع رویدادهایی است که آنها مدیریت میکنند. Azure Event Grid رویدادهای گسسته را کنترل میکند، که رخدادهایی منفرد هستند و نشان دهنده یک تغییر حالت یا یک عمل هستند. به عنوان مثال، یک فایل در حال ایجاد، یک منبع در حال به روز رسانی، یا یک پیام در حال ارسال است. Azure Event Hub رویدادهای telemetry را مدیریت میکند، که جریانهای پیوستهای از دادهها هستند که اندازه گیریها یا مشاهدات را نشان میدهند. برای مثال، خواندن دما، بهروزرسانیهای مکان یا رویدادهای کلیک.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
سرویس Azure Event Grid سرویسی است که به شما امکان میدهد رویدادها را از هر منبعی به هر مقصدی هدایت کنید. میتوانید از آن برای واکنش به تغییرات منابع Azure خود مانند storage blobs، resource groups یا subnoscriptions استفاده کنید. همچنین میتوانید از آن برای ادغام با سرویسهای third-party مانند GitHub، Twilio یا SendGrid استفاده کنید.
سرویس Azure Event Hub سرویسی است که به شما امکان میدهد حجم زیادی از دادههای streaming را دریافت و پردازش کنید. میتوانید از آن برای گرفتن دادهها از دستگاهها، حسگرها، برنامهها یا گزارشها استفاده کنید. Azure Event Hub میتواند میلیونها رویداد در ثانیه را با تأخیر کم و قابلیت اطمینان بالا مدیریت کند. همچنین میتوانید از آن برای تجزیه و تحلیل و تبدیل دادهها با استفاده از تحلیل جریان Azure، Azure Functions یا Spark استفاده کنید.
تفاورت Azure Event Grid و Azure Event Hub
تفاوت اصلی بین Azure Event Grid و Azure Event Hub در نوع رویدادهایی است که آنها مدیریت میکنند. Azure Event Grid رویدادهای گسسته را کنترل میکند، که رخدادهایی منفرد هستند و نشان دهنده یک تغییر حالت یا یک عمل هستند. به عنوان مثال، یک فایل در حال ایجاد، یک منبع در حال به روز رسانی، یا یک پیام در حال ارسال است. Azure Event Hub رویدادهای telemetry را مدیریت میکند، که جریانهای پیوستهای از دادهها هستند که اندازه گیریها یا مشاهدات را نشان میدهند. برای مثال، خواندن دما، بهروزرسانیهای مکان یا رویدادهای کلیک.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Azure Event Grid vs Event Hub
Azure Event Grid and Azure Event Hub are two services that enable you to build event-driven...
👍6❤1🔥1
This media is not supported in the widget
VIEW IN TELEGRAM
❤60👍11🔥9🤩6🎉3
Forwarded from فلسفه دیزاین
هنرمندی که جهان ما را زیباتر کرد، از میان ما رفت.
صابر راستی کردار کسی بود که نوشتههای فارسی را از وجود تایپ فیسهایی که برای متون فارسی نامناسب و نازیبا بودند نجات داد، و از آن دسته طراحانی بود که خلق ارزش، بیشتر از دریافت هزینه برایشان اهمیت داشت.
نام و یادش گرامی.
۲۳ آبان ۱۴۰۲
صابر راستی کردار کسی بود که نوشتههای فارسی را از وجود تایپ فیسهایی که برای متون فارسی نامناسب و نازیبا بودند نجات داد، و از آن دسته طراحانی بود که خلق ارزش، بیشتر از دریافت هزینه برایشان اهمیت داشت.
نام و یادش گرامی.
۲۳ آبان ۱۴۰۲
❤78😢20👍6🔥1
Software Philosophy
امشب ساعت t=2^3 یه اکانت تلگرام پرمیوم به صورت رندوم به یکی از اعضای کانال اهدا میشه. 🕺
Please open Telegram to view this post
VIEW IN TELEGRAM
❤35🔥10👏5🥰4🤔3🎉1
Software Philosophy
امشب ساعت t=2^3 یه اکانت تلگرام پرمیوم به صورت رندوم به یکی از اعضای کانال اهدا میشه. 🕺
اگه براتون سوال پیش اومده که برنده اکانت #تلگرام_پرمیوم کدوم برنامانویس بوده؟ ایشون بودن:
@meisamdev
مبارکت باشه آقا میثم خوششانس...😊
@meisamdev
مبارکت باشه آقا میثم خوششانس...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👏14❤6🎉3👍1😢1
نگاهی عمیقتر به جادوی async و پشت صحنهی آن در سیشارپ
کلمات کلیدی
شما میتوانید با اضافه کردن کلمه کلیدی
این عبارت به کامپایلر میگوید صبر کند تا عملیات ناهمگام به پایان برسد ولی در این حین اگر به
در این ورکشاپ کمی بیشتر به اعماق داتنت میرویم و میبینیم که با
"Deep Dive into async/await: How to Unlock the Full Potential of C# Concurrency"
اسم کارگاهی است که «مهران داودی» با هدف آموزش مفاهیم همزمانی به صورت عمیق برگذار میکند.
تا کنون سه جلسه از این کارگاه برگزار شده است:
🔗 لینک ویدیوی جلسه اول
🔗 لینک ویدیوی جلسه دوم
🔗 لینک ویدیوی جلسه سوم
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#نگار_قاسمی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
کلمات کلیدی
async و await از نسخه C# 5.0 اضافه شدند.شما میتوانید با اضافه کردن کلمه کلیدی
async، یک متد را Asynchronous کنید و در آن از await استفاده کنید.این عبارت به کامپایلر میگوید صبر کند تا عملیات ناهمگام به پایان برسد ولی در این حین اگر به
thread نیازی نبود آزاد شود و به کارهای دیگر بپردازد. اضافه کردن چنین فیچری به یک زبان در پشت صحنه اصلا کار سادهای نیست.در این ورکشاپ کمی بیشتر به اعماق داتنت میرویم و میبینیم که با
async کردن یک متد چه اتفاقاتی در پشت صحنه میافتد و چطور عملا آن متد جراحی میشود!"Deep Dive into async/await: How to Unlock the Full Potential of C# Concurrency"
اسم کارگاهی است که «مهران داودی» با هدف آموزش مفاهیم همزمانی به صورت عمیق برگذار میکند.
تا کنون سه جلسه از این کارگاه برگزار شده است:
🔗 لینک ویدیوی جلسه اول
🔗 لینک ویدیوی جلسه دوم
🔗 لینک ویدیوی جلسه سوم
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#نگار_قاسمی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
YouTube
Concurrency in C# - Session 1
در این سری ورکشاپها مهران داودی در مورد مفاهیم Concurrency, Parallel Programming و Asynchronous Programming به صورت بنیادین صحبت میکند. در این ویدئو با مفهوم Thread آشنا میشویم و سپس در مورد Shared Memory و چالشهای آن صحبت میکنیم.
مهران داودی
http…
مهران داودی
http…
👍28❤6🔥3
کاوش در مزایای Azure Key Vault
سرویس Azure Key Vault سرویسی ابری است که ذخیره و مدیریت امن secrets، keys و certificates ها را فراهم میکند. این به شما امکان میدهد با استفاده از کلیدها و الگوریتمهای رمزنگاری، دادهها را رمزگذاری، رمزگشایی، امضا و تأیید کنید. Azure Key Vault همچنین به شما امکان میدهد تا گواهیها را برای برنامهها و خدمات خود ایجاد، وارد، rotate و لغو کنید.
- یکی از مزایای استفاده از Azure Key Vault این است که خطر افشای دادههای حساس در کد یا فایلهای پیکربندی شما را کاهش میدهد.
- یکی دیگر از مزایای استفاده از Azure Key Vault این است که مدیریت گواهیها و کلیدهای شما را ساده میکند. میتوانید تمدید و ابطال گواهینامههای خود را به طور خودکار انجام دهید و همچنین بر انقضا و استفاده از آنها را نظارت کنید.
برای ایجاد key vault با استفاده از Azure CLI، ابتدا باید Azure CLI را نصب کرده و به حساب Azure خود وارد شوید. سپس، میتوانید از دستور az keyvault create برای ایجاد یک صندوق کلید با نام و یک گروه منبع استفاده کنید.
مثال:
و برای ذخیره برخی از secrets و keys در صندوق کلید، میتوانید از دستورات az keyvault secret set و az keyvault key create استفاده کنید.
مثال:
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
سرویس Azure Key Vault سرویسی ابری است که ذخیره و مدیریت امن secrets، keys و certificates ها را فراهم میکند. این به شما امکان میدهد با استفاده از کلیدها و الگوریتمهای رمزنگاری، دادهها را رمزگذاری، رمزگشایی، امضا و تأیید کنید. Azure Key Vault همچنین به شما امکان میدهد تا گواهیها را برای برنامهها و خدمات خود ایجاد، وارد، rotate و لغو کنید.
- یکی از مزایای استفاده از Azure Key Vault این است که خطر افشای دادههای حساس در کد یا فایلهای پیکربندی شما را کاهش میدهد.
- یکی دیگر از مزایای استفاده از Azure Key Vault این است که مدیریت گواهیها و کلیدهای شما را ساده میکند. میتوانید تمدید و ابطال گواهینامههای خود را به طور خودکار انجام دهید و همچنین بر انقضا و استفاده از آنها را نظارت کنید.
برای ایجاد key vault با استفاده از Azure CLI، ابتدا باید Azure CLI را نصب کرده و به حساب Azure خود وارد شوید. سپس، میتوانید از دستور az keyvault create برای ایجاد یک صندوق کلید با نام و یک گروه منبع استفاده کنید.
مثال:
az group create --name MyResourceGroup --location uksouth
az keyvault create --name MyKeyVault --resource-group MyResourceGroupو برای ذخیره برخی از secrets و keys در صندوق کلید، میتوانید از دستورات az keyvault secret set و az keyvault key create استفاده کنید.
مثال:
az keyvault secret set --name MySecret --value "Hello World" --vault-name MyKeyVault
az keyvault key create --name MyKey --vault-name MyKeyVault
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Exploring the Benefits of Azure Key Vault
Azure Key Vault is a cloud service that provides secure storage and management of secrets, keys, and...
👍5
مقایسه 🚀Azure Functions vs. Azure Durable Functions🔄
سرویس Azure Function یک سرویس محاسباتی بدون سرور است که به شما امکان می دهد بدون مدیریت زیرساخت سرور یا سیستم عامل کد را اجرا کنید.
از طرف دیگر، Azure Durable Function یک برنامه افزودنی از Azure Function است که به شما امکان میدهد توابع stateful را در محیط بدون سرور بنویسید.
توابع Stateful میتوانند حالت را در چندین اجرا حفظ کنند و با استفاده از durable tasks، گردشهای کاری پیچیده را هماهنگ کنند. durable tasks، عملکردهایی هستند که می توانند توسط عملکرد orchestrator function، منتظر و دوباره اجرا شوند.
زمان استفاده از Azure Function:
- سناریوهای Event-Driven
- زمانی که بخواهیم بخش کوچکی از Units of Code را اجرا کنیم.
- زمانی که Cost-Efficient Scaling مد نظر باشد.
زمان استفاده از Azure Durable Function:
- زمانی که پردازهای Long-Running داریم.
- زمانی که به Stateful Orchestration نیازمندیم.
- زمانی که Monitoring and Debugging مدنظر باشد.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
سرویس Azure Function یک سرویس محاسباتی بدون سرور است که به شما امکان می دهد بدون مدیریت زیرساخت سرور یا سیستم عامل کد را اجرا کنید.
از طرف دیگر، Azure Durable Function یک برنامه افزودنی از Azure Function است که به شما امکان میدهد توابع stateful را در محیط بدون سرور بنویسید.
توابع Stateful میتوانند حالت را در چندین اجرا حفظ کنند و با استفاده از durable tasks، گردشهای کاری پیچیده را هماهنگ کنند. durable tasks، عملکردهایی هستند که می توانند توسط عملکرد orchestrator function، منتظر و دوباره اجرا شوند.
زمان استفاده از Azure Function:
- سناریوهای Event-Driven
- زمانی که بخواهیم بخش کوچکی از Units of Code را اجرا کنیم.
- زمانی که Cost-Efficient Scaling مد نظر باشد.
زمان استفاده از Azure Durable Function:
- زمانی که پردازهای Long-Running داریم.
- زمانی که به Stateful Orchestration نیازمندیم.
- زمانی که Monitoring and Debugging مدنظر باشد.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Choosing the Right Azure Function
In my previous blog post, I discussed Azure Functions and demonstrated how to create and trigger them...
👍8❤1
از Angular به Blazor: آزاد کردن جادوی C#!
در سفری از Angular به کامپوننت Blazor، یک ماجراجویی هیجانانگیز، جادوی C# را آزاد کنید! این سفر نه تنها یک تغییر در نحوه نوشتاری را به همراه دارد بلکه یک شیفت تحولی در رویکرد شما نسبت به توسعه وب را به ارمغان میآورد. وقتی که به دنیای Blazor وارد میشوید، قدرتمندی C# و اکوسیستم گسترده .NET نه تنها کد را انتقال میدهید بلکه به دنیای امکاناتی وارد میشوید که به طور سحرآمیز منطبق بر منطق کاربری است و سمت سرور به یکدیگر میپیوندد.
هیجان ترجمه شاهکار Angular خود را به یک جواهر Blazor تصور کنید، جایی که آشنایی با نوآوری همراه میشود و دقت C# سمفونی وباپلیکیشن شما را ارجاع میدهد. این مهاجرت تنها یک گذار فنی نیست؛ بلکه فرصتی است برای بهرهمندی از طیف کامل قابلیتهای .NET، از دیتابایندینگ دقیق تا زیبایی پردازش رویدادها با C#.
پس کمربند خود را ببندید و آماده شوید تا ادغام پویایی Angular با استعداد C# Blazor را شاهد شوید. در این راهنمای هیجانانگیز، از هر مرحلهای از فرآیند مهاجرت عبور خواهیم کرد و جادویی را که هنگام ادغام بهترینهای دو دنیا اتفاق میافتد، برملا خواهیم کرد. برای یک ماجرای کدزنی آماده شوید که نه تنها مهارتهای شما را ارتقا میدهد، بلکه شور و هیجان به سفر توسعه شما تزریق میکند. اجازه دهید مهاجرت آغاز شود!
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
___________
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
_____
در سفری از Angular به کامپوننت Blazor، یک ماجراجویی هیجانانگیز، جادوی C# را آزاد کنید! این سفر نه تنها یک تغییر در نحوه نوشتاری را به همراه دارد بلکه یک شیفت تحولی در رویکرد شما نسبت به توسعه وب را به ارمغان میآورد. وقتی که به دنیای Blazor وارد میشوید، قدرتمندی C# و اکوسیستم گسترده .NET نه تنها کد را انتقال میدهید بلکه به دنیای امکاناتی وارد میشوید که به طور سحرآمیز منطبق بر منطق کاربری است و سمت سرور به یکدیگر میپیوندد.
هیجان ترجمه شاهکار Angular خود را به یک جواهر Blazor تصور کنید، جایی که آشنایی با نوآوری همراه میشود و دقت C# سمفونی وباپلیکیشن شما را ارجاع میدهد. این مهاجرت تنها یک گذار فنی نیست؛ بلکه فرصتی است برای بهرهمندی از طیف کامل قابلیتهای .NET، از دیتابایندینگ دقیق تا زیبایی پردازش رویدادها با C#.
پس کمربند خود را ببندید و آماده شوید تا ادغام پویایی Angular با استعداد C# Blazor را شاهد شوید. در این راهنمای هیجانانگیز، از هر مرحلهای از فرآیند مهاجرت عبور خواهیم کرد و جادویی را که هنگام ادغام بهترینهای دو دنیا اتفاق میافتد، برملا خواهیم کرد. برای یک ماجرای کدزنی آماده شوید که نه تنها مهارتهای شما را ارتقا میدهد، بلکه شور و هیجان به سفر توسعه شما تزریق میکند. اجازه دهید مهاجرت آغاز شود!
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
___________
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
_____
DEV Community
From Angular to Blazor: Unleashing the C# Magic!
Embarking on the journey of migrating an Angular component to a Blazor component is an exhilarating...
🔥11👍10❤4
حفاظت در برابر مقادیر null!
در حوزه برنامه نویسی، مقادیر null مانند مینهای پنهانی هستند که منتظر انفجار میباشند و باعث خطاهای غیرمنتظره در زمان اجرا میشوند، منجر به منطق نادرست میشوند و اشکال زدایی را سختتر میکنند. این یکی از رایجترین مشکلاتی است که توسعهدهندگان با آن مواجه هستند، NullReferenceException مخوف است. به همین دلیل مهم است که قبل از استفاده از یک object reference در کد، مقادیر null را بررسی کنید.
بررسی null بطور سنتی با == اپراتور
یک راه برای انجام این کار استفاده از عملگر == است که دو operands را برای برابری مقایسه میکند.
برای مثال میتوانید بنویسید:
این رویکرد دارای معایبی است. عملگر == میتواند توسط یک کلاس overload شود، به این معنی که ممکن است هنگام مقایسه یک شی با null، آنطور که انتظار دارید رفتار نکند. برای مثال، اگر کلاس یک عملگر برابری سفارشی را تعریف کند که همیشه true را برمیگرداند، آنگاه بررسی null همیشه ناموفق خواهد بود.
استفاده از عملگر is
برای جلوگیری از این مشکلات، سی شارپ راه بهتری برای بررسی مقادیر null ارائه می دهد: عملگر is.
عملگر is یک عملیات pattern-matching را روی یک عبارت انجام میدهد و اگر با یک الگوی مشخص مطابقت داشته باشد، مقدار true را برمیگرداند.
این روش چند مزیت دارد:
- اولاً، عملگر is نمیتواند توسط یک کلاس overload شود، بنابراین هنگام بررسی مقادیر تهی، همیشه به طور مداوم رفتار میکند.
- دوم، عملگر is خواناتر و رساتر از عملگر == است، زیرا به وضوح بیان میکند که چه چیزی را بررسی میکنید.
- سوم، عملگر is از negation patterns پشتیبانی میکند که به شما امکان میدهد مقادیر غیر تهی را نیز بررسی کنید.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
در حوزه برنامه نویسی، مقادیر null مانند مینهای پنهانی هستند که منتظر انفجار میباشند و باعث خطاهای غیرمنتظره در زمان اجرا میشوند، منجر به منطق نادرست میشوند و اشکال زدایی را سختتر میکنند. این یکی از رایجترین مشکلاتی است که توسعهدهندگان با آن مواجه هستند، NullReferenceException مخوف است. به همین دلیل مهم است که قبل از استفاده از یک object reference در کد، مقادیر null را بررسی کنید.
بررسی null بطور سنتی با == اپراتور
یک راه برای انجام این کار استفاده از عملگر == است که دو operands را برای برابری مقایسه میکند.
برای مثال میتوانید بنویسید:
var product = GetProduct();
if (product == null) {
// Do something if the object is null.
}
این رویکرد دارای معایبی است. عملگر == میتواند توسط یک کلاس overload شود، به این معنی که ممکن است هنگام مقایسه یک شی با null، آنطور که انتظار دارید رفتار نکند. برای مثال، اگر کلاس یک عملگر برابری سفارشی را تعریف کند که همیشه true را برمیگرداند، آنگاه بررسی null همیشه ناموفق خواهد بود.
استفاده از عملگر is
برای جلوگیری از این مشکلات، سی شارپ راه بهتری برای بررسی مقادیر null ارائه می دهد: عملگر is.
عملگر is یک عملیات pattern-matching را روی یک عبارت انجام میدهد و اگر با یک الگوی مشخص مطابقت داشته باشد، مقدار true را برمیگرداند.
var product = GetProduct();
if (product is null) {
// Do something if the object is null.
}
این روش چند مزیت دارد:
- اولاً، عملگر is نمیتواند توسط یک کلاس overload شود، بنابراین هنگام بررسی مقادیر تهی، همیشه به طور مداوم رفتار میکند.
- دوم، عملگر is خواناتر و رساتر از عملگر == است، زیرا به وضوح بیان میکند که چه چیزی را بررسی میکنید.
- سوم، عملگر is از negation patterns پشتیبانی میکند که به شما امکان میدهد مقادیر غیر تهی را نیز بررسی کنید.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Guard against null values
In the realm of programming, null values are like hidden landmines waiting to explode and cause...
👍35👏2
🚀 جلسه بعدی مایکروسافت فارسی یکشنبه ۲۶ آذر رو از دست ندید - در مورد Azure DevOps ، Azure Pipeline و Sonar Cloud صحبت خواهد شد و اینکه چگونه میتوانیم با استفاده از این موارد کدهای با کیفیتتری داشته باشم!
📢 MSFarsi Talk- Flawless code with Azure Pipeline and Sonar Cloud 📢
📢This session will be in Farsi
📢 ثبت نام رایگان:
🔗 https://events.teams.microsoft.com/event/399a7ee0-7ebd-41c0-b7e6-9051e4e6c8f3@b4c9f32e-da17-4ded-9c95-ce9da38f25d9
#محمدرضا_پازوکی
📢 MSFarsi Talk- Flawless code with Azure Pipeline and Sonar Cloud 📢
📢This session will be in Farsi
📢 ثبت نام رایگان:
🔗 https://events.teams.microsoft.com/event/399a7ee0-7ebd-41c0-b7e6-9051e4e6c8f3@b4c9f32e-da17-4ded-9c95-ce9da38f25d9
#محمدرضا_پازوکی
👍16❤2🔥2
اوج پویایی صفحات وب در Blazor با NET 8.
سیر تکامل نحوه نمایش صفحات وب به این شکل بود که در ابتدا صفحاتی که کاربر درخواست میداد توسط سرور رندر میشد و به سمت کلاینت برمیگشت. این صفحات کاملا غیرتعاملی (non-intractive) بودند و اگر قصد داشتید محتوای صفحات را با مثلا کلیک کردن یا ثبت فرم و ... تغییر دهید، مجبور بودید کل صفحه html جدید را مجدد از سرور بگیرید.
کم کم JavaScript به واسطه ویژگیهایی که به صفحه اضافه میکرد باعث شد intractive بودن صفحات ایجاد شود و دیگر نیازی به جنریت کل صفحه از ابتدا نباشد. در ابتدا با امکاناتی مثل Ajax و ... این پویایی برای صفحات وب فراهم شد و در ادامه فریموورک و کتابخانههایی مثل React, Angular, Blazor و... اضافه شدند که پویایی صفحات را با ارائه مفهومی تحت عنوان SPA به اوج خود رساندند.
اخیرا دات نت در آخرین آپدیت خود (NET 8.) در بیلیزور این امکان را فراهم کرده تا شما بتوانید هر قسمت از صفحه را که میخواهید متناسب با نیاز خود از سرور صفحه بخواهید تا جنریت کند یا در خود مرورگر کاربر این کار انجام شود.
مثلا برای این که امتیاز SEO خوبی داشته باشید میتونید چند صفحه اول سایت را به شکلی تنظیم کنید که از سمت سرور رندر شوند و بقیه به حالت web assembly باشند. یا حتی کامپوننت خاص در صفحه را هم میتوانید به این صورت تنظیم کنید.
در ادامه انواع حالتها برای رندر کردن صفحه را با هم میبینیم:
Server:
WebAssembly:
Auto:
Streaming:
هر کدام از این حالتها مزایای خود را دارند و شما میتوانید بسته به نیاز خود از آنها استفاده کنید. برای فهمیدن این موضوع که کدام حالت مناسب شماست و همچنین برای مطالعه دقیق و عمیقتر این مباحث میتوانید از این لینکها ( 1 , 2 ) استفاده کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
__________
سیر تکامل نحوه نمایش صفحات وب به این شکل بود که در ابتدا صفحاتی که کاربر درخواست میداد توسط سرور رندر میشد و به سمت کلاینت برمیگشت. این صفحات کاملا غیرتعاملی (non-intractive) بودند و اگر قصد داشتید محتوای صفحات را با مثلا کلیک کردن یا ثبت فرم و ... تغییر دهید، مجبور بودید کل صفحه html جدید را مجدد از سرور بگیرید.
کم کم JavaScript به واسطه ویژگیهایی که به صفحه اضافه میکرد باعث شد intractive بودن صفحات ایجاد شود و دیگر نیازی به جنریت کل صفحه از ابتدا نباشد. در ابتدا با امکاناتی مثل Ajax و ... این پویایی برای صفحات وب فراهم شد و در ادامه فریموورک و کتابخانههایی مثل React, Angular, Blazor و... اضافه شدند که پویایی صفحات را با ارائه مفهومی تحت عنوان SPA به اوج خود رساندند.
اخیرا دات نت در آخرین آپدیت خود (NET 8.) در بیلیزور این امکان را فراهم کرده تا شما بتوانید هر قسمت از صفحه را که میخواهید متناسب با نیاز خود از سرور صفحه بخواهید تا جنریت کند یا در خود مرورگر کاربر این کار انجام شود.
مثلا برای این که امتیاز SEO خوبی داشته باشید میتونید چند صفحه اول سایت را به شکلی تنظیم کنید که از سمت سرور رندر شوند و بقیه به حالت web assembly باشند. یا حتی کامپوننت خاص در صفحه را هم میتوانید به این صورت تنظیم کنید.
در ادامه انواع حالتها برای رندر کردن صفحه را با هم میبینیم:
Server:
@rendermode InteractiveServer
WebAssembly:
@rendermode InteractiveWebAssembly
Auto:
@rendermode InteractiveAuto
Streaming:
@attribute [StreamRendering(prerender: true)]
هر کدام از این حالتها مزایای خود را دارند و شما میتوانید بسته به نیاز خود از آنها استفاده کنید. برای فهمیدن این موضوع که کدام حالت مناسب شماست و همچنین برای مطالعه دقیق و عمیقتر این مباحث میتوانید از این لینکها ( 1 , 2 ) استفاده کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
__________
Docs
What's new in ASP.NET Core in .NET 8
Learn about the new features in ASP.NET Core in .NET 8.
👍15🔥4❤2👏1
استراتژی Deployment مناسب را انتخاب کنید!
استراتژیهای Deployment مانند دستور العملهایی هستند که برای بهروزرسانی برنامهها و سرویسهای خود بدون ایجاد اختلال در سیستم دنبال میکنید. آنها به شما اجازه میدهند بهروزرسانیهای خود را به روشی هوشمند و ایمن امتحان، بررسی و لغو کنید. بسته به آنچه دوست دارید و نیاز دارید، میتوانید استراتژیهای Deployment مختلفی را انتخاب کنید که Azure میتواند برای شما انجام دهد، مانند:
روش Blue-green deployment:
این استراتژی مانند این است که دو نسخه از برنامه یا سرویس خود داشته باشید، یکی برای نسخه قدیمی (آبی) و دیگری برای نسخه جدید (سبز). میتوانید نسخه جدید را قبل از اینکه کاربران خود را به آن تغییر دهید، در نسخه سبز تست کنید. به این ترتیب میتوانید از اشتباهات جلوگیری کنید و اگر مشکلی پیش آمد سریعا به عقب برگردید.
روش Rolling deployment:
این استراتژی مانند این است که اپلیکیشن یا سرویس خود را ذره ذره، با تغییر چند قسمت در یک زمان با نسخه جدید، به روز کنید. میتوانید تصمیم بگیرید که چقدر سریع و چقدر میخواهید بهروزرسانی کنید، و تماشا کنید که چگونه پیش میرود و چگونه روی سیستم شما تأثیر میگذارد. به این ترتیب، میتوانید زمان خرابی را کاهش دهید و مطمئن شوید که همه چیز برای کاربرانتان به خوبی پیش میرود.
روش Canary deployment:
این استراتژی مانند این است که نسخه جدید برنامه یا سرویس خود را ابتدا به چند کاربر یا مکان خوش شانس، قبل از دادن آن به دیگران، بدهید. میتوانید از این استراتژی برای مشاهده نحوه عملکرد نسخه جدید و نظر کاربران در مورد آن استفاده کنید و هر مشکل یا باگ را زودتر تشخیص دهید. به این ترتیب میتوانید به روز رسانی خود را بهتر و قابل اطمینانتر کنید و همه کاربران را به یکباره ناراحت نکنید.
برای انتخاب استراتژی استقرار مناسب برای سیستم خود، باید به مواردی فکر کنید، مانند:
- برنامه یا سرویس شما چقدر بزرگ و پیچیده است.
- هر چند وقت یکبار و چقدر میخواهید آن را به روز کنید.
- به روز رسانیهای شما چقدر خطرناک و مهم هستند.
- کاربران شما چه احساسی دارند و چه انتظاراتی از شما دارند.
- چه ابزارهایی برای استقرار خود دارید.
🔗 نسخه کامل مقاله را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
استراتژیهای Deployment مانند دستور العملهایی هستند که برای بهروزرسانی برنامهها و سرویسهای خود بدون ایجاد اختلال در سیستم دنبال میکنید. آنها به شما اجازه میدهند بهروزرسانیهای خود را به روشی هوشمند و ایمن امتحان، بررسی و لغو کنید. بسته به آنچه دوست دارید و نیاز دارید، میتوانید استراتژیهای Deployment مختلفی را انتخاب کنید که Azure میتواند برای شما انجام دهد، مانند:
روش Blue-green deployment:
این استراتژی مانند این است که دو نسخه از برنامه یا سرویس خود داشته باشید، یکی برای نسخه قدیمی (آبی) و دیگری برای نسخه جدید (سبز). میتوانید نسخه جدید را قبل از اینکه کاربران خود را به آن تغییر دهید، در نسخه سبز تست کنید. به این ترتیب میتوانید از اشتباهات جلوگیری کنید و اگر مشکلی پیش آمد سریعا به عقب برگردید.
روش Rolling deployment:
این استراتژی مانند این است که اپلیکیشن یا سرویس خود را ذره ذره، با تغییر چند قسمت در یک زمان با نسخه جدید، به روز کنید. میتوانید تصمیم بگیرید که چقدر سریع و چقدر میخواهید بهروزرسانی کنید، و تماشا کنید که چگونه پیش میرود و چگونه روی سیستم شما تأثیر میگذارد. به این ترتیب، میتوانید زمان خرابی را کاهش دهید و مطمئن شوید که همه چیز برای کاربرانتان به خوبی پیش میرود.
روش Canary deployment:
این استراتژی مانند این است که نسخه جدید برنامه یا سرویس خود را ابتدا به چند کاربر یا مکان خوش شانس، قبل از دادن آن به دیگران، بدهید. میتوانید از این استراتژی برای مشاهده نحوه عملکرد نسخه جدید و نظر کاربران در مورد آن استفاده کنید و هر مشکل یا باگ را زودتر تشخیص دهید. به این ترتیب میتوانید به روز رسانی خود را بهتر و قابل اطمینانتر کنید و همه کاربران را به یکباره ناراحت نکنید.
برای انتخاب استراتژی استقرار مناسب برای سیستم خود، باید به مواردی فکر کنید، مانند:
- برنامه یا سرویس شما چقدر بزرگ و پیچیده است.
- هر چند وقت یکبار و چقدر میخواهید آن را به روز کنید.
- به روز رسانیهای شما چقدر خطرناک و مهم هستند.
- کاربران شما چه احساسی دارند و چه انتظاراتی از شما دارند.
- چه ابزارهایی برای استقرار خود دارید.
🔗 نسخه کامل مقاله را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Choose the right deployment strategy
Hey, are you using Azure to run your awesome apps and services? If so, you might be wondering how to...
👍11
بروزرسانی ReSharper 2023.3: انقلابی در کدنویسی داتنت
ابزار ReSharper، ابزاری قدرتمند برای توسعهدهندگان داتنت است که با ارائه طیف گستردهای از ویژگیها و قابلیتها، به توسعهدهندگان کمک میکند تا کد خود را با کیفیت بالاتر و سرعت بیشتری تولید کنند. نسخه 2023.3 ReSharper، با ویژگیهای جدید و بهبودیافته خود، تجربه کدنویسی داتنت را به طور اساسی تغییر میدهد.
ویژگیهای جدید و بهبودیافته:
🟣قابلیت Code Analysis:
🟣شناسایی مشکلات جدیدی مانند استفاده از کدهای ناکارآمد، احتمال حملات امنیتی، و مشکلات عملکردی
🟣بهبود دقت شناسایی مشکلات
🟣ارائه پیشنهادات عملی برای رفع مشکلات
مثال عملی: فرض کنید کد زیر را مینویسیم:
با استفاده از Code Analysis ReSharper 2023.3، میتوان این خطا را شناسایی کرد:
🟢قابلیت Code Completion:
🟢ارائه پیشنهادات دقیقتر و مرتبطتر با context کد
🟢جلوگیری از تکمیل کدهای ناامن
🟢پشتیبانی از کدنویسی با استفاده از زبانهای طبیعی
مثال عملی: فرض کنید کد زیر را مینویسیم:
با استفاده از Code Completion ReSharper 2023.3، میتوان این خطا را شناسایی کرد:
🟣قابلیت Refactoring:
🔵پشتیبانی از تغییرات پیچیدهتر مانند تغییر ساختار کد
🔵جلوگیری از بروز خطاهای احتمالی در هنگام انجام تغییرات
🔵ارائه گزارشهای دقیقتر از تغییرات انجامشده
مثال عملی: فرض کنید کد زیر را مینویسیم:
با استفاده از Refactoring ReSharper 2023.3، میتوان این کد را بهینه کرد:
🟢قابلیت جدید در Entity Framework:
در ReSharper 2023.3، بهروزرسانیهایی در Entity Framework ارائه شده است که به توسعهدهندگان کمک میکند تا کد Entity Framework خود را با کیفیت بالاتر و سرعت بیشتری تولید کنند.
ویژگیهای جدید و بهبودیافته:
🟢مشاهده روابط Entity Framework (ERD): ReSharper 2023.3، ابزار جدیدی برای ویرایش و مشاهده Entity Relationship Diagrams (ERDs) ارائه میدهد. این ابزار به توسعهدهندگان کمک میکند تا روابط بین جدولهای Entity Framework را بهطور واضحتری درک کنند.
🟢تجزیه و تحلیل و بازرسی کوئریهای Entity Framework: ReSharper 2023.3، قابلیتهای جدیدی برای تجزیه و تحلیل و بازرسی کوئریهای Entity Framework ارائه میدهد. این قابلیتها میتوانند به توسعهدهندگان در شناسایی و رفع مشکلات احتمالی در کوئریهای خود کمک کنند.
مثالهایی از نحوه استفاده از ویژگیهای جدید:
🟢مشاهده روابط Entity Framework (ERD): فرض کنید یک پروژه Entity Framework داریم که شامل دو جدول به نامهای Customer و Order است. با استفاده از ابزار Visualize Entity Framework Relationships ReSharper 2023.3، میتوانیم ERD زیر را ایجاد کنیم:
🟢تجزیه و تحلیل و بازرسی کوئریهای Entity Framework: فرض کنید یک کوئری Entity Framework داریم که به صورت زیر است:
با استفاده از قابلیتهای جدید ReSharper 2023.3، میتوانیم مشکلات احتمالی در این کوئری را شناسایی کنیم. به عنوان مثال، ReSharper میتواند به ما هشدار دهد که این کوئری ممکن است کند باشد.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
___________
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
_____
ابزار ReSharper، ابزاری قدرتمند برای توسعهدهندگان داتنت است که با ارائه طیف گستردهای از ویژگیها و قابلیتها، به توسعهدهندگان کمک میکند تا کد خود را با کیفیت بالاتر و سرعت بیشتری تولید کنند. نسخه 2023.3 ReSharper، با ویژگیهای جدید و بهبودیافته خود، تجربه کدنویسی داتنت را به طور اساسی تغییر میدهد.
ویژگیهای جدید و بهبودیافته:
🟣قابلیت Code Analysis:
🟣شناسایی مشکلات جدیدی مانند استفاده از کدهای ناکارآمد، احتمال حملات امنیتی، و مشکلات عملکردی
🟣بهبود دقت شناسایی مشکلات
🟣ارائه پیشنهادات عملی برای رفع مشکلات
مثال عملی: فرض کنید کد زیر را مینویسیم:
public class MyClass
{
public void MyMethod()
{
// این کد ناکارآمد است
for (int i = 0; i < 1000000; i++)
{
Console.WriteLine("i = " + i);
}
}
}
با استفاده از Code Analysis ReSharper 2023.3، میتوان این خطا را شناسایی کرد:
[ReSharper] 'MyClass.MyMethod()' is inefficient: it uses a for loop with a large number of iterations.
🟢قابلیت Code Completion:
🟢ارائه پیشنهادات دقیقتر و مرتبطتر با context کد
🟢جلوگیری از تکمیل کدهای ناامن
🟢پشتیبانی از کدنویسی با استفاده از زبانهای طبیعی
مثال عملی: فرض کنید کد زیر را مینویسیم:
public class MyClass
{
public void MyMethod()
{
// این کد ناامن است
var password = "my-password";
// ...
}
}
با استفاده از Code Completion ReSharper 2023.3، میتوان این خطا را شناسایی کرد:
[ReSharper] 'password' is a hard-coded password. This can lead to security vulnerabilities.
🟣قابلیت Refactoring:
🔵پشتیبانی از تغییرات پیچیدهتر مانند تغییر ساختار کد
🔵جلوگیری از بروز خطاهای احتمالی در هنگام انجام تغییرات
🔵ارائه گزارشهای دقیقتر از تغییرات انجامشده
مثال عملی: فرض کنید کد زیر را مینویسیم:
public class MyClass
{
public void MyMethod()
{
// این کد میتواند با استفاده از refactoring بهینه شود
var list = new List<int>();
for (int i = 0; i < 100; i++)
{
list.Add(i);
}
// ...
}
}
با استفاده از Refactoring ReSharper 2023.3، میتوان این کد را بهینه کرد:
public class MyClass
{
public void MyMethod()
{
var list = new List<int>(Enumerable.Range(0, 100));
// ...
}
}
🟢قابلیت جدید در Entity Framework:
در ReSharper 2023.3، بهروزرسانیهایی در Entity Framework ارائه شده است که به توسعهدهندگان کمک میکند تا کد Entity Framework خود را با کیفیت بالاتر و سرعت بیشتری تولید کنند.
ویژگیهای جدید و بهبودیافته:
🟢مشاهده روابط Entity Framework (ERD): ReSharper 2023.3، ابزار جدیدی برای ویرایش و مشاهده Entity Relationship Diagrams (ERDs) ارائه میدهد. این ابزار به توسعهدهندگان کمک میکند تا روابط بین جدولهای Entity Framework را بهطور واضحتری درک کنند.
🟢تجزیه و تحلیل و بازرسی کوئریهای Entity Framework: ReSharper 2023.3، قابلیتهای جدیدی برای تجزیه و تحلیل و بازرسی کوئریهای Entity Framework ارائه میدهد. این قابلیتها میتوانند به توسعهدهندگان در شناسایی و رفع مشکلات احتمالی در کوئریهای خود کمک کنند.
مثالهایی از نحوه استفاده از ویژگیهای جدید:
🟢مشاهده روابط Entity Framework (ERD): فرض کنید یک پروژه Entity Framework داریم که شامل دو جدول به نامهای Customer و Order است. با استفاده از ابزار Visualize Entity Framework Relationships ReSharper 2023.3، میتوانیم ERD زیر را ایجاد کنیم:
Customer
|
|_ Order
🟢تجزیه و تحلیل و بازرسی کوئریهای Entity Framework: فرض کنید یک کوئری Entity Framework داریم که به صورت زیر است:
var customers = context.Customers.Where(c => c.Name.Contains("John"));با استفاده از قابلیتهای جدید ReSharper 2023.3، میتوانیم مشکلات احتمالی در این کوئری را شناسایی کنیم. به عنوان مثال، ReSharper میتواند به ما هشدار دهد که این کوئری ممکن است کند باشد.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
___________
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
_____
The JetBrains Blog
ReSharper 2023.3: Support For C# 12, Performance Enhancements, and More AI-Powered Features | The .NET Tools Blog
ReSharper 2023.3 and new versions of other JetBrains .NET tools have just been released. This version brings support for the latest C# 12 features, optimized background code analysis, and the ability
🔥24👍11❤5👏4
اجرای سبکتر یک وب اپلیکیشن ساده!
معمولا زمانی که یک وب اپلیکیشن ASP.NET ای ایجاد میکنیم، به صورت پیش فرض از روشهای زیر برای ساخت اپ استفاده میشود:
این دو روش متدوالترین روشها هستند و تفاوت آنها را میتوانید اینجا ببینید.
اما این دو روش امکانات خیلی زیادی را به سیستم اضافه میکنند که ممکن است حتی تا پایان عمر سیستم هم از بیشتر آنها استفاده نکنید!
اگر اپی ساده دارید بد نیست نگاهی به دو روش زیر هم بیندازید:
و
حالت CreateEmptyBuilder عملا چیزی ندارد و اگر ران شود همان ابتدا خطا میدهد و باید چیزهایی به صورت اولیه به آن اضافه کنید. اما حالت CreateSlimBuilder یک وب اپ ساده برای شما بالا میآورد با این تفاوت نسبت به CreateBuilder که یک سری موارد از جمله موارد زیر را ندارد:
- عدم ساپورت startup assemblies
- عدم ساپورت EventSource,Debug provider, EventLog provider
- عدم ساپورت از UseStaticWebAssets
- با IIS اینتگریت نمیشود
- در Kestrel هم با HTTPS و Quic که قبلا اینجا معرفی شده است.
🔗 برای مشاهده توضیحات کامل میتوانید از این لینک استفاده کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
__________
معمولا زمانی که یک وب اپلیکیشن ASP.NET ای ایجاد میکنیم، به صورت پیش فرض از روشهای زیر برای ساخت اپ استفاده میشود:
Host.CreateDefaultBuilder()
WebApplication.CreateBuilder()
این دو روش متدوالترین روشها هستند و تفاوت آنها را میتوانید اینجا ببینید.
اما این دو روش امکانات خیلی زیادی را به سیستم اضافه میکنند که ممکن است حتی تا پایان عمر سیستم هم از بیشتر آنها استفاده نکنید!
اگر اپی ساده دارید بد نیست نگاهی به دو روش زیر هم بیندازید:
WebApplication.CreateSlimBuilder()
و
WebApplication.CreateEmptyBuilder()
حالت CreateEmptyBuilder عملا چیزی ندارد و اگر ران شود همان ابتدا خطا میدهد و باید چیزهایی به صورت اولیه به آن اضافه کنید. اما حالت CreateSlimBuilder یک وب اپ ساده برای شما بالا میآورد با این تفاوت نسبت به CreateBuilder که یک سری موارد از جمله موارد زیر را ندارد:
- عدم ساپورت startup assemblies
- عدم ساپورت EventSource,Debug provider, EventLog provider
- عدم ساپورت از UseStaticWebAssets
- با IIS اینتگریت نمیشود
- در Kestrel هم با HTTPS و Quic که قبلا اینجا معرفی شده است.
🔗 برای مشاهده توضیحات کامل میتوانید از این لینک استفاده کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
__________
Stack Overflow
.Net 6 Console app: WebApplication.CreateBuilder vs Host.CreateDefaultBuilder
I'm looking into .NET 6, and wanted to build a simple console application, with some dependency injection.
From what i can read, a lot has been done to make the startup (now just program) file, more
From what i can read, a lot has been done to make the startup (now just program) file, more
👍21❤5🔥5👏4🥰1
کلاس Random در سی شارپ thread-safe نیست!
شیوه متداولی که برنامهنویسان دات نت از کلاس
منظور این کد است:
کد بالا thread-safe نیست ولی دات نت از ورژن NET6. به بعد، به روش زیر امکان thread-safe بودن را ایجاد کرد:
🔗 برای مشاهده توضیحات کامل میتوانید از این لینک استفاده کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
__________
شیوه متداولی که برنامهنویسان دات نت از کلاس
Random استفاده میکنند thread-safe نیست!منظور این کد است:
var random = new Random();
random.Next(1,100);
کد بالا thread-safe نیست ولی دات نت از ورژن NET6. به بعد، به روش زیر امکان thread-safe بودن را ایجاد کرد:
Random.Shared.Next(1, 100);
🔗 برای مشاهده توضیحات کامل میتوانید از این لینک استفاده کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
__________
Docs
Random.Shared Property (System)
Provides a thread-safe Random instance that may be used concurrently from any thread.
👍26🔥7❤2
استفاده از سرویس مایکروسافت hosted agent یا self hosted agent ؟
سرویس Microsoft Hosted Agent ماشینهای مجازی هستند که توسط مایکروسافت مدیریت و در Cloud اجرا میشوند. این سرویسها مجموعهای از ابزارها و نرم افزارهای از پیش تعریف شده و نصب شده دارند و به طور منظم به روز میشوند. شما میتوانید از image های مختلف مانند ویندوز، لینوکس یا macOS بسته به نیازهای خود انتخاب کنید. همچنین هر بار که یک pipeline را اجرا میکنید، برای هر کار یک VM تازه دریافت میکنید که VM پس از اتمام کار دور ریخته میشود.
یک Self-Hosted Agent ماشینهای مجازی یا ماشینهای فیزیکی هستند که شما به تنهایی تنظیم و مدیریت میکنید. شما میتوانید هر نرم افزار یا ابزاری را که برای ساخت و استقرار خود نیاز دارید نصب کنید و کنترل کامل بر سخت افزار، سیستم عامل و پیکربندی داشته باشید. شما همچنین میتوانید از حافظههای پنهان در سطح ماشین و پیکربندی برای سرعت بخشیدن به pipeline خود استفاده کنید.
چه زمانی از Self-Hosted Agent یا Microsoft Hosted استفاده کنیم؟
پیچیدگی: اگر pipeline شما نیاز به نرم افزار پیچیده یا سفارشی یا ابزارهایی دارند که در مایکروسافت Hosted Agent در دسترس نیستند، باید از Self-Hosted استفاده کنید.
عملکرد: اگر pipeline شما به عملکرد یا مسائل مربوط به شبکه حساس هستند، باید از Self-Hosted استفاده کنید.
هزینه: اگر pipeline شما اغلب یا برای مدت طولانی اجرا میشوند، باید از Self-Hosted استفاده کنید
امنیت: اگر pipeline شما اطلاعات یا کد حساس یا محرمانه را اداره میکنند، باید از Self-Hosted استفاده کنید.
🔗 نسخه کامل مقاله را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
سرویس Microsoft Hosted Agent ماشینهای مجازی هستند که توسط مایکروسافت مدیریت و در Cloud اجرا میشوند. این سرویسها مجموعهای از ابزارها و نرم افزارهای از پیش تعریف شده و نصب شده دارند و به طور منظم به روز میشوند. شما میتوانید از image های مختلف مانند ویندوز، لینوکس یا macOS بسته به نیازهای خود انتخاب کنید. همچنین هر بار که یک pipeline را اجرا میکنید، برای هر کار یک VM تازه دریافت میکنید که VM پس از اتمام کار دور ریخته میشود.
یک Self-Hosted Agent ماشینهای مجازی یا ماشینهای فیزیکی هستند که شما به تنهایی تنظیم و مدیریت میکنید. شما میتوانید هر نرم افزار یا ابزاری را که برای ساخت و استقرار خود نیاز دارید نصب کنید و کنترل کامل بر سخت افزار، سیستم عامل و پیکربندی داشته باشید. شما همچنین میتوانید از حافظههای پنهان در سطح ماشین و پیکربندی برای سرعت بخشیدن به pipeline خود استفاده کنید.
چه زمانی از Self-Hosted Agent یا Microsoft Hosted استفاده کنیم؟
پیچیدگی: اگر pipeline شما نیاز به نرم افزار پیچیده یا سفارشی یا ابزارهایی دارند که در مایکروسافت Hosted Agent در دسترس نیستند، باید از Self-Hosted استفاده کنید.
عملکرد: اگر pipeline شما به عملکرد یا مسائل مربوط به شبکه حساس هستند، باید از Self-Hosted استفاده کنید.
هزینه: اگر pipeline شما اغلب یا برای مدت طولانی اجرا میشوند، باید از Self-Hosted استفاده کنید
امنیت: اگر pipeline شما اطلاعات یا کد حساس یا محرمانه را اداره میکنند، باید از Self-Hosted استفاده کنید.
🔗 نسخه کامل مقاله را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Microsoft Hosted Agents or Self-Hosted Agents
If you are using Azure Pipelines to build and deploy your software, you need to choose between...
👍5