0

یک Widget با قابلیت استفاده مجدد

 
hasantaleb
hasantaleb
کاربر طلایی1
تاریخ عضویت : شهریور 1387 
تعداد پست ها : 58933
محل سکونت : اصفهان

یک Widget با قابلیت استفاده مجدد

یکی از محصولات نسبتاً محبوب در زمینه برنامه‌نویسی با استفاده از Widgetها، با نام SharePiont Portal Server2003 مطرح است کهWidgetهای قابل‌استفاده مجدد خود را WebPart نامیده است.

شرکت مایکروسافت در ASP.NET2.0 کاملاً از WebPartها حمایت می‌کند و جای تعجب ندارد که برنامه MicroSoft Office SharePoint Server2007 به همراه مجموعه Office عرضه شده ‌است.

در این مقاله اصول پایه مطرح در چهارچوب‌های WebPart مورد بررسی قرار می‌گیرد. می‌توان این مقاله را به عنوان پایه‌ای برای مباحث پیشرفته‌تر نظیر چگونگی پشتیبانی از WebPartها در برنامه MOSS2007 در نظر گرفت.

مؤلفه‌های اصلی چهارچوب WebPart در ASP.NET2.0

قبل از بررسی یک صفحه ساده وب که با استفاده از WebPartها طراحی شده است، ابتدا مهم‌ترین عناصر قابل استفاده در چهارچوب کاریNET. را مورد بررسی قرار می‌دهیم که برای تولید این صفحه استفاده شده‌اند:

- ‌WebPartها: WebPart، یک Widget با قابلیت استفاده مجدد است که در صفحات وب به کار می‌رود. کاربر می‌تواند WebPart را به صفحات خود بیفزاید، آن را متناسب با نیاز خود تنظیم کند یا حتی رابطه‌هایی را بین این WebPartها تعریف کند.

پیش از هر چیز باید دانست که WebPart در ASP.NET2.0 از کلاسSystem.Web.UI.WebControls.Controls.WebParts.WebPart مشتق شده‌است. یک نمونه خوب، Widgetای است که ترافیک را نمایش می‌دهد.

کاربر نهایی می‌تواند طوری آن را تنظیم‌کند که اطلاعات مربوط به بزرگراه‌های خاصی را نمایش دهد و از طریق ارتباط با یک WebPart دیگر بزرگراه‌های دیگری را تعیین کند و کاربر با کلیک روی آن‌ها، آخرین اطلاعات ترافیکی مربوط به آن‌ها را مشاهده کند. تولید چنین سیستمی درASP.NET2.0 کار زیاد سختی نیست.

- WebPartManager: این کنترل به عنوان مهم‌ترین سیستم بازرسی برای WebPartها در ASP.NET2.0 مطرح است. هر صفحه باید فقط شامل یک WebPartManager باشد و این عنصر مسئول همه عملکردها، رخدادها، و سفارشی‌سازی‌های مربوط به WebPart‌های مختلف موجود در آن صفحه است و آن‌ها را مدیریت می‌کند.

همچنین می‌توان WebPartManager را به حالت (Mode)های مختلف تنظیم کرد. برای مثال، اگر طراح WebPartManager را در حالت Catalogueتنظیم کند، می‌تواند WebPartهای مورد نظر برای صفحه خود را از میان مجموعه‌ای از WebPartها انتخاب کند.

Communication Mode، یکی دیگر از حالت‌ها برای تنظیم صفحه است. در صورت انتخاب این حالت می‌توان بین WebPartهای مختلف مسیرهای ارتباطی متعددی تعریف کرد.

- Various Zones: به نواحی مختلف صفحهZone می‌گویند. پیاده‌سازی این‌ها از طریق کنترل‌های سرور زیر صورت می‌گیرد که به همراه چهارچوب ارائه می‌شوند:

- WebPartZone: یک WebPartZone عبارت است از کنترلی که ناحیه‌ای از صفحه را تعیین می‌کند تا آن ناحیه میزبانی یک یا چند WebPart را برعهده گیرد. همچنین WebPartZone کنترل نحوه نمایش یک WebPart را برعهده دارد.

همچنین هر کنترلی که از کلاس WebPart به ارث نرسیده باشد، می‌تواند به صورت یک WebPart ظاهر گردد و در یک WebPartZone ساکن شود. این کار از طریق کلاس Generic طراحی شده برای WebPartها انجام می‌شود که از کلاس پایه WebPart به ارث می‌رسد. البته با انجام این کار، از بخشی از توانایی‌ها و عملکردهای کلاس WebPart محروم ‌می‌شوید.

