$ $ $
توجه:
این یک دورهی آموزشی غیررایگان وبسایت آکسفورد پلاس میباشد. طبق تصمیم مدیریت وبسایت، برخی از دورههای آموزشی، بنابه دلایل زیر، بصورت غیررایگان ارائه میشوند:
1- تاکید بر ارزشمند بودن مطلب ارائه شده و یادآوری زحمت و وقتی که برای تهیهی آن صرف شده است.
2- بنابر توصیهی محققان، یادگیری و ماندگاری مطلب در دورههای آموزشی که برای آنها پول صرف شده است، بیشتر از دورههای رایگان میباشد.
3- بخشیدن یک تم خاص و سبک کاری به وبسایت، اینکه کاربران، یک سبک کاری و تم ویژه را با وبسایت آکسفورد پلاس تجربه کنند.
هرچند که ما هنوز امکانات عضویت، لاگین و خرید را برای وبسایت اضافه نکردهایم، اما روش استفاده از این دورهها، در زمانیکه امکانات وبسایت تکمیل شد، به این صورت خواهد بود که هر کاربر خواهد توانست پس از عضویت و لاگین کردن، هر تعداد از مقالات و دورههای غیر رایگان را از طریق فروشگاه وبسایت خریداری کرده و به اکانت خود بیافزاید. پس از آن وی خواهد توانست در هر بار لاگین کردن، این مقالات و دورهها را نیز مطالعه کند. البته لازم به ذکر است که، ما قیمتها را طوری تعیین خواهیم کرد که خریدی لذت بخش داشته باشید. پس منتظر این امکانات جدید وبسایت آکسفورد پلاس باشید و همواره با ما همراه باشید ;)
$ $ $
مقدمه - معرفی Custom Control و مقایسهی آن با User Control
با سلام. به دورهی آموزش ایجاد و استفاده از کنترلهای ASP.Net از نوع Custom Server Control یا به اختصار Custom control، خیلی خوش آمدهاید.
دوستانی که در دانشگاه، رشتهی نرمافزار تحصیل کردهاند، مسلما بحث Reusability (یا همان قابلیت استفادهی مجدد) را بخاطر دارند. شما قابلیتی که برای یکی از نرمافزارهایتان ایجاد میکنید را میتوانید طوری بنویسید که در پروژههای دیگرتان، مجددا قابل استفاده باشد. این تکنیک برنامهنویسی یکی از اساسیترین ملزومات کار است، چرا که هزینهی تولید نرمافزار با این روش بسیار کاهش پیدا میکند. در دانشگاه تا همینجا پیش میروند! بعدها هم که میخواهیم برای دل خودمان برنامهنویسی کنیم، میتوانیم از امکانات جالب ، ASP.Net، که تحت عنوان ایجاد User Control ها در اختیار کاربران قرار داده شده است، استفاده کنیم و بخشهایی از وبسایت یا برنامهای که مینویسیم را بعنوان User Control بنویسیم، تا بعدا بتوانیم آنرا در جاهای دیگری استفاده کنیم.
این امکان ASP.Net، یعنی امکان ایجاد User Control ها، به برنامهنویسان تازهکار کمک میکند که مباحث Reusability که در دانشگاه دیده بودند را بخوبی در عمل پیادهسازی کنند و پروژههای شخصی خود را با سرعت و مهارت خاصی تکمیل کنند. اما User Controlها یک ایراد بزرگ دارند و آن قابل مشاهده بودن سورس کد آنهاست. البته این ایراد، تا زمانیکه ما برای دل خودمان کد میزنیم و بصورت تجاری فکر نمیکنیم، شاید زیاد به چشم نیاید اما وقتی پیش میآید که به سفارش فرد یا شرکتی، کدنویسی کنیم (مثلا وب سایتی را برای شخصی ایجاد کنیم)، قرار دادن بخشهای طلایی کد، یعنی همان بخشهایی که ما را قادر میسازد یک سروگردن از رقبا جلوتر باشیم و به کمک آنها میتوانیم در زمانی اندک، تعداد زیادی امکانات، به نرمافزار تولیدی خود بیافزاییم، و درواقع همان بخشهایی که ترجیح میدهیم آنها را با امکانات Reusability بصورت کنترلهایی ذخیره کنیم و مرتب از آنها در جاهای مختلف استفاده کنیم، آشکار بودن سورس کد، چندان جالب به نظر نمیرسد.
در مقابل، امکانات فوقالعاده قدرتمندتر دیگری توسط ASP.Net معرفی شده است که ما را قادر میسازد نه تنها قابلیتهای نوشته شده برای یکی از پروژههایمان را تبدیل به کنترل کنیم و با افزودن آن به Tool Box محیط Visual Studio، به سرعت یک درگ کردن ماوس، همان قابلیتها را به پروژههای جدیدمان بیافزاییم، بلکه سورس کد مربوطه نیز از انظار به دور خواهد بود، چرا که کنترلهای مذکور بصورت کامپایل شده نگهداری میشوند. بله صحبت از Custom Control ها است.
شما با مهارت یافتن در ایجاد Custom Control ها، به خودی خود، از فردی که بصورت تفنّنی و برای دل خودش کد میزند، به یک برنامهنویس حرفهای تبدیل میشوید. به کمک Custom Control ها، شما حتی قادر خواهید بود کنترلهای قابل استفاده در نرمافزارهای مختلف را که خودتان نوشتهاید را با خیال راحت در اختیار دیگران قرار دهید و حتی آنها را به فروش برسانید و بخاطر کامپایل شده بودن آن کنترلها، اختیار تمام و کمال و انحصاری بر آنها داشته باشید. شکل 1، نمایی از یک کنترل را نشان میدهد که ما آن را در این دورهی آموزشی ایجاد میکنیم و سپس به جعبهابزار Visual Studio میافزاییم.

شکل 1. کنترلی که ما خودمان تولیدش کردهایم و به Tool Box افزودهایم
محتوای دوره:
معرفی کنترل OxfordPlus_InputBox_1 بعنوان Case Study
ایجاد یک پروژهی Custom Control جدید
بکارگیری Custom Control قبلا ایجاد شده در داخل یک وبسایت
تعریف Property برای Custom Control
ایجاد ساختار و ظاهر مناسب برای Custom Control با استفاده از کدهای HTML
مدیریت رویدادها در داخل Custom Control
مدیریت رویدادها خارج از Custom Control