PDA

View Full Version : گفتگو: برنامه نویسی ماژولار در Asp.net



naser2009
دوشنبه 05 مهر 1389, 09:04 صبح
سلام دوستان خسته نباشید

به احتمال زیاد اکثر دوستان cmsهای مختلف با امکانات متفاوتی را تاکنون مشاهده کرده اند.
یکی از این امکانات کار کردن با ماژول ها و مدیریت آنها در وب سایت است. به عنوان مثال شما می توانید یکسری امکانات(ماژول) را حذف و یا حتی بعد(بعد از deploy کردن برنامه) اضافه کنید.

چه راهکارهایی برای این گونه برنامه ها اندیشیده شده است؟
مگر در برنامه های asp تمامی کدها به dll تبدیل نمی شوند پس چطور می توان بعدا یکسری صفحات و ماژول ها به برنامه جاری اضافه کرد؟

به عنوان مثال فرض کنید ما یک وب سایت داریم که از ماژول های خبر، نظرسنجی و فروم بهره می برد حال کارفرما سفارش نوشتن یک امکان(ماژول) دیگر با عنوان گالری را به ما می دهد

1) حال اگر سایت ماژولار باشد که می توانیم از ماژول گالری استفاده کنیم و آن را به سایت اضافه کنیم.
به نظر من شاید اینطوری بشه: ----->چند تا کلاس در نظر بگیریم gallery,picture,غیره و table های اون ها رو ایجاد کنیم. و سر آخر کد ها رو به dll و جداول رو script کنیم حالا واسه اضافه شدنه این ماژول به وب سایت dll گالری رو به پوشه bin و اسکریپت های table مورد نظر رو هم اجرا می کنیم تا جداول ساخته بشند.(آیا اصلا اینطوریه؟) چجوری صفحات .aspx اضافه می شن اصلا لازم هست(یکی از دوستان می گفت از usercontrol ها استفاده کن)
2) اگه سایت ماژولار نباشه باید کل سایت بخوابه تا این صفحات به مجموعه صفحات قبلی اضافه بشه و دوباره up بشه.

خواهش بنده از دوستان اینه بیشتر در مورد بحث های فنی ماژول نویسی در وب سایت های ASP.NET نظر بدن
چطوری برنامه بنویسیم که وب سایت اینطوری ماژولار بشه .
در ضمن توضیح بدم که بنده از برنامه نویسی چندلایه و شی گرایی استفاده می کنم.

ممنون.

alonemm
دوشنبه 05 مهر 1389, 12:54 عصر
دراین باره میشه گفت که روش های مختلفی وجود داره.
به نظر من کل صفحات باید به صورت rar به سرور آپلود بشه و بعد از حالت فشرده دربیاد.
و برای اضافه کردن جداول هم میتونید واسه اون یک صفحه به عنوان نصب ماژول بسازید و توی اون جدوال رو که اسکریپت شده رو بسازید.

naser2009
دوشنبه 05 مهر 1389, 13:54 عصر
به نظر من کل صفحات باید به صورت rar به سرور آپلود بشه و بعد از حالت فشرده دربیاد.
واسه کد ها چیکار می کنید. asp که مثله php نیست که نیاز به publish نداشته باشه
کدها که به صورت dll در میاند اون ها رو چه کار می کنید؟
چجوری اون ها رو به کدهای قبلی پینه می کنید؟



برای اضافه کردن جداول هم میتونید واسه اون یک صفحه به عنوان نصب ماژول بسازید و توی اون جدوال رو که اسکریپت شده رو بسازید.
نظره خوبیه

alonemm
دوشنبه 05 مهر 1389, 14:17 عصر
خوب میتونید هر قسمت از ماژول ها رو توی یک پوشه بزارید و پوشه رو rar کنید و بعد کل پوشه رو از حالت فشرده دربیارید.
فایلها هم پابلیش کنید توی همان پوشه.

naser2009
جمعه 09 مهر 1389, 21:08 عصر
خوب میتونید هر قسمت از ماژول ها رو توی یک پوشه بزارید و پوشه رو rar کنید و بعد کل پوشه رو از حالت فشرده دربیارید.
فایلها هم پابلیش کنید توی همان پوشه.
میشه بیشتر توضیح بدید کسی نمونه ای نداری
سایر اساتید نظری ندارن؟

alonemm
شنبه 10 مهر 1389, 13:30 عصر
ببین دوست عزیز:
شما مثل برای ماژول گالری تصاویر یک پوشه دارید و کلیه صفحات مربوط به این کار رو توش ذخیره کردید و کل پوشه به صورت فشرده شده است.

میتونید یک صفحه نصب هم برای جداول و یک صفحه ام برای آپ لود این پوشه و خروج از فشرده سازی کل پوشه در نظر بگیرید.

naser2009
شنبه 10 مهر 1389, 14:59 عصر
ببین دوست عزیز:
شما مثل برای ماژول گالری تصاویر یک پوشه دارید و کلیه صفحات مربوط به این کار رو توش ذخیره کردید و کل پوشه به صورت فشرده شده است.

میتونید یک صفحه نصب هم برای جداول و یک صفحه ام برای آپ لود این پوشه و خروج از فشرده سازی کل پوشه در نظر بگیرید.

یعنی منظوره شما اینه که هر ماژول پروژه ی مخصوص به خودش رو داشته باشه
پوشه bin جدا ، web.config جدا و غیره.....
سپس این پروژه رو publish کنیم و بعد پس از ساختن فایل install این پوشه رو به فولدر مثلا ماژول اضافه کنیم.

