جناب رامین
با سلام
اونقدر سئوالتون کلی و مبهمه که ...
گر من بخواهم که یک هسته مرکزی داشته باشم که با لایه ها و یا برنامه های دیگه ارتباط برقرار کنه در دات نت این گونه معماری ها چگونه پیاده سازی میشه
ببینید اگه یک طراحی واحد یا چند طراحی کامل وجود داشت دیگه لازم به این همه تحلیلگر ، معمار سیستم و ... نبود.
اگر مد نظر شما برنامه نویسی لایه ای است و ایجاد یک هسته به عنوان Framework یا Common یا هر چیز دیگه...
این بستگی به طراحی شما، نیاز های Application شما و ... داره
ولی به صورت کلی یک سری Functionality کلی وجود داره که Cross Cutting هستند
مثل
Security
Auditing
Logging
Exception Handling
و ..
اینها می تونند Functionality های کلی باشند
1.حتما به Application Architecture Guide 2.0 نگاهی بیاندازید.
http://apparchguide.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=20586
بسیاری از معماری ها و نوع ارتباط لایه ها در آنها در اینجا شرح داده شده است. منبع بسیار بسیار خوبی است. این مجموعه ای از Best Practice هاست.
ولی ممکن است دچار آفت Copy Paste شویم ! سعی کنید کمی در مورد اینکه نیازهای سیستم شما با کدام معماری منطبق است فکر کنید و کمی آنرا Customize کنید.
2.در مورد الگوهای مربوط به معماری از کتاب های جناب Martin Fowler استفاده کنید.
martinfowler.com/
3. در مورد الگوهای برنامه نویسی (الگوهای پیاده سازی یا Design Patterns ) به Gang Of 4 سری بزنید.
http://www.dofactory.com/Default.aspx
4. تا می توانید Source Code سیستم های خوب را بررسی کنید.
برای مثال انواع CMS ها. مثال DNN
5.تا میتوانید در مورد طراحی سیستم مطلب بخوانید فکر کنید و از تجربیات دیگران بهره مند شوید.
6.برنامه نویسی بخشی از مراحل تولید یک سیستم نرم افزاری است. از تحلیل و تفکر راجع به مسائل ،مشکلات و ویژگیهای خاص پروژه خود غافل نشوید.
امیدوارم موفق سلامت و پایدار باشید.