<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های رحیم لطفی</title>
        <link>https://virgool.io/feed/@m_15490185</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-04-14 11:26:11</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1272227/avatar/1z93qz.png?height=120&amp;width=120</url>
            <title>رحیم لطفی</title>
            <link>https://virgool.io/@m_15490185</link>
        </image>

                    <item>
                <title>آموزش معماری نرم افزار و سیستم دیزاین Solid design principle - اصول SOLID</title>
                <link>https://virgool.io/@m_15490185/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%88-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%AF%DB%8C%D8%B2%D8%A7%DB%8C%D9%86-solid-design-principle-%D8%A7%D8%B5%D9%88%D9%84-solid-o5dj5m7usscd</link>
                <description>اصول SOLID اگرچه همواره پای ثابت بحث‌های برنامه‌نویسی‌اند، اما نقش واقعی‌شان در مسیر توسعه معمولاً نادیده گرفته می‌شود. در این آموزش، رویکرد متفاوتی داریم و کاربرد SOLID را به عنوان یک سنجه و ابزار اعتبارسنجی (Validation) برای ارزیابی طراحی شیءگرا بررسی می‌کنیم.گام‌های سه‌گانه توسعه: از شناخت تا کدنویسی بسیاری از برنامه‌نویسان مستقیماً سراغ نوشتن کد (OOP) می‌روند، در حالی که خلق یک معماری استاندارد نیازمند طی کردن این مراحل است: تحلیل شیءگرا (OOA): درک عمیق نیازمندی‌های بیزینس و صورت‌مسئله. طراحی شیءگرا (OOD): معماری و ساختاربندی راهکارها پیش از شروع برنامه‌نویسی. کدنویسی شیءگرا (OOP): تبدیل طراحی‌های انجام‌شده به کدهای اجرایی. در اینجا یاد می‌گیریم که چطور ساختار اولیه را با الگوهای GRASP پایه‌ریزی کنیم و سپس با ترازوی SOLID، عیار طراحی خود را محک بزنیم. مرز حیاتی میان الگو (Pattern) و اصل (Principle) طراحی تشخیص تفاوت این دو مفهوم، از چالش‌های مهم توسعه‌دهندگان ارشد است:دیزاین پترن‌ها: فرمول‌هایی آماده، شفاف و کپسوله‌شده برای برطرف کردن چالش‌های تکراری‌اند. دیزاین پرینسیپل‌ها: حکم قطب‌نما را دارند و فاقد چارچوب‌های صلب هستند. بررسی می‌کنیم که چرا اجرای اصلی مانند Single Responsibility به بلوغ حرفه‌ای نیاز دارد؛ چرا که افراط در آن به پیچیدگی زاید (Over-engineering) و تفریط در آن به کدهای آشفته ختم می‌شود. معماری در سطوح مختلف: از کانتکست تا کد قواعد طراحی صرفاً به کلاس‌های برنامه محدود نیستند! ما نحوه داشتن یک نگاه کلان و لایه‌محور را آموزش می‌دهیم: کاربرد اصل SRP در مقیاس‌های بزرگ‌تر مانند Bounded Contextها و میکروسرویس‌ها. شیوه‌های کنترل وابستگی‌ها و ارتباطات در لایه‌های Container و Component. تاثیر مدیریت وابستگی در مهار معضلاتی نظیر خشکی نرم‌افزار (Rigidity) و مقاومت در برابر تغییر (Viscosity). اهمیت شناخت وابستگی‌ها (Dependency) پیش از ورود به SOLID مادامی که منشأ اصلی پیچیدگی‌های سیستم (یعنی وابستگی‌ها) را درک نکنید، قواعد سالید صرفاً محفوظاتی بی‌کاربرد خواهند بود. در این ویدیو، پیش‌نیازهای ورود به دنیای معماری حرفه‌ای، نظیر درک الگوهای GRASP و استراتژی‌های مدیریت وابستگی را به شکلی کاربردی کالبدشکافی می‌کنیمویدو این آموزشhttps://www.aparat.com/v/dxq47gdامید وارم لذت ببرید</description>
                <category>رحیم لطفی</category>
                <author>رحیم لطفی</author>
                <pubDate>Fri, 10 Apr 2026 11:58:50 +0330</pubDate>
            </item>
                    <item>
                <title>فرا تاب رایان گستر؛ جایی که ایده‌ها نرم‌افزار می‌شوند ✨</title>
                <link>https://virgool.io/@m_15490185/%D9%81%D8%B1%D8%A7-%D8%AA%D8%A7%D8%A8-%D8%B1%D8%A7%DB%8C%D8%A7%D9%86-%DA%AF%D8%B3%D8%AA%D8%B1-%D8%AC%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%A7%DB%8C%D8%AF%D9%87-%D9%87%D8%A7-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%85%DB%8C-%D8%B4%D9%88%D9%86%D8%AF-%E2%9C%A8-jmislhae9m0b</link>
                <description>آیا شرکت شما هم با این چالش مواجه است؟ 🤔&quot;نیروی فنی متخصص به‌اندازه کافی نداریم.&quot;&quot;پروژه نرم‌افزاری داریم، اما زمان کافی برای مدیریتش نداریم.&quot;&quot;می‌خواهیم روی core business خود تمرکز کنیم.&quot;اگر این جمله‌ها برای شما آشناست، جای درستی آمده‌ایدپروژه نرم‌افزاری‌تان را به ما بسپارید 🚀ما در شرکت فرا تاب رایان گستر، پل ارتباطی بین ایده‌های بزرگ و راه‌حل‌های نرم‌افزاری قدرتمند هستیم. اگر شرکت شما به دنبال یک تیم متخصص برای پیاده‌سازی پروژه‌های نرم‌افزاری خود است، ما آماده همکاری با شما هستیم.تخصص ما، توسعه نرم‌افزارهای سفارشی با بالاترین استانداردهای کیفیت است. ما در فرا تاب رایان گستر با استفاده از جدیدترین تکنولوژی‌ها و متدولوژی‌های چابق (Agile)، پروژه شما را از مرحله ایده تا پیاده‌سازی و پشتیبانی همراهی می‌کنیم. چه به دنبال یک تیم توسعه برای پروژه‌های Outsource باشید و چه نیاز به یک شریک بلندمدت برای تحول دیجیتال کسب‌وکار خود داشته باشید، تیم مهندسی ما اینجاست تا با قدرت فنی و تعهد بالا، مسیر موفقیت شما را هموار کند✅ خدمات ما:توسعه نرم‌افزارهای سفارشیبرون‌سپاری تیم فنی (Outsourcing)مشاوره تحول دیجیتال.برای همکاری و مشاوره، با ما در تماس باشید:شرکت فرا تاب رایان گستر📞 09199906342📧 lotfirahimdev@gmail.com#توسعه_نرم‌افزار#برنامه_نویسی#طراحی_سایت#اپلیکیشن_موبایل#نرم‌افزار_سفارشی#برون_سپاری#توسعه_چابک#مدیریت_پروژه#تحول_دیجیتال#مشاوره_فناوری#استارتاپ#کسب_و_کار_آنلاین#کارآفرینی#مدیریت_کسب_و_کار#فناوری_اطلاعات#نوآوری#همکاری#تیم_توسعه#استخدام_برنامه‌نویس#خدمات_فناوری#لینکدین#فرا_تاب_رایان_گستر#فراتاب #برون_سپاری_پروژه </description>
                <category>رحیم لطفی</category>
                <author>رحیم لطفی</author>
                <pubDate>Mon, 23 Feb 2026 01:39:37 +0330</pubDate>
            </item>
                    <item>
                <title>Dynamic Aggregate</title>
                <link>https://virgool.io/@m_15490185/dynamic-aggregate-gcsqesbgiwyu</link>
                <description> برنامه نویسی امروز تماماً در مورد هزینه ها است. یکی از مهمترین چالش های شرکت های نرم افزاری پرفرمنس می باشد. در بیشتر موارد در زمان طراحی    aggregate ها  ما بر اساس نیازمندی های اولیه aggregate ها را طراحی  می کنیم اما در آینده ممکن است نیازمندی ها تغییر کند و aggregate ها برای جواب دادن به نیاز مندی های آینده زیاد مناسب نباشد و باعث مشکلات پرفرمنس و پیچیده  شدن کوئری های شود یا حتی  نیاز به لود شدن دیتا های  اضافه باشد.و تغییر  درaggregate  ها  ممکن است در بخش های زیادی از برنامه تغییرات انتشار یافته داشته باشد و زمان و هزینه توسعه را بیشتر نمایید.  در بعضی موارد بر اساس نوع دیتابیس )SQL Server, MongoDb, ..( شاید نیاز باشد برای موارد پرفرمنسی ترتیب واکشی Entity ها رو درaggregate  ها تغییر دهیم  یا  نیاز باشد بخشی از aggregate   لود شود. به عبارتی دیگر یک aggregate برای یک نیاز مندی مناسب و برای نیازمندی های دیگر مناسب نباشد و باعث پیچیدگی در طراحی شود. و در سنارویو های مختلف نیاز به ترکیب و  لود شدن aggregate   های مختلف باشد. برای جلوگیری از این گونه مشکلات  پیشنهاد می شود که aggregate  ها را کوچیک طراحی کنیم و میتواند از    Dynamic  aggregate   استفاده نمایید. Dynamic  aggregate  این امکان را به شما میدهد که  aggregate  ها را  ترکیب و به صورت پویا  در زمان اجرا لود نمایید .  Dynamic  aggregate  این امکان را فراهم می کند  که بدون تغییر در aggregate   های اولیه بتوان دیتا را از aggregate   مختلف باز سرعت زیاد لود کنید. در زمان خواندن دیتا های از  aggregate    های مختلف جهت کم کردن تعداد I/O پیشنهاد می شود از Dynamic  aggregate استفاده نمایید.Dynamic Aggregateاگریگیت پویا - Dynamic Aggregateمنبعhttps://github.com/RahimLotfiGH/AUAFramework.Net8_CQRS</description>
                <category>رحیم لطفی</category>
                <author>رحیم لطفی</author>
                <pubDate>Sat, 30 Mar 2024 16:02:59 +0330</pubDate>
            </item>
                    <item>
                <title>نکاتی که برای پیاده سازی الگوی CQRS باید در نظر داشت</title>
                <link>https://virgool.io/@m_15490185/%D9%86%DA%A9%D8%A7%D8%AA%DB%8C-%DA%A9%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%A7%D9%84%DA%AF%D9%88%DB%8C-cqrs-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%AF%D8%B1-%D9%86%D8%B8%D8%B1-%D8%AF%D8%A7%D8%B4%D8%AA-qax07mbiox0u</link>
                <description>این یک داستان در مورد نکاتی است که در هنگام پیاده سازی الگوی معماری  CQRS  باید در نظر گرفته شود. این نوشته بر گرفته از تجربیات مختلف در مورد پیاده سازی الگوی CQRS  در شرکت های مختلف می باشد. در این نوشته سعی شده است مشکلاتی که در طول پیاده سازی الگوی CQRS  برخورد کرده ام، به صورت خلاصه به اشتراک گذاشته شود و امیدوارم این نکات مورد توجه شما قرار بگیرید.1 : مهمترین موضوع در هنگام استفاده کردن از الگوی معماری CQRS  این است که هر بیزینسی نیاز به این الگو ندارد به عنوان مثال در بیزنس های بزرگ معمولا یک یا دو میکروسرویس داریم که خیلی نیاز  به پیاده سازی الگوی CQRS  دارند که معمولا جزو Core Domain بیزینس  می باشند. در سایر موارد پیاده سازی CQS کافی می باشد. (منظور بنده استفاده از  شدو دیتا یا data redundant  برای جلوگیری از ارسال درخواست زیاد و کنترل ترافیک شبکه نیست )2-هنگام پیاده سازی الگوی CQRS اگر شما یک Application داشته باشید که دو کانکشن  به دیتابیس های مختلف داشته باشد یعنی شما دو نوع Entity دارید یعنی دو نوع DomainEntity خواهید داشت و دو نوع Repository و دو نوع Service و غیره. از هر چیز در Application دو نوع  دارید که برای این جداسازی باید سراغ راهکار های مختلفی بروید  که خود باعث پیچیدگی می شود. در هنگامی که  دیتابیس های مختلف دارید بهتر است Application برای R/W را جدا کنید .چون باعث پیچیدگی  Application می شود.3-در پیازه سازی الگوی CQRS در بیشتر مواقع  در زمان انجام عملیات Write شما نیاز به Read های سریع به داده های که همین الان تغییر یافته یا نوشته شده اند دارید و نمی توانید منتظر  Sync شدن دیتابیس ها باشید. در این صورت باید از دیتابیس Write برای انجام عملیات Read های لحظه ی نیز استفاده کنید.. اشاره به مورد اول شما دو نوع Read خواهید داشت Read  از دیتابیس Read و Read از دیتابیس Write پس بهتر است Application برای R/W را جدا کنید .چون باعث پیچیدگی  می شود.4-معولا برای گزارش های پیچیده و محدودی که شاید در پروژهای بزرگ نیز کمتر از 10 مورد باشد (10 عددی تقریبی می باشد) . شما مشکل performance  و پیاده سازی الگوی CQRS دارید و از دیتابیس Read باید حتما خوانده شوند و  بقیه Read ها مشکل پرفرمنسی ندارند و از همان دیتابیس Write هم می تواند خوانده شوند 5-در الگوی CQRS معمولا دیتابیس های NOSQL برای Read و دیتابیس های SQL برای Write انتخاب می شوند .که این دوتا تکنلوژی مختلف می باشند بهتر است برای جلوگیری از پیچیدگی برنامه از همان ابتدا Application ها جدا طراحی شوند. اپلیکیشن های سبک نگهداری راحت تری دارند. 6- معمولا تعداد درخواست های Read از خواست های    Write بیشتر است, (البته به نوع اپلیکیشن وابسته است) . شاید نیاز باشد شما اپلیکشن Read را به تعداد زیاد Scale کنید. درصورتی که در اپلیکیشن Write نیاز به این کار نداشته باشید. پس بهتر است Application برای R/W جدا  طراحی شوند.7-نکته ی آخر این که بهتراست در ابتدا اپلیکیشن را برای  CQS (یعنی یک دیتابیس ) طراحی کنید. بعد از راه اندازی و عملیاتی شدن نسخه اولیه، می توانید Application برای قسمت read را نیز طراحی نمایید. که از همان اول درگیر مفاهیم پیچیده Outbox  و inbox  و عملیات  Sync نشوید و حتی شاید بعدا نظرتان در مورد روش و الگو های انتخابی تغییر کند.#softwarearchitecture #softwaredevelopment #softwareengineering #softwaredesign #arcitecturepatterns #performance #microservices #microservicesarchitecture #cqrsپیاده سازی الگوی CQRS </description>
                <category>رحیم لطفی</category>
                <author>رحیم لطفی</author>
                <pubDate>Sun, 03 Mar 2024 23:50:38 +0330</pubDate>
            </item>
                    <item>
                <title>LMAX Architecture</title>
                <link>https://virgool.io/@m_15490185/lmax-architectur-senq0u43lbfs</link>
                <description>LMAX (Lightweight, Massively Parallel, and eXtensible) is an architectural style designed for high-performance financial systems, particularly in the context of electronic trading platforms. It was developed by LMAX, a financial exchange based in London, and is known for its low-latency and high-throughput characteristics.Key features of the LMAX architecture include:1.  Disruptor Pattern : At the core of the LMAX architecture is the Disruptor pattern, which is a high-performance inter-thread messaging framework. It allows for efficient communication between threads with minimal contention and lock-free operation, reducing latency and improving throughput.2.  Event Sourcing : LMAX uses event sourcing as its underlying data model. Instead of storing the current state of an entity, the system maintains a log of events that have occurred over time. This approach can simplify certain aspects of system design and can provide a reliable audit trail.3.  Single Threaded Components : LMAX divides the system into single-threaded components, which helps to avoid the complexity and performance issues associated with multi-threading. Each component processes a specific type of event in a single-threaded manner, reducing contention and improving predictability.4.  Parallel Processing : While individual components are single-threaded, the LMAX architecture is designed to support parallel processing of events across multiple components. This allows the system to scale horizontally by adding more instances of components, each running on a separate thread or machine.5.  Asynchronous I/O : LMAX leverages asynchronous I/O operations to minimize the impact of latency associated with traditional synchronous I/O. This is crucial for high-frequency trading systems where low latency is a critical requirement.6.  Memory Mapping : LMAX makes extensive use of memory-mapped files for communication between components. This allows for efficient sharing of data between different parts of the system and can contribute to overall performance improvements.7.  Predictable Performance : One of the key goals of LMAX is to provide predictable and consistent performance. This is essential in financial systems where low latency and high throughput are critical, and unpredictable performance can lead to financial losses.The LMAX architecture has been widely regarded as a successful example of how to design high-performance, low-latency systems, especially in the context of financial exchanges. It emphasizes the importance of minimizing contention, maximizing parallelism, and leveraging modern hardware capabilities to achieve optimal performance.</description>
                <category>رحیم لطفی</category>
                <author>رحیم لطفی</author>
                <pubDate>Sat, 03 Feb 2024 01:57:18 +0330</pubDate>
            </item>
                    <item>
                <title>معماری LMAX</title>
                <link>https://virgool.io/@m_15490185/%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-lmax-yhrkavmvo0ql</link>
                <description>معماری LMAXمعماری LMAX  یک سبک معماری همروند و قابل گسترش است که برای سیستم‌های مالی با عملکرد بالا طراحی شده است، به ویژه در زمینه‌ی پلتفرم‌های معاملات الکترونیکی. این معماری توسط LMAX، یک صرافی مالی در لندن، توسعه یافته و به دلیل کاهش تاخیر و  افزایش ظرفیت، شناخته شده است. با ازستفاده از معماری LMAX میتوان بیش از 6 میلیون سفارش را در یک ثانیه با یک ترد انجام شود. پرفرمنس از مهمترین مشخصه های این معماری می باشد در بازار های مالی مثل فارکس نمونه های از این معماری مشاهده می شود. از دیگر مشخصه های این معماری ساختمان داده Lock Free می باشد.ویژگی‌های کلیدی معماریLMAX عبارتند از:1- الگوی Disruptor: در مرکز معماری LMAX، الگوی Disruptor قرار دارد که یک چارچوب ارتباطی بین‌نخی با عملکرد بالا است. این امکان را فراهم می‌کند که با حداقل رقابت و عملیات بدون قفل، ارتباط کارآمد بین نخ‌ها برقرار شود و تاخیر را کاهش دهد و ظرفیت را افزایش دهد.2-  ذخیره‌سازی رویدا: LMAX از مدل داده‌سازی ایونت سورسینگ به عنوان مدل داده اصلی خود استفاده می‌کند. به جای ذخیره وضعیت فعلی یک موجودیت، سیستم یک لاگ از رویدادهایی که در طول زمان رخ داده‌اند را نگه می‌دارد. این رویکرد می‌تواند برخی جنبه‌های طراحی سیستم را ساده‌تر کند و یک ردیابی حسابداری قابل اعتماد فراهم کند.3-  اجزاء تک نخی: LMAX سیستم را به اجزاء تک نخی تقسیم می‌کند، که به کاهش پیچیدگی و مسائل عملکردی مرتبط با چند نخ کمک می‌کند. هر جزء یک نوع خاص از رویداد را به صورت تک نخی پردازش می‌کند و این باعث کاهش رقابت و بهبود پیش‌بینی می‌شود.4-  پردازش همروند: هرچند اجزاء فردی تک نخی هستند، اما معماری LMAX برای پردازش همروند رویدادها در افق چندین اجزاء طراحی شده است. این امکان را به سیستم می‌دهد که با افزودن نمونه‌های بیشتر از اجزاء، هر کدام در یک نخ یا دستگاه مجزا، مقیاس‌پذیر باشد.5-  ورودی/خروجی ناهمگن :LMAX  از عملیات ورودی/خروجی ناهمگن برای کاهش تأثیر تاخیر مرتبط با ورودی/خروجی همگن سنتی بهره می‌برد. این امر برای سیستم‌های معاملات با فرکانس بالا که تاخیر کم اهمیت دارد، حیاتی است.6-   نگهداری حافظهLMAX از فایل‌های مموری مپ برای ارتباط بین اجزاء استفاده فراوان می‌کند. این امکان را به سیستم می‌دهد تا اطلاعات را به بهترین شکل بین بخش‌های مختلف سیستم به اشتراک بگذارد و به بهبود کلی عملکرد کمک کند.7-  عملکرد قابل پیش‌بینی یکی از اهداف اصلی LMAX، ارائه عملکرد قابل پیش‌بینی و مداوم است. این در سیستم‌های مالی که تاخیر کم و ظرفیت بالا اهمیت دارد، حیاتی است و عملکرد پیش‌بینی ناپذیر ممکن است منجر به ضرر مالی شود.معماری LMAX به عنوان یک مثال موفق از چگونگی طراحی سیستم‌های با عملکرد بالا و تاخیر کم، به ویژه در زمینه‌ی صرافی‌های مالی، شناخته می‌شود. این معماری بر اهمیت کاهش رقابت، بیشینه کردن همرون</description>
                <category>رحیم لطفی</category>
                <author>رحیم لطفی</author>
                <pubDate>Sat, 03 Feb 2024 01:53:53 +0330</pubDate>
            </item>
                    <item>
                <title>Asp.Net Unique Architecture</title>
                <link>https://virgool.io/@m_15490185/aspnet-unique-architecture-lv5appz5cxcb</link>
                <description>Abstract Software projects require constant changes and updates. If the structure develops in the wrong way, it will prevent changes and extensions, and most of the time will lead to task duplication or rewriting of the project from scratch. To get rid of the complexity and task duplication that most programmers and developers face, which  is  also  caused  by  the  inconsistency  of  code  at  different  levels  of  the  program,  we  need  a  simple consistent structure for writing software projects so that we can hide some of the complexity and focus on business of the task. For example, the Bootstrap framework is a very useful framework for Front End, but few people would prefer to use frameworks like Bootstrap for design, and write all of their design with CSS from  the  beginning.  For  the  Back  End  section,  however,  a  simple,  general-purpose  framework  can  save time and cost and produce high-quality code and a uniform architecture. This framework allows developers to develop their projects based on an appropriate integrated pattern. The framework must be flexible enough to allow the programmer to apply any changes needed, relying on its robust structureWhy Framework? One of the problems of software companies is the lack of the right structure for developing their projects. As a result, they have often produced such complex and nested codes that creating changes in one part of the project severely affects  or disrupts  other parts. Therefore, lack  of the right structure for development makes it impossible to update the previous code and reduces the efficiency of the team to almost zero. The reason  for  this  is  the  difference  in  coding  and  lack  of  structure  and  architecture.  The  development  team must first agree on a set of rules and structures. Architectural patterns are not the result of a programmer&#x27;s experiences; they have resulted from the experiences of hundreds of programmers and design professionals over years. These frameworks are not innovations or inventions, but are feedbacks on redesign and recoding that programmers have been involved with in order to achieve the highest levels of flexibility, extensibility and  reusability.  Their  use  makes  the  produced  codes  more  simple,  flexible  and  extensible.  The  use  of  a framework can help us save time and cost and make it easier to document and maintain the system.Asp.Net Unique Architecture (AUA) Framework  Using the AUA  (  Asp.Net Unique Architecture ) Framework, you can easily have better, faster, and more orderly and focused coding. This framework is based on new and up-to date concepts, structures and architectures, including:   Clean Architecture,   Clean Code,                 Domain-driven design (DDD),   Lmax Architecture , SOLID Principle,     Code Refactoring,                 GRASP (object-oriented design principle)AUA  is  a  simple,  lightweight  framework  for  producing  projects  of  any  size  (small  and  large).  It  can  be applied in all architectures (Micro service, CQRS, etc.) due to its transparency in structure. It is also full of different design patterns, thus a great source for software architects and developers. Domain Driven Design (DDD)  EF 6 and EF Core 3.0,3.1  The ability to develop software in a simple and fast way  Based on SOLID Principles  Modular design  Layered architecture AUA Framework&#x27;s Versions:  Asp.Net MVC (.net framework and ef6)  Asp.Net MVC Core 3.0,3.1  Asp.Net Web API Core 3.0,3.1 Asp.net 5Minimum benefits of using the AUA framework• Reducing the software development costs,  • Saving time,  • Convenient maintenance,  • Quality productReferenceshttps://auaframework.com </description>
                <category>رحیم لطفی</category>
                <author>رحیم لطفی</author>
                <pubDate>Fri, 29 Oct 2021 14:39:57 +0330</pubDate>
            </item>
                    <item>
                <title>نحوه نصب و راه اندازی فریم ورک  Asp.Net Unique Architecture  (AUA)</title>
                <link>https://virgool.io/@m_15490185/%D9%86%D8%AD%D9%88%D9%87-%D9%86%D8%B5%D8%A8-%D9%88-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-aspnet-unique-architecture-aua-hn0yfza4n15o</link>
                <description>سیستم‌های نرم‌افزاری ساخته می‌شوند تا اهداف تجاری  سازمان‌ها را برآورده کنند و معماری پلی بین این اهداف تجاری و سیستم نهایی  ایجاد می‌کند. افزایش پیچیدگی در طراحی و تولید سیستم‌های نرم‌افزاری،  علاوه بر بالا رفتن هزینه و زمان موجب تولید سیستم‌هایی با کیفیت پایین و  خطاهای زمان اجرای زیاد می‌شود. برای غلبه‌بر مشکل پیچیدگی سیستم‌های  نرم‌افزاری و نیز کاهش خطا درکد تولید شده، استفاده از فریم ورک‌ها توصیه  می‌شود.داشتن یک ساختار خوب باعث افزایش سرعت تیم می‌شود.تجربه‌ی نشان داده  است داشتن یک ساختار حتی اگر بهترین هم نباشد اما از نداشتن ساختار و  تولید کد‌های در هم تنیده و دست وپنجه نرم کردن با هزاران جزئیات..  نتیجه  بهتری میدهد.فریم ورک AUA به صورت کدباز و نسخه‌های اولیه آن رایگان  می‌باشد. ستفاده ازفریم ورک  AUA موجب صرفه جویی در زمان و هزینه می‌شود و  همچنین امکان توسعه‌ی نرم افزار به شکلی ساده و سریع، را فراهم می‌کند. با  کمک فریم ورک AUA آیوآ می‌توان به راحتی کدنویسی بهتر، سریع تر، منظم‌تر و  با تمرکز بالاتری داشته باشیم. این فریم ورک بر اساس مفاهیم، ساختار‌ها و  معماری‌های جدید و به روز نوشته شده است .در این مقاله هدف این است که فریم  وک AUA را نصب و راه اندازی کنیم.مراحل نصب و راه اندازی فریم ورک Asp.Net Unique Architecture  (AUA)1-دانلود AUA فریمورکاز لینک دانلود  شما می توانید نسخه‌ی mvc یا Api  فریمورک را دانلود کنید .(یا از ریپازیتوری گیت دریافت کنید)2- بعد از خارج کردن از حالت فشرده و باز کردن با ویژوال استدیو  پروژه را باز کنید و حتما بیلد کنید شابد کمی طول بکشد که طبیعی می‌باشد و  کتابخانه‌های nuget  را دانلود میکند برای اولین بار این کتابخانه‌ها را  نیاز دارد.3- برای تنظم کانکشن استرینگ به فابل appsettings.Development.json  رفته و کانکشن استرینگ را تغییر دهید (در صورت نیاز)WebApi folder &gt; AUA.ProjectName.WebApi  &gt; appsettings.json &gt; appsettings.Development.json4 - در این مرحله باید مای گریشن  add-migration    کنیم که دیتابیس ساخته شود.وارد   Tools &gt;                         NuGet Package Manager &gt;                         Package Manager Console میشویم.دقت داشته باشید که لایه    AUA.ProjectName.DataLayer انتخاب شده باشد که dbContext  در این لایه می‌باشد.ودستور  زیر را اجرا نماییدPM&gt; Add-Migration init-auaPM&gt; Update-Databaseبعد از ساخته شدن دیتابیس شما می توانید پروژه را اجرا و خروجی مورد نظر متناسب با نوع پروژه WebApi  یا MVC   ببینید.نام کاربری پیشفرض Admin و رمز عبور 123  می‌باشد.WebApiMVCموفق و پیروز باشید.</description>
                <category>رحیم لطفی</category>
                <author>رحیم لطفی</author>
                <pubDate>Sun, 24 Oct 2021 19:32:19 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی فریم ورک   Asp.NetUnique Architecure (AUA)</title>
                <link>https://virgool.io/@m_15490185/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-aspnetunique-architecure-aua-ypffvgle1uv8</link>
                <description>پروژه های نرم افزاری، نیازمند تغییرات و بروزرسانی های مداوم هستند. در صورتی که ساختار توسعه درست نباشد مانع از تغییرات و گسترش می شود و در بیشتر مواقع باعث انجام کار های اضافه یا باز نویسی پروژه از اول می شود. برای رهایی از پیچیدگی و انجام کارهای تکراری که عمدتا برنامه نویسان و توسعه دهندگان با آن روبرو هستند که این امر نیز ناشی از عدم همخوانی کد ها در سطوح مختلف برنامه می باشد،  ما نیاز مند یک ساختار یکپارچه و ساده جهت نوشتن پروژه های نرم افزاری هستیم که با کمک آن بتوان بخشی از پیچیدگی را مخفی و روی بیزینس کار تمرکز نمود. برای مثال فریم ورک Bootstrap یک فریم ورک بسیار مفید برای Front End می باشد که کمتر کسی ترجیح میدهد برای طراحی از فریم ورک هایی مثل Bootstrap استفاده نکند و از ابتدا تمام طراحی خود را با CSS بنویسد. برای قسمت End Back نیز این گونه است که یک فریم ورک ساده و همه منظوره می تواند در زمان و هزینه صرفه جویی کند و باعث تولید کد با کیفیت بالا و یک معماری یک نواخت شود. فریم ورک به توسعه دهندگان این امکان را می دهد تا بر اساس الگوی مناسب و یکپارچه پروژه خود را توسعه دهند. فریم ورک باید از انعطاف پذیری بالایی برخوردار باشد تا برنامه نویس بتواند با تکیه بر ساختار قدرتمند آن هر گونه تغییر مورد نیاز را اعمال کند.چرا فریم ورک؟سیستم‌های نرم‌افزاری ساخته‌ می‌شوند تا اهداف تجاری سازمان‌ها را برآورده کنند و معماری پلی بین این اهداف تجاری و سیستم نهایی ایجاد می‌کند. افزایش پیچیدگی در طراحی و تولید سیستم‌های نرم‌افزاری، علاوه بر بالا رفتن هزینه و زمان موجب تولید سیستم‌هایی با کیفیت پایین و خطاهای زمان اجرای زیاد می‌شود. برای غلبه‌بر مشکل پیچیدگی سیستم‌های نرم‌افزاری و نیز کاهش خطا درکد تولید شده، استفاده از فریم ورک ها توصیه می‌شود.یکی از مشکلات شرکت های نرم افزاری، نداشتن ساختار درست برای توسعه پروژه های خود می باشد. در نتیجه در بیشتر مواقع کد های پیچیده و در هم تنیده را تولید نموده اند که ایجاد تغییر در یک بخش از پروژه، بخش های دیگر را بشدت تحت تاثیر قرار داده یا از کار می اندازد. بنابر این نداشتن ساختار درست برای توسعه امکان به روز رسانی کد های قبلی را غیر ممکن و بهره وری تیم را تقریبا به صفر می رساند.دلیل این امر نیز تفاوت در نحوه ی کد نویسی و نداشتن ساختار و معماری می باشد. در ابتدای کار باید تیم توسعه بر روی یک سری قوانین و ساختار های توافق کند. الگوهای معماری نتایج تجربیات یک برنامه نویس نیست، بلکه حاصل تجربیات صدها برنامه نویس و طراحی حرفه ای است که در طول سال های بسیار به دست آمده اند. فریم ورک ابداع شده یا اختراع شده نیست، بلکه بازخورد طراحی ها و کد نویسی های مجدد است که برنامه نویسان در پروژه های مختلف برای کسب بیشترین انعطاف پذیری، توسعه پذیری و قابلیت استفاده ی مجدد با آن ها درگیر بوده اند.استفاده از فریم ورک باعث می شود که کد های تولید شده ساده، انعطاف پذیر و قابلیت گسترش بیشتری داشته باشند. با استفاده از فریم ورک می توان در زمان و هزینه صرفه جویی کرد و همچنین مستند سازی و نگهداری سیستم نیز آسانتر می شود.فریم ورک(AUA)  Asp.Net Unique Architectureاستفاده ازفریم ورک  AUA موجب صرفه جویی در زمان و هزینه می شود و همچنین امکان توسعه ی نرم افزار به شکلی ساده و سریع، را فراهم می کند. با کمک فریم ورک AUA آیوآ می توان به راحتی کدنویسی بهتر، سریع تر، منظم تر و با تمرکز بالاتری داشته باشیم. این فریم ورک بر اساس مفاهیم، ساختار ها و معماری های جدید و به روز نوشته شده استAUA یک فریم ورک ساده و سبک برای تولید پروژه های با هر مقیاس (کوچک و بزرگ) می باشد. فریم ورک Asp.Net Unique Architecture  به دلیل شفافیت در ساختار، قابل استفاده در تمام معماری های (Micro service، CQRS,، ... (می باشد. همچنین فریم ورک AUA پر از الگو های طراحی مختلف بوده که یک منبع بسیار خوب برای معماران نرم افزار و توسعه دهنده ها می باشد.نسخه دات نت 5  فریم ورک AUA  را میتوانید از لینک زیر دانلود کنیدلینک ویدوهای آموزشی فارسی و انگلیسیhttps://auaframework.com/Document/VideoTutorialلینک مستقیم فریم ورک AUAhttps://auaframework.com/Website/DownloadBasicPackageلینک ریپازیتوری https://github.com/Heilton/AUAFrameWorkلینک مستنداتhttps://auaframework.com/Document</description>
                <category>رحیم لطفی</category>
                <author>رحیم لطفی</author>
                <pubDate>Thu, 21 Oct 2021 01:21:23 +0330</pubDate>
            </item>
            </channel>
</rss>