در ابتدا اجازه بدهید تعریف درستی از این دو واژه، ارائه کنیم. DTO (Data Transfer Object) به بیان خیلی ساده، DTOها برای انتقال اطلاعات استفاده میشوند؛ پس هیچ منطق و رفتاری در این اشیاء تعریف نمیشود .اگر در DTO منطقی پیاده سازی شود، دیگر به آن DTO گفته نمیشود. اجازه بدید منظورمان را از منطق یا رفتار مشخص کنیم. منطق یا رفتار، همان متدهایی هستند که در نوع داده خود تعریف میکنیم. در #C، یک DTO تنها از خصوصیتها (Properties) ...
در قسمت اول این مقاله ، مشخصات کلیدی یک سرویس مورد بررسی قرار گرفت و APIها و وابستگیها یا Dependencies هر سرویس نیز مورد بررسی قرار گرفتند. همانطور که مشخص است با زیاد شدن این سرویسها و وابستگی هایی که به یکدیگر پیدا میکنند، سردرگمیها نیز برای اعضای تیمهای مختلف، زیاد میگردد. چرا که افراد هر تیم دائما باید از APIهای ارائه شده توسط تیمهای دیگر مطلع باشند. به همین جهت زمانیکه شما یک سبک معماری مانند میکروسرویس را انتخاب مینمایید، ...
معماری میکروسرویس (یا به اختصار: میکروسرویس) یک سبک معماری نرم افزار میباشد که در آن یک نرم افزار، به مجموعهای از سرویسها خرد میشود؛ به نحوی که هر سرویس مسئولیت انجام بخشی از منطق کسب و کار را به عهده داشته باشد.
این تقسیم بندی مزایای متعددی را به همراه دارد که نهایتا پیاده سازی و توسعه راحتتر نرم افزارهای بزرگ و پیچیده را ممکن مینماید. از جمله مزایای این معماری میتوا ...
برای ایجاد «خواص الحاقی» قبلا در سایت مطلب ایجاد «خواص الحاقی» تهیه شدهاست. در این مطلب قصد داریم راه حل ارائه شدهی در مطلب مذکور را با یک TypeDescriptionProvider سفارشی ترکیب کرده تا به صورت یکدست، از طریق TypeDescriptor بتوان به آن خواص نیز دسترسی داشته باشیم. فرض کنید در یک سیستم Modular Monolith، نیاز جدیدی به دست شما رسیده است که به شرح زیر میباشد: نیاز داریم در گریدی از صفحهی X مربوط به «مؤلفه 1»، ستونی جدید را اضافه کنید ...
در این مطلب قصد داریم علاوه بر طراحی زیرساختی برای راه اندازی هرچه سریعتر ServiceLayer، طراحی ای برای مکانیزم Validation به عنوان یک Cross Cutting Concern ، نیز ارائه داده و آن را پیاده سازی کنیم. پیش نیازها: قبلا در سایت در مورد لایه بندی نرم افزار و ServiceLayer مطلب منتشر شده است؛ لذا مطالعه این سری مقالات برگرفته از کتاب Professional ASP.NET Design Patterns جزء پیش نیازهای این مطلب میباشد. دوره Aspect oriented p ...
روش سوم:
DTO (Data transfer objects) در قسمتهای قبلی دو روش از روشهای موجود جهت تبادل دادهها بین لایهها، ذکر گردید
و علاوه بر این، مزایا و معایب هر کدام از آنها نیز ذکر شد. در این قسمت دو روش
دیگر، به همراه مزایا و معایب آنها برشمرده میشود. لازم به ذکر است هر کدام از
این روشها میتواند با توجه به شرایط موجود و نظر طراح نرم افزار، دارای تغییراتی
جهت رسیدن به یکسری اهداف و فاکتورها در نرم ...
معماری
لایه بندی شده، یک معماری بسیار همه گیر میباشد. به این خاطر که به راحتی SOC ، decoupling و
قدرت درک کد را بسیار بالا میبرد. امروزه کمتر برنامه نویس و فعال حوضهی نرم
افزاری است که با لایههای کلی و وظایف آنها آشنا نباشد ( UI layer آنچه که ما میبینیم، middle layer برای مقاصد منطق کاری، data
acce ...
در هنگام گفتگو با افراد مختلفی که در پروژههای توسعه نرم افزار، نقشهای مختلفی را دارا میباشند، یکی از جالبترین و اساسیترین بحثها تفاوت بین Desktop App و Web App میباشد، و این که پروژه بر اساس کدام مدل باید نوشته شود. در اینترنت و در منابع معتبر، تفسیرهای متفاوتی از این دو وجود دارد، که گاه دقیقا با نظر من یکی بوده و گاه تا 180 درجه بر عکس هستند، آنچه که در ادامه میخوانید میتواند لزوما نظر شما نباشد. گروهی از افراد بر این ب ...
من تا به حال برنامه نویسهای زیادی را دیدهام که میپرسند «چه تفاوتی بین الگوهای معماری MVC و
Three-Tier وجود دارد؟» قصد من روشن کردن این سردرگمی، بوسیله مقایسه هردو، با
کنار هم قرار دادن آنها میباشد. حداقل در این بخش، من اعتقاد
دارم، منبع بیشتر این سردرگمیها در این است که هر دوی آنها، دارای سه لایه متمایز و
گره، در دیاگرام مربوطهاشان هستند.اگر شما به دقت به دیاگرام آنها نگاه کنید، پیوستگی را
خواهید دید. بین گرهها و راه اندا ...