PDA

View Full Version : گفتگو: آموزش ایجاد کامپوننت به همراه مثال



sempay_ninjutsu
پنج شنبه 27 مرداد 1390, 15:02 عصر
به نام خدا

با سلام خدمت تمام دوستان برنامه نویس
من یه طرحی در رابطه با کامپوننت نویسی در سی شارپ دارم که پس مطرح کردن این طرح دوست دارم نظرات شما دوستان عزیز رو در رابطه با این طرح بدونم و اگر به این نتیجه رسیدیم که واقعا نیاز هست و قبلا این کار صورت نگرفته شروع به آموزش می کنیم.

آشنایی مختصر با کامپوننت نویسی:
کامپوننت نویسی یکی از کارهای حرفه ای است که هر برنامه نویس می تونه انجام بده(فقط منظورم سی شارپ دات نت هست با دیگر زبان ها کاری ندارم).منظورم از حرفه ای بودن اینه که کدنویسی کمتر میشه،سرعت تغییرات در برنامه بالا میره و از همه مهمتر میتونیم کامپوننتی که نوشتیم (dll که خلق کردیم)را به سازمانها و ارگانهای مختلف بفروشیم.
یه مثال:شما فکر کنید که یه پروژه 60 فرمی دارید(منظور پروژه های نیمه بزرگ) و داخل هر فرمتون 4 تا تکس باکس و 3تا باتن دارید.پروژه به پایان رسیده و شما میخایید این پروژه را تحویل مشتری بدید،بعد مشتری میگه من دوست دارم رنگ دکمه هام آبی باشه(معمولا از این مشتری ها زیاد پیدا میشه و از همه مهمتر بحثه کاربر پسند بودن برنامه پیش میاد و در کل شما مجبورید این کار را انجام بدید)واسه تغییرات چقدر باید زمان بزارید؟؟؟؟؟؟؟؟؟؟ولی اگه با دکمه هایی که خودتون نوشتید استفاده می کردید فقط در عرض چند ثانیه در این تغییرات حاصل میشد.
همون پروژه بالا را در نظر بگیرید برای هر تکس باکست کنترل های لازم را باید انجام بدی(خالی نباشد،اگه عددی بود مقدار بین 0 تا 9 بگیرد،پولی بود سه رقم جدا کند،و اگر اینتر رو زد به کنترل دیگر برود....)شاید بگید بعضی از این کارها را با مسک تکس باکس انجام میدین یا تابعی می نویسیم و اونو در همه جا فراخوانی میکنید.اما این در بعضی از جاها قابل قبوله و باز هم نیاز به کد نویسی و یا تنظیمات داره و این زمانبر است.چرا نباید از این کد 1 بار بنویسیم و چند بار استفاده کنیم(در پروژهای مختلف) و یا حتی بتونیم اونها رو بفروشیم.

مثل تبدیل تاریخ میلادی به شمسی و ...

دلیل های دیگه هم وجود داره و فقط به اینها اکتفا کردم......

برای کار کردن با کامپوننت ها باید با کلاس ها خوب آشنا باشین (سطح دسترسی،کپسوله کردن،متد،پروپرتی،فیلد،تاب ع،ارث بری،چند ریختی(پلی مرفیسم)،.....)تا وقتی نتونین با اینها کار بکنین توصیه می شود سطح کامپوننت نویسی نیاین چون هیچی نمی فهمید.

من دیدم دوستان از (dll بقیه استفاده میکنن) من نمیگم این کار خوب نیست بحثه من اینه که خودمون چیز هایی رو بنویسیم حتی دست و پا شکسته تا بتونیم با کامپوننت ها کار کنیم و هر وقت هم تسلط نسبتا خوبی پیدا کردیم خودمون چیز های مفیدی رو برای خودمون و دیگران می نویسیم.الان هم سایت هایی هستند که این کامپوننت ها بصورت رایگان در اختیار ما قرار می دهند اما هدفه من اینه که مصرف کننده نباشیم.چون چیز هایی که نوشته میشه فقط (dll) هست و کدی رو ما نمیبینیم.باز هم تاکید میکنم فقط بتونیم خودمون چیزهایی را بنویسیم(حتی خیلی ساده).

برای اینکار هم نیاز داریم بقیه دوستان دست به دست هم بدن و مشارکت داشته باشند(حتی در حد یک ایده).

شاید اولش سخت باشه اما شک نکنید نتیجش شیرینه و به تجربه کردنش می ارزه.....

من تو سایت سرچ کردم چیزی راجب این قضیه ندیدم که اگه هم مطلب من تکراری بود از مدیرن میخوام که لینکشم برام بزارن و بعد حذف کنند.


اگه دوستان استقبال کنند و طرح و نظری داشته باشند مشتاق شنیدنش هستم و به زودی کار خودمونو استارت می زنیم.بازم شرط استارت خوردن اینکار همکاری شما دوستان عزیز خواهد بود وقانون نحوه انجام اینکار را بعد نظرات شما دوستان خواهم نوشت.

با تشکر
بیایید فقط مصرف کننده نباشیم.

morteza271
پنج شنبه 27 مرداد 1390, 15:59 عصر
سلام دوست عزیز.

منم با شما موافقم و خیلی دوست دارم یه آموزش کلی در این مورد توی سایت باشه.
من قبلا خودم زیاد دنبال گشتم که آموزش کامپوننت نویسی پیدا کنم ولی چیز خاصی پیدا نکردم و مجبور شدم خودم شروع کنم و چندتا ساختم.البته شاید کدنویسیش استاندارد نباشه ولی خوشبختانه درست کار میکنن.
دوتا از نمونه کامپوننت هام رو هم در بخش نمونه برنامه های مفید در همین سایت گذاشتم(یه دونه DatePicker و یک TimePicker).