CatalogtueZone: عبارت است از فهرست یا کاتالوگی که طراح می‌تواند از میان گزینه‌های آن موارد مورد نظر خود را انتخاب کرد. این کنترل سرور تعداد کنترل‌های CatalogueParts را در خود نگه می‌دارد و این کنترل‌ها نیز به نوبه خود WebPartهایی را نگه‌ می‌دارد که تا کنون به سایت افزوده شده‌اند و می‌توان آن‌ها را به صفحات وب مختلف موجود در سایت افزود. کاربر می‌تواند WebPartها را از کاتالوگ بردارد و به چندینWebPartZone موجود در یک صفحه بیفزاید.

سه نوع CatalogueParts وجود دارد که عبارتند از: DeclarativeCatalogPart ،PageCatalogPart وImportCatalogPart.

EditorZone: ناحیه‌ای از صفحه است که از کاربر نهایی می‌خواهد WebPart را بنابر نیاز خود سفارشی کند. همچنین می‌توان یک WebPart را در حالت اشتراکی (Share Mode) سفارشی کرد. در این صورت یک مدیر می‌تواند WebPart را سفارشی کند و سایر کاربران می‌توانند آن را مشاهده کنند، ولی مجاز به سفارشی کردن آن نیستند.

ConnectionZone: این ناحیه صفحه از کاربر نهایی می‌خواهد با نحوه تبادل اطلاعات بین WebPartهای مختلف قرار گرفته در یک صفحه را تعیین کند. برای مثال، می‌توانید یک خواننده اطلاعات نوع RSS را بسازید. در این حالت یکی از WebPartها، OPMLهای مربوط به کاربران را نگهداری می‌کند و دیگری RSS را متناسب با سلیقه مشترکان تغییر می‌دهد.

ارتباط بین این‌دو WebPart به این صورت است که WebPart از نوع OPML که ردیف‌های URL مربوط به RSS را تهیه می‌کند و سپسWebPart خواننده RSS آن ردیف را می‌گیرد، مورد استفاده قرار می‌دهد و آن را به شکلی مناسب نمایش می‌دهد.

از آنجا که این مثال یک برنامه ساده از نوع ASP.NET2.0 است، می‌توانید این WebPart را به همراه الگوهای Atlas نیز به کار ببرید (الگوهایی در محیط NET. برای پیاده‌سازی آسان فناوری ای‌جکس).

از جمله این الگوها می‌توان به UpdatePanel یا کنترل ثانویه‌ای مانند telerik AJAX Panel اشاره کرد. حتی می‌توانید PostBackها را باCallBack جایگزین کنید و برای این کار تقریباً نیاز به نوشتن هیچ‌گونه کدی وجود ندارد (در PostBack با اعمال هر گونه رخدادی توسط کاربر و ایجاد هرگونه تغییری روی کنترل‌ها باید کل صفحه وب نوسازی شود، ولی در CallBack این تغییرات توسط کدهای جاوا اسکریپت مدیریت می‌شود و به این ترتیب ارسال اطلاعات به سرور و دریافت داده، بدون نیاز به نوسازی کل صفحه انجام می‌شود).

 

 

تولید یک WebPart ساده‌

 

 

حال که با عناصر اصلی طراحی صفحات وب در ASP.NET2.0 آشنا شدید، زمان آن فرا رسیده است تا شروع به کار کنید و اولین WebPart خود را ایجاد کنید.

می‌توانید هر کنترلی را با استفاده از کلاس Generic WebPart به این نوع تبدیل کنید، اما چنین WebPartی یک مورد واقعی نخواهد بود؛ زیرا یکWebPart واقعی باید از کلاس پایه System.Web.UI.WebParts.WebPart مشتق شده باشد. کد یک WebPart ساده که فقط قرار است یک خط کد را نمایش دهد، به صورت زیر است:

public class SimpleWebPart : WebPart
}
;”!private string displayText = “Hello World
[(WebBrowsable (true),(Personalizable (true]
public string DisplayText
}
{;get{return displayText
{;set{displayText = value
{
(protected override void Render(System.Web.UI.HtmlTextWriter writer
}
(writer.Write (displayText
{

 

فعلاً در مورد ویژگی‌های قابلیت جست‌وجو در وب و امکان سفارشی‌سازی صفحات خود نگران نباشید. نحوه ایجاد این امکانات به زودی بررسی می‌شود. فعلاً کافی است بدانید که این یک کنترل ساده سرور است که جعبه نمایش‌متن (DisplayText) را تنظیم می‌کند. سؤال دومی هم که باید حتماً بررسی شود، این است: چگونه می‌توانم از این WebPart استفاده کنم؟


نحوه استفاده از یک WebPart


یک سایت ساده را با استفاده از ASP.NET2.0 ایجاد کنید. سپس به کلاس کتابخانه‌ای که WebPart تولید شده توسط شما در آن قرار دارد، یک رابط ارجاع (Reference) اضافه کنید. مراحل زیر را روی کد مربوط به فایل تولید شده با نام Default.aspx

عالم محضر خداست درمحضر خدا گناه نکنید حضرت امام (ره)

شنبه 3 دی 1390  4:15 PM
تشکرات از این پست
دسترسی سریع به انجمن ها