زبان برنامه نویسی ASP.NET
چکیده:
نرمافزار Visual Studio ، نرمافزاری توسعه یافته برای برنامه نویسان کامپیوتر است که توسط شرکت نرمافزاری MicroSoft تولید شده است . تمرکز اصلی این نرمافزار از اولین نسخههای آن تا کنون بر روی خصوصیت IDE بودن آن است که به برنامه نویس اجازه میدهد تا برنامههای کاربردی مستقل، وبگاه، برنامههای کاربردی وب و یا سرویسهای وب را که بر روی تعدادی از PlatFormهای پشتیبانی شده توسط Microsoft .NET Framework البته برای تمام نسخههای بعد از ویژوال استودیو 6 . همچنین Platform هایی مانند Microsoft Windows servers and workstations, PocketPC Smartphones و World Wide Web browsers اجرا میشوند را براحتی ایجاد نماید از جمله قابلیت های اضافه شده که در آخرین ویرایش ارائه شده است می توان به Silverlight اشاره کرد که یک Web Application framework بسیار پیشرفته جهت توسعه نرم افزارهای کاربردی تحت وب می باشد.
مقدمه:
Visual Studio یک مجموعه از برنامههایی است که ارتباط بسیار نزدیک با هم دارند که مایکروسافت آن را به توسعه دهندگان و برنامه نویسان برنامههای کاربردی اهدا نمود تا آنها را وادار نماید در محیطی توسعه یافته بر روی پلت فرمهای ویندوز و دات نت به ساخت برنامههای خود بپردازند . Visual Studio میتواند برای نوشتن برنامههای کنسولی، ویندوزی، سرویسهای ویندوز، برنامههای کاربردی موبایل، برنامههای کاربردی ASP.NET و سرویسهای وب ASP.NET بنا به انتخاب شما همراه با زبانهایی مانند #C++, C#, VB.NET, J استفاده شود . با Visual Studio واقعا چه کارهایی میتوان انجام داد ؟ در زیر تعدادی از کاربردهایی را که برای تولید آنها میتوان از Visual Studio استفاده نمود معرفی گردیده اند .
Console applications :
این کاربرد برای اجرای خطوط دستور البته بدون محیط گرافیکی استفاده میشود که از این کاربرد برای برخی از ابزارهای کوچک یا برای اجرا شدن کدها توسط دیگر کاربردها استفاده میشود .این دستور ها در خط فرمان اجرا میشود.به عنوان مثال خط فرمان مایکروسافت داس است.
:Windows forms applications برای برنامههای کاربردی ویندوزی که با استفاده از NET framework. نوشته میشوند .
:Windows services سرویسها برنامههای کاربردی هستند که در پس زمینه ویندوز اجرا میشوند .
:ASP.NET applications : ASP.NET یک تکنولوژی قدرتمند که برای طراحی و ساخت صفحات وب پویا استفاده میشود .
ASP.NET web services : ASP.NET مدل سرویسهای وب را بطور کامل فراهم نموده تا شما براحتی و با سرعت سرویسهای وب را تولید نمایید .
Windows Mobile applications :که میتواند بر روی ابزارهایی که شامل framework هستند مانند Pocket PCها و همچنین cell phones هایی که پلت فرم Microsoft Smartphone بر روی آنها اجرا میشود، اجرا گردد .
MFC/ATL/Win32 applications :شما همچنان میتوانید برنامههای سنتی MFC ، ATL یا برنامههای Win32را با استفاده از ++C ایجاد نمایید . این برنامههای برای اجرا به NET framework. نیاز ندارند اما نمیتوانند از مزایای NET framework. نیز بهرهای ببرند .
Visual Studio add-ins :شما میتوانید از خود ویژوال استودیو برای ساخت توابعی جدید و قابل اضافه شدن به خود ویژوال استودیو استفاده نمایید .
کاربردهای دیگر : ویژوال استودیو همچنین شامل پروژههایی برای توسعه برنامههای کاربردی شما، کار با databases ساخت گزارشها و ... میباشد .
مقایسه ASP.NET با ASP قدیمی
تلاش میکند تحول توسعه دهندهها را ازتوسعه کاربرد ویندوز تا توسعه WEB توسط ارائه قابلیت ساخت صفحات مرکب از کنترلها همانند یک رابط کاربری ویندوزساده نماید. یک کنترل WEB ازقبیل یک Button یا یک Label دربسیاری ازسبکها همانند همتای ویندوزخودش عمل میکند. کد میتواند خصوصیات وپاسخ خود را به رویدادهایش ارجاع دهد. کنترلها معلومات«فوت و فن» ترجمه خود را دارند: درحالی که کنترلهای ویندوزخودشان را برروی پرده ترسیم میکنند، کنترلهای WEB قطعاتی ازHTML وجاوااسکریپت را تولید میکنند که بخشی ازفرم صفحه حاصل را به مرورگرکاربرنهایی میفرستد.
ASP.NET برنامه نویس را به توسعه کاربردها با استفاده ازنمونه رابط کاربرگرافیکی رویدادی(مدل event-driven GUI) وسریعترازمحیطهای سندی مرسوم درWEB مانند ASP و PHP تشویق میکند. چارچوب کاری تلاش میکند فناوریهای موجود از قبیل JAVASCRIPT را با مؤلفههای درونی همانند حالت دید برای به دست آوردن حالت پایدار«درخواست درونی» درمحیط WEB نا متمرکزاصلی ترکیب کند. سایرتفاوتهای مقایسهای ASP قدیمی هستند:
سایرتفاوتهای مقایسهای ASP قدیمی هستند:
· کد تألیف شده سبب اجرای سریع تر برنامههایی همراه با به دام انداختن خطاهای زمان طراحی بیشتر درحین توسعه میشود.
· عمدتاً با استفاده از مستثنی کردن بهوسیلهٔ قالب Try-Catch مدیریت خطاهای زمان اجرا را بهبود میبخشد.
· شباهت به کاربردهای ویندوزی ازقبیل کنترلها ورویدادها، که سبب ایجاد امکان توسعه رابطهای کاربردی توانمند میشود که سابقاً تنها درمیزکاریافت میشد.
· مجموعه وسیعی ازکنترلها و کابخانههای کلاس اجازهٔ ساخت سریعتر برنامههای را میدهد، بعلاوه کنترلهای تعریف شده توسط کاربر همچون منوها، اجازه میدهد که معمولاً از قالبها استفاده شود. طراحی این کنترلها روی صفحه آسانتراست زیرا اغلب آنها میتوانند دربیشترویرایشگرها به صورت بصری عمل کنند.
· ASP.NET دارای قابلیت استفاده هم زمان از چند زبان شناسایی شده در VB.NETمی باشد که اجازه میدهد تا صفحات WEB نوشته شوند با VB.NET و C# و J# و غیره.
· توانایی Cache شدن تمام صفحه یا فقط بخشی ازآن برای بهبود نمایش.
· توانایی استفاده ازمدل کد پشتیبان برای جداسازی منطق کار از ارائه.
· اگرهرکاربرASP.NET درحافظه نفوذ کند، مجری ASP.NET میزبان دامنهٔ برنامهٔ دارای خطا را از بین میبرد و برنامه را مجدداً راه اندازی میکند.
· حالت جلسه درASP.NET میتواند دریک پایگاه داده SQL Server یا دریک پردازش جداگانه در حال اجرا برروی دستگاه ساده مانند سرویس دهنده WEB یا یک ماشین متفاوت ذخیره میشود. زمانیکه سرویس دهندهWEB مجدداً راه اندازی میشود یا پردازش کننده ASP.NET بازیافت میشود، مقادیر راههای جلسه از بین نمیرود.
نسخههای قبلی ASP.NEبه دلیل مغایرت با استانداردهای تاییدی مورد انتقاد بودند. HTML و جاوااسکریپتهای تولید شده به مرورگرسرویس گیرنده فرستاده میشدند که همیشه در برابر استانداردهای W3C/ECMA تایید شده نبودند. بعلاوه گاهی اوقات چارچوب کاری مرورگر خصایص را نا درست تشخیص میدهد و یا مرورگرهای WEB، به غیر از IE ساخته شده توسط مایکروسافت مانند نسخههای قبلی، HTML/JAVASCRIPT بازگردانی شده به این سرویس گیرندهها را با بعضی از خصایص از بین رفته و یا بعضی اوقات شکسته و یا ناقص شناسایی میکنند.
کنترلهای سرویس دهنده WEB: اینها کنترلهای معرفی شده توسط ASP.net برای فراهم سازی رابط کاربری برای وب فرم هستند. این کنترلها، کنترلها ی مدیریت شده هستند و کنترلهای WYSIWYG هستند.
معایب ASP
صفحات سرویس دهنده فعال قدیمی (ASP) وASP.NET میتوانند درکنار یکدیگر در یک برنامه WEB اجرا شوند. این رویکرد به توسعه دهنده اجازه میدهد برنامهها را به آهستگی جا به جا کند بجای آنکه همه آنها را یک باره تغییرحالت دهد. درIIS وقبل ازآن، صفحاتی که با نسخههای متفاوتی ازچارچوب کاری ASP نوشته میشوند نمیتوانستند حالت جلسه را بدون استفاده ازکتابخانههای مشخص ثابت تقسیم کند. این ایراد درASP.NET وجود ندارد و برنامههای ASP درکنار یکدیگر بر روی IIS ۷ اجرا میشود. در IIS ۷، نمونهها میتوانند درخطوط مجتمع اجرا شوند که اجازه میدهد تا نمونهها درهرزبانی نوشته شود، تا برای هر درخواستی قابل نمایش گردد.
دربرخی موارد در زمان اجرای ASP.NET پردازش عامل در حلقه میافتد. (به طور مثال اگرآن بدون توجه «بی احتیاط» بیاید یا اگرهرکاربرد خارج از کنترل اجرا شود، سبب میشود که پردازش عامل بیش از ۶۰ درصد از رم موجود را استفاده کند) آن همچنین میتواند در شرایطی که تعداد معینی ازدرخواستها ارسال میشود، اتفاق بیفتد برای مثال در یک سیکل زمانی. دراین حالات اگربرنامه برای استفاده از جلسه داخلی تنظیم شده باشد، ممکن است کاربران حالت جلسه را ازدست بدهند «گم کنند». اگربرنامه به حالت جلسه برای ذخیره کردن اطلاعات اعتبار سنجی وابسته باشد، و برنامه با استفاده ازجلسات درون پردازشی پیکربندی شود، ممکن است در صورتی که پردازش درحلقه بیفتد ارتباط کاربر قطع شود.
نشانههایی که ASP.NET تولید میکند توسط W3C تایید شدهاند. اما این نکته حائز اهمبت است که ایا این افزایش قابل دسترسی است؟ یکی از این مزایا از یک لحاظ صفحات اکساچتیامال + نمایش CSS است. کنترلهای متعدد از قبیل کنترلهای ورود و کنترلهای چند مرحلهای، به صورت پیش فرض از جداول HTML استفاده میکنند. مایکروسافت هم اکنون به سمت طرقی میرود که این مشکل را به وسیله انتشار کنترلهای سازگار کنندهٔ ASP.NET 2.۰ CSS حل کند. به طور مثال افزودنیهای رایگان که نشانههایی مطابق با اکساچتیامال+CSS در دسترس تولید میکنند. به هر حال برخی از کنترلها هنوز به جاوااسکریپت استناد میکنند.
ساختار ASP.NET
صفحات ASP.NET به طور کلی دارای چندين بخش اصلی ميباشند. اين بخش ها را ميتوان در هفت مورد بررسی کرد: ۱- دايرکتيوها ۲- بلوکهای اعلان کد ۳- کنترلهای ASP.NET ۴- بلوکهای پردازش کد ۵- توضيحات طرف سرور ۶- دايرکتيو Include طرف سرور ۷- متن ساده و تگهای HTML ۱- دايرکتيوها دايرکتيوها تنظيمات خاصی را برای صفحات aspx و ascx تنظيم ميکنند که نحوه کامپايل شدن صفحه را مشخص ميکند. دايرکتيوها با بلوک نشان داده ميشوند و در هرکجای صفحه قابل تعريف می باشند (معمولاً در ابتدای صفحه آورده ميشوند در Framework دات نت، هشت نوع دايرکتيو وجود دارد که دو نوع Page و Import از بقيه پرکاربردتر هستند. دايرکتيو Page فقط در صفحات aspx قابل استفاده است و برخی خصوصيات صفحه نظير زبان برنامه نويسی، نوع محتوا، نوع کدپيج، توضيحات مختصر در مورد صفحه، فعال بودن يا نبودن وضعيت ظاهر و... را مشخص ميکند. مثلاً خط زير به کامپايلر ASP.NET ميگويد که زبان برنامه نويسی صفحه VB و نوع محتوا، متن/ايکس ام ال است:
دو خصوصيت ديگر Page، قابليت ردگيری و قابليت نمايش پيام های خطای زمان اجراست که برای اشکال زدايی از برنامه بکار می آيند. اين دو خصوصيت بدين صورت فعال ميشوند:
دايرکتيو Import، برای وارد کردن يک فضانام به صفحه بکار ميرود. به اين ترتيب کليه کلاسها و اينترفيس های آن فضانام در صفحه قابل استفاده ميشود. اين فضانام ميتواند جزيی از Framework دات نت يا يک فضانام تعريف شده توسط کاربر باشد. صورت کلی اين دايرکتيو اينگونه است:
برای اطلاعات بيشتر در مورد دايرکتيوها ميتوانيد به MSDN .NET Framework General Reference و به قسمت Directive Syntax مراجعه کنيد. ۲- بلوکهای اعلان کد اين بلوکها برای تعريف متغيرها و متدها، زيربرنامه ها و توابع و به طور کلی برای تعريف منطق يک صفحه ASP.NET بکار ميروند. شکل کلی يک بلوک اعلان کد چنين است:
Code goes here
تمامی کدهای يک صفحه ASP.NET در داخل چنين بلوکی قابل تعريف اند و اگر آنها را خارج اين بلوک تعريف کنيد، با پيغام خطا مواجه ميشويد. خصوصيت دلخواه Language، زبان برنامه نويسی ِ کدِ داخل بلوک را تعيين ميکند. دقت کنيد که اگر اين خصوصيت تعيين نشود، زبان پيش فرض صفحه که توسط دايرکتيو Page مشخص شده، به عنوان زبان برنامه نويسی صفحه در نظر گرفته ميشود. در ضمن زبان مشخص شده در تگ Script با زبان مشخص شده در دايرکتيو Page بايد يکسان باشند. در صورتيکه هيچ زبانی انتخاب نشده باشد، زبان پيش فرض، ويژوال بيسيک است
با استفاده از خصوصيت Src، ميتوان يک فايل بيرونی را که حاوی محتويات بلوک کد است، به صفحه پيوند زد. به اين ترتيب کدهای برنامه از آن فايل خوانده ميشوند و محتوياتِ ديگر بلوک اعلان کد، ناديده گرفته ميشوند. به مثالی در اين زمينه توجه کنيد.
Sub EnterBtn_Click(Src As Object, e As EventArgs) Message.Text = "Hi " & Name.Text & ", welcome to ASP.NET!" End Sub Enter your name:
3-کنترلهای ASP.NET
کنترلهای ASP.NET را ميتوان در کنار محتوای HTML بکار برد. تنها الزام در اين مورد، قرار دادن آنها بين دو تگ و است. البته در مورد بعضی تگها نظير و ميتوان اين الزام را ناديده گرفت. يک محدوديت در اين زمينه اين است که فقط از يک تگ ميتوان استفاده نمود. در واقع در صفحات ASP.NET امکان گروه بندی به چند فرم وجود ندارد.
۴- بلوکهای پردازش کد
بلوکهای پردازش کد برای اجرای کد موجود در محتوای متنی يا HTML يک صفحه ASP.NET بکار ميروند. دو نوع بلوک پردازش کد وجود دارد که عبارت اند از: کد درون خطی و عبارتهای درون خطی.
کد درون خطی، دستور يا يکسری از دستورات را اجرا ميکند. اين کد با تگ های و %> مشخص ميشود. عبارت درون خطی، مقدار يک متغير يا متد را نشان ميدهد. عبارتهای درون خطی با کاراکترهای و =%> مشخص ميشوند. مثال زير کاربرد اين دو نوع کد را نشان ميدهد:
dim strMessage as string
sub page_load strMessage="Hello!" end sub The Value Of strMessage is
The Value Of strMessage is
در مثال بالا توجه شما را به دامنه تعريف متغيرهای اعلان شده جلب ميکنم.
۵- توضيحات طرف سرور
ممکن است بخواهيم مانند تمام زبان های برنامه نويسی ديگر، مابين کدهای برنامه نويسی از توضيحاتی جهت مفهوم تر شدن کد، استفاده کنيم. در ASP.NET اين توضيحات را در بين تگهای و --%> قرار ميدهيم. در اينصورت محتوای بين اين تگها، چه کد ASP.NET باشد و چه متن ساده، مورد پردازش قرار نخواهد گرفت. يک نکته اينکه نميتوان چند توضيح طرف سرور را به صورت تودرتو استفاده کرد.
۶- دايرکتيو Include طرف سرور
با استفاده از اين دايرکتيو ميتوان محتويات يک فايل مشخص شده را در هر کجای صفحه ASP.NET قرار داد. شکل کلی اين دايرکتيو اينگونه است
:
ميتوان هم از خصوصيت File و هم از Virtual برای دادن مسير فايل استفاده کرد. اگر از File استفاده کنيم، فايلی که ميخواهيم شامل کنيم، نبايد در دايرکتوری بالاتر از دايرکتوری فايلی که دستور Include در آن است باشد. اما در Virtual، مسير فايل را ميتوان هر کجا که هست، به صورت کامل و نسبی وارد کرد. مثلاً اگر فايل ما در دايرکتوری به اسم MyDir که يکی از زير شاحه های wwwroot است، باشد؛ بايد دستور زير را بکار برد:
دايرکتيو Include قبل از هر کدی در صفحه اجرا ميشود، بنابراين برای تعيين مسير فايلی که ميخواهيم شامل کنيم نبايد از متغيرها استفاده کنيم.
7- متن ساده و تگهای HTML
آخرين ساختاری که ميتوان در يک صفحه ASP.NET بکار برد، محتوای HTML است. قسمتهای ثابت صفحه، با همان تگهای معمولی HTML و متن ساده ساخته ميشود. در واقع محتوای HTML صفحه ASP.NET همراه با بقيه کدها کامپايل ميشود. محتوای HTML ای با کلاس LiteralControl عرضه ميشود. با خصوصيت Text اين کنترل است که ميتوان محتوای HTML صفحه ASP.NET خود را عرضه کرد.
ساختار حلقه ها :
اگر برنامه نویس بخواهد مجموعه دستوراتی را بر اساس یک شرط و یا تعداد معینی تکرار کند ، از حلقه استفاده می کند .
1. حلقه While :
این نوع حلقه تا زمانی که شرط صحیح است عمل دستورات داخل حلقه را تکرار می کند .
While ( جمله شرط )
عبارات
[ exit while ]
End While
تذکر : با استفاده از دستور exit while می توان بدون در نظر گرفتن شرط حلقه از آن خارج شد .
مثال : برنامه ای بنویسید که دو عدد از ورودی دریافت کند ، سپس اعداد زوج بین این دو را نمایش دهد . (با While )
Dim num1 As Integer
Dim num2 As Integer
Console.Write("Enter First Number : ")
num1 = Console.ReadLine()
Console.Write("Enter Second Number : ")
num2 = Console.ReadLine()
num1 += num1 Mod 2
While (num1
Console.WriteLine(num1.ToString())
num1 += 2
End While
Console.ReadLine()
مثال : برنامه ای بنویسیدکه یک رشته از ورودی دریافت کند ، اگر مقدار آن برابر Exit بود برنامه را پایان دهد .
Dim password As String = "exit"
While (password "Exit")
Console.Write("Enter Password : ")
password = Console.ReadLine
End While
Console.Write("You Have Exited ... :) ")
Console.ReadLine()
مثال : برنامه ای بنویسید که اعداد از 1 تا 20 را بشمارد . ( بدون نمایش روی صفحه مانیتور )
Dim counter As Integer = 0
While counter
counter += 1
' Insert code to use current value of counter.
End While
2. حلقه For … next : این حلقه برای تکرار اجرای دستورات به تعداد معینی مورد استفاده قرار می گیرد . در این حلقه ، مقدار اولیه ، مقدار پایانی و مقداری به عنوان گام یا Step حلقه مشخص می شود . و این ساختار دستورات داخل خود را به تعداد مشخص شده تکرار می کند .
For نام شمارنده نقطه شروع to نقطه پایان step=گام حلقه
دستورات
Next
تمرین : برنامه ای بنویسید که 9 بار عبارت Hi ASP.net را نمایش دهد .
Dim Counter As Integer
For Counter = 1 To 9 Step 1
Console.WriteLine(Counter.ToString + " : Hi ASP.net")
Next
Console.ReadLine()
تمرین : برنامه ای بنویسیدکه یک عدد از ورودی دریافت کند و ... آنرا محاسبه کند .
Sub Main()
Dim count As Integer = 1
Dim sum As Long = 0
Dim num1 As Integer
Console.Write("Enter a Correct Number : ")
num1 = Console.ReadLine()
For count = 1 To num1 Step 1
sum = sum + count
Next
Console.WriteLine(sum.ToString)
Console.ReadLine()
End Sub
مثال : برنامه بنویسید که یک جدول ضرب 10 در 10 را نمایش دهد .
For i As Integer = 1 To 10
For j As Integer = 1 To 10
Console.Write("{0} ", i * j)
Next
Console.WriteLine()
Next
Console.ReadLine()
Dim r1 as new rect
R1.width
R2.height
Console.WriteLine("Rectangles width is : " + r1.width.tostring())
Console.WriteLine("Rectangles height is : " + r1.height.tostring())
مفاهیم پایه asp.net
از آنجایی که زبان VB.net یک زبان برنامه نویسی و قدرتمند است ، در آن از مفاهیم برنامه نویسی شیئ گرا پشتیبانی کامل شده است .
* تذکر : برنامه نویسی شیئ گرا (Object Oriented Programming ) نوعی برنامه نویسی است که در آن با موجودیت های سیستم همانند یک شیئ رفتار می شود .
* برای پیاده سازی برنامه نویسی شیئ گرا ، ابتدا باید با مفهوم کلاس و اعضای آن آشنا شویم .
* کلاس : کلاس ها الگوی ساخت اشیاء هستند . مثلاً : کلاس انسان را در نظر بگیرید . هر یک از شما علمای بزرگوار اسلام ، یک مشتق یا Instance از کلاس انسان هستید .
* نحوه تولید یک کلاس در VB.net : الگوی ساخت کلاس در VB.net به سبک زیر است :
سطح دسترسی
Public یا Private Calss نام کلاس
اعضای کلاس
End Class
* تذکر : برای ساخت کلاس ، توسط نرم افزار VS کافی است ، در پنجره solution explorer روی نام پروژه کلیک راست کنیم . با استفاده از گزینه add و گزینه class یک کلاس جدید را به پروژه اضافه می کنیم .در این صورت یک فایل مجزا به پسوند .vb برای آن کلاس ایجاد می شود .
یک نمونه : مثلاً ساخت یک کلاس برای تبدیل تاریخ میلادی به شمسی .
* یک کلاس شامل پنج نوع عضو می شود :
1. فیلد ( field ) : فیلد ها در کلاس بیانگر یک متغیر می باشند و در حقیقت یک مقدار را در خود ذخیره می کنند .
1-1- نحوه تعریف کردن فیلد :
سطح دسترسی نام فیلد as نوع داده ای
* تذکر : اگر سطح دسترسی یک عضو از کلاس دارای مقدار public باشد ، این عضو نتنها می تواند در داخل کلاس مورد استفاده قرار می گیرد ، در خارج کلاس نیز می تواند قابل دسترس باشد. اگر بجای public ، سطح دسترسی private را قرار دهیم ، مقدار فقط داخل کلاس شناسایی می شود.
* نحوه استفاده از کلاس : برای استفاده از یک کلاس در کلاس دیگر و یا در طول برنامه ابتدا باید توسط دستور dim از آن کلاس یک مشتق ایجاد می کنیم .
توجه : کلاس ها از جنس Reference type هستند . بنابراین در هنگام تعریف مشتق باید از کلمه new استفاده کنیم .
مثلاً اگر نام کلاس را rect گذاشته باشیم ، اگر بخواهیم آنرا در برنامه فراخوانی کنیم باید دستور زیر را واردکنیم .
Dim r1 as new rect
R1.width
R2.height
Console.WriteLine("Rectangles width is : " + r1.width.tostring())
Console.WriteLine("Rectangles height is : " + r1.height.tostring())
توضیح : دو مقدارwidth و height مقداری هایی هستند که کلاس تعریف شده اند .
* نکته : شرط ضمنی : به صورت زیر در VB نوشته می شود .
Iif ( جمله شرطی , trueمقدار , false مقدار )
ایجاد کردن اولین صفحه ASP
صفحات ASP همانند صفحات وب HTML، فایلهای متنی ساده بر روی سرویس دهنده وب می باشند. برای ایجاد صفحه ASP، بعد از اینکه سرویس دهنده وب را نصب کردید تمام چیزی که شما احتیاج دارید، یک ویرایشگر متن همانند برنامه Notepad می باشد.
نکته: برنامه Notepad به صورت معمول برای ایجاد و اصلاح صفحات ASP استفاده می گردد، اگر چه این برنامه توابعی که برای تولید صفحات توسعه یافته ASP لازم است را ندارد.
اجازه دهید که اولین صفحه ASP خود را بوسیله برنامه Notepad بسازیم. ابتدا برنامه Notepad را باز کنید و سپس یک فایل با پسوند .asp ایجاد نمایید که جذر ریشه اعداد 1 تا 19 را نشان دهد. اگر شما دستورات زبان VBScript را بلد نیستید نگران نباشید؛ در مقالات بعدی درباره زبان VBScript مفصل بحث خواهیم کرد. اسکریپت زیر شامل کدی می باشد که باید در Notepad تایپ شود داخل برنامه:
Square roots
Dim iLoop For iLoop = 1 to 10 Response.Write iLoop & ": " & Sqr(iLoop) & "
" Next %>
تجزیه و تحلیل: کد بالا جذر اعداد بین 1 تا 10 را محاسبه کرده و نمایش می دهد. خط 1، شروع کد ASPبا فرمان Language @می باشد که، در جلسات بعد با مدل Client-Serverآشنا خواهید شد. خط 2 که جمله Option Explicitمی باش:این جمله بیان میکند که همه متغیرهای استفاده شده در صفحه ASPبه صورت صریح تعریف شده اند. خطوط 3 تا 5 شامل کدهای HTMLمی باشند. سپس در خط 6 دوباره یک بلوک ASPشروع می گردد که یک حلقه For از 1 تا 10 را ایجاد می نماید. حلقه های For مربوط به ساختارهای کنترلی VBScriptمی باشد که در جلسات بعدی به طور مفصل بحث خواهیم کرد. در خط 9 هم خود اعداد و هم جذر آنها نمایش داده می شود.(مورد بحث قرار میگیرد) در انتها خطوط 13 و 14 پایان صفحه ASPمی باشد که شامل کدهایی از HTMLمی باشد.
حالا که این کدها را در داخل Notepadتایپ کرده اید، شما احتیاج دارید که صفحه ASP را ذخیره نمایید. شما باید فایل را با نام SquareRoot.asp بر روی دایرکتوری فیزیکی ریشه ذخیره نمایید. توجه داشته باشید که دایرکتوری فیزیکی ریشه به وسیله کادر خصوصیات سایت وب تعیین نشده است و به صورت پیش فرض X:\inetpub\wwwRootمی باشد بنابر این فایل SquareRoot.aspرا در مکان X:\inetpub\wwwRootذخیره نمایید. اکنون مرورگرتان را باز کنید و یکی آدرس زیر را وارد نمایید.
http://localhost/squareroot.asp
http://127.0.0.1/squareroot.asp
حال مرورگرتان باید Squareroot.asp را بصورت خروجی زیر نمایش دهد:
Square roots 1: 1 2: 1.4142135623731 3: 1.73205080756888 4: 2 5: 2.23606797749979 6: 2.44948974278318 7: 2.64575131106459 8: 2.82842712474619 9: 3 10: 3.16227766016838
به خاطر داشته باشید که مرورگر، به عنوان Client به کار می رود و فقط HTML پایانی را از سرویس دهنده وب دریافت می نماید. اگر شما سورس HTML را از داخل مرورگرتان مشاهده کنید(بعد از اجرای squareroot.asp)، تنها HTML را خواهید دید.
ایجاد اسکریپت و صفحات ASP به وسیله Notepad دارای مزایا و معایبی می باشد. ابتدا مزایای این کار را بیان می کنیم:
سرعت: Notepad یک ویرایشگر کوچک و کارا و سریع می باشد. البته ابزارهای پیشرفته تر هم هستند که به ما در ایجاد صفحات ASP کمک می کنند که در جلسات بعدی توضیح خواهم داد. اگرچه این ابزارها مزایای خاص خودشان را دارند اما آنها به فضا و حافظه زیادی نیاز دارند و آهسته تر از Notepad اجرا می شوند.
سادگی به کار گیری: از آنجا که Notepad گزینه ها و امکانات زیادی ندارد، وقتی ابزارهای پیشرفته امروزی را با Notepad مقایسه می کنیم، Notepad به نظر کارآمد نمی آید که معایب Notepad بر پایه نداشتن این گزینه ها و امکانات می باشد که تعدادی از آنها در زیر آمده است:
نداشتن پشتیبانی سایت وب: با Visual InterDev یا Frontpage ویا DreamWaver شما می توانید سراسر سایت وب را مدیریت نمایید. با Notepad شما فقط می توانید یک فایل را در یک زمان ایجاد و ویرایش نمایید.
کدهای دستور زبان غیر رنگی: وقتی شما از Frontpage وInterDev وDreamWaver که سه تا از ویرایشگرهای توسعه یافته وب می باشند استفاده می کنید، قطعات مختلف کدهایتان رنگهای مختلف خواهند داشت. این امر باعث می شود که بررسی خطاهای دستور زبان در Tag های HTML و کدهای VBScript به سادگی صورت پذیرد.
نداشتن ابزار ابجاد صفحات وب Drop-&-Drog: هم InterDev هم Fronpage هم DreamWaver به شما اجازه می دهند که ظواهر HTML یک صفحه وب رابه وسیله کشیدن و رها کردن اشیا یا عناصر در داخل صفحه وب ایجاد نمایید. به وسیله Notepad، شما احتیاج به آشنایی خوب با Tag های HTML برای ایجاد صفحه وب خود دارید. پس ویرایشگری را که شما برای ایجاد و مدیریت صفحات ASP خودتان استفاده می کنید، وابسته به احتاجهایتان است. اگر شما ترجیح می دهید که از یک ویرایشگر کامل و قدرتمند استفاده نمایید، بهترین انتخاب شما، Frontpage یا DreamWaver شرکت مایکروسافت و ماکرومدیا می باشد.
کار با متغیرها در زبانNET . ASP
اعداد اعشاري يا Floating-Point Numbers
اعداد اعشاري اعداد decimal شناور مي باشند. اعداد 5/1,4/3- ,1/4 و حتي 0/5 همگي اعداد اعشاري مي باشند.توجه به اين نكته مهم مي باشد كه اعداد مميز شناور اغلب گرد شده يا بريده ميشوند تا به اندازه فضايي شوند كه به انها اختصاص داده شده است.
نوع داده اي Single و Double به اعداد مميز شناور اختصاص داده شده اند. فرق بين اين دو در دقت اعدادي كه در خود ذخيره مي كنند مي باشد. در نوع Double دو برابر Single حافظه لازم داريد اما بديهي است كه محدوده اعداد بزرگتر را مي تواند در خود نگهداري كند و همچنين دقت بيشتري نسبت به Single دارد.
در VBScript شما هيچ نگراني در مورد اين دو نداريد. گاهي اوقات در هنگام كار كردن با اعداد مميز شناور شما انها را به صورت اعداد علمي مي بينيد.
رشته(String) يك رشته مي تواند زنجيره اي از حروف ، اعداد و نشانه ها را در داخل خود نگهداري كند.رشته ها بايد از كد ها ، نام هاي متغير و اعداد به وسيله قرار دادن آنها بين علامت " " شناخته شوند. عبارت "Welcome To macromediax" و"12324" مثال هايي از رشته مي باشند. حتي رشته خالي " " مي تواند همان رفتار يك رشته را نشان دهد.
هنگامي كه ما از يك عبارت مانند response.write “hell” را استفاده ميكنيم "Hello" يك مقدار رشته اي مي باشد.
متغير هاي رشته اي اغلب در فرستادن خروجي هايي مثل مثال بالا استفاده مي شوند.
Data(اطلاعات)
يك خصوصيت مفيد VBScript كه در ديگر زبانهاي برنامه نويسي وجود ندارد مديريت اطلاعات مي باشد.اگرچه مي توان داده ها را به صورت رشته ها يا اعداد نمايش داد ولي استفاده از اين متغير ها كارها را ساده مي نمايد.متغير داده اي مي تواند زمان يا تاريخ و اطلاعات متنوع توابع تاريخ VBScript و عملگر هايي كه فرمت اطلاعات مربوط به تاريخ را چاپ مي نمايند را نگهداري كنند.
Boolean این نوع متغير، فقز مقادير درست يا غلط را در خود نگهداري مي كند.متغير هاي Boolean معمولا وقتي يك تصميم گيري مورد نياز مي باشد استفاده مي گردند.ارزش متغير مي تواند تعیين كند كه كدام يك از دو عمل بايد انجام بگيرد.اين عمل به وسيله ساختار كنترلي انجام مي گيرد.مثلا برای تعیین جنسیت کاربران به دونوع مذکر و مونث میتوان ازین نوع داده ای استفاده کرد .
نوع داده Currency
يك عدد دقيق كه تنها براي ذخاير پولي به خوبي كار خواهد كرد.اما VBScriptيك نوع داده مخصوص براي پول مهيا مي كند كه با چندين تابع مخصوص VBScript كار ميكند.
Object اين قسمت به اشيا مخصوص اشاره دارد.از اشيا در كار كردن با عملگرهاي مربوطه به پايگاههاي داده استفاده مي شود.و در جاي خود آن را مورد بحث قرار مي دهيم.
Variant Variables چه هستند؟
در بيشتر زبان هاي برنامه نويسي بايد بين متغير هاي داده هاي مختلف فرقي وجود داشته باشد. يك متغير که براي نگهداري رشته ها استفاده ميشود بعدا نمي تواند براي نگهداري يك عدد مورد استفاده قرار گيرد. البته اين موضوع در زبان VBScript صادق نمي باشد VBScript از Variant Vciriables هايي استفاده مي كنند كه متغير هايي هستند كه شامل مقاديري از هر نوع مي تواند باشد.ثابتها و آرایه ها
يك ثابت مثل متغيري مي باشد كه شما به آن يك نام داده ايد و يك data را در آن ذخيره كرده ايد. بر عكس متغيرها، ثابتها وقتي كه آنها را تعريف مي كنيد يك مقدار مي گيرند و آن مقدار ديگر تغير داده نمي شود. VBScript چندين ثابت پيش ساخته براي خود دارد. براي مثال ثابت VBInteger براي قرار دادن عدد 2 در داخل آن تعريف شده است. در داخل كدهايتان مي توانيد به اعداد به صورت مستقيم رجوع كنيد يا از نام ثابت استفاده كنيد. تايپ كردن عدد به صورت مستقيم ممكن است كليد زدن هاي كمتري را در پي داشته باشد اما با استفاده از نام constant كدهاي شما براي خواندن راحت تر مي شوند. همچنين به شما كمك مي كند كه از ذخيره اعداد زيادي در حافظه جلوگيري نماييد.
ممكن است اين را مفيد بدانيد كه بعضي وقت ها ثابت هاي خود را براي صفحه هاي خود تعريف كنيد.
براي مثال اگر شما مي خواهيد يك صفحه براي فروش كالا بسازيد ممكن است احتياج به استفاده از نرخ ماليات فروش ان هم چندين بار در يك صفحه پيدا كنيد. اگر يك constant براي نرخ ماليات ايجاد نکنید شما احتياج پيدا خواهيد كرد كه به يك عدد دهدهي بزرگ مثل 0.0625 چندين دفعه رجوع كنيد. به علاوه اگر نرخ ماليات تغير نمايد شما بايد چندين خط از كدهايتان را به روز رساني نماييد.
اما با يك توصيف ساده مانند عبارت زير در بالاي صفحه تان شما مي توانيد به TAXRATE در سراسر صفحه تان رجوع كنيد و مي توانيد ان را به سادگي به روز رساني كنيد:
Const TAXRATE = 0.0625
پيشنهاد مي كنم كه شما براي تعريف يك ثابت از حروف بزرگ استفاده نماييد تا در تشخيص از متغيرها به شما كمك نمايد. آرایه ها نوعي ديگر از داده ها وجود دارند كه شما هنوز به آنها برخورد نكرده ايد. يك متغير آرايه اي ، مجموعه اي از متغير ها مي باشند كه داراي يك نام هستند اما به وسيله index تشخيص داده ميشوند. يك ارايه از متغير ها به صورت رديفي از جعبه ها در كنار يكديگر به نظر مي رسند. آرايه ها براي گروهي از داده ها كه از يك نوع مي باشند استفاده مي شوند. براي مثال ممكن است يك آرايه از رشته ها را داشته باشيم كه آدرس پستي كاربران را در خود دارند. وقتي كه اين موضوع با ساختارهاي حلقه اي كه بعدا شرح آن داده مي شود ارتباط پيدا كنند خواهيد فهميد كه آرايه ها با مقادير داده اي متنوعي كار مي كنند. يك آرايه از متغير ها به نام arrDays را ايجاد و استفاده مي كنيم. در ابتدا يك آرايه از متغير ها مانند زير تعريف میکنیم:
Dim arrDays(6)
لغت جديد: عدد 6 كه در داخل پرانتز محصور شده است حد بالاي آرايه مي باشد. حد بالا بزرگترين انديسي مي باشد كه يك محدوده معتبر در داخل آرايه ايجاد مي كند. لغت جديد: حد پايين آرايه (0) مي باشد. به اين معني كه صفر كوچكترين انديسي است كه محدوده معتبر در داخل آرايه ايجاد مي نمايد. صفر پايين ترين حد هر آرايه مي باشد. در اين مثال 7 متغير داريم:
arrDyas(6),arrDays(5),arrDays(4),arrDays(3),arrDays(2),arrDays(1),arrDays(0)
اعداد داخل پرانتزها ايندكس هاي متغيرها مي باشند. و آنها از 0 تا 6 را تشكيل ميدهند. حال محتواي ليست زير را تايپ كنيد و نام فايل مورد نظر را ArrayReference.asp بگذاريد.
نمايش راههاي ارجاع به عناصر ارايه:
1: 2: 3: 4: %> 5: 6: 7: 8: index = 3 9: arrDays (0) = "Sunday" 10: arrDays (1) = "Mondey" 11: arrDays (2) = "Tuseday" 12: arrDays (3) = "Wednesday" 13: arrDays (4) = "Thursday" 14: arrDays (5) = "Friday" 15: arrDays (6) = "Saturday" 16: Response.Write("index has a value of ") 17: Response.Write (index) 18: %> 19:
20: arrDays (1) has a value of 21: 22: Response.Write (arrDays (1) ) 23: %> 24:
25: arrDays (index) has a value of 26: 27: Response.Write (arrDays (index) ) 28: %> 29:
30: arrDays(2+3) has a value of 31: 32: Response.Write (arrDays (2+3) ) 33: %> 34:
35: arrDays (index+1) has a value of 36: 37: Response.Write (arrDays (index+1) ) 38: %> 39: 40:
ليست بالا چندين راه دسترسي به عناصر آرايه هاي به خصوص را نمايش مي دهد. خط 22 يك دسترسي مستقيم به عنصر شماره يك ارايه را نشان ميدهد. خطوط 32 و 37 رجوع به عناصر داراي عبارت رياضي را نشان مي دهد.
احتياط: وقتي از متغير ها به عنوان انديس آرايه ها استفاده مي كنيد اطمينان حاصل كنيد كه متغير ها در محدوده صحيح قرار داشته باشند.
كارهاي بيشتري مي توان با آرايه ها انجام داد. تنها چيزي كه ارزش توجه دارد اين است كه ما تابعي به نام Array داريم كه براي سرعت دادن به تخصيص مقدار به هر يك از عناصر يك ارايه مورد استفاده قرار مي گيرد. براي مثال در ليست بالا خطوط 9 تا 15 مي توانند با تنها يك خط زير جايگزين گردند:
ArrDays = Array("Sundey", "Mondey", "Tuesday", "Wenesday", " Thursday"."Friday", "Saturday") عملگرهاي VBScript
عملگرها به ما اجازه مي دهند كه با داده ها كار كنيم و آنها را تركيب كنيم تغيیر دهيم و يا جايگزين كنيم. 5 كلاس اصلي از عملگر ها وجود دارند كه ما در مورد آنها بحث خواهيم كرد. اولين نوع آنها عملگر انتساب(Assignment) ميباشد كه اكنون آن را ملاحظه خواهيم نمود:
عملگر انتساب
ما در مورد متغيرها بحث كرديم و توضيح دادیم كه داده ها در آنها ذخيره می گردند. اما درباره اين كه چگونه داده ها در متغير ها ذخيره مي شوند توضيحي داده نشد.عادي ترين راه براي ذخيره داده هاي متغيرها استفاده از عملگر انتساب مي باشد. عملگر انتساب در VBScript علامت مساوي (=) مي باشد. عملگر انتساب هر چيزي كه در سمت راست آن قرار بگيرد در متغيري كه در سمت چپ آن قرار مي گيرد ذخيره مي کند.
براي مثال كدهاي زير را در نظر بگيريد:
Dim MyVariable MyVariable = 3 MyVariable = 5 %>
اگر شما قبلا برنامه نويسي نكرده باشيد ممكن است از اين كه متغير MyVariable در يك لحظه هم مقدار 3 و هم مقدار 5 را گرفته است متعجب شده باشيد. بايد دقت نماييد كه عملگر انتساب را با مشابه آن در مبحث رياضیات اشتباه نگيريد. جمله سوم مي گويد كه متغير MyVariable برابر 5 مي باشد. اين جمله در داخل متغير MyVariable مقدار 5 را ذخيره مي كند.
دردومین خط همان طور كه قبلا توضيح داده شد يك متغير تعريف شده است. در اين هنگام يك مقدار Empty در داخل متغير MyVariable ذخيره مي گردد. در خط بعد مقدار 3 به متغير MyVariable تخصيص داده مي شود. بنابراين در داخل جعبه اي كه داراي بر چسب MyVariable ميباشد هم اكنون مقدار 3 وجود دارد. در انتها مقدار 5 به متغيرMyVariable تخصيص داده مي شود. مقدار 3 كه وجود داشت اكنون از بين مي رود!
به اين نكته در هنگام برنامه نويسي دقت كنيد که در داخل متغير ها هرگز مقادير جديدي را جايگزين ننماييد تا زماني كه اطمينان حاصل كنيد كارتان با مقدار قبلي تمام شده است. اگر مسلم شد كه به جايگزيني يك مقدار براي استفاده بعدي نياز داريد ممكن است يك متغير دومي را ايجاد كنيد و آن را به شكل زير نگهداري نماييد:
Dim MyVariableX, MyVariableY MyVariableX = 3 MyVariableY = MyVariableX MyVariableX = 5 %>
در اينجا خط دوم با دو متغير تعريف شده است MyVariableX و MyVariableY. در ابتدا در هر دو مقدار Empty قرار داده مي شود.
در خط بعد مقدار 3 در داخل MyVariableX قرار داده مي شود. مقدار دهي تنها با مقادير صريح مثل 3 يا 5 انجام نمي گيرد بلكه با متغير ها نيز صورت مي گيرد. در نهايت در هر دو متغير MyVariableY و MyVariableX مقدار 3 ذخيره مي گردد.
سرانجام در داخل MyVariableX مقدار 5 قرار داده مي شود. اين مساله بر روي متغير MyVariableY تاثيري ندارد. خط 3 هر چه كه در داخل MyVariableX وجود دارد به داخل MyVariableY كپي مي كند اما اين كار هيچ نوع ارتباط دائمي بين دو متغير MyVariableX و MyVariableY ايجاد نمي كند با اين كار MyVariableX با مقدار جديد مورد استفاده قرار مي گيرد. اما اگر شما هنوز به مقدار قبلي نياز داشته باشيد از طريق MyVariableY به آن دسترسي خواهيد داشت.
اكنون به آخرين نسخه ازين كدها نگاه كنيد:
Dim ivar ivar = 3 5 = ivar %>
آيا فكر مي كنيد اين كد ها كار ميكند؟ (اولين پاراگراف مربوط به عملگرهاي انتساب را در صورتي كه اطمينان نداريد دوباره بخوانيد.)
جواب منفي است. اين كدها معتبر نمي باشد. دو خط اول قابل انتظار مي باشد اما خط سوم بي معني است. عملگر انتساب هر چه كه در سمت راست آن قرار دارد در داخل متغير سمت چپ كپي مي كند.در اين نمونه عدد 5 يك متغير نيست و در سمت چپ قرار دارد. عدد 5 نميتواند به عنوان نام يك متغير به كار رود زيرا نام متغير ها بايد با يك حرف آغاز شود. ما از نوع integer در اين مثال ها استفاده نموده ايم اما مي توانستيم از انواع ديگر استفاده كنيم. عملگر انتساب با نوع هاي Booleans, Strings, doubles, singles به خوبي كار مي كند:
StrName = "X" Bol_The_Assignment_operator_Is_Powrful = True Dtjills_Birthday = #03/06/1946#
نكته: محصور كردن داده با علامت # داده را به سه قسمت 3 و 6 و 1946 تقسيم مي كند. ممكن است متوجه شده باشيد كه در ليست قبل از عملگر انتساب استفاده شده است. ليست زير يك نسخه تغيیر يافته از اين كد ها مي باشد كه عملگر انتساب را با كمي تغیير نشان ميدهد.
نام فايل را AssignmentDemo.asp بناميد:
Dim strName, iAge %> Response.Write("Before assigning a value, strName has value ") Response.Write(strName) %>
strName= "James" iAge = 21 Response.Write( "Now strName has value ") Response.Write(strName) %>
Response.Write( "Now iAge has value " ) Response.Write(iAge) %>
تجزیه: خط 3 دو متغير را به نام هاي StrName و iAge تعريف كرده است. خطوط 8 و 9 يك پيغام را مي نويسد كه نشان مي دهد كه StrName قبل از اين كه ما از عملگر انتساب استفاده نماييم چه مقداري داشته است.
خطوط 13 و 14 مقادير 2 متغير را تنظيم مي كنند. خطوط 15 و 16 مقدار جديد داده شده به متغير StrName را نشان مي دهند. به خروجي نگاه كنيد شما مي توانيد هم اكنون تاييد كنيد كه عمل انتساب درست صورت گرفته است. خطوط 20 و 21 به طور مشابه مقدار جديد داده شده به متغير iAge را نشان مي دهد.استفاده از تابع
به منظور ایجاد صفحه ASP ، ما احتیاج به یک کامپیوتر با یک سرویس دهنده وب دارید که تکنولوژی ASP را پشتیبانی نماید طریقه تنظیم و نصب دو سرویس دهنده رایگان وب مایکروسافت که عبارت بود از PWS و IIS. در این زمان شما باید یک سرویس وب که با ASP کار می کند داشته باشید یا به یک کامپیوتری که بر روی آن چنین سرویس دهنده وبی نصب شده است، دسترسی داشته باشید.
بعد از اینکه یک سرویس دهنده وب را نصب کردید، شما می توانید صفحات ASP را در دایرکتوری ریشه سایت وبتان(wwwRoot) ایجاد نمایید یا آنرا در زیر فهرستهای دایرکتوری ریشه قرار دهید و صفحات ASP حاصله را بوسیله مرورگر وب مشاهده نمایید. از آنجایی که صفحات ASP بصورت کامل بر روی سرویس دهنده پردازش می گردند و فقط HTML به بخش سرویس گیرنده برگشت داده می شود، هر مرورگر وبی می تواند برای مشاهده صفحات ASP مورد استفاده قرار بگیرد.(سوالات متداول)
شما هم اکنون عناصر لازم برای ایجاد و ودیدن صفحات ASP را در اختیار دارید.
در طی جلسات آینده، شما یاد خواهید گرفت که کدهای VBScript را که یکی از زبانهای پر کاربرد در ایجاد صفحات ASP می باشند را به صفحات وارد یا خارج نمایید. حال به یک صفحه ASP نگاهی میندازیم. این کار به شما کمک میکند که با علایم و دستور زبان VBScript آشناتر گردید. به علاوه آن به شما نشان می دهد که کارهای زیبایی را می توانید با ASP انجام دهید.
تصور نمایید که بر حسب اوقات روز، می خواهید پیامهای مختلفی را بر روی صفحه وب مشاهده نمایید. برای مثال، اگر ساعت 11:00 صبح می باشد، شما می خواهید پیام Good Morning را مشاهده نمایید یا اگر اینکه ساعت 05:00 بعدازظهر می باشد شما پیام Good Evening را مشاهده نمایید. با استفاده از دستورات و کدهای HTML، شما باید دوبار صفحه HTML را در روز ویرایش نمایید. یک بار قبل از ظهر و یکبار بعد از ظهر(به منظور تغییر صفحه وب و تغییر دادن پیامها). با صفحات ASP، شما باید از کدهای برنامه نویسی برای تعیین وقت فعلی و نمایش پیغام مناسب بر حسب زمان را استفاده نمایید. اسکریپت زیر شامل کدهایی برای یک صفحه ASP می باشد که پیغام مناسب را بر حسب زمان فعلی نمایش می دهد.
The current time is
If datepart("h",time()) >= 12 then 'After noon Response.Write "Good Evening" Else 'Before noon Response.Write "Good Morning" End If %>
تجزیه و تحلیل: به منظوری دیدن خروجی اسکریپت بالا، یک صفحه ASPبه نام TimeBasedMessage.aspرا ایجاد و این فایل را در فهرست ریشه(X:\inetpub\wwwRoot) ذخیره نمایید. کدهای موجود در اسکریپت بالا را در داخل فایل ذخیره نموده و سپس آنرا توسط مرورگرتان با نوشتن آدرسURLزیر مشاهده نمایید:
http://localhost/TimeBasedMessage.asp
اکنون کدهای موجود در اسکریپت بالا را را مرور می کنیم. خط 1 با دستورLanguage @شروع شده است که به سرویس دهنده وب اطلاع می دهد که زبان scriptingکه در صفحه ASP فعلی استفاده شده است چه می باشد ( که در جلسه بعدی، کالبد شکافی اولین ASP نوشته شده را خواهیم داشت).به خاطر داشته باشید که همیشه این دستور در خط اول صفحات ASP به کار برده می شود. خط 2، Option Explicitخط دیگری می باشد که همیشه در همه صفحات ASP که شما ایجاد می نمایید مورد استفاده قرار می گیرد. وقتی دستور Option Explicit مورد استفاده قرار می گیرد، همه متغیر های ما باید به صورت صریح تعریف گردند که در جلسات بعدی در مورد Option Explicit بیشتر بحث خواهد شد. خط 6 زمان فعلی سیستم را با استفاده از تابع( ) Time نمایش می دهد. این تابع Time = %> در جلسات بعدی مورد بحث قرار می گیرد. خطوط 7 تا 15 بلوک کدهای ASP می باشند، که بوسیله محدود کننده های مشخص شده اند. یک Ifدر خط 8 استفاده شده است که معین می نماید آیا ساعت فعلی قبل از ظهر می باشد یا بعد ازظهر.قسمت Datapart که در اینجا استفاده شده است، به این منظور می باشد که فقط بخش ساعت از ساعت فعلی سیستم را در اختیار ما قرار دهد نه ثانیه و دقیقه و غیره...
آشنایی با اسکریپتهای ASP
این یک صفحه یا اسکریپت یا کد ASP است که عبارت Good Evening را در صورتی که زمان بعد از ظهر باشد چاپ می کند و در صورتی که قبل از ظهر باشد عبارت Good Morning را چاپ می کند:
The current time is
If Datepart("h",time()) >= 12 then 'After noon Response.Write "Good Evening" Else 'Before noon Response.Write "Good Morning" End If %>
تجزیه و تحلیل: اولین چیزی که مورد بررسی قرار میدهیم Tag های می باشد. شما باید قبلا با Tag های HTML آشنا شده باشید. برای مثال شما می دانید که متون بین b/> و b> به صورت حروف توپر نمایش داده می شوند؛ این Tag ها نیز شبیه آنها هستند. متنی که بین دو عبارت ظاهر می گردد به عنوان کدهای ASP در نظر گرفته می شود. به این خاطر است که سرویس دهنده، قبل از فرستادن صفحه برای مرورگر وب، آنها را مورد پردازش قرار می دهد. برای مثال، در خطوط 7 تا 15 شما Tag های باز و بسته را مشاهده می کنید. آنها به این معنی هستند که خطوط بین 8 تا 14 کدهای ASP می باشند. حالا سعی کنید خطوط 7 تا 15 را از داخل اسکریپت خارج کرده و این صفحه را از طریق مرورگر وب مشاهده نمایید، مطمئنا چیزی شبیه به خروجی زیر را خواهید دید؛ چه اتفاقی افتاده است؟
The current time is 06:10:07 If datepart("h",time()) >= 12 then 'After noon Response.Write "Good Evening" Else 'Before noon Response.Write "Good Morning" End If
بدون استفاده از Tag های ، سرویس دهنده تان متن های بین خطوط 8 تا 14 را به عنوان کدهای ASP در نظر نمی گیرد. در عوض فکر می کند که آنها متون ساده ای همانند هر صفحه HTML دیگر می باشند. فراموش کردن هر یک از این دو Tag باعث ایجاد خطا در طی اجرای ASP می گردد. که خوشبختانه این مسئله به راحتی قابل حل می باشد.
حال به مثالهای صفحه توجه کنید:
The current time is
If Datepart("h",time( )) >= 12 then %> 'After noon %> Response.Write "Good Evening" %> Else %> 'Before noon %> Response.Write "Good Morning" %> End If %>
تجزیه و تحلیل: در اینجا ما برای هر خط از کدهای ASP یک جفت از Tag ها را استفاده نموده ایم. یک Tag باز در ابتدای خط 7 قرار دارد، سپس یک خط از کد نوشته شده و بعد Tag بسته شده است. این شیوه، ناکارا و برای خواندن مشکل می باشد. در HTML، این مانند آن است که برای اینکه یک جمله را به صورت Bold دربیاوریم هر کدام از حروف جمله را به وسیله Bold Tag به صورت توپر دربیاوریم.
چیزهایی وجود دارند که شما باید با دقت در مورد آنـها فکر کنید. درست است که از Tag های HTML در داخل Tag های HTML می توانید استفاده نمایید ولی از Tag های ASP در داخل Tag های ASP نمی توانیم استفاده نماییم. برای مثال کد زیر یک خطا ایجاد می نماید:
Respnse.Write "Good Morning" %> %>
شما می توانید از Tag های ASP همراه با Tag های HTML استفاده نمایید، همانطوری که از استفاده نمودید.
حال، برای اثبات این امر مثال نوشته شده در زیر را اجرا کنید:
Response.Write "Hello" %> Response.Write "my friends" %>
این فایل را با نام Listing0203.asp ذخیره نمایید. اما مطمئن شوید که شما این فایل را در پوشه ای که PWS را در آن قرار داده اید قرار دارد.
تجزیه و تحلیل: خط 8 یک Bold Tag از HTML عادی می باشد. سپس در خط 6 یک بلوک از کد ASP شروع می شود. خط 7 یک کلمه را در خروجی می نویسد، خط 8 هم بلوک کد ASP را می بندد و خط 9 HTML Tag را می بندد. خطوط 10 تا 12 یک بلوک دیگر از کدهای ASP را تولید کرده اند که یک پیغام دیگر را چاپ می نماید.
خروجی زیر نشان می دهد که کد بالا بر روی مروگر وب چطور به نظر می رسد. توجه کنید که HTML Tag Bold بر کد ASP در خط 7 مقدم می باشد ولی نه بر روی کد ASP در خط 11. اگر ما Tag های ASP را در خطوطی جداگانه نسبت به کدهای واقعی ASP قرار دهیم هیچ اتفاق بخصوصی رخ نخواهد داد.
Hello my friends
ما به طور عموم جملات ASP را به شکلی که در فرم 1 آمده است استفاده می کنیم زیرا خواناتر می باشند:
1- Response.Write "Hello" %>
2-
3- %>
4- Response.Write "Hello" %>
به هر حال، هر چهار عبارت فوق مرسوم و صحیح می باشند.
منابع:
1- http://fa.wikipedia.org
2- http://kiaei.blogfa.com
3- http://www.macromediax.com/
+ نوشته شده در پنجشنبه چهاردهم آذر ۱۳۹۲ ساعت 22:38 توسط
|