وبعد در قسمت مدیریت ماژول ها تمامی این فولدرها که داخل فولدر madule بوده را خوانده و امکان مشاهده یا عدم آن را فراهم می کنیم.

Ahmadgolagha
شنبه 10 مهر 1389, 15:37 عصر
اما asp که مثله php نیست که نیاز به publish نداشته باشه
من سایت asp بدون publish هم آپلود کردم مشکلی نداشت، برای تغییر کد یه صفحه هم می تونستی فقط اونو تغییر بدی و دوباره آپلود کنی ولی اگه پابلیش کنی با تغییر کد باید از اول کل سایت رو آپلود کنی (البته پابلیش کردن خیلی بهتره محض اطلاع گفتم)

برای ماژول هم به نظر من باید از usercontrol استفاده کرد.
فکر کنم بعد از پابلیش هم بشه به صورت داینامیک usercontrol به پروژه اضافه کرد

در کل به نظر من هم این بحث خیلی جالب و مهمی هست
دوستانی که با cms هایی مثل wordpress کار کردند دقیقا متوجه منظور دوستمون می شن.
برای مثال بعد از نصب این cms هر ماژولی مثل گالری تصاویر ، تماس با ما و ... را به صورت آنلاین و بر روی هاست و سایت خودتون می تونید نصب کنید.

من درباره همچین امکاناتی برای cms ها یا سایت های ASP.NET خبری ندارم ولی اگه دوستان می دونند به ما هم بگن

naser2009
شنبه 10 مهر 1389, 16:21 عصر
من سایت asp بدون publish هم آپلود کردم مشکلی نداشت، برای تغییر کد یه صفحه هم می تونستی فقط اونو تغییر بدی و دوباره آپلود کنی ولی اگه پابلیش کنی با تغییر کد باید از اول کل سایت رو آپلود کنی (البته پابلیش کردن خیلی بهتره محض اطلاع گفتم)

بدون publish کردن و کد کردن (کدها-ساختن dll) که خیلی 3 هست:چشمک:


برای ماژول هم به نظر من باید از usercontrol استفاده کرد.
فکر کنم بعد از پابلیش هم بشه به صورت داینامیک usercontrol به پروژه اضافه کرد

یعنی مثلا ماژول گالری تشکیل بشه از چند تا UserControl؟
مثله : ViewGallery,CreateGallery و غیره....
تا حالا کسی این کار رو انجام داده اگه آره یه مثال بذاره.

ممنون

alonemm
یک شنبه 11 مهر 1389, 11:33 صبح
ببینید اولا که معماری و استاندارد دات نت اینه که شما به n دلیل هم امنیت و ... باید ساییتون رو پابلیش کنید.

به نظر من شما اون مواردی که گفتم واسه یک ماژول پیاده کن اگر درست کار کرد واسه ماژول های دیگه هم پیاده کن.

من توی PHP چندتا CMS به همون شیوه که واسط گفتم طراحی کردم.

alonemm
سه شنبه 20 مهر 1389, 15:11 عصر
ببین دوست من ما انجا بیشتر روی حل مشکل و راهکارها کار میکنیم اینهمه CMS رایگاه وجود داره و همشون هم از این روش ها استفاده میکنند شما هم با یک سرچ دانلود کنید.

parimah_f
پنج شنبه 22 مهر 1389, 10:17 صبح
به جان مادرم پیدا نکردم
cmsماژولار زیاد کار کردم ولی می خوام خودم یکی بنویسم و نمی دونم چه جوری باید ماژولار بشه؟
اگر شما نحوه ماژولار کردن رو می دونی خواهشاً بگو یا لینک اون رو برام بذار

foadabd
سه شنبه 27 مهر 1389, 12:53 عصر
اگه دوستان حرفه ای این زمینه کمک کنن !! ما هم یه چیز یاد بگیریم بد نمیشه!!
اگه وقت ندارید حداقل یه مثال ساده لینک شو بذارید ما(من آماتور)یه ذره ازش سر در بیارم خیلی دعا می کنیم دات نت نیوک هست (البته من تا حالا سورسشو نگرفتم)ولی برای اولین بار خوندن خیلی سخته و زیاد و هم VB که تبدیلش به C#‎زیاد جالب در نمیاد

ohh_mid
شنبه 22 آبان 1389, 22:18 عصر
سلام
فکر می کنم استراتژی طرای یک وب سایت برای کد نویسی اون روش کار رو هم مشخص می کنه . اگر شما بخواید که یک CMS واسه خودتون داشته باشید و پروژه ها از یک روال مشخص تبعیت کنند و در آینده هنگام پشتیبانی پروژه ها به مشکل نخورید راهکار مناسبی هست . در مورد پیاده سازی و نصب یک وب سایت هم راهکار زیاد هست کافیه کمی در این زمینه تجربه داشته باشید .

راهکاری که اکثرا استفاده می کنن اول یک سری Provider به همراه یک Framework آماده می کنند بعد میشه برای هر یک از ماژولها یک Application جدا در نظر گرفت در اینجا فکر می کنم خالی از لطف نباشه که بگم بهتره حتما از WebApplication استفاده بشه و نه از Website هنگام Publish که راحته دیگه واسه نصب هر سایت فقط Dll ها رو به همراه فایلهای مربوطه روی سرور کپی می کنید .

این فقط یک توضیح ساده است .