.wysiwyg { BACKGROUND: #f5f5ff; FONT: 10pt tahoma,tahoma,tahoma; COLOR: #000000 } P { MARGIN: 0px } .inlineimg { VERTICAL-ALIGN: middle } Wizardها برنامه‌هایی کاربردی هستند که کاربران را در انجام یک سری دستورات یاری می‌دهند. به طور کلی دستوراتی که توسط Wizardها انجام می‌شوند به یک ترتیب خاص اعمال نیاز دارند. نکته مهم در مورد Wizardها این است که از تکرار و یکنواختی جلوگیری کرده و یک دستور چند مرحله‌ای را به یک ترتیب خطی از هر آنچه برای هدف مورد نظر است در می‌آورند.
به تجربه احتمالا می‌دانید مایکروسافت Wizardها را به عنوان ترتیبی از کادرهای محاوره‌ای با شمایل مناسب همراه با برخی کلمات که دستورات را نشان می‌دهند و کادرهای ورودی با انتخاب‌های چندگانه ساده پیاده‌سازی کرده است. این Wizardها در واقع نمایش خارجی بخشهای پنهانی هستند که ازآنها استفاده می‌کنند. ایجاد Wizardها در Visual Basic .NET برای VS.NET ساده تر از ایجاد Add-Inها برای برنامه‌های کاربردی است.
Visual Studio .NET به شما این امکان را می‌دهد که برای بعضی اعمال و کارها Wizardهایی را نوشته و آنها را در محیط این برنامه به اجرا درآورید. در این مقاله با نحوه نوشتن یک Wizard که توسط منوی File | Add New Item به اجرا در می‌آید، آشنا خواهید شد.
گام‌های اساسی برای ایجاد یک Wizard برای VS.NET مطابق زیر است:

  • ایجاد یک پروژه Class Library.
  • ایجاد یک Refrence به کتابخانه EvnDTE.
  • پیاده‌سازی Interfaceخاصی به نام IDTwizard و متدی که با آن Interface تعریف شده است یعنی Excute. وقتی Wizard احضار شود، این متد فراخوانی خواهد شد.
  • پیاده‌سازی رفتار Wizard: این گام معمولا” یک ترتیب از کادرهای محاوره‌ای و یک نتیجه پایانی را شامل می‌شود.
  • Compile و ثبت نام Wizard با استفاده از نرم‌افزار کمکی Regasm.exe.
  • ایجاد یک فایل متنی با نامی مشابه نام Wizard و پسوند vsz. برای مثال فایل Mywizard.dll احتیاج به یک فایل متنی با نام Mywizard.vsz دارد. در ادامه درباره این فایل متنی بیشتر توضیح خواهیم داد.
  • کپی کردن فایل به شاخه مخصوص آن. این شاخه به نحوه‌ای که شما Wizart را احضار می‌کنید، بستگی دارد. برای مثال اگر شما می‌خواهید Wizard شما زمانی که کاربر فایلی جدیدی را برای اضافه کردن به پروژه انتخاب می‌کند اجرا شود، یک Item جدید در پروژه VB ایجاد کرده و فایل با پسوند vsz. را به شاخه‌ای که شامل عناصر AddNewItem است کپی کنید. مثلا”: C:\ProgramFiles\Microsft Visual Studio .NET\vb7\VBProjectItems\LocalProjectItems\

اساس کار نوشتن یک Wizart، ایجاد یک کلاس کتابخانه‌ای است که IDTWizard را پیاده‌سازی می‌کند. قطعه کد زیر بیانگر Wizard خاصی است که یک Message Box را نشان می‌دهد:
کد:
Imports EnvDTE  Public Class Class1     Implements IDTWizard  Private Sub Excute(ByVal Application As Object, _     ByVal hwndOwner As Integer, _     ByRef contextParams() As Object, _     ByRef customParams() As Object, _     ByRef RetVal As wizardResult) Implements EnvDTE.IDTWizard.Excute          MsgBox("برنا66")         RetVal = wizardResult.wizardResultCancel      End Sub End Class
متد Excute پارامترهای متفاوتی را می‌گیرد. Application ارجای به محیطی است که Wizard در آن در حال اجراست. hwnOwner کنترل کننده (Handle) برنامه کاربردی والد است. ContextParams شامل اطلاعاتی در مورد محیطی است که Wizard در آن اجرا شده است. Custom Params مقادیری هستند که شما می‌توانید از طریق فایل vsz. با فرم نگارشی Params=Value به Wizard ارسال کنید. RetVal نیز یک مقدار شمارشی است که نشان می‌دهد Wizard موفق شده یا شکست خورده است.
ایجاد فایل VSZ.:
یک Wizard فایلی را با نامی مشابه با نام اعلام شده آن و پسوند vsz. نیاز دارد. این فایل یک فایل متنی ساده شبیه به یک فایل ini. است که اطلاعات لازم را به برنامه کاربردی ارسال می کند. فرمت پایه فایل vsz. یک فایل متنی با دو قسمت و نام و جفت‌های مقادیر است. برای Wizard نمونه ما تمام چیزی که نیاز است یک فایل متنی با محتوای زیر است:
کد:
VSWIZARD 7.0 Wizard=Wizard1.Class1 Param=<Nothing>
اگر شما نیاز به ارسال پارامتری دارید آن را به فرم Param=Value همانگونه که در مثال مشخص شده است، ارسال کنید. پس از ایجاد این فایل آن را به شاخه‌ای که قبلا” ذکر شد کپی کنید. برای مثال اگر آن را به شاخه زیر کپی کنید، Wizard شما از طریق منوی File | Add New Item در دسترس خواهد بود:
C:\ProgramFiles\Microsft Visual Studio .NET\vb7\VBProjectItems\LocalProjectItems\
Register کردن اسمبلی Wizard:
برای Register کردن اسمبلی یک Wizard آدرس کامل فایل آنرا در برنامه regasm.exe وارد کنید و مطمئن شوید که از سوئیچ codebase/ استفاده کرده‌اید. مثال زیر Wizard با نام mywizard.dll را که در شاخه فعلی موجود است Register می‌کند:
C:\WINNT\Microsoft .NET\Framework\v1.0.3215\regasm.exe mywizard.dll /codebase
برای انجام عکس این عمل (Unregister) از سوئیچ unregister/ استفاده کنید:
C:\WINNT\Microsoft .NET\Framework\v1.0.3215\regasm.exe mywizard.dll /unregister
تست کردن Wizard:
Wizard ما هم اکنون قابل استفاده است. برای تست آن کافیست از منوی File | Add New Item، مورد جدید اضافه شده را انتخاب کنید.
VN:F [1.8.3_1051]