فصل اول

گام نخست در آشنائی با ASP.NET

از دیدگاه یک توسعه گر دلفی ASP.Net چیست؟

چگونه باید یک سرور وب Cassini را پیکر بندی کرد؟

 

ASP.NET ؟ ASP.Net !!!

اگر بخواهیم خیلی سریع شروع کنیم باید بگوئیم که ASP.NET در واقع محیط برنامه نویسی .NET بوده که در آن برنامه های کاربردی اینترنتی تهیه می شود که محصول نهائی آن کدهای HTML خواهد بود.

از دلفی 8 به بعد محیط های طراحی آن کاملا .NET شده است. در صورتیکه با ASP قدیمی آشنا باشید باید شما را ناامید کرد و گفت که ASP.NET هیچ شباهتی با asp   قدیمی ندارد. اما از آنجائیکه فرض بر انست که شما برنامه نویس دلفی هستید باید با RAD و برنامه نویسی شئی گرا آشنا بوده و از خواص و رویداد ها آگاهی داشته و بنابر این محیط جدید را نیز بسیار آشنا و قدرتمند برای ساخت برنامه های وب  خواهید یافت. بعضی نمونه های قدرتمند نرم افزاری با دلفی asp.net  قبلا تهیه شده که شما می توانید Web Portal یا Web Store آنرا که هر دو در محیط AspxDelphi.net طراحی شده اند را مشاهد کنید.

Asp.net مشتمل بر تکنولوژی های مختلفی مانند وب فرم ها ( یعنی فرمهای اسنتاندار ویندوز 32 بیتی ) ، سرویسهای وب کنترل های وب سرور( یعنی FCL برای وب )  ، کنترلهای HTML  و کنترلهای ارزشیابی می باشد. زمانیکه تمام این تکنولوژی ها در کنار یکدیگر به خدمت گرفته می شوند به طراح امکان طراحی یک برنامه کاربردی قدرتمند ، قابل نگهداری ، مقیاس پذیر را بوجود آورد.

اگر بخواهیم به ساده ترین عبارتها ASP.NET را تشریح کنیم چنین خواهیم نوشت:

- وب فرم ها: روح و قلب یک برنامه کاربردی ASP.NET را وب فرمها شکل می دهند. معمولا یک وب فرم شامل کدهای HTML و کنترلهای ASP.NET  سرور می باشد این کنترلها در واقع به شما اجازه می دهند تا با استفاده از کامپوننت های طراحی شده توسط سایر کاربران و یا متعلق به خود سیستم ،  وب فرم خود را به سادگی تهیه کنید تا کار کد نویسی فرایندی ساده باشد. صفحات وب ASP.NET فایلهای متنی با پسوند aspx   هستند. زمانیکه کاربر از طریق وب به این فرمها دسترسی پیدا می کند ، ASP.NET اقدام به تولید یک فایل DLL کامپایل شده می کند که بطور پویا خروجی کدهای HTML را برای مرورگر تولید می کند.

- کنترلهای وب سرور:  همان بلوکهای ساختاری وب فرم هستند.   کنترلهای سرور درون فایل aspx و با استفاده از تگ های خاص HTML که هرکدام دارای یک صفت runat="server"   نیز هستند تعریف می شوند. کنترلهای وب بسیار شبیه کنترلهای VCL دلفی هستند و تنها تفاوت میان آین دو آنست که کنترلهای وب خروجی تفسیر شده به زبان HTML تولید می کنند. کنترلهای وب نیز دارای صفت ، رویداد و متد بوده  و رابطهای گوناگون را بکار گرفته و امکان توسعه دارند.

- کنترلهای HTML و کنترلهای HTML  سرور: همان بلوکهای استاندارد HTML هستند.  اجزاء HTML بکار رفته در  ASP.NET شباهت بسیار زیادی با تعداد فراوانی از اجزاء متعارف HTML دارند کهدر صفحت عادی وب  استفاده می شوند ( مانند table, span , div , input و غیره ) . بطور متعارف  اجزاء HTML  در روی یک صفحه وب در اختیار سرور قرار داده نمی شود و زمانیکه وارد یک وب فرم شدند توسط سرور تفسیر می شوند. با تبدیل اجزاء HTML به کنترلهای HTML سرور ( اضافه کردن دستور  runat = "server"   ) شما آنها را به کدهای سمت سرور تبدیل می کنید.

کنترلهای کاربر: مکانیزمی برای ایجاد کد های " صفحه مانند " با قابلیت استفاده مجدد را فراهم میکنند. کنترلهای کاربر درست مانند وب فرمها بوده با این تفاوت که دارای تگهای شروع و خاتمه صفحه بوده و فایلهای متنی با پسوند ascx   هستند. کنترل های کاربری را درست مانند Tform هار دلفی ویندوز 32 تصور کنید ( فعلا)

