نمایش نتایج 1 تا 5 از 5

نام تاپیک: معماری 3 لایه

  1. #1
    کاربر جدید آواتار breeze
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    tehran
    پست
    14

    Question معماری 3 لایه

    سلام
    من یه سوال در مورد طرز ساخت کلاس ها در معماری 3 لایه داشتم.
    در لایه ی data access این معماری اگه به جای ساختن کلاس برای هر database table برای هر فرم و متغیرهای درونش که به فیلد های جداول در پایگاه داده مربوط هستن یه کلاس data model بسازیم از نظر معماری اشکالی پیش میاد؟

  2. #2

    نقل قول: معماری 3 لایه

    با سلام
    دوست عزیز منظور شما رو از یه کلاس data model درک نکردم اما در حد اطلاعات اندک خودم توضیحاتی میدم که شاید به دردتون بخوره:
    برای هر فرمی (اصطلاحا entity) که تولید میشه بطور کلی در هر لایه کلاسی به ازای اون وجود داره بنابراین به نظر بنده ی حقیر به ازای همه ی جداول اون فرم بایستی کلاس های اون جداول هم در نمودارهای uml دیده بشن.
    اما در لایه ی data access به هیچ وجه به ازای هر جدول کلاس ایجاد نمی شه بلکه به ازای هر entity کلاس ایجاد میشه که البته بسته به ماهیت اونها می تونین چند کلاس رو در یک فایل .cs (اگر از .net برای پیاده سازی استفاده می کنین) پیاده سازی کنین. برای مثال اگر فرم شما از یک جدول کدینگ استفاده می کنه به ازای اون جدول نیاز به ایجاد کلاس نیست کلاس مربوط به اون جدول در زمان دیگه ای یعنی در زمان تولید فرم تعریف اون کدینگ ایجاد میشه.اما اگر فرم شما مستر دیتیلیه در این صورت به ازای مستر یک کلاس و به ازای دیتیل یک کلاس دیگه در هر لایه در نظر گرفته میشه.
    امیدوارم اولا منظور سوالتونو درست درک کرده باشم ثانیا مطالبی که عرض کردم به دردتون بخوره.

  3. #3
    کاربر تازه وارد آواتار mehrbani
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    70

    نقل قول: معماری 3 لایه

    فکر می کنم شما از معماری MVC استفاده کردید ،
    اصل معماری MVC جدا کردن - Separation Of Concern - داده ، منطق و نمایش از هم هست و به نوعی از اصول معماری 3 لایه تبعیت میکنه
    اگر شما برای تمامی جداول موجود در پایگاه داده تون تنها یک کلاس بسازید در اینصورت Cohesion کلاس خود رو به شدت پایین آوردید ، یعنی کلاسی دارید که پراست از عناصر بی ربط به هم
    و این به شدت روی Maintainability برنامه تاثیر می گذاره.

    استفاده از تمامی Pattern های معماری مثل Layering , 3-tier , MVC , ... باید باعث افزایش Maintainability سیستم و توانایی پذیرش تغییرات در آینده بشن.

    موفق باشید

  4. #4
    کاربر جدید آواتار breeze
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    tehran
    پست
    14

    نقل قول: معماری 3 لایه

    خیلی ممنون از پاسخ هاتون. البته جواب مریم خانم خیلی سطح بالا بود و من متاسفانه متوجه نشدم
    راستش من یه برنامه نویس مبتدی هستم که فقط 3 لایه کار کردم و همیشه در لایه داده برای هر جدول یه کلاس از متغیر های جدول می ساختم. اما حالا طراح تیممون یه معماری mvc از پروژمون ارائه کرده که من نمی تونم پیاده سازی کنم.
    در لایه منطق (business) به ازای هر فرم و متغیر های درونش یه کلاس ساخته که مثلا اگه فرم از 3 تا جدول پایگاه داده استفاده کرده هر سه تا در یک کلاس قرار داده شده
    در لایه داده عملیات CRUD هر جدول در کلاس های جداگانه انجام شده

    من از mvc چیز زیادی نمی دونم و فکر کردم به دلیل نداشتن تجربه من هست که نمی تونم پیاده سازی کنم اما به نظرم این کار چند اشکال داره
    یکی اینکه اگه مثلا 3 تا فرم از یک جدول استفاده کنن تمام متغیر های این کلاس باید 3بار برای هر فرم پیاده سازی شوند
    هم چنین به قول شما متغیرهایی که هیچ ربطی بهم ندارن در یک کلاس قرار می گیرند
    و اینکه چون داده ها بین لایه ها با لیستی از کلاس ها باید جابه جا بشه در هنگام پر کردن این لیست چون داده ها متعلق به یک جدول نیستن منجر به تکرار داده ها در لیست و افرونگی داده می شه

    نمی دونم چقدر حرفای من درست هست چون زیاد در این زمینه تجربه ندارم و ممکن نوع پیاده سازی من اشکال داشته که نتونستم این جور معماری رو پیاده سازی کنم. اگه ممکن هست راهنمایی کنین

  5. #5
    کاربر تازه وارد آواتار mehrbani
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    70

    نقل قول: معماری 3 لایه

    در معماری MVC لایه Controller یا به قول شما Business وظیف اش انجام Validation و محاسبات و سایر کارای مربوط به کسب و کار Application بر روی نتایج لایه Model هست
    ساخت کلاس های Entity در معماری MVC در لایه مدل انجام می شه و در لایه Controller از اونا فقط استفاده می شه...
    یعنی لایه Controller مسئول انجام درخواست های لایی View هست.

    اگر امکانش هست یک نمونه از کلاسها رو برام ارسال کنید ، اینطوری بیشتر می تونم کمکتون کنم

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •