PDA

View Full Version : سوال: ماژول بیس کردن نرم افزار ها



NasimBamdad
یک شنبه 24 شهریور 1392, 15:09 عصر
سلام و خسته نباشید

اخیرا به مواردی برخورد کردم با این عنوان که برنامه های که برنامه نویسان می نویسند ، بهتر هست که ماژول بیس باشد .

یعنی مثل پرتال های جوملا و ... ، دارای ماژول باشند . امکانات نرم افزار در قالب یک ماژول باشند

زمانی که می خوای نرم افزار رو بفروشی می تونی یکسری ماژول هاش رو نصب نکنی و سفارشی برای مشتری باشه

این مسئله چه طوری امکان پذیره ؟

fjm11100
یک شنبه 24 شهریور 1392, 15:19 عصر
با هنر طراحی و قدرت برنامه نویسی برنامه نویس. فنی بخوای توی دات نت مفاهیمی مثل اینترفیس( برای استانداردسازی ارتباطها) و رفلکشن(استخراج metadata ها) کمک زیادی بهت میکنه

NasimBamdad
یک شنبه 24 شهریور 1392, 16:27 عصر
ببین بیا عملی تر صحبت کنیم .

مثلا یک فرم ما داریم که فرم ثبت نام هست .

1- فیلد ها و جداول در دیتابیس رو نیاز داریم
2-فرمی که مربوط به دیتابیس هست و آیتم هاش و کد های که مربوط به ثبت نام هست

میشه دیتابیس رو به راحتی آپدیت کرد با یکسری کوری
اما این فرم ها رو که به برنامه اضافه کنیم و مثل یک Patch عمل کنه . اما این کار رو چه طور انجام بدیم که مثل یک ماژول باشه .


میشه یک مثالی چیزی بهم بدید؟

fjm11100
یک شنبه 24 شهریور 1392, 23:39 عصر
ببین کافیه فرمهای جدید را در یک dll که همون ماژول است بریزی. حالا باید یک متد استاندارد برای لود کردن این فرمها توی تمام ماژولها باشه. برنامه اصلی که لود میشه فولدر ماژولها را چک میکنه و هرچی dll باشه برای وجود اون متد بررسی میکنه(با رفلکشن) بعد یک نمونه از کلاس اصلی اون dll ساخته و اون متد را صدا میکنه و فرمها به نمایش در میان. البته این خیلی ابتدایی است و میشه روش کار کرد. من توی یک شرکت یک فریم ورک نوشته بودم که با همین روش ماژولهای مختلف مثل حضور غیاب و حقوق دستمزد و احکام را لود میکرد و منو مربوط به هرکدام را اضافه میکرد. یک مقدار تحلیل برنامه ات باید قوی باشه

NasimBamdad
دوشنبه 25 شهریور 1392, 01:03 صبح
به صورت عنوان وار می تونی بهم چند تا کار هایی که باید کرد رو بهم بگی ؟ و برم دنبالشون که به کد نویسی نزدیک تر بشم ؟

NasimBamdad
دوشنبه 25 شهریور 1392, 09:35 صبح
کسی نمونه کد یا شبه کد نداره ؟ تو سایت خارجیا ؟

fjm11100
دوشنبه 25 شهریور 1392, 11:01 صبح
فرض کن میخوای یک برنامه بنویسی که دو تا ماژول یکی ماشین حساب یکی دفترچه تلفنه
یک برنامه اصلی داری که وقتی لود میشه میاد فولدر ماژولها را نگاه میکنه و برای هر فایل dll یک گزینه توی منو میسازه. برای هر ماژول جداگانه یک پروژه dll میسازیم، مثلا یکی برای ماشین حساب یکی برای دفترچه تلفن
ماژولها پروژه های library (همون dll) هستند که دارای فرم (مثلا ماشین حساب) هستند. اسم و ورژن و سایر اطلاعات ماژولها را هم در فایل assemblyinfo هر کدوم از پروژه های ماژول تعریف میکنیم.
لود کردن هر اسمبلی(همون dll ها) با دستور زیر انجام میشه
System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFile("");
یک مقدار روی این namespace رفلکشن مطالعه کنی دستت میاد.
البته این تازه اول راهه. باید یکسری استانداردها برای تعریف متدها، خصوصیات و اشیاء درون ماژولها بزاری که هرکسی بتونه با رعایت اونها بدون اینکه نیاز به دیدن کد اصلی باشه ماژول یا پلاگین برای برنامه ات بنویسه

صباح فتحی
دوشنبه 25 شهریور 1392, 12:45 عصر
شما باید با مباحث شی گرایی و Design pattern اشنایی کامل داَشته باشید