ورود

View Full Version : سوال: circular dependency



TeRMiNaT00o00R
یک شنبه 27 اسفند 1391, 16:19 عصر
با سلام
در یک پروژه که به صورت ماژولار میباشد هر ماژول در یک Laibary جدا گانه قرار دارند اما گاهی لازمه بین ماژول ها ارتباط باشد مثلا برای ایجاد ارتباط در EF اما وقتی میخواهم اینکار را انجام دهم خوب به طور معمول موقع درج رفرنس پروژه A به B مشکلی پیش نمیاد و لی وقتی میخوام از پروژه B به A رفرنسی اضافه کنم به خطایی زیر برخورد میکنم
a refrence to could not be added . adding this prpject as a refrence would cause a circular dependency

را حلی که به ذهن خودم میاد اینه که یک پروژه واسط تعریف کنم و همه رفرنس ها را در آن درج و هر جا لازم بود از آن استفاده کنم
میخواستم بدونم این روش درسته به نظرتون؟ و اینکه برای این مشکل چه را حلی به ذهنتون میاد?
ممنونم

RED-C0DE
یک شنبه 27 اسفند 1391, 20:35 عصر
خب همونطور ک گفتین ی راه حلش اینه
اما باید دید ساختاری ک برای سناریوتون در نظر گرفتین درست و معقول هست ک حالا ب اینجا رسیدین ک Circular dependency error می خورین.
چون رو کاغذ اگه ساختار و معماری درستی رو پیش بگیرین ب همچین جایی نباید می رسیدین

ساختاری ک در نظر گرفتین رو بگین
چ پروژه هایی رو تعریف کردید؟
هر پروژه ماهیتش چیه؟ ب چ منظور تعریفش کردین؟

TeRMiNaT00o00R
یک شنبه 27 اسفند 1391, 21:33 عصر
هر کدوم از این پروژه ها یک ماژول میباشند.و هر ماژول در یک پروژه قرار دارد (البته در وب )اما چون یک خطای کلی بود من سوال رو در بخش C#‎ پرسیدم .
هر ماژول برای خود قسمت Domain دارد و در آن موجودیت های آن تعریف میشوند Orm استفاده شده Ef میباشد خوب گاهی پیش میاید ماژول ها با هم در ارتباط باشند . مثلا یک ماژول به عنوان اخبار با نظرات که میخواهند با هم ارتباط داشته باشند که یک رابطه یک به چند دارند .
اما برای ایجار رابطه نیاز به درج رفرنس های این پروژه ها در دیگری دارم که به این خطا برخورد میکنم
کلا بدین شکل میباشد

linux
یک شنبه 27 اسفند 1391, 22:15 عصر
با سلام
در یک پروژه که به صورت ماژولار میباشد هر ماژول در یک Laibary جدا گانه قرار دارند اما گاهی لازمه بین ماژول ها ارتباط باشد مثلا برای ایجاد ارتباط در EF اما وقتی میخواهم اینکار را انجام دهم خوب به طور معمول موقع درج رفرنس پروژه A به B مشکلی پیش نمیاد و لی وقتی میخوام از پروژه B به A رفرنسی اضافه کنم به خطایی زیر برخورد میکنم
a refrence to could not be added . adding this prpject as a refrence would cause a circular dependency

را حلی که به ذهن خودم میاد اینه که یک پروژه واسط تعریف کنم و همه رفرنس ها را در آن درج و هر جا لازم بود از آن استفاده کنم
میخواستم بدونم این روش درسته به نظرتون؟ و اینکه برای این مشکل چه را حلی به ذهنتون میاد?
ممنونم
تو مباحث حضرات فیلسوف یک بحثی هست به اسم دور و یک بحثی هست به نام تسلسل دور یعنی اینکه وجود الف بر ب استوار هست و وجود ب بر الف و تسلسل یعنی اینکه وجود الف بر ب استوار هست و وجود ج بر ب و الف و این در عالم وجود نشدنی هست.
حالا شما تو دور افتادی حافظ هم می‌گه

ساقیا در گردش ساغر تعلل تا به چند دور چون با عاشقان افتد تسلسل بایدش
حالا شما اگر کارتون کار دل هست و شامل عشق و عاشقی میشه اشکالی نداره خطای قشنگی هست بشین نگاه کن حالش را ببر. ولی اگر کارتون کار عقلانی هست طراحیتان نادرست هست.

مگر اینکه مانند ملای رومی نظرتان این باشد که

آزمودم عقل دوراندیش را / بعد ازین دیوانه سازم خویش را
اگر به این مرحله رسیدید از دنیای مهندسی خداحافظی کنید

و د

TeRMiNaT00o00R
یک شنبه 27 اسفند 1391, 23:08 عصر
ممنونم از اشعار زیبایتون
ولی اگر با این شرایط راهنمایی میکردید برای طراحی بهتر خیلی کمک بود

linux
یک شنبه 27 اسفند 1391, 23:28 عصر
ممنونم از اشعار زیبایتون
ولی اگر با این شرایط راهنمایی میکردید برای طراحی بهتر خیلی کمک بود
طراحی بهتر! نه شما هنور وارد مرحله طراحی درست نشدید که به طراحی بهتر برسید.
اگر میشه یک دیاگرامی چیزی از کارتون اینجا بگدارید

TeRMiNaT00o00R
دوشنبه 28 اسفند 1391, 11:52 صبح
هر کدوم از این پروژه ها یک ماژول میباشند.و هر ماژول در یک پروژه قرار دارد (البته در وب )اما چون یک خطای کلی بود من سوال رو در بخش C#‎‎ پرسیدم .
هر ماژول برای خود قسمت Domain دارد و در آن موجودیت های آن تعریف میشوند Orm استفاده شده Ef میباشد خوب گاهی پیش میاید ماژول ها با هم در ارتباط باشند . مثلا یک ماژول به عنوان اخبار با نظرات که میخواهند با هم ارتباط داشته باشند که یک رابطه یک به چند دارند .
اما برای ایجار رابطه نیاز به درج رفرنس های این پروژه ها در دیگری دارم که به این خطا برخورد میکنم
کلا بدین شکل میباشد

linux
چهارشنبه 30 اسفند 1391, 11:08 صبح
هر کدوم از این پروژه ها یک ماژول میباشند.و هر ماژول در یک پروژه قرار دارد (البته در وب )اما چون یک خطای کلی بود من سوال رو در بخش C#‎‎ پرسیدم .
هر ماژول برای خود قسمت Domain دارد و در آن موجودیت های آن تعریف میشوند Orm استفاده شده Ef میباشد خوب گاهی پیش میاید ماژول ها با هم در ارتباط باشند . مثلا یک ماژول به عنوان اخبار با نظرات که میخواهند با هم ارتباط داشته باشند که یک رابطه یک به چند دارند .
اما برای ایجار رابطه نیاز به درج رفرنس های این پروژه ها در دیگری دارم که به این خطا برخورد میکنم
کلا بدین شکل میباشد
دوست عزیز مطالبی که در پست شماره یک گفته بودی را تکرار کردی! خوب طراحی شما اساسا نادرست هست و باید در طراحیتان تجدید نظرکنید. اینکه چه چیز را تغییر بدهید و ... با دیدین کدبرنامه شما مقدور می‌باشد، بیش از این نمی‌شود راهنمایی کرد.
شما اگر دوتا کلاس a,b بسازید ار سازنده هرکلاس کلاس دیگر را فراخوانی کنید هم به این مشکل برخواهید خورد.
تنهایی چیزی که میشه گفت چیزهایی که به همدیگر رفرنس دارند که در یک dll قراردهید.