در حالت کلی یک ماژول از سه بخش تشکیل شده است و یا به عبارتی به سه یوزر کنترل نیاز دارد:

ظاهر
محتوا
تنظیمات

در حقیقت کاربر عادی فقط ظاهر ماژول و کاری که انجام می دهد را می بیند. در بخش محتوا اطلاعاتی را که می خواهیم ماژول نمایش دهد و کارهایی که می خواهیم انجام بدهد را وارد می کنیم. و در بخش تنظیمات می توانیم یک سری امکانات اضافی برای تنظیماتش مثلا انتخاب تمپلیت ، رنگ ها، نوع چیدمان و … اضافه نماییم. پس به جز صفحه ی اصلی ماژول که مربوط به نمایش ظاهری عملکرد ماژول می باشد و قابل مشاهده است ، باقی صفحات حالت ویرایشی دارند و قابل مشاهده برای کاربر نیستند.
در ماژول ها آیتم هایی داریم به نام Action Command ها که این آیتم ها در واقع مثل کلیدی هستند که شما را از صفحه ی اصلی ماژول به صفحات دیگر منتقل می کنند، مثلا کلید “اضافه کردن تصویر” که با کلیک روی آن به صفحه ای هدایت می شوید که امکان اضافه کردن تصویر را می دهد.این موارد در مثال بهتر مشخص خواهد شد.
نکته ی دیگری هم هست و آن اینکه جدای یوزر کنترل ها ، ۳ کلاس Info, Controller, Data Provider)) در برنامه ی ماژولمان داریم که برای اتصال به پایگاه داده و خواندن و نوشتن اطلاعاتمان از آنها استفاده می کنیم که این سه کلاس که معمولا ساختار درونی شان برای ماژولهای متفاوت، مشابه هست خودشان با یک کلاس دیگری در یک پروژه ی جدا اما با فضای نام (Namespace) مشابه با برنامه ی ماژول مورد نظر ما مرتبط هستند ، به نام : SQL Data Provider .CS که dll ش را حتما در پکیج های دات نت نیوک دیده اید.پس ما یک solution داریم با دو project که Namespace هایشان یکی هستند