- کنترل های ارزش یابی:  توابع ارزیابی سمت کاربر ( بدون نیاز به عبور از چرخه رفت و برگشت به سرور) هستند. کنترلهای ارزیابی به شما امکان سنجش اطلعاتی که توسط کاربر به کنترلهای صفحه وب وارد شده  را می دهد.

- ADO.NET: بیایئ گوئیم که  ADO.NET در واقع نوعی منبع اطلاعاتی پشت صحنه برای همه مدلهای برنامه نویسی .NET شامل وب فرم ها ، سرویس های وب ، و فرمهای ویندوز می باشد.

سرویسهای وب : کامپوننتهای کاربردئی هستند که بر پایه XML بنا شده اند. یک سرویس وب XML  اجزاء کارآئی ، مانند منطق برنامه ، رافراهم کرده و توسط هر تعداد از سیستمهای توزیع شده که از قواعد پیام رسانی XML تبعیت می کنند  قابل دسترسی می باشد.

 

برای اطلاعت بیشت راجع به asp.net میتوانید از منابع متعددی که در این زمینه در روی اینترنت فراهم امده استفاده کنید.

  

ما به یک سرور وب نیاز داریم. از Cassini  و یا Ms IIs کدام یک بهتر است استفاده کنم؟

ASP.NET محیط طراحی برنامه وب سمت سرویس دهنده می باشد بدان معنی که شما برای ساخت و عیب یابی برنامه های خود به یک وب سرور نیاز خواهید داشت. بطور پیش فرش دلفی MsIIS را بعنوان سکوی طراحی/ اجرا /  و عیب یابی تنظیم  میکند. البته اگر شما بر روی سیستم خود IIS را ندارید میتوانید از برنامه Cassini که همراه سی دی دلفی توزیع می شود استفاده کنید. برنامه سرور Cassini  در واقع یک وب سرور نمونه بوده و که به زبان C#.Net نوشته شده و صفحات Asp.Net  را با استفاده از توابع میزبانی API در ASP.NET به نمایش در می آورد.

همچنان که گفته شد Cassini به همراه دلفی توزیع شده و کدهای مربوط به آن را میتوان در مسیری مانند این یافت:

"C:\Program Files\Borland\BDS\2.0\Demos\Cassini"

برای نصب Cassini باید فایل Build.bat را که در پوشه cassini قرار گرفته را اجرا کنید. در صوتیکه کار نصب را به همین صورت تمام کنید و برنامه را اجرا کنید با مشکل پدا نشدن یا شناخته نشدن CSC مواجه خواهید شد. دلیل ان هم قرار نداشتن مسیر 2 برنامه  .NET framework و .NET SDK باید در مسیر شناخته شده سیستم عامل باشد تا بتوان به 2 برنامه csc و gacutil.exe دسترسی داشته باشد.

راه حل آنست که مسیرهای 

"C:\Windows\Microsoft.NET\Framework\v1.1.4322"

و

"C:\Program Files\Microsoft.NET\SDK\v1.1\bin"

را به متغییر های مسیر های سیستم اضافه کنید یا اینکه محتوای build.bat را تغییر دهید.

 

بعد از آنکه توانستید برنامه را اجرا کنید آنگاه می توانید Cassini را در پروژه بعنوان وب سرور معرفی و استفاده کند. راجع به این موضوع در بخشهای بعدی صحبت خواهیم کرد.

با فراهم آمدن وب سرور و دلفی بر روی سیستم > ما امکان آنرا پیدا می کنیم که به ساخت برنامه های خود بپردازیم.

در این قسمت ما از برنامه BDSWebExample ASP.NET  که به همراه نصب دلفی و در مسیر

"C:\Program Files\Borland\BDS\2.0\Demos\DB\ASPPortal\BDSWebExample"

نصب شده است استفاده خواهیم کرد.

شما میتوانید با مراجعه با آدرس اینترنتی زیر نسخه جدید این برنامه را دانلود کرده و در مسیر "C:\Inetpub\wwwroot\BDSWebExample" ذخیره کنید .

مثال BDSWebExample ASP.NET   نشان دهنده روش ساخت یک مرکز کد بوده که در آن صفحات شناسائی ورود کاربر ، ثبت محصولات ، مرور آنها ، آمار مشاهده صفحات ، سیستم بنر های تبلیغاتی و غیره وجود دارد. شما در این برنامه نمونه کدهای کاربردی و نکات ظریف زیادی را میتوانید پیدا کنید مانند : چگونگی شناسائی بر روی وب فرم ها ، کنترلهای مرتبط با بانکهای اطلاعاتی ، کنترلهای ساخت کاربر ، تهیه کنترلهای وب ( DataGrid خاص به اضافه نمونه های خالی پویا ، نمونه های ورود اطلاعات ،  لیستهای اطلاعاتی ) ، چگونگی بکارگیری کدهای ارزیابی کننده ، اسکریپتهای جاوا و غیره...