سلام دوست گرامی
ماژول همان پروژه asp.net است ولی روی پلت فرم دات نت نیوک
چندین روش برای تبدیل یک پروژه به ماژول نیوک وجود دارد و به نظر من اگر سورس یکی از ماژول های سبک دات نت نیوک (مانند documents) را بررسی نمائید خودتان بیشتر نکات مربوط به ماژول نویسی را یاد خواهید گرفت . برای تبدیل پروژه تان به ماژول می توانید کار های زیر را انجام دهید ولی قبل از هر کاری بدانید که کار شما به 2 بخش کلی تقسیم می شود ابتدا تبدیل سورس پروژه به ماژول دات نت نیوک و سپس ساخت پک نصب ماژول و یا نصب دستی ماژول در داخل پورتال.
به احتمال زیاد پروژه شما از نوع Asp.Net Web Site باشد که بهتر است نوع پروژه خود را Asp.Net Web Application و یا Class Library قرار دهید علت آن هم این است که در نوع پروژه اول ساخت فایل refrence یا همان dll مربوط به پروژه کمی دشوار است .
کار های لازم برای تبدیل پروژه به ماژول :
1-صفحات پروژه را که به صورت فایل aspx قرار دارند به صورت فایلهای کنترلی (ascx) درآورید منظور از ascx همان web user control می باشد
2-تمام کلاسهای پروژه را تحت یک namespace قرار دهید و همچنین تگ Inherits مربوط به هر کنترل (ascx) را اصلاح نمائید
مثال :
Namespace EfficionConsulting.Articles
Partial Class ArticleList
Inherits DotNetNuke.Entities.Modules.PortalModuleBase
...
<%@ Control Language="vb" Inherits="EfficionConsulting.Articles.ArticleList" CodeFile="ArticleList.ascx.vb"
...
3-كلاس هاي مربوط به كنترل ها (ascx) بايد به جای ارث بری از System.Web.UI.UserControl از DotNetNuke.Entities.Modules.PortalModuleBase ارث بری نمایند .
مثال :
Partial Class ArticleList
Inherits System.Web.UI.UserControl
...
Partial Class ArticleList
Inherits DotNetNuke.Entities.Modules.PortalModuleBase
...
4-برای هر صفحه که حالا تبدیل شده به یک کنترل (ascx) یک نام در نظر بگیرید زیرا برای ریدایرکت کردن به صفحات یا همان کنترل های ماژول باید از متد های دات نت نیوک استفاده کنید و با استفاده از نام کنترل می توان به کنترل مورد نظر رفت. متد های EditURL و NavigateURL متدهایی با حالت های مختلف هستند که برای این کار استفاده می شوند. دقت نمائید کنترل مربوط به صفحه اصلی ماژول بدون نام است یعنی نیازی نیست برای این کنترل نامی قرار دهید و هنگامی که ماژولی درون صفحه ای در پورتال قرار می گیرد دات نت نیوک کنترلی را که بدون نام است به عنوان صفحه اصلی ماژول در نظر می گیرد
البته نکات بسیاری ذکر نشد که به نظرم تجربه برنامه نویسی شما نیاز به ذکر آن نکات نداشته باشد
و همچنین بر حسب نیاز کارهای دیگری نیز باید صورت گیرد ولی به نظرم کلیات همین ها بود هر چند هنوز تا استاندارد نمودن ماژول فاصله زیادی است ولی به مرو همه چیز را خواهید آموخت
حال اگر خواسته باشید این ماژول را به پورتال اضافه نمائید باید یا پک نصب ماژول را بسازید و یا هم به صورت دستی ماژول را به پورتال اضافه نمائید
برای افزودن دستی کارهای زیر را انجام دهید
بعد از لاگین نمودن با سوپر یوزر از منوی Host وارد Module Deffinition شوید و سپس گزینه Create Module را کلیک نمائید
در صفحه ایجاد ماژول پس از پر نمودن فرم مربوطه گزینه add definition را کلیک نموده و سپس یکی یکی کنترل ها را اضافه نمائید دقت کنید قبل از انجام این کارها شاخه ای درون desktopmoules ایجاد نموده و فایلهای پروژه مثل کنترل ها (ascx) را در شاخه ایجاد شده کپی نمائید . همانطور که قبلا بیان شد باید برای هر کنترل به جز کنترل اصلی پروژه نامی در نظر بگیرید و در هنگام افزودن کنترل آن را وارد نمائید تا بتوان بین کنترل ها یا همان صفحات ماژول ریدایرکت کرد .
اگر پروژه شما دارای فایل dll مربوط به کامپایل کلاسهای پروژه است آن فایل را در شاخه bin پورتال کپی نمائید در غیر این صورت فایلهای غیر از فایلهای مربوط به ascx ها را در شاخه درون app_code کپی نمائید و آن شاخه را نیز در web.config معرفی کنید
در انتها اسکریپت دیتابیس پروژه تان را روی دیتابیس پورتال اجرا نمائید و فینبش
من pdf کامل ماژول نویسی با دست خط شاون واکر را دارم !! اگر خواستین می توانید ایمیل بزنید تا براتون بفرستم و همچنین اگر به مشکلی خوردید ماژول رو ایمیل کنید تا باگ هاشو واستون بگیرم
موفق باشید