يکشنبه 16 بهمن 1390    15:11
تبدیل یک پروژه به یک مازول
آخرین پست 03 آبان 1388 04:34 ب.ظ بوسیله hosein norouzi. 2 پاسخ.
مناسب چاپ
مرتب سازی:
بعدیبعدی قبلیقبلی
شما مجاز به پاسخ به پست نمی باشید.
مولف پیام ها
حمیرا رضاییکاربر آفلاین می باشد
کاربر جدید
کاربر جدید
Posts:1
آواتور

--
03 آبان 1388 09:02 ق.ظ
سلام و خسته نباشید
چطوری می تونم یک برنامه  که نوشتم تبدیلش کنم به یک ماژول و به سایت اضافه اش بکنم
مرسی
خیلی فوری
hosein norouziکاربر آفلاین می باشد
کاربر پرانرژی انجمن
کاربر پرانرژی انجمن
Posts:172
آواتور

--
03 آبان 1388 04:32 ب.ظ
سلام دوست گرامی
ماژول همان پروژه 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 کامل ماژول نویسی با دست خط شاون واکر را دارم !! اگر خواستین می توانید ایمیل بزنید تا براتون بفرستم و همچنین اگر به مشکلی خوردید ماژول رو ایمیل کنید تا باگ هاشو واستون بگیرم
موفق باشید



norouzi.hosein@ymail.com
norouzi.hosein@gmail.com
  
hosein norouziکاربر آفلاین می باشد
کاربر پرانرژی انجمن
کاربر پرانرژی انجمن
Posts:172
آواتور

--
03 آبان 1388 04:34 ب.ظ
ایمیلم یادم رفت
norouzi.hosein@gmail.com
norouzi.hosein@ymail.com
norouzi.hosein@gmail.com
  
شما مجاز به پاسخ به پست نمی باشید.

Active Forums 4.1
عضویت شورای عالی انفورماتیک
عضویت شورای عالی انفورماتیک

اطلاعات تماس
خیابان ستارخان، ابتدای خیابان باقرخان، پلاک 121، طبقه چهارم، واحد 8
پست الکترونیک: admin@irandnn.ir
تلفن: 66571756 - 66571765 - 66923164