بازدید
ASP. NET Applications
برنامههای کابردی Asp. NET در سادهترین نوع خود مانند برنامههای کاربردی ASP کلاسیک میباشند. یک برنامه کاربردی ASP.NET ساده شامل چهار چیز است:
یک دایرکتوری مجازی در IIS که برای نگهداری فایلهای تشکیل دهنده برنامه کاربردی و کنترل دسترسی به فایلها پیکربندی میشود.
یک یا چند فایل aspx.
یک فایل Global. asax ( مشابه فایل Global. asa در ASP کلاسیک) که با راهاندازی و خاتمه جلسه کاری و برنامه کاربردی سروکار دارد (اختیاری).
یک فایل Web. config که برای ذخیره کردن اطلاعات و تنظیمات پیکربندی برنامه بکار میرود (از ویژگیهای جدید ASP. NET و اختیاری).
نکته جالبی که ممکن است ذکر آن برای کاربران Visual Sttudio . NET خوشحال کننده باشد این است که تمام فایلهای مزبور به هنگام ساختن یک پروژه Web Application برای شما ساخته میشوند.
وب فرمهای ASP.NET
وب فرمها یکی از قسمتهای مهم هر برنامه کاربردی ASP.NET میباشند، به عبارت سادهتر، آنها صفحاتی هستند که از کنترلهای Server درونی ASP. NET استفاده میکنند. مدل برنامهنویسی با وبفرمها توسعه برنامههای کاربردی مبتنی بر وب را تا حد زیادی شبیه توسعه برنامههای کاربردی تحت ویندوز که به وسیله برنامه نویسان Visual Basic ساخته میشوند میسازد.
در محیط Visual Studio. NET وبفرمها به شما امکان میدهئد که با کشیدن و رها کردن کنترلها بر روی یک صفحه و نوشتن مقدار کمی کد برای پاسخگویی به عملیایت کاربر، رویدادها و غیره، برنامههای کاربردی قدرتمند و جذاب تولید کنید به علاوه، محیط Visual Studio . NET به شما اجازه میدهد که به دو صورت ویژوال (با استفاده از پنجره طراح فرم ) یا متنی (با استفاده از پنجره ویراستار کد ) با صفحات برنامه خودکار کنید.
کدی که در وب فرمهای خود می نویسید می تواند به دو روش نوشته شود: یکی درون خود فایل aspx و یا با استفاده از یک ماژول در بر گیرنده کد که در پس پرده ساخته میشود و آن را Code – Behind Module می نامند. اگر چه می توانید برای ساختن یک برنامه کاربردی از هر دو روش به طور همزمان استفاده کنید، ولی توصیه می شود که برای نوشتن کد برنامه از ماژول ها بهره ببرید.
Code – Behind
Code – Behind یکی از ویژگی های جدید ASP. NET است که به برنامه نویسان و توسعه دهندگان وب امکان می دهند تا کد مربوط به UI که معمولاً با HTML نوشته می شود را از کدی که با Visual Basic NET ، # C یا هر زیان دیگری برای پاسخگویی به عملیایت کاربر، ارزیابی دادهها و … طراحی و نوشته میشود به طور کامل حدا سازند. این تکنیک مزایای متعددی دارد که رد ذیل به بعضی از آنها اشاره شده است:
جدایی کامل HTML و کد: ویژگی Code – Behind امکان میدهد که طراحان HTML و برنامه نویسان کارهای خود را به طور مستقل و بدون تداخل انجام دهند. (چیزی که در هنگام توسعه برنامههای کاربردی ASP کلاسیک به ندرت اتفاق میافتد)
سهولت استفاده مجدد از کد: با توجه به این که کد برنامه به طور مستقل از HTML نوشته می شود، به راحتی در پروژههای دیگر از آن استفاده نمود.
نگهداری سادهتر: جدایی کد از HTML علاوه بر افزایش خوانایی، نگهداری برنامه را نیز بسیار راحتتر میسازد.
بسته بندی و انتشار برنامه بدون کد اصلی: شما می توانید پروژه هایی را که از تکنیک Code – Behind استفاده می کنند کامپایل نموده و به این ترتیب از کد برنامه خود محافظت کنیدو. این ویژگی در شرایطی که بخواهید برای مشتریان خود برنامههای کاربردی تولید کنید و در عین حال کد اصلی و تکنیک های برنامه نویسی خود را محفوظ نگهدارید بسیار مفید می باشد.
به هر حال، بهتر است که همواره از تکنیک Code – Behind استفاده کنید.
انواع فایلهای ASP. NET
در برنامه های کاربردی ASP.NET با انواع جدیدی از فایلها روبرو می شوید. برای پرهیز از هر نوع سردرگمی، اجازه دهید آنهایی را که بیشتر مورد استفاده قرار می گیرند معرفی کرده و چگونگی استفاده از آنها را نیز توضیح دهیم.
aspx. پسوندی که در بیشتر مواقع می بینید aspx. می باشد. این نوع فایل برای صفحات وب فرم بکار می رود و مشابه پسوند asp . در ASP کلاسیک می باشد.
ascx: پسوندی که برای ساختن کنترل های User بکار می رود ascx می باشد. کنترل های User یکی از نوآوری های جدید ASP. NET هستند که امکان استفاده مجدد از کدهای نوشته شده را فراهم میکنند آنها به نوعی مانند فایل Include در ASP کلاسیک هستند و می توانند فقط شامل چند برچسب HTML باشند و یا می توانند دستورات پیچیده ای را در برگیرند که نویسنده قصد دارد درصفحات مختلف از آنها استفاده کند . کنترل های سفارشی با استفاده از دستور @ Register به وب فرم های اضافه می شوند بحث بیشتر را به بخش ۴ این کتاب موکول می کنیم.
asmx: پسوند فایل هایی که برای پیاده سازی سرویس های وب مبتنی بر XML بکار میروند asmx میباشد سرویسهای وب مبتنی بر XML می توانند به طور مستقیم و از طریق فایل asmx در دسترس قرار گیرند و یا این فایل asmx . می تواند در خواست رابه یک اسمبلی کامپایل شده که سرویس وب مورد نظر را پیاده سازی کرده است هدایت نماید.
vb: پسوند ماژول های کد Visual Basic، vb می باشد تمام صفحات وب فرم ( فایل های aspx) که به یک برنامه کاربردی NET,Srudio, Visual ( که با زبان Visual Basic)اضافه می شوند یک ماژول در بر گیرنده که با همان نام صفحه وب فرم به همراه خواهند داشت.
es: این پسوند برای ماژول که C# بکار میر ود تمام صفحات وب فرم ( فایل های asmp) که به یک برنامه کاربردی Visual , stjudio, NET ( که با زبان Visual C# نوشته می شود) اضافه می شوند یک ماژول در برگیرنده کد با همان نام صفحه وب فرم به همر اه خواهند داشت.
Global . asax : این فایل همانند فایل Global .asa در ASP کلاسیک برای تعریف متغیرهای سطح برنامه کاربردی و جلسه کاری و رویه های شروع بکار می رود توجه داشته باشید که اگر چه ساختار فایل Global .asaxمیتواند مانند فایل Global .asaxباشد میتوان رویه های شروع مثل Session – Onstart ( که در ASP.NET به صورت Session – start نوشته می شود ) را به طور مستقیم در فایل Global .asaxو درون بلوک < script runat = server > قرار داد Visual Studio. NET این رویه را در یک ماژول vb یا cs پیاده سازی می کند .علاوه بر کارهایی که می توان دریک فایل Global .asa در ASP کلاسیک انجام داد ASP.NET به شما اجازه می دهد که فایل Global .asax فضاهای نامی دلخواه خود را وارد کنید با اسملبی های دیگر پیوند یا لینک برقرار کنید و یا کارهای مفید دیگری انجام دهید و در فصل ۵ در این مورد بیشتر توضیح خواهیم داد.
Web.config: این یکی از فایل های جدید ASP. NET می باشد این فایل مشکلات مربوط به پیگر بندی که یکی از بزرگترین گرفتاریهای برنامه های کاربردی ASP کلاسیک می باشد را حل می کند Web.config یک فایل مبتنی بر XML است که توسط انسان و ماشین قابل خواندن می باشد و تمام تنظیمات یک برنامه کاربردی (یا بخشی از آن ) را ذخیره می کند فایل های Web.config به صورت سلسله مراتبی تفسیر می شوند مزیت این ویژگی در آن است که هر جا لازم باشد می توان تنظیمات پیکربندی را به صورت موروثی مورد استفاده قرارداد همچنین یک فایل Web.config که دریکی از زیر شاخه های برنامه کاربردی شما قرار دارد می تواند تنظیمات موجود در فایل Web.config شاخه بالاتر را باز نویسی کند.
Visual Basic .NET
اگر قبلا با زبان Visual Basic یا (VBScript) Visual Basic Scriping Edition کار کردهاید ولی هیچ تجربه ای با C++,C یا Jscript ندارید کار کردن با NET .. Visual Basic برایتان رضایت بخش تر خواهد بو اگر چه این زبان در مقایسه با Visual Basic 6.0 تغییرات زیادی کرده است ولی طرز نوشتن دستورات آن مانند قبل می باشد .
از نظر تاریخی ، Visual Basic به عنوان یک زبان شی – گرا یا یک زبان سطح – پایین در نظر گرفته نشده است ولی این که نسخه جدید آن برنامه نویسی Multithread و وارث را به طور کامل پوشش داده است، قطعا توجه منتقدین دیرین آن را جلب می نماید چون Visual Basic از دیرباز به عنوان یک زبان محتاط و مطمئن ( از نظر سیستم عامل ) مطرح شده است، نسخه جدید آن نیز همانند گذشته امکان انجام علمیات خطرناک مثل کار کردن یا حافظه را فراهم نمی کند بی شک کسانی که علاقه زیادی به برنامه نویسی سطح – پایین دارند این مسئله را به عنوان یک محدودیت در نظر می گیرند ولی سهولات استفاده از این زبان دلیل خوبی است که آن را برای بسیاری از برنامه های کاربردی مناسب می سازد.
C#
اگر پیش از این با یکی از زبان های C++,C , Jscript یا Java کار کرده باشید، کار کردن با C# برایتان بسیار شیرین تر خواهد بود C# نیز مانند Java از C و C++ مشتق شده است
پنجره ها
در حین کار با NET . Visual Studio با پنجره های متعددی روبرو می شوید که برای کارهایی مختلفی بکار میروند .
پنجره ویراستار کد / طراح : شکل زیر پیچیده ویراستار کد / طراح را در حالت ویرایش HTML نمایش می دهد این پنجره ای است که شما بیشتر زمان خود را برای کار با آن صرف خواهید کرد این پنجره تقریبا تمام ویراستار ها و طراح هایی را که در Visual,NET,Studio بکار میروند در خود جمع می کند.
پنجره Solution Explrer : هر کسی که با Visual Interdev 6.0 کار کرده باشید.حتما با این پنجره آشنا است این پنجره یکی از ابزارهای اصلی برای مدیریت فایل ها و منابع پروژه است، از جمله افزدون ، حذف کردن ، باز کردن ، تغییر نام و یا جابه جا کردن فایل ها، مشخص کردن صفحه یا پروژه شروع کنند ه برنامه تغییر حالت بین نمای کد ویا نمای طراحی یک فایل و مشاهده اطلاعات وضعیت ( به عنوان مثال ، وضعیت کنترل کد اصلی ) فایل ها، شکل زیر پنجره Solution Explorer رانشان می دهد.
پنجره Class View که در شکل زیر دیده می شود لیست تمام کلاس های موجود در ماژول های vb یا cs را به همراه متدها ویژگی ها ، اینترفیس ها و کلاس های پایه آنها نشان می دهد.
پنجره Server Explorer : این پنجره که در شکل زیر نشان داده شده است یکی از ویژگی های جدید Visual Studio . NET می باشد و به شما اجازه می دهد که منابع موجود در کامپیوتر محلی یا سرویس دهند ه های موجود درشبکه را ملاحظه کنید از جمله Counters, Performance , Message , Event Logs, Data Connections . همچنین به شما امکان میدهد که منابع را بکشید و روی وب فرم های یا مولفه های NET رها کنید.
پنجره Propertioes : این پنجره برای تمام کسانی که با یکی از ابزارهای توسعه Visual Studio کار کرده اند آشنا میباشد پنجره Properties دسترسی به ویژگی های شئی که در حال حاضر در پنجره وایرستار یا طراح انتخاب شده است را میسر می سازد شکل زیر پنجره Properties را در حال نمایش ویژگی های کنترل Label که یکی از کنترل های سرویس دهنده ASP,NET میباشد نشان میدهد دقت کنید که این پنجره ویژگی ها را در گروهای مختلفی دسته بندی کرده است و به شما امکان مید هد که هریک از گروه ها را درصورت نیاز باز کرده و به ویژگی ها ی درون آن دسترسی داشته باشید همچنین می توانید روی دکمه Alphabetic که درست زیرمنوی پایین – روی انتخاب شی قرار دارد کلیک کنید تا ویژگی ها بر حسب حروف الفبا مرتب شوند.
جعبه ابزار Visual Studio NET : این جعبه ابزار یکی از دیگر از المان هایی است که با توجه به محیط Visual Interdev طراحی شده است این پنجره امکان دسترسی به تعداد زیادی کنترل ، مولفه و المان HTML را فراهم می کند برای افزودن آیتم های موجود در این جعبه ابزار ( خصوصا بر چسب های HTEM یا المان های متنی که برای پیاده سازی کنترل های یا مولفه ها به کار میروند.)به وب فرم ها یا مولفه ها ، می توانید روی آن آیتم دوبار – کلیک کنید ویا آن را بکشید و درمحل مورد نظر خود رها کنید توجه داشته باشید که بعضی از آیتم ها هنگام قرار گیری بر روی وب فرم نمای گرافیکی ندارند این آیتم ها معمولا در یک پنجره جداگانه که زیر پنجره طراح قرار دارد ظاهر می شوند شکل زیر ، جعبه ابزار را در حال نمایش کنترل های Web Forms نشان می دهد.
توجه
درصورت تمایل می توانید آیتم ها یا گروه های دلخواه خود را به جعبه ابزار اضافه کنید هر یک از گروها به صورت یک سر برگ ظاهر می شوند برای افزودن یک سربرگ روی جعبه ابزار راست- کلیک کنید دستور Add Tab را از منوی زمینه انتخاب کنید و سپس نام این سر برگ جدید را وارد نمایید برای افزودن آیتم های اضافی ، ابتدا دقت کنید که سر برگ مورد نظر تان فعال شده باشد آیتم مورد نظر خود را درپنجره طراح انتخاب کنید وآن را بکشید و روی جعبه ابزار رها کنید همچنین می توانید متن انتخاب شده در پنجره ویراستار کد را بکشید و در جعبه ابزار قرار دهید در صورت نیاز می توانید روی آیتم جدید راست کلیک کنید و با انتخاب دستور Rename از منوی زمینه ، نام آن را تغییر دهید.
پنجره Document Outline : این پنجره که در شکل زیر نشان داده شده است طرح اسناد وب فرم را در هنگام طراحی آنها نمایش میدهد. همچنین نمای دیگری نیز دارد که اشیاء و رویدادهای سرویس گیرنده را نشان میدهد و میتوان برای اضافه کردن توابع پاسخگوی این رویدادهای با فرمت JavaScript از آن استفاده نمود.
پنجره Task List : یکی از ابزار های Visual Inerdev که دست کم گرفته شده و اغلب به طور شایسته بکار گرفته نشده پنجره Task List میباشد این پنجره به برنامه نویسان اجازه میدهد که امور مهم مربوط به Solution فعلی را ردیابی کنند و در صورت نیاز برای یاد آوری امور ضروری آیتم های جدیدی به این لیست اضافه کنند همچنین پنجره Task List می تواند خطاهای شناسایی شده توسط کامپایلر را به شما گوشزد نماید برنامه نویس می تواند وظایف و اموری که در این لیست درج می شوند بر حسب نیاز خود مرتب و دسته بندی کند این دسته ها عبارتند از : وظایف شرح دهنده ( که با TODO ، UPGRADE- TODO و .. نشان داده می شوند ) ، وظایف کاربر ، خطاهایی که در زمان کامپایل و لینگ برنامه (Build) رخ می دهند و میانبر ها ( که با راست کلیک کردن بر روی یک خط از کد در پنجره ویراستار و انتخاب AddTask List shoutcout ساخته می شوند ) شکل زیر ، پنجره Task List را نشان می دهد.
پنجره Output : برنامه نویسانی که با Visual C++ یا Visual J ++ کار کرده اند این پنجره را می شناسد یکی از موارد اصلی کاربرد پنجره Output نشان دادن پیغام های مربوط به پروسه کامپایل و لینگ میباشد که آن را Bulid نیز می نامند برای این که تغییرات اعمال شده به کد در برنامه های کاربردی ASP, NET موثر واقع شوند باید آنها را کامپایل کنید . شکل زیر ، پنجره Output را در پایان عملیات Bulid یک پروژه نمونه نشان می دهد در این حالت پروسه Build به طور کامل و بدون هیچ خطا یا هشداری به پایان رسیده است اگر خطا یا هشداری رخ می داد ، دراین پنجره نشان داده می شد.
نوار ابزار ها :
در محیط Visual Studio NET برای انجام کارها اغلب نوار ابزارها و منوها به طور ترکیبی مورد استفاده قرار گیرند.برای مشاهده لیست کامل نوار ابزارهای موجود می توانید روی قسمت خالی یکی از نوار ابزارها راست – کلیک کنید محیط Visual Studio NET به شما امکان می دهد که همه آیتم های موجود در IDE را به شکل دلخواه خود تنظیم کنیدمی توانید دکمه های موجود بر روی هر یک از نوار ابزارها را حذف نموده و یا جای آنها را تغییر دهید و یا درصورت نیاز دکمه های جدیدی به آنها اضافه کنید و یا یک نوار ابزار را به طور کلی مخفی کنید.
نوار ابزار شامل Standard : این نوار ابزار که تصویر آن در شکل زیرنشان داده شده است شامل دکمههایی برای مدیریت فایلها و پروژهها میباشد؛ از جمله دکمههایی برای باز کردن فایلها یا پروژهها، ساختن فایل یا پروژه جدید و دسترسی به بسیاری از پنجرههای موجود در IDE.
نوار ابزار Formatting: شکل زیر تصویر این نوار ابزار را نشان میدهد. نوار ابزار Formatting شامل دکمههایی برای فرمت کردن متن میباشد، مثل تغییر دادن فونت و اندازه آن، تراز کردن متن و تعیین رنگهای پس زمینه و پیش زمینه. این نوار ابزار تنها زمانی فعال است که در حالت طراحی فرم بخواهید متنی را ویرایش کرده و یا متن جدیدی تایپ کنید.
نوار ابزار Text Editor: این نوار ابزار که در شکل زیر دیده میشود. شامل دکمههایی است که به عملیات ویراستار متن مربوط میشوند؛ مثل دسترسی به ویژگیهای IntelliSense، ایجاد تورفتگی در کد و یا تبدیل کد به متن توضیحی و استفاده از Bookmarkها که برای رهیابی سریع و پرش از یک قسمت به قسمت مورد نظر بکار میروند.
نوار ابزار Debug: تصویر این نوار ابزار در شکل زیر دیده میشود. نوار ابزار Debug شامل دکمههایی است که به دستورات اشکال زدایی برنامه مربوط میشوند، مثل دستورات Stop , Start و Break. همچنین امکان دسترسی به پنجرههای متعددی که در هنگام اشکال زدایی برنامهها مفید هستند را فراهم میکند.
منوها
بسته به عملیاتی که در محیط Visual Studio . NET انجام میدهید، منوهای متعددی پدیدار میشوند که دستورات لازم برای انجام آن کار را در اختیارتان قرار میدهند.
منوی File: منوی File برای ساختن، باز کردن و ذخیره کردن فایلها و پروژهها و همچنین چاپ کردن فایلها و خروج از برنامه بکار میرود.
منوی Edit: این منو برای کارکردن با متن و اشیاء بکار میرود؛ مثل عملیات Cut، Copy و Paste. همچنین شامل دستورات ویژه متن، مثل Find و Replace و دستورات فرمت کردن مثل Make Uppercase یا Meke Lowercase نیز میباشد.
منوی View : منوی View برای دسترسی به پنجرهها و نماهایی که در حال حاضر مخفی هستند مورد استفاده قرار میگیرد. با کمک این منو میتوانید از حالت نمایش کد به حالت طراحی بروید و یا پنجرههایی مثل Task List را باز کنید. همچنین میتوانید نوار ابزار دلخواه خود را ظاهر کرده و بقیه را مخفی نمایید.
منوی Project: منوی Project برای افزودن آیتمها به یک پروژه، افزودن رفرنسا به اسمبلیها یا سرویسهای وب مبتنی بر XML و تنظیم صفحه شروع برنامه و پروژه آغازین در هنگام اشکال زدایی برنامه بکار میرود.
منوی Build: این منو شامل دستوراتی است که برای کامپیایل کردن و در حقیقت انجام پروسه Build بکار میروند.
منوی Debug: منوی Debug برای شروع (Start)، خاتمه (Stop) یا متوفق کردن (Pause) عملیات اشکال زدایی بکار میرود. همچنین با استفاده از این منو میتوانید به پنجرههای مختلفی که در حین اشکال زدایی مفید هستند دسترسی داشته باشید.
منوی Table: این منو برای کار کردن با جدولهای HTML مورد استفاده قرار میگیرد. برای اضافه و یا حذف کردن جدولها، سطرها، ستونها و خانهها و نیز ادغام یا جدا کردن خانهها از این منو استفاده کنید.
منوی Tools: منوی Tools شامل دستوراتی است که برای سفارشی کردن IDE و دسترسی به ابزارهای خارجی مثل OLE/COM Object Viewer و SPY ++ بکار میرود. با استفاده از این منو میتوانید کادر محاورهای Customize که قبلاً در مورد آن توضیح داده شد و کادر محاورهای Options که در قسمت بعد به آن خواهیم پرداخت را باز کنید.
منوی Query: این منو برای ساختن و اجرا کردن پرس و جوها بر روی پایگاههای داده بکار میرود.
منوی Window: این منو رهیابی و مدیریت اسنادی که پنجرههای آنها باز میباشند بکار میرود.
منوی Help: منوی Help برای دسترسی به اسناد راهنمای Visual Studio .NET مورد استفاده قرار میگیرد. همچنین شامل دستوری است که صفحه شروع (Start Page) را باز کند. همانطور که میدانید صفحه شروع به طور پیش فرض در هنگام راه اندازی Visual Studio .NET ظاهر میگردد. بنابراین اگر آن را به طور ناگهانی بستید، با استفاده از این منو میتوانید دوباره آن را باز کنید.
برای این کار را انجام دهید
اجرای فرمانهای Visual Studio .NET و یا دستورات برنامه در محیط Visual Studio .NET با اجرای دستور View > Other Windows > Command Window و یا فشار دادن کلید Ctrl + Alt + A پنجره Command را باز کنید.
تغییر دادن مقدار ویژگیها یک آیتم در محیط Visual Studio . NET ویژگی دلخواه خود را در پنجره Properties پیدا کنید و مقدار آن را تغییر دهید.
افزودن یک آیتم به یک سند در پنجره طراح HTML جعبه ابزار را باز کنید، پالت مورد نظر خود را انتخاب کنید (HTML ، Web Forms و …) و سپس روی آیتم دلخواه خود دوبار ـ کلیک کنید.
افزودن یک میانبر به پنجره Task List در پنجره ویراستار کد روی خط مورد نظر خود راست ـ کلیک نموده و سپس دستور Add Task List Shortcut را از منوی زمینه انتخاب کنید.
تنظیم محیط Visual Studio .NET به شکل دلخواه، مثل تغییر دادن فونت پنجره ویراستار کد و … دستور Tools > Options را اجرا کنید تا کادر محاورهای Options باز شود. پوشه مورد نظر خود را از لیست سمت چپ انتخاب نموده و سپس پارامترهای مربوط به آن را که در قسمت سمت راست پنجره دیده میشوند به طور مناسب تنظیم کنید.
عبارتها، متغیرها و ثابتها
عبارتها، متغیرها و ثابتها بعضی از اساسیترین بلوکهای سازنده برنامههای کامپیوتری هستند، و شما بارها و بارها در برنامههای کاربدی ASP. NET خود از آنها استفاده خواهید کرد.
عبارت ها
عبارتها اصلیترین جزء تمام برنامههای کامپیوتری هستند. آنها به شما اجازه میدهند که:
مقادیر را با یکدیگر مقایسه کنید
محاسبات لازم را انجام دهید
با مقادیر متنی کار کنید یک عبارت می تواند به سادگی آنچه که در زیر مشاهده می کنید باشد:
۱ + ۱
وی یک عبارت مانند این، به خودی خود چندان مفید نیست. بر خلاف انسان، که به آسانی میتوتند عبارت “یک به علاوه یک” را تشخیص دهد و جای خالی مقابل آن را با عدد “دو” پر کند، کامپیوترها توانایی انجام این نوع کارهای منطقی را ندارند. برای این که این عبارت قابل استفاده باشد، باید به کامپیوتر بگوید که فقط یک را با یک جمع نکن، بلکه حاصل آن را در محلی ذخیره کن تا بعداً بتوانیم از آن استفاده کنیم. مثلاً نتیجه را به کاربر نمایش دهیم و یا آن را در یک عبارت دیگر بکار ببریم. این جا است که به متغیرها نیاز داریم.
متغیرها
متغیرها محل ذخیره دادهها هستند. این دادهها میتوانند از نوع عدد، حرف یا یکی از انواع خاص باشند. نوع اطلاعاتی که میتواند به وسیله یک متغیر ذخیره شود به نوع داده آن متغیر بستگی دارد.
مقایسه انواع دادهها
نوع داده VB نوع داده .NET اندازه
Boolean System.Boolean 1 بایت
Byte System.Byte 1 بایت
* System.SByte 1 بایت
Char System.Char 2بایت
Date System.DateTime 8 بایت
Decimal System.Decimal 12 بایت
Double System.Double 8 بایت
Integer System.Int32 4 بایت
* System.UInt32 4 بایت
Long System.Int64 8 بایت
* System.UInt64 8 بایت
Object System.Object 4 بایت
Short System.Int 16 2 بایت
* System.UInt16 2 بایت
Single System.Single 4 بایت
String System . Stuing 10 بایت +(۲×طول رشته)
User-Defined System .Value Type
( inherited) مجموع
Type اندازه اعضا
اعلان کردن متغیرها
قبل از این که بتوانید در برنامه خود از متیغرها استفاده کنید، باید آنها را اعلان کنید. اعلان متغیر، پروسهای است که خصوصیات آن متغیر را مشخص کند (یعنی نوع داده، مدت زمان زندگی ، میدان دید و سطح دسترسی ) اعلان متغیر در زبان Visual Basic .NET به صورت زیر انجام میشود:
Dim x As Integer ‘Declares a variable of type Integer
مدت زمان زندگی (Lifetime)
Liftime به فاصله زمانی بین زمان اعلان متغیر و هنگام نابود شدن آن اشاره میکند. مدت زمان زندگی یم متغیر به محل اعلان آن بستگی دارد. به عنوان مثال، مدت زمان زندگی یک متغیر که درون یک رویه اعلان میشود، به زمان اجرای آن رویه محدود میشود. هنگامی که اجرای این رویه به پایان رسید، این متغیر نابود میشود و حافظه اشغال شده توسط آن آزاد میگردد.
Visual Basic .NET Sub Procedure
Sub HelloWorld ()
Declare procedure – level string variable
Dim HelloString As String
HelloString = “Hello Wold!”
Write HelloStoring to browser
Resoponse. Write (Hello Storing)
Lifetim of Hello Storing will end after next line
End Sub
هنگامی که این رویه کامل شود، متغیر Hello Storing دیگر وجود نخواهد داشت. در واثع مدت زمان زندگی آن به پایان خواهد رسید. اگر HelloStoring خارج از این رویه اعلان می شد، مدت زمان زندگی آن به اندازه مدت زمان زندگی شئ در بر گیرنده آن (نمونهای از کلاسی که این متغیر در آن اعلان شده بود) می بود.
‘Declare module – level storing variable
Dime HelloStoring As String
Visual Basic NET Sub Procedure
Sub HelloWorld ()
Hellostoring = “Hello World !”
Write HelloStoring to browser
Resoponse. Write (Hello Storing)
Lofetime of HelloStoring will not end after next line
End Sub
میدان دید (Scope)
Scope یا میدان دید یک متغیر به همان مدت زمان زندگی آن بستگی دارد. میدان دید یک متغیر، به قسمتی از کد که به آن متغیر دسترسی دارد اتلاق می گردد و به محل اعلان آن متغیر بستگی دارد و در Visual Basic .NET می تواند به صورتهای زیر باشد:
سطح ـ بلوک : به متغیرهایی گفته می شود که درون یک بلوک If …Then ، For … Next ، یا Do … Loop اعلان شوند. اگر چه میدان دید متغیرهای سطح ـ بلوم به بلوکی که در آن اعلان شده اند بستگی دارد، ولی مدت زمان زندگی آنها به اندازه رویهای است که آن بلوک را در بر گرفته است.
سطح ـ رویه : این نوع متغیرها محلی نیز نامیده میشوند، فقط در همان رویه ای که در آن اعلان شده اند قابل رؤیت می باشند.
سطح ـ ماژول : در ماژولها، کلاسها یا ساختمانها (Structures) ، هر متغیری که خارج از رویه ها اعلان شود، متغیر سطح ـ ماژول نامیده می شود. سطح دسترسی این نوع متغیرها به وسیله کلید واژه تعیین کننده دسترسی مشخص می شود.
سطح ـ فضای نامی : متیغرهایی که در سطح ماژول تعریف شوند، ولی سطح دسترسی آنها با واژه Public یا Friend تعیین گردد، به متغیرهای سطح ـ فضای نامی معروف می باشند. این متغیرها برای هر رویهای که در همان فضای نامی (یعنی همان فضای نامی در بر گیرنده ماژولی که متغیر مزبور در آن اعلان شده است) قرار داشته باشد در دسترس می باشند.
آخرین مفهوم مهم در مورد اعلان متیغرها، سطح دسترسی آنها میباشد. سطح دسترسی یک متغیرها تعیین می کند که آیا آن متغیر می تواند در خارج از ماژولی (یا برنامه کاربردیی) که در آن اعلان شده است بکار رود یا خیر. در زبان Visual Basic. NET ، برای تعیین سطح دسترسی متغیرها از کلید واژههای زیر که به جای Dim قرار می گیرند استفاده می شود:
Public: متغیرهایی که با واژه Public اعلان شوند، از هر جایی در همان ماژول یا کلاسی که در ان اعلان شده اند، فضای نامی در بر گیرنده آن ماژول و هر برنامه کاربردی دیگری که به آن برنامه کاربردی اشاره کند در دسترس می باشند. آنها فقط در سطح آن ماژول یا کلاس قابل استفاده می باشند.
Friend : متغیرهایی که با واژه Friend اعلان شوند، از هر جایی در همان ماژول یا کلاسی که در آن اعلان شده اند و همچنین در فضای نامی در بر گیرنده آن ماژول در دسترس می باشند.
Protected: متغیرهایی که با واژه Protected اعلان شوند، فقط درون کلاس در بر گیرنده آنها و یا کلاسهای مشتق شده از آن در دسترس می باشند. واژه Protected فقز برای اعضای کلاسها قابل استفاده می باشد. همچنین می توان آن را همراه با واژه Friend بکار برد.
Private: متغیرهایی که با واژه Private اعلان شوند، فقط درون ماژول، کلاس یا ساختمان در بر گیرنده آنها در دسترس می باشند. در کلاس ها یا ماژولها، اعلان یک متغیر با واژه Dim یا Private اثر یکسان دارد، ولی استفاده از Private برای متغیرهای خصوصی، هدف استفاده از آنها را بهتر مشخص می کند. در ضمن فراموش نکنید که واژه Private درون رویهها قابل استفاده نیست.
ثابتها
ثابت ها شبیه متغیرها هستند؛ ولی با یک تفاوت : هنگامی که یک ثابت را اعلان ومقدار دهی اولیه نمودید دیگر نمی توانید مقدار آن را تغییر دهید .
به ویژه میتوان ثابت ها رابه جای مقادیر حرفی به عنوان آرگومان های متدهای یک مولفه بکار برد . به عنوان مثال، در ADýO کلاسیک، نوع داده پارامترهای یک رویه ذخیره شده به صورت عددی است به خاطر داشتن تمام این مقادیر عددی کاری مشکل و در عین حال غیر ممکن است بنابراین توسعه دهندگان ADO امکان استفاده از ثابت ها به جاری ارقام را فراهم کردند مثل (adInteger,adVarChar)
به عبارت دیگر ، ثابت ها به شما امکان مید هند که بهجای ارقام و مقادیر حرفی ( که به خاطر داشتن آنها مشکل است) از نام هایی استفاده کنید که به خاطر سپردن آنها کار راحت تر و منطقی تری است.
رویه ها
رویه ها یکی از ابزارهای مهم در برنامه نویسی ASP.NET میباشند چون به شما اجاره میدهند که هنگام نوشتن کد، ترتیب اجرای قسمتهای مختلف در زمان اجرا را مشخص کنید. همچنین به شما امکان میدهند که با تقسیم کردن کد به قسمتهای مختلفی که هر یک عملیات خاصی را بر عهده دارند، برنامه خود را بهتر سازماندهی کنید. به عنوان مثال، اگر کدی می نویسید که دو عدد را گرفته و در هم ضرب میکند و سپس نتیجه را بر میگرداند، بهتر است کل آن را به صورت یک رویه در نظر بگیرید. استفاده از یک رویه به شما اجازه میدهد که کد درون آن را از قسمتها یمختلف برنامه فراخوانی کنید. به این ترتیب میتوانید این کد را در جاهای دیگر نیز بکار ببرید و دیگر مجبور نیستید هر بار آن را بازنویسی کنید.
در Visual Basic .NET ، دو نوع رویه وجود دارد: رویههای Sub و رویههای Function.
رویههای Sub
یک رویه sub کد درون خود را اجرا میکند ولی مقداری بر نمیگرداند. کد درون یک رویه Sub، میان گزارههای Sub و End Sub : نوشته میشود؛ به صورت زیر:
‘Sub Procedures that writes output to the browser
Sub WriteHello()
Response. Write (“Hello World! )
End Sub
رویههای Function
رویههای Function در زبان Visual Basic .NET درست مانند رویههای Sub میباشند؛ ولی با یک تفاوت مهم: آنها می توانند مقدار برگردانند. این ویژگی به رویه شما امکان میدهد که:
با برگرداندن یک مقدار عددی، نتیجه عملیات انجام شده را (که ممکن است مطلوب یا نامطلوب باشد) گزارش دهد.
دادهعا را به صورت یک ارایه یا یک شئ DataSet (که از اشیاء ADO. NET میباشد) برگرداند.
نتیجه انجام یک دستور شرطی را به صورت True یا Flase برگرداند.
رویهای که در مثال زیر مشاهده میکنید، دو پارامتر رشتهای دریافت میکند، یکی از آنها را به انتهای دیگری میچسباند و سپس نتیجه را به صورت یک رشته بر میگرداند:
Functin Concatstring (ByVal Stringl As String _
ByVal String2 As Storing)As String
ConcatStrings = Stringl & String2
End Function
توجه کنید که چون خود این رویه Function از نوع String تعریف شده است، نیازی نیست برای نگهداری نتیجه مجموع دو رشته ورودی یک متغیر محلی تعریف کنیم در عوض، فقط نتیجه کار را به نام تابع نسبت میدهیم تا آن را به رویه فراخوان باز گرداند.
کنترل جریان برنامه
یکی دیگر از مباحث مهمی که در برنامه نویسی مطرح می شود، مسئله کنترل جریان برنامه است شما با کنترل کردن جریان برنامه می توانید مشخص کنید که در زمان اجرا کدام قسمت از برنامه و به چه ترتیبی به اجرا در آید. گزارههایی که برای کنترل جریان برنامه بکار میروند. عبارتند از: گزارههیا شرطی (شامل If و Case)، حلقهها (شامل For … و Do …Loop) و گزارههایی که برای مهار کردن خطاها استفاده میشوند.
گزاره If
گزاره If برای پیاده سازی دستورات شرطی منطقی بکار میروند و گاهی آن را ساختار تصمیم گیرنده نیز مینامند. If یکی از گزارههایی است که در برنامه نویسی زیاد مورد استفاده قرار میگیرد. این گزاره به شما امکان میدهد که یک شرط مشخص را بررسی نموده و در صورت صحت نتیجه. یک بلوک از کد را به اجرا در آورید. کد زیر، یکی از متغیرهای موجود در Session به نام LoggedInUserName را بررسی میکند. مقدار این متغیر رد صفحه Login یک برنامه کاربردی ASP.NET تعیین میشود. در صورتی که مقدار این متغیر خالی باشد، به این مفهوم است که کاربر نام خود را وارد نکرده است. در این حالت متد Redirect کاربر را دوباره به صفحه Login.aspx هدایت میکند.
If Session (“LoggedInUserName”) “ “ Then
Response. Redirect (“Login.aspx”)
End If
در زبان Visual Basic .NET، هر گزاره If باید با یک گزاره End If همراه باشد تا انتهای بلوک شرطی به طور کامل برای کامپایلر مشخص شود. در حالتی که شرط مورد نظر بر قرار نباشد نیز می توانید کدی را برای اجرا تعیین کنید. به این منظور باید گزاره Else استفاده کنید. برای بررسی بیش از یک شرط، میتوانید از گزاره ElseIf نیز کمک بگیرید. این تکنیکها در مثال زیر بکار برده شدهاند:
If Session (“Logged InUserName”) = “ “ Then
Response. Redirect (“Login. aspx”)
ElseIf Session (“LoggedInUser Name”) = “SuperUser” Then
Response. Write (“You are a superuser!”)
Else
Response. Write (“Hello, “ & Session (“LoggedInUserName”) & “ ! “ )
End If
گزاره Select Case
یکی دیگر از گزارههای شرطی که به طور مکرر استفاده می شود، گزاره Select Case می باشد. این گزاره در شرایطی مفید است که شما بتوانید نتیجه شرط مورد بررسی را به چند مقدار مشخص محدود کنید. به عنوان مثال، کدی که در زیر نوشته شده است، آیتمی را که کاربر از یک کنترل LisBox انتخاب کرده است بررسی می کند و در هر حالت عملیات مناسب را انجام می دهد.
Dim ColorString As String
colorstring = Request . Form (“Colorse”)
select case colorString
case “Red”
Response . Write (“ “ )
Response . Write (“You chose Red”)
Response. Write (“ < / font > “)
case “Green”
Response. Write (“ < font color = ‘ “ & colorString & “ ‘ > “)
Response. Write ( “ You chose green”)
Response. Write (“ < / font > “)
case “Blue”
Response. Write (“ < font color = ‘ “ & colorString & “ ‘ > “)
Response. Write (“ You chose Blue”)
Response. write (“ < font > “)
End Select
حلقههای تکرار
حلقههای تکرار یکی از ویژگیهای مفیدی هستند که برای اجراری مکرر یک کد بکار میروند. شما میتوانید تعداد دفعات تکرار را به طور صریح و در زمان نوشتن کد مشخص کنید، و یا تعیین آن را به زمان اجرای برنامه موکول کنید. همچنین میتوانید اشیاء موجود در یک کلکسیون را گرفته و روی تک تک انها عملییات مورد نظر خود را انجام دهید. گزارههای متعددی برای ساختن حلقهها وجود دارد که طرز نوشتن آنها با یکدیگر متفاوت بوده و هر یک از آنها در شرایط بخصوصی مفید میباشند. این گزارهها عبارتند از:
حلقههای For …
حلقههای For Each … ، که نوع خاصی از حلقههای For … هستند
حلقههای Do… ، که شامل Do While … و Do Until … می باشند
حلقههای While … End While
استفاده از حلقههای For …
حلقههای For … برای اجرای مجموعهای از گزارهها به تعداد دفعات مشخص بکار میرود. تعداد دفعات اجرای این گزارهها را یمتوان به طور صریح مشخص کرده و یا از یک عبارت محاسباتی که یک مقدار عددی بر میگرداند استفاده نمود. مثال زیر (که از آموزش فشرده ASP.NET گرفته شده است)، از یک حلقه For … که ۷ بار تکرار میشود استفاده میکند. این کد در هر بار، پیغامی را نشان میدهد که اندازه فونت آن معادل مقدار شمارنده حلقه میباشد:
< % For I = 0 To 7 % >
< font size = “% I %> “> Welcome to ASP.NET < /font >
< % Next % >
استفاده از حلقههای For Each
حلقههای For Each نوع خاصی از حلقههای For … هستند که امکان گردش در میان کلکسیون یا گروهی از المانها را برای شما فراهم میکنند. مثال زیر، گردش در میان آیتمهای یک آرایه را نشان میدهد:
Dim Dates (2) As Date
Dim DateItem As Data
Dates (0) = Now. Data
Dates (1) = Now. AddDays (7). Date
Dates (2) . Now. AddYears (1). Date
For Each DateItem In Dates
Response. Write (“Date is : “ & DateItem. ToString & “ .
“)
Next
استفاده از حلقههای Do…
حلقههای Do … به شما امکان میدهند که اجرای مجموعهای از گزارهها را تا زمانی که شرط مورد نظر بر قرار باشد تکرار کنید. حلقههای Do… (که به حلقههای Do …While نی زمعروف میباشند) به شکلفهای مختلفی مورد استفاده قرار میگیرند. مثال زیر، سادهترین حالت استفاده از این نوع حلقه را نشان میدهد:
< %
Do While …Lop syntax:
Dim I as Integer = 1
Do While I < = 5
% >
“Welcome to ASP.NET font>< br>
<%
i = i + 1
Loop
% >
استفاده از حلقههای While … End While
حلقههای While … End While درست مانند حلقههای Do While عمل میکنند و به شما اجازه میدهند که اجرای مجموعهای از دستورات را تا هنگامی که شرط مورد نظر بر قرار باشد تکرار کنید. حلقههای While … به اندازه حلقههای Do … انعطاف پذیر نیستند، چون امکان استفاده از Until را فراهم نمیکنند همچنین به شما اجازه نمیدهند که شرط را به انتهای حلقه منتقل کنید یکی از مزای حلقههای While … End While سادگی طرز نوشتن آنها است که برای برنامه نویسان مبتدی بسیار مناسب میباشد. اگر بخواهیم حلقه مثال قبل را با استفاده از While …. بنویسیم به شکل زیر خواهد شد:
< %
‘While …End While syntax :
Dim I as Integer = 1
While I < = 5
%>
“Walcome to ASP.NET < / fot >< to >
< %
i = i + 1
End While
% >
مهار کردن خطاها
یکی از مسائلی که تمام برنامه نویسان هنگام توسعه برنامههای کاربردی خود با آن مواجه میشوند، سروکار داشتن با خطاهای اجتناب ناپذیری است که به هر حال رخ میدهند. خطاهای موجود در برنامهها به یکی از سه گروه زیر تعلق دارند:
خطاهای نحوی: این نوع خطاها ناشی از نوشتن نادرست دستورات و یا حذف یک کلید واژه مهم (مثل ننوشتن End If در انتهاب بلوک شرطی)، و یا اشتباهات نوشتاری دیگری که به زبان برنامه نویسی مورد استفاده مربوط میشوند میباشند. خطاهای نحوی معمولاً توسط IDE شناسایی شده و در هنگام طراحی برنامه به سادگی قابل رفع میباشند.
خطاهای زمان اجرا: این نوع خطاها، خطاهایی هستند که پس از کامپایل شدن کد و در زمان اجرای برنامه رخ میدهند. خطاهای زمان اجرای ناشی از کدهایی هستند که از نظر کامپایلر صحیح میباشند ولی توانایی اجرا با مقادیر فعلی را ندارند. به عنوان مثال، کدی که یک متغیر Integer را بر یک متغیر Integer دیگر تقسیم میکند از نظر کامپایلر اشکالی ندارد و صحیح است، ولی اگر در زمان اجرا مقدار متغیر دوم صفر شود، یک خطا رخ میدهد که آن را خطای زمان اجرا میگوییم.
خطاهای منطقی: گاهی اوقات یک برنامه هیچ نوع خطای نحوی و یا خطای زمان اجرا ندارد و در بیشتر مواقع درست عمل میکند. ولی در یک حالت استثنایی و بر اساس مقادیر ورودی، نتایج نادرست و نامطلوب تولید میکند. شناسایی و رفع این نوع خطاها ممکن است بینهایت مشلک و طاقتفرسا باشد؛ چون اجرای برنامه را متوقف نمی سازند.
آنجه که در مورد هر سه نوع خطا اهمیت دارد، مهار کردن آنها است تا مبادا موجب نارضایتی کاربران برنامه شوند. گام اول در این راه، پیشگیری است. دو روش جلوگیری از ایجاد هطا در برنامههای Visual Basic .NET، استفاده از گزارههای Option Exlicit و Option Strict میباشد. (این دو گزاره به طور پیش فرض در محیط Visual Strudio .NET فعال می باشند). اگر قبل از اعلان یک متغیر سعی در استفاده از آن داشته باشید، فعال بودن گزاره Option Explicit سبب بروز خطا از سوی کامپایلر خواهد شد. این ویژگی در شرایطی که در تایپ کردن نام متغیرها دچار مشکل شوید بسیار به شما کمک میکند. فعال بودن Option Strict نیز از تبدیل انواع داده به یکدیگر که سبب از دست رفتن اطلاعات شود جلوگیری میکند. توجه داشته باشید که گزاره Option Strict به طور ضمنی گزاره Option Explicit را شامل میشود؛ بنابراین Option Strict نیز در هنگام استفاده از یک متغیر اعلان نشده سبب بروز خطا میشود.
مثال زیر، استفاده از Option Strict را نشان میدهد:
Option Strict On
Dim MyInt As Integer
Dim MyDouble As Double
MyDouble = 3.14159
MyInt = MyDouble ‘This line will cause an error at compile time
هر دو گزاره Option Explicit و Option Strict باید در بالای ماژولی که در آن مورد استفاده قرار میگیرند و قبل از هر دستور دیگری نوشته شوند.
آشنایی با مبانی برنامهنویسی شئ ـ گرا
یکی از مباحثی که ممکن است برای برنامه نویسان Visual Basic و به طور کلی کسانی که به تازگی پا در عرصه برنامه نویسی گذاشته اند جدید باشد، برنامه نویسی شئ ـ گرا است. در این قسمت مروری بر برنامه نویسی شئ ـ گرا، و به خصوص آن گونه که به زیر ساخت NET. مربوط میشود خواهیم داشت. برنامه نویسی شئ ـ گرا یکی از مباحث مهم و ضروری است؛ بنابراین به شدت توصیه میشود که در این زمینه بیشتر مطالعه نمایید و سعی در یافتن مطالب پیشرفتهتر داشته باشید. راهنمایی که برای برنامه نویسان Visual Basic .NET به همراه Visual Studio .NET ارائه شده است شامل یک بخش کامل در مورد برنامهنویسی . شئ ـ گرا است.
استفاده از کلاسها به عنوان محفظههای کد
کلاسها واحد اصلی یک برنامه کاربردی شئ ـ گرا هستند. در Visual Basic .NET یا C# ، یک کلاس معمولاً در بر گیرنده تعاریف ویژگیها، متدها و توابع پاسخ دهنده رویدادها (که نوع خاصی از متدها هستند) می باشد. اغلب با استفاده از فضاهای نامی، کلاس ها را به گروه های جداگانه تقسیم می کنند. یک فضای نامی می تواند شامل کلاس ها و فضاهای نامی دیر باشد. به عنوان مثال، فضای نامی System.Web که توسط .NET Framework SDK تعریف شده است، نه تنها شامل کلاسهایی از قبیل HttpRequest ، HttpResponse و HttpServerUtility (که معادل Request ، Response و Server در ASP کلاسیک هستند) میباشد، بلکه چند فضای نامی دیگر از جمله System. Web. UI ، System.Web.Caching و System.Web.SessionState را نیز در بر میگیرد که هر یک از آنها نیز شامل کلاسخا و فضاهای نامی دیگر میباشند.
معماری .NET با استفاده از کلاسها و فضاهای نامی، یک ساختار شئ ـ گرا برای توسعه برنامههای کاربردی قدرتمند فراهم آورده است که اشکال زادایی و نگهداری آنها نیز بسیار آسانتر میباشد.
مرجع سریع فصل ۴
برای این کار انجام دهید مثال
اعلان یک متغیر در از کلید واژه Dim به Dim MyInt As Interger
Visual Basic.NET همراه نوع داده موردنظر
خود ا ستفاده کنید.
اعلان یک متغیر در #C پس از نوشتن نوع داده موردنظر، نام متغیر را قید نمایید. int MyTnt
تعیین سطح دسترسی به یک متغیر یا یک رویه در
#C یکی از کلید واژههای
Public، private،
protected،internal
را بکار ببرید. public void myproc ( )
{
}
مهار کردن خطاها به روش ساختار یافته در
NET.Visual Basic یک بلوک
Try…Catch…Finally
بسازید.
مهار کردن خطاها به
روش ساختار یافته در
#C یک بلوک
Try…Catch…Finally
بسازید.
مشتق کردن یک کلاس از
یک کلاس پایه در
Visual Basic.NET از کلید واژه Inherits
استفاده کنید. class Dog
Inherits Animal
End Class
مرجع سریع فصل ۴
برای این کار را انجام دهید مثال
مشتق کردن یک کلاس از یک کلاس پایه در #C نام کلاس پایه را پس از
یک علامت: به دنبال نام
کلاس جدید تایپ کنید. class Dog : Animal
{
}
ClsQuestion
قبل از آنکه این کلاس توضیح دهیم بهتر است نگاهی به جدول Questions داشته باشیم.
intAnswerNo StrD Strc StrB StrA Strauestion IngQvestion
همانطور که میبینیم این جدول شامل شماره سوال، شرح سوال، گزینههای A و B و C و D و جواب درست میباشد.
حال می پردازیم به ClsQuestion:
این کلاس شامل متغیرها:
– LngQuestionNo شماره سوال
– str Question شرح سوال
A – Str A
B -Str B
C -StrC
D – StrD
– intcurrect جواب درستی که کاربر داده است.
– intFault جواب اشتباهی که کاربر داده است.
intforbear کاربر از دادن جواب صرف نظر نموده است.
– int Answer گزینه صحیح
که تمامی آنها به شکل priuate تعریف شدهاند و می توان هم به آنها مقدار داد و هم مقدار خواند.
ـ توجه: در کلاس Attachment ؛ * ، ** ، *** را توضیح دادیم که از مفهوم آنها در این کلاس هم استفاده شده است.
۱ ـ Function save to DB ()
*** : sp که در اینجا فراخوانی می شود. SpInsertIntblQuection است که هدف از این Sp پر کردن رسته سوال و گزینههایش، همچنین جواب صحیح با مقادیر که به آن می دهیم می باشد.
بطور کلی هدف ما از این Function این است که بتوانیم سوالاتی را اضافه کنیم را همراه با گزینهها و جواب درست به DB اضافه و ذخیره نمائیم.
Function UpdateDB :
*** : در اینجا spupdate tblQuestion فراخوانی می شود. بدین شکل که وقتی شماره یک سوال را انتخاب کنیم بتوانیم آنرا ویرایش کنیم و فیلدهای آن را با مقادیر جدید پر کنیم.
***
مقادیر جدید را در رشتههای مربوط به آن می گذاریم؛ این تابع پس از اجرا شدن مقداری بر ایمان بر نمی گرداند.
Delete From DB () :
*** : SpdeletFromtbl Qvestion فراخوانی می شود که در اینجا یک شکاره سوال را گرفته و مشخصات آنرا بطور کل حذف می کند.
هدف از این Function هم این است که استاد بتواند در صورت نیاز اقدام به حذف سئوال طرح شده مورد نظرش نماید.
clsQuestion list
شکل کلی این کلاس شبیه کلاس قبلی است در اینجا یک قیف خصوصی (-arllist) از نوع ارایه (trraylist () ) تعریف می کنیم در این کلاس فقط تابع Fill FromDB تعریف شده که پس از بر قراری ارتباط بوسیله Scon و فراخوانی Sp مربطه (SpselectFrom tblQvstion) سپس متغیر dr را از نوع Sql Data Reader تعریف می کنیم.
Scmd . ExecteReader می کنیم (یعنی به وسیله متغیر Scmd آنرا اجرا می کنیم و نتیجه را بر می گردانیم) حاصل را در dr می گذاریم
حال بوسیله یک حلقه while از dr می خوانیم و تمامی مقادیر (سوال، گزینهها، جواب درستی و جواب غلط و سوالی که صرفنظر شده و همچنین گزینه صحیح) را داخل متغیر Qustion می گذاریم. (متغیر را از نوع کلاس Qvstion تعریف نمودیم) و تمامی فیلدهای خوانده شده را به – arllist اضافه می کنیم تا زمانیکه مقداری در dr نباشد.
جریان دادههای ASP.NET
شما میتوانید به دو روش، امنیت را در برنامههای کاربردی ASP.NET اجرا کنید. اولین روش به مجوزهای امنیتی ویندوز و IIS بستگی دارد. از آن جا که IIS یکبار اعتبار کاربر را تشخیص داده است و نشانهای به منظور استفاده و برنامه کاربردی منتقل شده است، این نوع امنیت را تقلید (impersonation) مینامند. به دلیل این که شما برای پردازش صلاحیت امنیت،به محیط ویندوز وابسته هستید، استفاده از سیستم پرونده NTFS برای تنظیم مجوزها در منابع شما، مهم میباشد.
برای این روش، توالی رخدادهای زیر روی میدهد:
۱- کاربر برای دستیابی به صفحهای در خادم وب تلاش میکند.
۲- IIS، با استفاده از دستیابی ناشناس تشخیص اعتبار مجتمع، تلخیص یا اولیه ویندوز، اعتبار مشتری را تشخیص میدهد.
۳- اگر مشتری دقیقاً اعتبار را تشخیص دهد، IIs درخواست منبع آغازی را به برنامه کاربردی ASP.NET( به شکل یک نشانه) منتقل میکند.
۴- برنامه کاربدری ASP.NET، با استفاده از نشانهای که برای آن ارسال شده است، از مشتری تقلید نموده و از مجوزهای NTFS که به منابع سرور (خادم) برای پذیرش دستیابی نسبت داده میشوند، استفاده میکند.
۵- اگر دستیابی از طریق مجوزهای NTFS پذیرفته میشود، برنامه کاربردی ASP.NET منبع درخواستی را از طریق IIS به کاربر باز میگرداند.
دومین روش اداره درخواستهای امنیت،تشخیص اعتبار ASP.NET نامیده میشود و به امنیت از پیش تعیین شده ASP.NET بستگی دارد. در این نوع امنیت، یک برنامه کاربردی از یک cookie (کلوچه) که توسط ASP.NET ایجاد شده است و معمولاً نام کاربر و اطلاعات کلمه عبور را ذخیره مینماید استفاده میکند. سپس برنامه کاربردی ASP.NET، این اطلاعات را دریافت نموده و صحت آنهارا تعیین میکند. برای این که نوع تشخیص اعتبار به خوبی عمل کند، دستیابی ناشناس موجود در جعبه IIS را فعال مینمایید. به جز این مورد، IIS سعی خواهد کرد تا اعتبار کاربر را از طریق روشهای خاص خود (قبل ازارسال مجدد درخواست به برنامه کاربردی ASP.NET شما) تشخیص دهد.
برای تشخیص اعتبار ASP.NET، به درخواستهای منبع خام، مجموعه رخدادهای زیر را مورد بررسی قرار میدهند:
۱- کاربر سعی دارد تا به صفحهای در خادم وب دسترسی پیدا کند.
۲- IIS این درخواست را دریافت نموده و اعتبار آن را تشخیص میدهد یا اگر دستیابی ناشناس فعال باشد، درخواست مورد نظر را به برنامه کاربردی ASP.NET ارسال مینماید.
۳- ارگ authenication (کلوچه تشخیص اعتبار) رایانه مشتری وجود داشته باشد، اطلاعات موجود در cookie با اطلاعات ترکیببندی امنیت (که با برنام کاربردی ASP.NET ذخیره شده است)، مقایسه میشود. چنانچه اعتبار صلاحیت تشخیص داده شود، درخواست مزبور پردازش میگردد و ASP.NET، صفحه را به کاربر ارسال میکند.
اگر authentication در دستگاه مشتری وجود نداشته باشد، کاربر مجدداً به صفحه برقراری ارتباط هدایت میشود که توسط تنظیمات ترکیببندی برنامه کاربردی ASP.NET تعریف شده است. حال،کاربر باید نام کاربر و کلمه عبور خود را وارد نموده و آنها را برای تشخیص اعتبار ارائه دهد.
۴- سپس برنامه کاربردی ASP.NET،اعتبار کاربر را میسنجد معمولاً این امر از طریق عمل اعتبار سنجی کاربر انجام میشود و security cookie (کلوچه امنیت) را به رایانه کاربر میفرستد. اگر اعتبار سنجی کاربر رد شود، پیام عدم دستیابی در صفحه نمایش ظاهر میگردد.
۵- چنانچه اعتبار کاربر از طریق برنامه کاربردی ASP.NET تشخیص داده شود، پردازش به مرحله سوم باز میگردد تا مشاهده کنید که آیا دستیابی به منبع درخواستی یا صفحه مجاز است یا خیر. اگر جواب منفی باشد، یک پیام عدم امکان دستیابی در پرده نمایش ظاهر میشود.
معماری امنیت ASP.NET، دو نوع میباشد. اولین مؤلفه، مجتمع سازی آن با IIS است. مؤلفه دوم در فهرست ریشه برنامه کاربردی ASP.NET،در پروندهای به نام web.config قرار دارد. این پرونده، تنظیمات ترکیببندی مختلفی را ذخیره میکند که شامل تنظیمات امنیت برای برنامه کاربردی شما میباشد.
امنیت IIS و ویندوز
اولین مرحله ایمن سازی در برنامه کاربردی، با سرور (خادم) وبی که میزبان سایت (محله) شما میباشد، آغاز میگردد. در اکثر موارد، خادم وب مزبور Internel Information Server 5.0 (خادم اطلاعاتی اینترنت) میباشد که به طور خودکار توسط خادم ویندوز ۲۰۰۰ نصب میشود و میتواند به طور دستی به ویندوز ۲۰۰۰ اضافه گردد. IIS، روشهای مختلفی برای ایمن سازی سایت وب شما ارائه میدهد. این گزینهها در پایان زبانه Directory Security پنجره Prorerties مربوط به سایت شما قرار میگیرند. برای دستیابی به زبانه Directory Security، دستورالعملهای زیررا انجام دهید:
۱- فرمان StartProgramsAdministrative Tools را اجرا کنید. سپس،گزینه Internet Services Manger را انتخاب نمایید.
۲- هنگامی که پیشانه IIS ظاهر میشود، علامت بعلاوه را در سمت چپ رایانه بسط دهید. روی گزینه Default Web Site کلیک راست نموده و گزینه properties را انتخاب کنید.
۳- در نهایت در پنجره Default Web Site Properties، روی زبانه Directory Security کلیک نمایید.
محدودیتهای نام حوزه و نشانی IP
در IIS، میتوانید دستیابی نامهای حوزه و نشانیهای IP خاص مربوط به سایت خود را پذیرفته یا رد کنید.
طبق پیش فرض، IIS دستیابی به تمام نشانیهای IP و نامهای حوزه (که سایت شما را مشاهده مینمایند) را میپذیرد مگر این که یک نشانی IP یا نام حوزه خاص که میخواهید اجرا شود را مشخص کنید. همچنین، میتوانید برای عدم دستیابی به تمام نشانیهای IP و نامهای حوزه (به غیر از آنهایی که مشخص کردهاید)، IIS را تنظیم نمایید. این روش محدودیت بیشتری دارد و تنها اگر اطلاعاتی در سایت خود دارید که باید برای تعداد کمی از کاربران قابل دسترسی باشد، توصیه میشود.
تشخیص اعتبار ویندوز از طریق IIS
یک سازوکار امنیت دیگری که در IIS تعبیه شده است، قابلیت تشخیص اعتبار کاربران میباشد.
۱- اولین سطح، دستیابی ناشناس anonymous access میباشد. اگر جعبه محاورهای Anonymous Access فعال شود، اعتبار تمام کاربران برای محلهای که از احساب از پیش تعیین شده ویندوز، یعنی IUSR_computername استفاده میکنند، تشخیص داده میشود ( در حالی که computername، نام سرور وب شما است)، یک ویژگی عالی IIS،توانایی آن در ایجاد یک کلمه عبور منحصر به فرد برای این حساب میباشد و این بدان معناست که کاربران با امتیازات اداره خام (server administration)، نیازی به ایجاد یک کلمه عبور مناسب برای حساب کاربر اینترنت شما ندارند یا با تغییرات لازم کلمه عبور در شبکههایی که به خوبی از آنها نگهداری میشود، کار میکنند.
۲- دومین سطح تشخیص اعتبار، basic (پایه) میباشد. این نوع تشخیص اعتبار، صلاحیت برقراری ارتباط را به شکل یک نام کاربر و کلمه عبور، به کاربر اعلان میکند. این روش خوبی برای ایمن سازی محتویات وبی سایت (محله) شما میباشد: با این وجود، اشکال اصلی چنین روشی اینست که نام کاربر و کلمه عبور به عنوان متنی خوانا (یعنی بدون هیچ رمز نویسی) برای تشخیص اعتبار به خادم وب، فرستاده میشوند. این بدان معناست که هر فردی که دارای یک بستک یاب، (نرمافزاری که محتویات بستکهای TCP/IP را کنترل نموده و آنها را آشکار میکند) و توانایی خواندن بستکهای باشد، میتواند به سایت شما دسترسی پیدا کند.
برای غلبه براین مشکل، باید با استفادهاز Secure Sockets Layer (درگاه ۴۴۳)، که به آن SSL هم میگویند، اتصالی ایمن با خادم وب خود ایجاد نمایید. هنگامی که https:// را در ابتدای یک URL میبینید، پی میبرید که سایت وب در حال استفاده از SSL میباشد. SSL، از یک سیستم کلید عمومی برای رمزنویس تمام دادههایی (که بین خادم وب و رایانه کاربر منتقل میشود) استفاده میکند. همچنین، اعتبار رایانه کاربر را تشخیص میدهد تا تضمین نماید که هیچ فرد دیگری موجودیت درون خطی او را ندزدیده است. حال، نکته مهمی که باید به خاطر داشته باشید اینست که بهرهبرداری کامل از تشخیص اعتبار اصلی در سایت وب شما، بسیار اساسی است.
۳- سومین سطح تشخیص اعتبار در digestauthentication,IIS 5.0 (تلخیص) میباشد. این روش شبیه به تشخیص اعتبار basic است (به جز کلمه عبور که به عنوان متنی خوانا به خادم وب فرستاده نشده است). درعوض، قبل از این که به خادم بازگردانده شود، به شکل یک مقدار درهم، رمز نویسی میشود.
تشخیص اعتبار تلخیص، مراحل مختلفی دارد:
۱- خادم (سرور) وب، اطلاعات معینی را برای مرورگر ارسال میکند تا درفرآیند تشخیص اعتبار مورد استفاده قرار گیرد.
۲-مرورگر وب، این اطلاعات و سایر اطلاعاتی که فراتر از قلمرو این کتاب میباشند را به کلمه عبور، نام کاربر و سایر اطلاعات اضافه نموده و یک درهم سازی در آنها اجرا میکند.
۳- درهمسازی حاصله به خادم وب باز گردانده میشود.
۴-خادم وب، اطلاعات ارسالی به مرورگر را به کپی متن خوانای کلمه عبوری میافزاید که در خادم وب ذخیره شده است و همان درهم را در آن اجرا میکند.
۵- خادم وب، مقدار درهم ساز که توسط مرورگر به آن فرستاده شده است را با مقدار درهم ساز که درخادم محاسبه کردهاست. مقایسه میکند.
۶- اگر مقادیر درهم ساز یکسان باشند، دستیابی پذیرفته میشود. درغیر این صورت، خطایی به مرورگر بازگردانده میشود و کاربر باید مجدداً اعتبار را تشخیص دهد.
موضوعات خواندنی داده های در ADO.NET
موضوع DataSet
موضوع اصلی دستکاری داده ها در ADO.NET، مجموعه داده ها می باشد. موضوع DataSet می تواند به عنوان یک نهانگاه درون حافظه داده ها (که از نظ رساخت شبیه یک پایگاه داده ها می باشد) تعریف شود. این ممضوع به مجموعه داده ها خیلی شباهت دارد به این دلیل که از موضوعات DataTable تشکیل شده است (که می توانند با استفاده از موضوعات DataRelation به ترتیب با یکدیگر مرتبط شوند) موضوعات DataTable در اندازه و ساختار بسیار شبیه به جدول های سنتی مجموعه داده ها می باشند و موضوعات DtaRelation با روابط کلدی خارجی بسیار مشابهند.
بر خلاف در نگارش های قبلی ADO، موضوع dataSet در ADO.NET داده ها را فقط شبیه XML و فقط در یک محیط بی حالت ذخیره می نماید. فایده اصلی ایجاد داده های بی حالت اینست که توسعه گرانی که از سایر زبان های برنامه نویسی فعال شده توسط XML، نظیر جاوا استفاده می کنند، م یتوانند در برنامه های کاربردی خود از مجموعه داده های XML شما استفاده نمایند.
برای استفاده از موضوع dataSet، شما باید در برنامه کاربردی خود، نکامکده (System.Data) را قرار دهید. برای انجام این کار، دستور دستور نحوی زیر را به کار برید:
< % import system. Data %>
هنگامی که این حکم را در فرم (برگه) وب خود بوجود آورید، به موضوع DataSet و همه خصوصیات، شیوه ها و رخدادهای متناظر با آن دسترسی پیدا می کند. نامکده System.data دستیابی به موضوعات خاص (که در اینجاد یک مجموعه داده ها به کار برده شده است) را نیز فراهم می سازد. این موضوعات، DataTable، DataAdapter، DataRow ، DataColumu و DataRelation هستند. هر یک از این موضوعات بعداً به طور مفصل تر در این ساعت توضیح داده می شوند.
خصوصیات موضوع DataSet
نام خصوصیت توضیح
Case Sensitive مشخص می کند که آیا مقایسه های رشته ای در موضوعات DataTable حساس به مورد هستند یا خیر.
DataSetName نام موضوع DataSet را مشخص می نماید.
DafaultviewManager یک نمای سفارشی از داده ها که حاوی موضوع DataSet است را باز می گرداند. این نمای سفارشی ممکن است باعث پالایش، جستجو یا ناوبری در خصوصیت سفارشی DataViewManager شود.
EnforceDonstraints تعیین می کند که آیا قواعد تقید هنگام بهنگام سازی داده ها ادامه پیدا می کند یا خیر.
Extendedproperties مجموعه اطلاعات سفارشی کاربر را باز می گرداند.
HasErrors مقداری را باز می گرداند که نشان می دهد که آیا در کل سطرهای هر یک از جدول های موضوع DataSet خطاهایی وجود دارد یا خیر.
Locale اطلاعات محلی که برای مقایسه رشته ها در جدول مورد نظر به کار برده می شوند را مشخص می کند
Namespace نامکده موضوع DataSet را مشخص می نماید.
Prefix پیشوند XML که بر فضای نام موضوع DataSet نام مستعار می گذارد را مشخص می کند.
Relations مجموعه ارتباطی که جدول ها رالینک (پیوند) می دهند و باعث ناوبری در جدول هال والد به ولد می شود را باز می گرداند
Tables مجموعه جدول های حاوی موضوع DataSet را باز می گرداند.
شیوه های موضوع DataSet
Acceptchenges همه تغییرات ایجاد شده در این موضوع DataSet را (هنگام بارگذاری یا آخرین بار که Acceptchanges فراخوانی شده بود) تصدیق می کند
BeginInit ارزش دهی آغازی یک موضوع که در یک فرم (برگه) یا توسط مؤلفه دیگری استفاده می شود را شروع می کند. ارزش دهی آغازی در زمان اجرا رخ می دهد
Clear موضوع DataSet مربوط به همه داده ها (توسط انتقال تمام سطرهای موجود در جدول ها) را واضح می نماید
Clone ساختار موضوع DataSet را همگن می کند که شامل مهمه شکلواره DataSet، روابط و تقیدها می باشد
Copy از ساختار و داده ها مختص این موضوع DataSet کپی (رونوشت گیری) می کند.
Dispose به منابع به کار رفته توسط مؤلفه مزبور رسیدگی می نماید
EndInit ارزش دهی آغازی یک موضوع DataSet که در یک فرم به کار می رود یا توسط مؤلفه دیگری استفاده می شود را به پایان می رساند این ارزش دهی آغازی در زمان اجرا رخ می دهد
Getchanges یک کپی (رونوشت) از موضوع DataSet را باز می گرداند که حاوی تمام تغییرات ایجاد شده در آن است (از زمانی که برای آخرین مرتبه بارگذاری شد یا Acceptchanges فراخوانی گردید).
GetXm1 بازنمایی XML مربوط به داده های ذخیره شده در موضوع DataSet را باز می گرداند
HasChanges مقداری را باز می گرداند که نشان می دهد آیا موضوع DataSet دارای تغییراتی است که شامل سطرهای جدید، حذف یا اصلاح شده، می باشد.
InferXm1Schemn شکلواره XML را از پرونده یا TextReader مشخص شده را به موضوع DataSet استنباط می کند.
Merge این موضوع DataSet را با یک موضوع مشخص DataSet ادغام می نماید.
ReadXm1 داده ها و شکلواره XML را در موضوع DataSet می خواند.
ReadXm1schema شلکواره XML را در موضوع DataSet می خواند.
Rejectchanges تمام تغییرات ایجاد شده در موضوع DataSet را به عقب باز می گرداند (از زمانی که این تغییرات ایجاد شد یا وقتی که برای آخرین بار DataSet.Acceptchanges فراخوانی گردید).
Reset موضوع DataSet را به حالت اولیه خود باز نشانی می نماید. زیر کلاس ها (زیررده ها) باید Reset را ملغی سازند تا یک موضوع DataSet را به حالت اولیه باز گردانی کند.
ResetRelation خصوصیت Relations را به حالت پیش فرض آن باز نشانی می نماید.
ResetTable خصوصیت Tables را به حالت پیش فرض آن باز نشانی می کند.
WriteXm1 داده ها و شکلواره XML را از موضوع DataSet می نویسد.
WriteXm1schema ساختار موضوع DataSet را به عنوان یک شکلواره XML می نویسد
HaSchemaChanged مقداری را دریافت می کند که نشان می دهد آیا شکلواره مزبور تغییر کرده است یا خیر.
OnPropertyChanged رخداد OnPropertyChanging را افزایش می دهد.
OnRemoveRelation وقتی رخ می دهد که یک موضوع TableRelation انتقال می یابد. این شیوه می تواند توسط زیر کلاس ها ملغی شود تا جدول هایی که جا به جا می شوند را محدود کند.
OnRemoveTable زمانی رخ می دهد که یک موضوع DataTable حذف شده باشد.
ShouldSerializeRelations مقداری را باز می گرداند که نشان می دهد آیا خاصیت Relations باید ثابت باشد یا خیر.
ShouldserializeTables مقداری را باز می گرداند که نشان می دهد آیا خاصیت Tables باید ثابت باشد یا خیر.
استفاده از موضوع DataSet
دستور نحوی که برای ایجاد یک موضوع DataSet لازم می باشد در این جا نشان داده شده است:
<% @ imports System. Data % >
به نکات زیر توجه کنید