اگه بتونید این آموزش رو شروع کنید ، ادامه بدین و تمومش کنید خیلی خوب میشه چون من خیلی از آموزش ها رو دیدم که دوستان اومدن یه تاپیک با عنوان آموزش گذاشتن و یه خورده آموزش دادن و بعد بی خیال شدن!!!!! امیدوارم شما بتونید ادامه بدین و تمومش کنید...

با تشکر از شما.
موفق باشید

sempay_ninjutsu
پنج شنبه 27 مرداد 1390, 20:43 عصر
سلام
اولا خدمت شما عرض کنم برای ادامه روند آموزش نمیشه فقط من بخوام به تنهایی ادامه بدم شک نکنید به کمکه تک تک بچه ها نیاز هست.وثانیا بقیه دوستان هم یه طرحی مطرح کنند و حداقل شروع کنن به آموزش تا بقیه دوستان هم بتونن اونو اصلاح کنن و ادامش بدن تا به نتیجه برسن.
دوما هر کامپوننتی قرار است تولید شود باید طرح مسئله شود و بقیه دوستان هم همفکری کنند طرح اولیه درست بشه و به مرور اصلاح بشه.

راجبه اینکه چه جوری این کار صورت بگیره من یه قانون کلی تو ذهنم هست که پیروی کردن از اون میتونه نتیجه خیلی خوبی داشته باشه.

من میتونم کل فایل ها را بزارم و دانلود کنید اما وقتی نفهمید پشت این کد ها چی می گذره فایده ای نداره.منم کتاب یا سی دی آموزشی چیزی ندیدم که خوب کامپوننت نویسی رو توضیح داده باشه و یکی از دلیل های گذاشتن این تاپیک هم همینه.-.

با تشکر
بیاید فقط مصرف کننده نباشیم.

morteza271
پنج شنبه 27 مرداد 1390, 21:55 عصر
بله تمام حرف های شما درسته و یقینا باید دوستان هم نظر بدن و یاری کنن!! منم نگفتم شما باید به تنهایی این کار رو بکنید.
شما شروع کنید ایشا.. بقیه دوستان هم کمک میکنن و تموم میشه.
منم در حد توانم نظرات خودمو میگم و هرجا که کمکی ازم بربیاد دریغ نمیکنم...
موفق باشید

HAMRAHSOFT.IR
پنج شنبه 27 مرداد 1390, 22:59 عصر
دوست خوب اگه بشه که خیلی عالی میشه
مثلان کامپونتی که وقتی رو فرم میزاریم کلید اینتر برای حرکت تکس باکس حرکت کرد چقدر خوب میشه من دارم روش کار می کنم ولی نمی دونم چطوری باید dllکنم

kiumarsknb
جمعه 28 مرداد 1390, 02:00 صبح
سلام - بسم الله قدم اول رو بردارین این موضوع رو از پست های غیر کاربردی (مثل پست من که نظر رو میگیم)پاک کنید تا جای مطالب مفیدتون رو اشغال نکنه گام اول رو بردارین - موفق باشید

sempay_ninjutsu
شنبه 29 مرداد 1390, 13:18 عصر
طبق صحبتی که با بچه های دیگر داشتم(دوستان برنامه نویس خودم)قرار بر این شد که آموزش را بصورت مالتی مدیا (تصویری)درست کنیم و در اختیار دوستان قرار بدهیم. با تشکر

k_ce_esf
شنبه 29 مرداد 1390, 13:26 عصر
خیلی عالی میشه اگه این کار را انجام بدید.:تشویق:

mohammad_cmd
شنبه 29 مرداد 1390, 13:33 عصر
سلام دوستان ، اگه این بحث درست شه چی میشه من خودم خیلی دوستارم .
ممنون:لبخند:

amir-aa
شنبه 29 مرداد 1390, 13:41 عصر
منم خیلی موافقم.خیلی عالیه..

masoud_z_65
شنبه 29 مرداد 1390, 16:34 عصر
واقعا عالیه.....ممنون

ro3vayedel
چهارشنبه 11 تیر 1393, 00:56 صبح
با سلام من توی برنامه یک کلید دارم که با زدنش tab جدید create میشه ...توی tab1 کلی آبجکت هست...وقتی تب جدید رو کاربر ایجاد میکنه مسلمن تب ایجاد شده ی جدید خالی است و به هیچ دردی نمیخوره...
میخوام بدونم چطور با کامپوننت میتونم کد بنویسم که همون طراحی واسه n تب تکرار بشه و توی همه بتونه ست بشه...
ممنون میشم...

golestan1
چهارشنبه 11 تیر 1393, 19:43 عصر
با سلام من توی برنامه یک کلید دارم که با زدنش tab جدید create میشه ...توی tab1 کلی آبجکت هست...وقتی تب جدید رو کاربر ایجاد میکنه مسلمن تب ایجاد شده ی جدید خالی است و به هیچ دردی نمیخوره...
میخوام بدونم چطور با کامپوننت میتونم کد بنویسم که همون طراحی واسه n تب تکرار بشه و توی همه بتونه ست بشه...
ممنون میشم...


یه یوزر کنترل ایجاد کن و در کلید وقتی تب جدید ایجاد کردی همان یوزر کنترل رو هم فراخوانی کن

soleimani.em
چهارشنبه 11 تیر 1393, 21:40 عصر
منم موافقم. کار جالبیه!