وراثت یا ترکیب Inheritance vs Composition، مسئله این است!
درک Inheritance
وراثت مفهومی اساسی در برنامه نویسی شی گرا (OOP) است که راهی برای ایجاد کلاسهای جدید از کلاسهای موجود است. وراثت زمانی مفید است که بخواهیم یک رابطه "is-a" بین کلاسها را مدل کنیم. به عنوان مثال، یک کلاس Dog میتواند از یک کلاس Animal ارث ببرد، زیرا سگ یک حیوان است.
زمان استفاده و عدم استفاده از Inheritance
زمانی که میخواهید یک رابطه "is-a" را مدل کنید، از وراثت استفاده کنید. به عنوان مثال، سگ نوعی خاص از حیوانات است. در چنین مواردی، وراثت میتواند منجر به کد پاک و شهودی شود. با این حال، معایبی نیز دارد. یکی از این معایب این است که وراثت یک رابطه محکم بین کلاسها ایجاد میکند، به این معنی که هر تغییری در کلاس والد میتواند بر کلاسهای فرزند تأثیر بگذارد.
اشکال دیگر این است که Inheritance میتواند منجر به تعمیم بیش از حد و سردرگمی شود. به عنوان مثال، اگر بخواهیم یک کلاس Bird ایجاد کنیم که از Animal ارث میبرد، چه میشود؟ آیا باید روشهای خوردن و خوابیدن را نیز به ارث ببریم؟ اگر بخواهیم یک کلاس پنگوئن بسازیم که از Bird به ارث میبرد چه؟ آیا باید متد Fly را هم به ارث ببریم؟
درک Compositin
ترکیب یکی دیگر از مفاهیم OOP است که در آن یک کلاس با ترکیب چندین شی از کلاسهای دیگر ساخته میشود. ترکیب بندی بر اساس ایده رابطه "has-a" بین طبقات است. به عنوان مثال، یک کلاس Car دارای یک کلاس Engine، یک کلاس Wheel، یک کلاس Door و غیره. Composition زمانی مفید است که بخواهیم اشیاء پیچیدهای را که از اشیاء سادهتری تشکیل شدهاند مدلسازی کنیم.
زمان استفاده و عدم استفاده از Composition
ترکیب روشی انعطافپذیر برای ایجاد کلاسهای جدید از کلاسهای موجود است، زمانی که میخواهید یک رابطه "has-a" را مدل کنید از ترکیب استفاده کنید. با این حال، معایبی نیز دارد. یکی از از این معایب این است که ترکیب می تواند منجر به تکرار کد و پیچیدگی شود.
به عنوان مثال، اگر بخواهیم یک کلاس Truck ایجاد کنیم که مشابه کلاس Car باشد، اما چرخهای بیشتری داشته باشد و موتور متفاوتی داشته باشد چه؟ آیا باید کد را از کلاس Car کپی و پیست کنیم و آن را اصلاح کنیم؟ اگر بخواهیم یک کلاس موتور سیکلت ایجاد کنیم که فقط دو چرخ و یک موتور متفاوت داشته باشد، چه؟ آیا باید یک کلاس جدید از ابتدا ایجاد کنیم؟
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
درک Inheritance
وراثت مفهومی اساسی در برنامه نویسی شی گرا (OOP) است که راهی برای ایجاد کلاسهای جدید از کلاسهای موجود است. وراثت زمانی مفید است که بخواهیم یک رابطه "is-a" بین کلاسها را مدل کنیم. به عنوان مثال، یک کلاس Dog میتواند از یک کلاس Animal ارث ببرد، زیرا سگ یک حیوان است.
زمان استفاده و عدم استفاده از Inheritance
زمانی که میخواهید یک رابطه "is-a" را مدل کنید، از وراثت استفاده کنید. به عنوان مثال، سگ نوعی خاص از حیوانات است. در چنین مواردی، وراثت میتواند منجر به کد پاک و شهودی شود. با این حال، معایبی نیز دارد. یکی از این معایب این است که وراثت یک رابطه محکم بین کلاسها ایجاد میکند، به این معنی که هر تغییری در کلاس والد میتواند بر کلاسهای فرزند تأثیر بگذارد.
اشکال دیگر این است که Inheritance میتواند منجر به تعمیم بیش از حد و سردرگمی شود. به عنوان مثال، اگر بخواهیم یک کلاس Bird ایجاد کنیم که از Animal ارث میبرد، چه میشود؟ آیا باید روشهای خوردن و خوابیدن را نیز به ارث ببریم؟ اگر بخواهیم یک کلاس پنگوئن بسازیم که از Bird به ارث میبرد چه؟ آیا باید متد Fly را هم به ارث ببریم؟
درک Compositin
ترکیب یکی دیگر از مفاهیم OOP است که در آن یک کلاس با ترکیب چندین شی از کلاسهای دیگر ساخته میشود. ترکیب بندی بر اساس ایده رابطه "has-a" بین طبقات است. به عنوان مثال، یک کلاس Car دارای یک کلاس Engine، یک کلاس Wheel، یک کلاس Door و غیره. Composition زمانی مفید است که بخواهیم اشیاء پیچیدهای را که از اشیاء سادهتری تشکیل شدهاند مدلسازی کنیم.
زمان استفاده و عدم استفاده از Composition
ترکیب روشی انعطافپذیر برای ایجاد کلاسهای جدید از کلاسهای موجود است، زمانی که میخواهید یک رابطه "has-a" را مدل کنید از ترکیب استفاده کنید. با این حال، معایبی نیز دارد. یکی از از این معایب این است که ترکیب می تواند منجر به تکرار کد و پیچیدگی شود.
به عنوان مثال، اگر بخواهیم یک کلاس Truck ایجاد کنیم که مشابه کلاس Car باشد، اما چرخهای بیشتری داشته باشد و موتور متفاوتی داشته باشد چه؟ آیا باید کد را از کلاس Car کپی و پیست کنیم و آن را اصلاح کنیم؟ اگر بخواهیم یک کلاس موتور سیکلت ایجاد کنیم که فقط دو چرخ و یک موتور متفاوت داشته باشد، چه؟ آیا باید یک کلاس جدید از ابتدا ایجاد کنیم؟
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Inheritance or Composition, that is the question.
In this article, I want to explore the differences between two common object-oriented programming...
👍24❤1
ابهام زدایی از Concurrency و Racing Conditions
تعریف Concurrency:
همزمانی به توانایی یک سیستم کامپیوتری برای اجرای چندین کار یا فرآیند به طور همزمان اشاره دارد که ظاهراً در زمان همپوشانی دارند. همزمانی مفهوم گستردهتری است که موازیسازی را در بر میگیرد اما لزوماً نیازی به اجرای همزمان وظایف بر روی چندین هسته CPU ندارد. این در مورد مدیریت و زمان بندی وظایف متعدد به گونه ای است که بیشترین استفاده را از منابع موجود داشته باشد.
تعریف Racing Conditions:
یک Racing Conditions نوعی باگ مربوط به همزمانی است و زمانی رخ میدهد که چندین رشته یا پردازش به دادهها یا منابع مشترک دسترسی داشته باشند و نتیجه نهایی به زمان بندی یا ترتیب اجرا بستگی دارد. به عبارت دیگر، این یک "مسابقه" بین رشتهها برای دسترسی و اصلاح دادههای مشترک است و نتیجه میتواند غیرقابل پیش بینی و نادرست باشد.
روش های جلوگیری از Racing Conditions:
در .Net برای جلوگیری از شرایط مسابقه بین Thread ها میتوانید از lock , Semaphores, Mutexes یا Monitors استفاده کنید. در عمل، انتخاب بهترین گزینه به نیازهای خاص برنامه شما بستگی دارد. lock اغلب سادهترین و رایجترین مکانیسم همگام سازی برای مدیریت همزمانی در یک فرآیند واحد است. Mutexes و Semaphores برای سناریوهای همگام سازی پیچیدهتر شامل ارتباطات بین فرآیندی یا مدیریت منابع استفاده میشود. Monitors یک رویکرد شیگرا برای همگام سازی ارائه میدهند و مدیریت همگام سازی را در زمینه اشیا و روشها آسانتر میکند.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
تعریف Concurrency:
همزمانی به توانایی یک سیستم کامپیوتری برای اجرای چندین کار یا فرآیند به طور همزمان اشاره دارد که ظاهراً در زمان همپوشانی دارند. همزمانی مفهوم گستردهتری است که موازیسازی را در بر میگیرد اما لزوماً نیازی به اجرای همزمان وظایف بر روی چندین هسته CPU ندارد. این در مورد مدیریت و زمان بندی وظایف متعدد به گونه ای است که بیشترین استفاده را از منابع موجود داشته باشد.
تعریف Racing Conditions:
یک Racing Conditions نوعی باگ مربوط به همزمانی است و زمانی رخ میدهد که چندین رشته یا پردازش به دادهها یا منابع مشترک دسترسی داشته باشند و نتیجه نهایی به زمان بندی یا ترتیب اجرا بستگی دارد. به عبارت دیگر، این یک "مسابقه" بین رشتهها برای دسترسی و اصلاح دادههای مشترک است و نتیجه میتواند غیرقابل پیش بینی و نادرست باشد.
روش های جلوگیری از Racing Conditions:
در .Net برای جلوگیری از شرایط مسابقه بین Thread ها میتوانید از lock , Semaphores, Mutexes یا Monitors استفاده کنید. در عمل، انتخاب بهترین گزینه به نیازهای خاص برنامه شما بستگی دارد. lock اغلب سادهترین و رایجترین مکانیسم همگام سازی برای مدیریت همزمانی در یک فرآیند واحد است. Mutexes و Semaphores برای سناریوهای همگام سازی پیچیدهتر شامل ارتباطات بین فرآیندی یا مدیریت منابع استفاده میشود. Monitors یک رویکرد شیگرا برای همگام سازی ارائه میدهند و مدیریت همگام سازی را در زمینه اشیا و روشها آسانتر میکند.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Demystifying Concurrency and Racing Conditions
Concurrency and Racing Conditions are two important concepts in .NET programming, especially when...
👍13❤2🔥1
تعریف اتمام کار چیست ( DoD - Definition of Done)؟
یکی از مفاهیم کلیدی در توسعه نرم افزار چابک، تعریف اتمام کار (DoD) است. DoD مجموعهای از معیارهایی است که یک User Story یا یک ویژگی قبل از اینکه کامل شده و آماده تولید در نظر گرفته شود باید آنها را رعایت کند. DoD کمک می کند تا اطمینان حاصل شود که کیفیت و عملکرد محصول با انتظارات ذینفعان سازگار و همسو است.
تعریف DoD بسته به زمینه و محدوده پروژه می تواند متفاوت باشد. با این حال، همیشه باید توسط همه اعضای تیم درگیر در فرآیند توسعه، مانند صاحبان محصول، مدیران پروژه، توسعه دهندگان و اعضای تیم QA، به صورت واضح مورد توافق قرار گیرد.
تعریف DoD ابزار قدرتمندی است که میتواند به بهبود کیفیت، کارایی و همکاری تیمهای توسعه نرم افزار چابک کمک کند. با داشتن یک DoD درست و ایدهآل، میتوانیم اطمینان حاصل کنیم که محصولات ارزشمندی را ارائه میدهیم که نیازها و انتظارات مشتریان ما را برآورده میکند.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
یکی از مفاهیم کلیدی در توسعه نرم افزار چابک، تعریف اتمام کار (DoD) است. DoD مجموعهای از معیارهایی است که یک User Story یا یک ویژگی قبل از اینکه کامل شده و آماده تولید در نظر گرفته شود باید آنها را رعایت کند. DoD کمک می کند تا اطمینان حاصل شود که کیفیت و عملکرد محصول با انتظارات ذینفعان سازگار و همسو است.
تعریف DoD بسته به زمینه و محدوده پروژه می تواند متفاوت باشد. با این حال، همیشه باید توسط همه اعضای تیم درگیر در فرآیند توسعه، مانند صاحبان محصول، مدیران پروژه، توسعه دهندگان و اعضای تیم QA، به صورت واضح مورد توافق قرار گیرد.
تعریف DoD ابزار قدرتمندی است که میتواند به بهبود کیفیت، کارایی و همکاری تیمهای توسعه نرم افزار چابک کمک کند. با داشتن یک DoD درست و ایدهآل، میتوانیم اطمینان حاصل کنیم که محصولات ارزشمندی را ارائه میدهیم که نیازها و انتظارات مشتریان ما را برآورده میکند.
🔗 نسخه کامل مقاله به همراه نمونه کد را میتوانید در اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
What is the definition of done (DoD)
One of the key concepts in agile software development is the definition of done (DoD). The DoD is a...
👍3❤2
تعریف Azure Function
تابع Azure، یک راه حل بدون سرور است که به شما امکان میدهد تا کد کمتری بنویسید، زیرساخت کمتری را مصرف کنید و در هزینهها صرفه جویی کنید. تابع Azure قطعهای از کد است که در پاسخ به رویدادهای مختلف مانند درخواستهای HTTP، تایمرها، صفها، blobs و غیره اجرا میشود. شما میتوانید توابع Azure را در چندین زبان مانند C#، Java، JavaScript، PowerShell، Python و غیره بنویسید. همچنین میتوانید از ابزارهای مختلفی برای توسعه و اشکال زدایی توابع Azure استفاده کنید.
چه زمانی میتوانیم از تابع Azure استفاده کنیم؟
میتوانید از تابع Azure برای بسیاری از سناریوهایی که به event-driven logic و ادغام با سایر سرویسها نیاز دارند، استفاده کنید. به عنوان مثال، میتوانید از تابع Azure برای موارد زیر استفاده کنید:
- فرآیند آپلود فایل
- پردازش دادهها در زمان واقعی
- استنتاج بر روی مدلهای داده
- کارهای برنامه ریزی شده را اجرا کنید
- یک وب API مقیاس پذیر بسازید
- گردش کاری بدون سرور بسازید
- به تغییرات پایگاه داده پاسخ دهید
چگونه با درخواست HTTP یک تابع Azure ایجاد و راه اندازی کنیم؟
برای ایجاد یک تابع Azure با یک تریگر HTTP، باید این مراحل را دنبال کنید:
- یک function app در پورتال Azure یا با استفاده از Azure CLI ایجاد کنید. function app ظرفی است که میزبان یک یا چند عملکرد است.
- با استفاده از HTTP trigger template، یک تابع جدید در برنامه تابع ایجاد کنید. شما میتوانید C# را به عنوان زبان کد تابع خود انتخاب کنید.
- کد مورد نظر خود را در ویرایشگر کد بنویسید. میتوانید از کلاسهای HttpRequestData و HttpResponseData برای دسترسی به اشیاء درخواست و پاسخ HTTP استفاده کنید.
- با استفاده از پنل Test/Run یا با استفاده از curl یا Postman عملکرد خود را ذخیره و آزمایش کنید. میتوانید URL تابع خود را از قسمت Function URL کپی کنید.
🔗 نسخه کامل مقاله به همراه نمونه کد را اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
تابع Azure، یک راه حل بدون سرور است که به شما امکان میدهد تا کد کمتری بنویسید، زیرساخت کمتری را مصرف کنید و در هزینهها صرفه جویی کنید. تابع Azure قطعهای از کد است که در پاسخ به رویدادهای مختلف مانند درخواستهای HTTP، تایمرها، صفها، blobs و غیره اجرا میشود. شما میتوانید توابع Azure را در چندین زبان مانند C#، Java، JavaScript، PowerShell، Python و غیره بنویسید. همچنین میتوانید از ابزارهای مختلفی برای توسعه و اشکال زدایی توابع Azure استفاده کنید.
چه زمانی میتوانیم از تابع Azure استفاده کنیم؟
میتوانید از تابع Azure برای بسیاری از سناریوهایی که به event-driven logic و ادغام با سایر سرویسها نیاز دارند، استفاده کنید. به عنوان مثال، میتوانید از تابع Azure برای موارد زیر استفاده کنید:
- فرآیند آپلود فایل
- پردازش دادهها در زمان واقعی
- استنتاج بر روی مدلهای داده
- کارهای برنامه ریزی شده را اجرا کنید
- یک وب API مقیاس پذیر بسازید
- گردش کاری بدون سرور بسازید
- به تغییرات پایگاه داده پاسخ دهید
چگونه با درخواست HTTP یک تابع Azure ایجاد و راه اندازی کنیم؟
برای ایجاد یک تابع Azure با یک تریگر HTTP، باید این مراحل را دنبال کنید:
- یک function app در پورتال Azure یا با استفاده از Azure CLI ایجاد کنید. function app ظرفی است که میزبان یک یا چند عملکرد است.
- با استفاده از HTTP trigger template، یک تابع جدید در برنامه تابع ایجاد کنید. شما میتوانید C# را به عنوان زبان کد تابع خود انتخاب کنید.
- کد مورد نظر خود را در ویرایشگر کد بنویسید. میتوانید از کلاسهای HttpRequestData و HttpResponseData برای دسترسی به اشیاء درخواست و پاسخ HTTP استفاده کنید.
- با استفاده از پنل Test/Run یا با استفاده از curl یا Postman عملکرد خود را ذخیره و آزمایش کنید. میتوانید URL تابع خود را از قسمت Function URL کپی کنید.
🔗 نسخه کامل مقاله به همراه نمونه کد را اینجا مطالعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#محمدرضا_پازوکی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
What is Azure Function?
In this blog post, I will write about the Azure function, a serverless computing service that allows...
👍6❤4
Forwarded from Arfa
Media is too big
VIEW IN TELEGRAM
به قول جادی : " Git خیییییلی بزرگه، من شک دارم خود توروالدز هم همه اش رو یادش باشه همیشه "
ولی دونستنش خیلی مهمه چون Git ابزاریه که به ما کمک میکنه بتونیم مثل چرخ دنده های ساعت خیلی روون و تمیز کنار هم کد بزنیم
این به کنار، وقتی میخوایم روی یه پروژه اوپن سورس مشارکت کنیم هم نیازه به Git مسلط باشیم
برای همن ما تصمیم گرفتیم تمام فرایند های اصلیای که Git درش استفاده میشه رو در یه کارگاه عملی و رایگان مرور کنیم:
از 0 تا 100 توسعه یه فیچر یا رفع یه باگ
ریو کردنش
تستش
در نهایت بردنش رو پروداکشن
از طرفی برای 40 نفر از کسایی که دوس دارن اولین ( یا چندمین ) مشارکتشون در دنیای اوپن سورس رو انجام بدن یه تعداد تسک خیلی ساده ( در حد اصلاح یه کلمه ) آماده کردیم تا خیلی راحت اولین contribute شون رو انجام بدن
که فرصت خیلی خوبی برای hacktoberfest هم هست !
از همین پایین میتونی تو رویداد شرکت ( attend ) کنی. (کارگاه رایگان هست)
https://www.linkedin.com/events/gitworkshop7118506016878510080/theater/
اطلاع رسانی ها و ویدیو ضبط شده دوره رو توی این کانال تلگرامی میذاریم :
https://news.1rj.ru/str/hacktoberfest_fa
ولی دونستنش خیلی مهمه چون Git ابزاریه که به ما کمک میکنه بتونیم مثل چرخ دنده های ساعت خیلی روون و تمیز کنار هم کد بزنیم
این به کنار، وقتی میخوایم روی یه پروژه اوپن سورس مشارکت کنیم هم نیازه به Git مسلط باشیم
برای همن ما تصمیم گرفتیم تمام فرایند های اصلیای که Git درش استفاده میشه رو در یه کارگاه عملی و رایگان مرور کنیم:
از 0 تا 100 توسعه یه فیچر یا رفع یه باگ
ریو کردنش
تستش
در نهایت بردنش رو پروداکشن
از طرفی برای 40 نفر از کسایی که دوس دارن اولین ( یا چندمین ) مشارکتشون در دنیای اوپن سورس رو انجام بدن یه تعداد تسک خیلی ساده ( در حد اصلاح یه کلمه ) آماده کردیم تا خیلی راحت اولین contribute شون رو انجام بدن
که فرصت خیلی خوبی برای hacktoberfest هم هست !
از همین پایین میتونی تو رویداد شرکت ( attend ) کنی. (کارگاه رایگان هست)
https://www.linkedin.com/events/gitworkshop7118506016878510080/theater/
اطلاع رسانی ها و ویدیو ضبط شده دوره رو توی این کانال تلگرامی میذاریم :
https://news.1rj.ru/str/hacktoberfest_fa
👍11❤9🔥1
دستیار شخصی شما در پیش برد کارهای پس زمینه!
آیا تا به حال برایتان پیش آمده است که نیاز داشته باشید یک سری کارهای پس زمینه را در .Net هندل کنید؟
احتمالا نیاز داشتهاید یک سری جاب را Schedule کنید تا در زمانهای مشخصی کارهای مشخصی انجام دهند.
برای هندل کردن این کارها راه کار ساده و مفیدی وجود دارد به نام Hangfire. Hangfire فریمورکی open-source است که به توسعهدهندگان در اجرای، تنظیم و مدیریت background tasks در هر برنامهای .NET کمک میکند. Hangfire همچنین امکان پشتیبانی از هر دو ساختار .NET Framework و .NET Core را دارد.
جابها در Hangfire نسخهبندی میشوند، مجددا امتحان میشوند، در صف قرار میگیرند و بینworker های موجود توزیع میشوند.
عملیات Hangfire در چهار دستهی نوبت دهی، اجرا، تلاش مجدد و نسخه سازی دسته بندی میشود.
علاوه بر سادگی کانفیگ و استفاده از Hangfire، داشتن یک دشبورد عالی برای مدیریت Job ها نکتهای است که Hangfire را از ابزارهای مشابه دیگر متمایز میکند. داشبورد Hangfire مانند یک اتاق کنترل است که به تمام نیازهای شما برای نظارت و اعمال قدرت بر روی Job های خود مجهز است.
🔗 نسخه کامل این مقاله را میتوانید در اینجا مطالعه کنید.
🔗 لینک مقاله در ویرگول
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#نگار_قاسمی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
آیا تا به حال برایتان پیش آمده است که نیاز داشته باشید یک سری کارهای پس زمینه را در .Net هندل کنید؟
احتمالا نیاز داشتهاید یک سری جاب را Schedule کنید تا در زمانهای مشخصی کارهای مشخصی انجام دهند.
برای هندل کردن این کارها راه کار ساده و مفیدی وجود دارد به نام Hangfire. Hangfire فریمورکی open-source است که به توسعهدهندگان در اجرای، تنظیم و مدیریت background tasks در هر برنامهای .NET کمک میکند. Hangfire همچنین امکان پشتیبانی از هر دو ساختار .NET Framework و .NET Core را دارد.
جابها در Hangfire نسخهبندی میشوند، مجددا امتحان میشوند، در صف قرار میگیرند و بینworker های موجود توزیع میشوند.
عملیات Hangfire در چهار دستهی نوبت دهی، اجرا، تلاش مجدد و نسخه سازی دسته بندی میشود.
علاوه بر سادگی کانفیگ و استفاده از Hangfire، داشتن یک دشبورد عالی برای مدیریت Job ها نکتهای است که Hangfire را از ابزارهای مشابه دیگر متمایز میکند. داشبورد Hangfire مانند یک اتاق کنترل است که به تمام نیازهای شما برای نظارت و اعمال قدرت بر روی Job های خود مجهز است.
🔗 نسخه کامل این مقاله را میتوانید در اینجا مطالعه کنید.
🔗 لینک مقاله در ویرگول
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#نگار_قاسمی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Background Tasks and Scheduled Jobs in .NET? Meet Hangfire🔥
Do you often find yourself grappling with managing background tasks and scheduled jobs in your .NET...
👍11🔥5❤4
سرویسهای 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