<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های غلامرضا سفال زاده</title>
        <link>https://virgool.io/feed/@i.lover3000</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-07-07 13:30:09</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/191571/avatar/KcpCQV.jpg?height=120&amp;width=120</url>
            <title>غلامرضا سفال زاده</title>
            <link>https://virgool.io/@i.lover3000</link>
        </image>

                    <item>
                <title>آموزش Wolverine در دات نت - قسمت 1 - مقدمه</title>
                <link>https://virgool.io/@i.lover3000/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-wolverine-%D8%AF%D8%B1-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA-%D9%82%D8%B3%D9%85%D8%AA-1-%D9%85%D9%82%D8%AF%D9%85%D9%87-fzhjkcm8paqt</link>
                <description>معرفیدر دنیای توسعه نرم‌افزارهای مدرن، معماری‌های مبتنی بر پیام‌رسانی (Messaging) و الگوهای CQRS [1] بیش از هر زمان دیگری اهمیت پیدا کرده‌اند. برنامه‌ها باید مقیاس‌پذیر، قابل‌اعتماد و قابل‌توسعه باشند؛ و این دقیقاً همان جایی است که ابزاری مانند Wolverine و مسیج بروکری [2] مانند RabbitMQ وارد میدان می‌شوند.Wolverine یک «ابزار برای اجرای دستورات و مدیریت پیام‌ها»[3] در اپلیکیشن‌های دات نت است. این کتابخانه توسط تیم JasperFx توسعه داده شده و هدفش ساده‌سازی معماری‌های پیچیده، کاهش وابستگی به فریم‌ورک‌های سنگین و ارائه یک تجربه توسعه‌ تمیز، سریع و قابل‌فهم است. می‌تواند به‌عنوان یک Mediator داخلی، یک Message Bus محلی یا حتی یک «سیستم پیام‌رسانی کامل و غیرهمزمان عمل» کند. این ابزار تلاش می‌کند بدون تحمیل ساختارهای پیچیده، توسعه‌دهنده را قادر سازد تا با کمترین کد، بیشترین قابلیت را پیاده‌سازی کند. اجرای بسیار سریع و بهینه‌ی دستورات پشتیبانی از Messaging درون‌برنامه‌ای (In-Process) پشتیبانی از Messaging بین میکرو سرویس‌ها با ابزارهایی مثل RabbitMQ قابلیت استفاده به‌عنوان جایگزین Mediator یکپارچگی کامل با NET Generic Host. ، Logging، DI و سایر اجزای استاندارد دات‌نت امکان استفاده از آن به‌عنوان Endpoint Provider در ASP.NET Coreمنظور از «سیستم پیام‌رسانی کامل و غیرهمزمان» چیست؟ارسال پیام بدون انتظار برای پاسخدر معماری‌های غیرهمزمان، وقتی یک بخش از برنامه پیامی ارسال می‌کند، منتظر اجرای آن در همان لحظه نمی‌ماند. این کار با Queue داخلی یا ابزارهایی مثل RabbitMQ انجام می‌شود. این یعنی:Thread بلاک نمی‌شود؛کاربر معطل نمی‌ماند؛سیستم می‌تواند هزاران پیام را هم‌زمان مدیریت کند؛مدیریت صف پیام‌هاولورین می‌تواند پیام‌ها را در صف قرار دهد (یک Message Bus واقعی در اختیارتان است، نه فقط یک Mediator ساده) تا :در زمان مناسب پردازش شوند؛اگر سیستم شلوغ بود، یا خطایی رخ داد ، پیام‌ها از بین نروند؛اگر خطایی رخ داد، سیستم دوباره برای پردازش پیام تلاش (Retry) کند؛پردازش پیام‌ها در پس‌زمینه [5]ولورین Workerهای داخلی دارد که پیام‌ها را در پس‌زمینه پردازش می‌کنند.  قابلیت ارسال پیام بین میکرو سرویس‌ها [6]ولورین فقط برای داخل یک برنامه نیست. می‌تواند پیام‌ها را با بهره گیری از ابزارهای ثانویه بیرونی بین میکرو سرویس‌ها ارسال و دریافت کند؛ ابزارهایی مانند:با RabbitMQ با Azure Service Busبا TCP داخلی خودش قابلیت‌های کامل یک Message Bus حرفه‌ایولورین امکاناتی دارد که معمولاً فقط در ابزارهای بزرگی مانند MassTransit یا NServiceBus می‌بینید. به عنوان مثال :Scheduled Messages (ارسال پیام در آینده) Durable Messaging (پیام‌ها از بین نمی‌روند) Error Handling و Retry Policies Dead Letter Queue  (مدیریت مسیج های دارای خطا یا غیرقابل پردازش)Tracing و Observability Saga-like State Managementچرا Wolverine مهم است؟در پروژه‌های واقعی، مدیریت پیام‌ها، اجرای دستورات، هماهنگی بین میکروسرویس‌ها و ساخت معماری‌های Event-Driven معمولاً نیازمند چندین کتابخانه مختلف است. ولورین این مشکل را حل می‌کند:یک ابزار واحد برای Command Handling، Messaging و Schedulingکدنویسی تمیز و بدون Boilerplate [7]سرعت بالا و معماری سادهمناسب برای پروژه‌های کوچک تا Enterprise[1] CQRS: Command Query Responsibility Segregation.[2] Message Broker[3] Command &amp; Message Handling Framework[4] Asynchronous Messaging[5] Background Workers[6]Distributed Messaging[7] کدهای تکرای و خسته کننده ای که تقریبا در همه پروژه ها باید بنویسید اما ارزش افزوده ای ایجاد نمیکنند. ولورین سعی میکند همه چیز را خودکار کند.</description>
                <category>غلامرضا سفال زاده</category>
                <author>غلامرضا سفال زاده</author>
                <pubDate>Fri, 19 Jun 2026 18:02:46 +0330</pubDate>
            </item>
            </channel>
</rss>