PDA

View Full Version : نوشتن ماژول برای نیوک



peymannaji
پنج شنبه 23 مهر 1388, 14:40 عصر
با سلام .

من دیروز شروع کردم برای یادگیری نوشتن ماژول برای دات نت نیوک .
یه مسئله ای که وجود داره باید با نیوک 4.9 کار کنم و من هم vs 2008 دارم . در نیتجه startet kit 4 رو نصب کردم که تنها آیتمی که موقع ایجاد New Web Project ظاهر شد البته در این ارتباط , آیتمی به نام dotnetnuke web applocation framework بود . آیا از همین آیتم باید برای نوشتن ماژول استفاده کرد ؟ در ضمن در بعضی از سایتها میدیدم که آیتم های دیگری نیز وحود داره مثل skin , ... که برای من وجود نداشت . سرتون رو درد نمیارم . میخوام ماژول برای نیوک 4.9 بنویسم . راهنمایی بفرمائید لطفا

با تشکر

Amirpooyan
شنبه 30 آبان 1388, 16:12 عصر
خب من این پست رو امروز دیدم. منم یه دو هفته میشه که دارم رو ماژول نویسی DNN کار میکنم و تا الان یه یه ماژول ساده نوشتم و مشغول سر و کله زدن باهاش هستم.

اول شما باید بدونید که دو نوع ماژول توی DNN داریم:
1- DotNetNuke Dynamic Module ه
2- DotNetNuke Compiled Module

برای اطلاعات بیشتر میتونی خودت یه جستجو بکنی و بعد از بررسی این دو تااحتمالاً تمایل پیدا میکنی، بری سراغ DotNetNuke Compiled Module. فرض کنیم که شما DNN 4.9.3 و Starter Kit همین version رو بطور کامل نصب کردی.

حالا اگه New Project رو بزنی (همون Ctrl + Shift + N) تو قسمت Web هم C#‎‎‎‎ و Visual Basic یه آیتم DotNetNuke Compiled Module داری که برای توسعه یه ماژول از این Template استفاده میشه.

البته اگه New Web Site رو بزنی (همون Shift + Alt + N) رو بزنی تو قسمت Visual Basic آیتم DotNetNuke Web Application Framework داری، که با انتخاب کردن اون یه نسخه از DNN اون version از Starter Kit ی که نصب کردی رو برات نصب میکنه.

برای Skin هم آیتم داره که چون مربوط به بحث نمیشه کاری بهش نداریم.

حالا شما یه نسخه از DNN رو بطور صحیح و کامل نصب کن و بعد برو تو Visual Studio 2008 و از منوی New Project، از قسمت Web زبانی که مورد نظرت هست، آیتم DotNetNuke Compiled Module را انتخاب کن و تیک Create directory for solution رو بردار و مسیر پروژه رو به محلی که DNN رو نصب کردی و سپس فولدر DesktopModules رو انتخاب کن و در انتها OK رو بزن.

حالا دیگه میتونی کد نویسی رو شروع کنی. هر بار هم که پروژه ات رو Build کنی، اسمبلی مربوطه توی فولدر bin محل نصب DNN میشینه.

البته بعد از اینکه کد نویسی DAL و UI تموم شد و خواستی ماژولت رو تست کنی باید اونو از طریق منوی Host -> Module Definitions ->Import Module Definition به DNN اضافه کنی.

peymannaji
شنبه 30 آبان 1388, 19:44 عصر
ممنون دوست عزیز . مشکلی که داشتم اینه که بعد از اضافه کردن ماژول جای ماژول یه عکس میاد . ممکنه خطایی تو ماژول من باشه ؟

Amirpooyan
شنبه 30 آبان 1388, 23:26 عصر
خب، من نمیتونم حدس بزنم مشکل کار شما کجاست، اما به چند مورد اشاره میکنم که اگر شما بدرستی ماژول خودتون رو طراحی کرده باشید و تنها مشکل شما در بکارگیری ماژول باشه، بهتون کمک میکنه.

همونطور که خودتون هم احتمالاً میدونید، هر ماژول برای اینکه خودش رو به DNN معرفی کنه و DNN هم بتونه اون بکار بگیره باید خودش رو از طریق یک فایل Manifest معرفی کنه. فایل های Manifest پسوند dnn دارند و علاوه بر مازول ها برای Skin و Container و الباقی extension ها بکار میرن. برای نمونه شما میتونید به فولدر DesktopModules برید و سپس فولدر یکی از ماژول ها را باز کنید و محتویات فایل Manifest را مشاهده کنید.

در صورتی که شما به خوبی DataProvider، SqlDataProvide، BusinessControllerClass کد نویسی کنید و همچنین User Control ها رو بدرستی از کلاس های پایه PortalModuleBase و ModuleSettingsBase پیاده سازی کنید و بدون خطا ماژول رو کامپایل کنید، اما تا وقتی که فایل Manifest را بطور صحیح ایجاد نکنید، امکان بکار گیری ماژول رو در DNN ندارید. شما میتونید از منوی Host -> Module Definitions با کلیک روی آیکون مداد اطلاعات Manifest به هر ماژول در DNN را جهت آشنایی بررسی کنید.

نکته دیگه اینکه، شما باید در نظر بگیرید که بدرستی از کلاس های واقع در فضای DotNetNuke.Entities.Modules مثل PortalModuleBase و ModuleSettingsBase بعنوان کلاس پایه کنترل هاتون استفاده کنید و User Control ها رو بر اساس نوع Control ها در فایل Manifest تعریف کنید.

در حالت کد نویسی و قبل از تهیه پکیج نصب، شما خودتون وظیفه ساخت، تغییرات و ... در جداول Database را دارید (به لحاظ شدن {objectQualifier} و {databaseOwner} در هنگام کار با اسکریپت های SQL دقت کنید)

در آخر پیشنهاد هم دارم که ممکن بیشتر کمکتون بکنه. یه ماژول ساده از بخش Forge سایت DotNetNuke.com انتخاب کنید، فایل Source رو دانلود کنید و به صورت دستی اون رو نصب کنید و کامپایل کنید. بعد از مطالعه اجمالی کد، سعی در ایجاد تغییرات کوچک در جنبه های مختلف اون بکنید و نتیجه را ببیند. در انتها با کمی سعی و خطا اطلاعات و دید خوبی نصبت به معماری DNN پیدا میکنید.