سفارش تبلیغ
صبا ویژن

asp

 آشنایی با asp.net
به منظور پاسخ به خیل عظیم نیازهای موجود و با توجه به تسهیلات ارائه شده توسط اینترنت ، نسل جدیدی از برنامه های کامپیوتری با نام "برنامه های وب " مطرح گشت و در این رابطه تاکنون تکنولوژی های متفاوتی توسط شرکت های عظیم نرم افزاری ارائه شده است . ASP.NET یکی از تکنولوژی های موجود در این زمینه است . در واقع ، ASP.NET فریمورک برنامه نویسی شرکت مایکروسافت ، برای طراحی و پیاده سازی برنامه ها و سرویس های وب است که خود بخشی از پلت فرم دات نت محسوب می گردد . ASP.NET با دارا بودن مجموعه ای گسترده از اشیاء که دارای اینترفیس های ساده برنامه نویسی می باشند و بهره گیری از یک محیط ترجمه شده شی گراء ، امکان پردازش های ساده تا پیچیده را با حداقل کد ممکن فراهم می نماید.
ASP.NET یک فریمورک برنامه نویسی است که برروی CLR ایجاد و می توان از آن به منظور ایجاد برنامه های قدرتمند وب استفاده نمود .یکی از اهداف اساسی طراحی ASP.NET ، برنامه نویسی ساده تر و با سرعت بیشتر از طریق کاهش حجم کدهای مورد نیازی است که برنامه نویسان ملزم به نوشتن آنان می باشند.برنامه نویسی declarative ، مجموعه ای گسترده از کنترل های سرویس دهنده به همراه رویدادهای مربوطه ، یک کتابخانه کلاس بزرگ و ابزارهای پیاده سازی کاملاً حرفه ای نظیر ویژوال استودیو دات نت ، از جمله ویژگی های شاخص ASP.NET محسوب می گردد. کنترل های سرویس دهنده ، معماری postback ، حمایت از به علاوه استفاده از کد ترجمه شده و مدل برنامه نویسی مبتنی بر رویداد ، جملگی از مهمترین دستاوردهای ASP.NET محسوب می گردد که نوید ایجاد و اشکال زدائی سریع برنامه های وب را در اختیار پیاده کنندگان قرار می دهد .
در عمل و ساختار برنامه های کاربردی ASP.NET از فایل های زیادی استفاده می شود. در اینجا به بررسی  نقش فایل های تشکیل دهنده برنامه کاربردی ASP.NET خواهیم پرداخت.
.asax
این پسوند برای فایل خاصی بنام Global.asax استفاده می گردد. این نوع فایل محتوی ترکیب نحوی رویداد برای نوشتن رویدادهای سطح برنامه کاربردی ASP.NET است. آن را می توان در دایرکتوری ریشه یک برنامه کاربردی ASP.NET پیدا کرد.
.ascx
این نوع فایل نمایانگر یک کنترل تعریف شده توسط برنامه نویس ASP.NET است (User Control). صفحات ASP.NET عموما از کنترلهای سرویس دهنده (کادرهای متنی، کادرهای فهرست، دکمه ها و غیره) تشکیل شده اند که عناصر اولیه صفحه وب را می سازند ASP.NET درست مانند برنامه سازی مرسوم ویژوال بیسیک امکان ایجاد کنترلهای تعریف شده توسط برنامه نویس را فراهم می کند. این کنترل ها معمولا از ترکیب کنترل های سرویس دهنده و برنامه سازی برای انجام یک وظیفه یا مجموعه ای از وظایف بخصوص تشکیل می شوند.
.asmx
این پسوند برای سرویس های XML وب استفاده می گردد. این نوع فایل از سوی آن دسته از سرویس های وب میزبان مورد استفاه قرار می گیرد که از راه دور یا بطور محلی در معرض برنامه های کاربردی NET. هستند. سرویس وب موجودیتی قابل برنامه ریزی است که برای برنامه کاربردی یک عنصر خاص کارکرد معینی را تامین می کند.
.aspx
از این پسوند که اصلی ترین پسوند ASP.NET است برای فرم های وب و صفحات معمولی ASP.NET استفاده می گردد.

این نوع فایل مربوط به tracing برنامه کاربردی ASP.NET است و به ASP.NET اجازه می دهد تا به جمع آوری اطلاعات درباره درخواستهای HTTP برای یک برنامه کاربردی بپردازد.
.vsdisco
این نوع فایل XML، لینک ها را در معرض منابع دیگری قرار می دهد که سرویس وب را توصیف می کنند. از فایل VSDISCO برای کشف سرویس های وب استفاده می شود که بطور عمومی موجود هستند.
.html
فایل های معمولی از نوع HTML را در برمی گیرند.
.xml
این نوع سند XML مخصوص استفاده در برنامه های کاربردی ASP.NET است. این فایل XML برای مقاصد مختلفی استفاده می شود از جمله نگهداری اطلاعات برنامه کاربردی و نیز مجموعه داده های بازگشتی از بانک اطلاعاتی.
.vb
این فایل شامل کد ویژوال بیسیک است که آن نیز به نوبه خود به یک فایل ASPX یا ASCX به ارث می رسد و کلیه عملیات برنامه ای مربوط به صفحات ASP.NET در آن قرار می گیرد. این نوع فایل اصطلاحاً      code-behind  نیز نامیده می شود.
.cs
همانند پسوند .vb است اما بجای کد ویژوال بیسیک حاوی کد زبان C# است.
.config
پسوند فایل web.config است.این نوع فایل بر یک فایل پیکربندی دلالت دارد یعنی فایلی که از آن برای تعیین صفات مشخصه مختلف برنامه کاربردی استفاده می شود. این صفات مشخصه شامل تنظیمات اشکال زدایی(debuging)، تائید امنیت(authentication)، کارکرد پیگیری (tracing)، نگهداری جلسه کاری (state management) و عمومی سازی (globalization & localization) می شوند.
Master Page

طراحی و پیاده سازی یک وب سایت پویا  مسائل و چالش های مختص به خود را دارد . هماهنگی  بین عناصر موجود در سایت و یکسان بودن شکل ظاهری تمامی صفحات نمونه ای در این زمینه است . ما نمی خواهیم سایتی را پیاده سازی نمائیم که هر صفحه آن شکل ظاهری مختص به خود را داشته باشد و با هر کلیک کاربر برای حرکت بین صفحات موجود در سایت این تصور ایجاد گردد که وی قدم در سایتی دیگر نهاده که همه چیز آن با صفحه قبل تفاوت دارد. برای حل مشکل فوق سعی می گردد که عناصر متداول موجود بر روی یک صفحه دقیقاً بر روی سایر صفحات نیز تکرار گردد تا تمامی صفحات دارای یک شکل یکسان هم از لحاظ  طرح بندی  و هم از نظر عناصر باشند . در صورت تغییر صفحات،‌ می بایست عناصر اضافه شده بر روی سایر صفحات نیز منتشر شوند تا تناسب سایت حفظ شود .  Master Page ارائه شده درAsp.Net 2.0 ، روشی منطقی و اصولی برای حل مشکلات فوق را در اختیار پیاده کنندگان برنامه های وب قرار می دهد .
Master Page یک صفحه تمپلیت است که عناصر ویژوال به همراه رفتار آنان را برای تمامی صفحات موجود بر روی سایت مشخص می نماید . صفحه ای است که دارای انشعاب master . است و شامل تگ های Html و کنترل هائی است که قصد به اشتراک گذاشتن آنان را بین چندین صفحه موجود در سایت داریم . مثلاً در  صورتی که تمامی صفحات یک وب سایت می بایست دارای یک عنوان و یا footer مشابه و یا منوهای مسیریاب یکسانی باشند ، می توان آنان را در یک Master Page  و تنها برای یک مرتبه تعریف نمود . در ادامه تمامی صفحاتی که در ارتباط با Master Page  می باشند قادر به استفاده از عناصر تعریف شده خواهند بود. بدیهی است در صورتی که عناصر موجود در Master Page تغییر یابند ، سایر صفحات مرتبط با Master page متاثر از این تغییرات خواهند شد . بدین ترتیب نگهداری سایت شرایط مطلوب تری را پیدا کرده و از تکرار کدهای غیر ضروری به منظور اشتراک ساختار و رفتار سایت پیشگیری خواهد شد .
Web.Config

بیشتر برنامه های کاربردی کامپیوتری دارای بخشی به نام Setup هستند که برای انجام تنظیمات متناسب با استفاده های مختلف کاربران مورد استفاده قرار می گیرد. برنامه های کاربردی مبتنی بر Web نیز که دارای کاربران زیادی هستند از این قائده مستثنی نیستند و احتیاج به انجام تنظیماتی متناسب با کاربردهای مختلف خود دارند.
در ASP.NET اینگونه تنظیمات که مربوط به منابع مورد استفاده برنامه کاربردی، اطلاعات محلی، اطلاعات امنیتی و... می شوند در داخل یک فایل XML ذخیره می شوند که نام آن Web.Config است و طبعاً به مانند اسناد XML شامل تعدادی تگ است.
به طور طبیعی هر برنامه کاربردی Web در ASP.NET دارای حداقل یک فایل Web.Config در داخل دایرکتوری ریشه خود می باشد که به طور خودکار توسط Visual Studio .NET در زمان ایجاد این Web Application ایجاد شده و با مقادیر پیش فرض در دایرکتوری ریشه برنامه کاربردی قرار می گیرد. ولی برنامه نویسان می توانند بر حسب نیازها و کاربردهای برنامه های خود تعداد بیشتری از این فایل XML را در داخل دایرکتوریهای مختلف برنامه ایجاد کنند و برای تنظیمات فایلهای داخل همان دایرکتوری یا زیر دایرکتوریهای آن به کار گیرند.
تنظیمات هر فایل Web.Config به فایلهای داخل زیر دایرکتوری‎ای که در آن قرار دارد و همچنین زیر دایرکتوریهای آن اعمال می شود. همچنین برنامه نویس می تواند از طریق کدهای داخل هر فایل Web.Config منابع و دایرکتوریهای مورد نظر را تغییر دهد.
هر فایل Web.Config شامل یک بخش پایه است که همان دو تگ <configuration> و<configuration/> هستند و بقیه محتوا درون این دو تگ قرار می گیرد.
<configuration>
<!--Some Configurations-->
</configuration>
محتوای هر فایل Web.Config شامل دو بخش اساسی است: معرفی و تنظیمات. بخش معرفی داخل دو تگ <configsectons> و <configsections/> قرار می گیرد و بخش تنظیمات، تنظیمات مربوط به منابع معرفی شده در این تگها را شامل می شود.
ابتدای فایل Web.Config و بعد از تگ <configuration> تگ <configsections> قرار دارد. داخل این تگ و تگ جفت آن یعنی <configsectons/> تگهایی جهت معرفی منابع و اداره کننده قسمتها قرار دارد.
•    تگ Location :
تنظیمات هر فایل Web.Config بر فایلهای داخل ریشه این فایل و زیردایرکتوری های آن اعمال می شوند، حال اگر بخواهیم تنظیمات یک فایل Web.Config را بر دایرکتوری خاصی اعمال کنیم تنها لازم است این تنظیمات را داخل یک جفت تگ <location> و <location/> قرار دهیم
<location path="url">
<!--Configurations-->
</location>
•    تگ <globalization> :
از تگ <globalization> برای تعریف خصوصیات فرهنگی و زبانی برنامه کاربردی استفاده می شود. خواص مهم این تگ عبارتند از:
•    culture : فرهنگ برنامه کاربردی را تعیین می کند.
•    requestencoding : شکل رشته های درخواست شده را تعیین می کند. برای مثال (Unicode)
•    responseencoding : شکل رشته های پاسخ را تعیین می کند.

•    تگهای امنیتی
درون فایل Web.Config تگهایی جهت تنظیم مقادیر و خصوصیات امنیتی برنامه کاربردی قابل تعریف هستند. جفت تگهای <authentication> و<authentication/> و <authorization> و<authorization/> ساختارامنیتی درون فایل Web.Config را می سازند که دارای خصوصیات و مقادیر متفاوتی هستند که توضیح در مورد آنان به مباحث مقدماتی امنیت در ASP. NET بر می گردد ولی در زیر توضیح کوتاهی از هر یک از این جفت تگها ارائه می گردد.
•    تگ <authentication> :
این جفت تگ به تعیین شکل تایید اعتبار در برنامه کاربردی تحت Web می پردازد. از طریق خصوصیت mode که چهار مقدار Form ،Passport ،Windows و None را می پذیرد می توان شکل تایید اعتبار را به ترتیب بر مبنای ساختار امنیتی IIS، سرویس تایید اعتبار Passport شرکت مایکروسافت، استفاده از cookieها و بدون استفاده از سیستم امنیتی تعیین کرد.
•    تگ <authorization> :
این جفت تگ برای تعیین کاربران واجد شرایط و یا فاقد شرایط ورود به محدوده تحت کنترل فایل Web.Config استفاده می شود. با استفاده از دو تگ <allow> و <deny> می توان کاربرانی که اجازه ورود به محدوده تحت حفاظت را دارند و فاقد این اجازه هستند استفاده کرد.




•    تگ <sessionState> :
تگ <sessionState> برای تعیین وضعیت جلسه کاری مورد استفاده قرار می گیرد و مدت زمان یک جلسه کاری و همچنین شکل تعیین درخواست کاربران را تعیین می کند. از صفات مهم این تگ یکی Cookiless است که تعیین می کند جلسه کاری کاربران از طریق Cookieها یا SessionID ها نسبت داده شوند که دو مقدار true یا false را می گیرد، true برای استفاده از SessionID و false برای استفاده از Cookie می باشد.
خصیصه مهم دیگر این تگ mode است که یکی از چهار مقدار زیر را می گیرد:
•    Off : جلسه کاری غیر فعال
•    Inproc : اطلاعات به صورت In-process ذخیره می شوند.
•    SQLServer : اطلاعات جلسه کاری توسط پایگاه داده SQL Server مدیریت می شوند.
•    StateServer : اطلاعات توسط یک سرویس Out-Of-Process مدیریت می شوند.
خصوصیت مهم دیگر این تگ timeout است که زمان اعتبار جلسه کاری هر کاربر را بر حسب دقیقه تعیین می کند.





جلسات (Sessions)
فریم ورک دات نت برای رد گیری حرکت کاربر ما را تنها نگذاشته و یک امکان خوب به نام Session State را در اختیار ما قرار داده است. به طور پیش فرض وقتی کاربر اولین بار صفحه‌ای از یک وب سایت ساخته شده با ASP.NET درخواست می کند یک کوکی جلسه به نام ASP.NET_SessionID ساخته شده و به مرورگر او ارسال می شود. با این کار ASP.NET قادر به پیگیری کاربر شده و می تواند در درخواست‌های بعدی او را شناسایی کند. بر این اساس در ASP.NET یک شیء به نام Session قرار داده شده است که می توانید از آن برای نگهداری اطلاعات مربوط به هر کاربر استفاده کنید.
در این روش باید مقادیر کنترل‌ها را در متغیرهای Session که در سرور ذخیره می شوند استفاده کنیم و در فرم وب دیگری به آنها دسترسی داشته باشیم. همانطور که می‌دانید ذخیره داده‌های زیاد در Session ممکن است اختلالاتی را در سرور بوجود آورد، بنابراین باید از این متد بدرستی استفاده شود. البته هر وقت که خواستید می‌توانید متغیرهای Session را از بین ببرید.
دو رویداد مربوط به شروع و خاتمه جلسات در فایل Global.asax وجود دارند که می توانید آنها را اداره کنید. این رویدادها Session_Start و Session_End نام دارند. به کمک آنها می توان تعداد کاربران آنلاین وب سایت را در صفحه نشان داد. برای این کار باید در رویداد Session_Start یک واحد به تعداد کاربران آنلاین اضافه کنیم و یک واحد از این تعداد را در رویداد Session_End کم کنیم.





جدول زیر بعضی از خصوصیات و متدهای شیئ Session را نمایش میدهد:
جدول3 -1 :خصوصیات و متد هایSession
خاصیت/متد    توضیحات
Remove    پاک کردن Session
RemoveAll    پاک کردن تمام Sessionها
SessionID    ID منحصر به فرد جلسه فعلی را برمیگرداند.
Abandon    Session فعلی را خاتمه میدهد. اگر کاربر پس از دستور فوق درخواست یک صفحه جدید کند به عنوان کاربر جدید در نظر گرفته می شود.
TimeOut    تغییر مهلت پیش فرض ختم جلسه. این خصوصیت هر عددی که باشد بعد از همان قدر دقیقه اگر کاربر درخواستی به سرور نفرستد Session ختم می شود.

Querystring
Querystring  مکانیسم دیگری برای ارسال مقادیر در بین صفحات است. مزیت اصلی این متد سادگی آن است. اما عیب آن این است که پس از ارسال، مقادیر در نوار آدرس مرورگر قابل مشاهده می‌باشند و کاربر می تواند آنرا تغییر دهد ، نمی‌توان آبجکت‌ها را از این طریق ارسال کرد و باید کاراکترها از نظر Url معتبر باشند.این متد مناسب‌ترین راه برای ارسال تعداد کمی از مقادیری است که نیازی به محافظت از دید دیگران ندارند.




سرویس های Membership و Roles
تائید کاربران و امکان استفاده آنان از پتانسیل های موجود بر روی یک سایت و یا برنامه بر اساس مجوزهای تعریف شده ، از جمله عملیات مهم در بسیاری از وب سایت ها و یا برنامه های وب است . امروزه بر روی اینترنت می توان سایت های متعددی را مشاهده نمود که کاربران را ملزم به login نموده تا پس از بررسی هویت آنان ، امکان استفاده از امکانات موجود بر روی سایت ( تمام سایت و یا بخش هائی خاص ) بر اساس مجوزهای تعریف شده ، فراهم گردد .
در این قسمت با دو چالش اساسی مواجه هستیم :
•    تائید هویت کاربران ( Authentication )
•    استفاده از امکانات موجود بر روی سایت توسط کاربران با توجه به مجوزهای تعریف شده ( Authorization  )
Authentication ، فرآیندی است که بر اساس آن هویت یک کاربر بررسی می گردد. پس از تائید کاربر ، این موضوع بررسی خواهد شد که کاربر تائید شده مجاز به انجام چه نوع عملیاتی است .
Authorization ، فرآیندی است که بر اساس آن مشخص می گردد  کاربر تائید شده مجاز به انجام چه نوع عملیاتی است .
با استفاده از فرآیندهای فوق ، پیاده کنندگان می توانند یک سایت را با توجه به نوع کاربران سفارشی نمایند .
ایجاد یک سیستم جهت مدیریت کاربران  مستلزم انجام مراحل زیر است :
•    ایجاد یک بانک اطلاعاتی که اطلاعات مربوط به کاربران در آن ذخیره گردد.
•    ایجاد یک صفحه login
•    ایجاد سیستمی به منظور کنترل این که کاربران قادر به دستیابی چه صفحاتی می باشند . 
•    ایجاد یک صفحه برای تعریف کاربر جدید 
•    ایجاد یک صفحه برای مدیریت سایت جهت مدیریت کاربران 
•    و ...
فرآیند Authentication در ASP.NET2.0  از طریق سرویس جدید membership  و Authorization از طریق سرویس جدید Roles انجام می شود.
فریمورک دات نت ، بدین منظور کلاس Membership را که شامل متدهائی نظیر CreateUser ,GetAllUser,Validateuser و ... است ، ارائه نموده است .سیستم membership قابلیت ها و توانمندیهای برنامه نویسی خود را از طریق کلاس Membership ارائه می نماید . از کلاس فوق می توان مستقیماً در صفحات وب استفاده نمود . مثلاً می توان یک صفحه را ایجاد کرد که تمام کاربران در سیستم را لیست نماید ( استفاده از متد Membership.GetAllUsers که به یک GridView نسبت داده شده باشد).
به صورت پیش فرض ، زمانی که کاربر بر روی دکمه login کلیک می نماید یک postback ایجاد و کنترل تلاش می نماید تا بر اساس اطلاعات درج شده توسط کاربر وی را تائید نماید . بدین منظور متد ( Verify (Username,password  مربوط به کلاس membership صدا زده می شود . در صورتی که اطلاعات درج شده معتبر باشند ، یک authentication thicket  برای کاربر ایجاد می گردد . در غیراینصورت یک پیام خطاء بر روی اینترفیس نمایش داده می شود .
در برخی موارد لازم است که در یک صفحه محتویات متفاوتی را با توجه به ماهیت کاربر ( ناشناس و یا تائید شده ) ، نمایش داد. مثلاً زمانی که یک کاربر ناشناس صفحه اصلی یک وب سایت را مشاهده می نماید یک Login web control نمایش داده شود و زمانی که یک کاربر تائید شده همان صفحه را مشاهده می نماید ، یک پیام خاص مرتبط با نام کاربر به همراه یک لینک جهت logoff نمایش داده شود . با استفاده از کنترل loginview می توان از دو تمپلیت AnonymouseTemplate و LoggedInTemplate استفاده نمود . کنترل های وب و تگ های Html را می توان در AnonymouseTemplate  برای کاربران ناشناس و کنترل ها و تگ های html برای کاربران تائید شده را در LoggedInTemplate قرار داد . Loginview همچنین می تواند خروجی های متفاوتی را با توجه به نقش کاربر تائید شده نمایش دهد.
استفاده از کنترل PasswordRecovery ، این امکان را در اختیار کاربران قرار می دهد تا بتوانند رمزعبور موجود و یا جدیدی را از طریق email دریافت نمایند . در صورتی که memebership provider رمز عبور را به صورت hashed ذخیره کرده باشد ، فرآیند بازیافت رمز عبور عملاً ایجاد یک رمز عبور جدید و تصادفی است که برای کاربر ارسال می گردد . برای رمزهای عبوری که به صورت plain text  و یا رمز شده می باشند ، رمز عبور واقعی موجود برای کاربر از طریق email ارسال می گردد .
 کنترل Loginstatus یک لینک به صفحه login را برای کاربران ناشناس و تائید نشده ، نمایش خواهد داد . در صورتی که یک کاربر تائید شده صفحه را ملاقات نماید ، یک لینک logoff برای وی نمایش داده می شود .
کنترل LoginName ، نام کاربر تائید شده ای  را که به سیستم وارد شده است ، نمایش می دهد . با استفاده از User.Identity.Name در برنامه ، می توان به کاربرانی که به سایت و یا برنامه login نموده اند ، دستیابی داشت .
با استفاده از CreateUserWizard علاوه بر یک صفحه جهت login ، هر وب سایت مبتنی بر account نیاز به صفحه ای دارد تا مشخص نماید کدامیک از کاربران قادر به ایجاد یک کاربر جدید می باشند . کنترل CreateUserWizard ، یک رابط کاربر گرافیکی مناسب برای ایجاد یک کاربر جدید را  ایجاد می نماید.همانند کنترل login ، پس از تکمیل داده در فیلدهای مورد نیاز و کلیک بر روی دکمه Create user ، متد CreateUser کلاس Membership فراخوانده می شود . CreateUserWizard همچنین می تواند در صورت نیاز با استفاده از تمپلیت ها سفارشی گردد. از کنترل Changepassword به متظور تغییر رمز عبور استفاده می گردد . تمامی کنترل های امنتیی اشاره شده را می توان بدون نیاز به نوشتن کد و با استفاده از یک کنترل Login استفاده نمود.


کنترل های اعتبار سنجی
بررسی و ارزیابی صحت اطلاعات ورودی توسط کاربران ، یکی از عملیات بسیار مهم در برنامه های کامپیوتری خصوصاً برنامه های وب با توجه به ماهیت معماری آنها می باشد . پیاده کنندگان برنامه های وب می بایست پس از درج داده ورودی توسط کاربر و  قبل از ارسال آن به لایه های دیگر ، آنها را ارزیابی و صرفاً پس از تائید ، پردازش های مورد نیاز را بر روی آنها انجام دهند .
زمانی که از یک TextBox برای درج داده بر روی‌ یک فرم استفاده می گردد ،‌ همواره این احتمال وجود خواهد داشت که کاربران اطلاعات را متناسب با انتظار یک برنامه وارد ننمایند .
برای بررسی و ارزیابی صحت داده در ASP.NET مجموعه ای از کنترل های validation ارائه شده است . از کنترل های فوق  می توان به منظور بررسی و تست عدم درج داده ، مقایسه داده ورودی با یک مقدار خاص  ، بررسی وجود مقادیر در یک محدوده خاص و سایر فرم های داده استفاده نمود تا این اطمینان ایجاد گردد که داده مناسب و معتبر در اختیار اسکریپت ها ، به منظور انجام پردازش ها قرار داده می شود .
کنترل های validation در ارتباط مستقیم با کنترل TextBox بوده و تست و ارزیابی خود را بطور اتوماتیک و پس از کلیک بر روی کنترل هائی نظیر Button  ، LinkButton  و ImageButton انجام خواهند داد . در صورتی که ماحصل بررسی یک کنترل validation توام با موفقیت نباشد ، validator یک پیام خطاء را نمایش و به کاربران اعلام می نماید که داده ورودی فاقد شرایط لازم برای استفاده در برنامه می باشد .

•    RequiredFieldValidator
متداولترین نوع ارزیابی داده ورودی ، بررسی آن به منظور اطمینان از درج داده توسط کاربر است . کنترلRequiredFieldValidator  ، مسئولیت بررسی داده ورودی در یک Textbox را برعهده دارد و در صورت عدم درج داده توسط کاربر ، یک پیام خطاء را نمایش خواهد داد . در چنین مواردی ، روتین هائی که می بایست  پس از کلیک بر روی دکمه موجود از داده درج شده در TextBox استفاده نمایند ، فرصت انجام چنین کاری را به دلیل عدم درج داده توسط کاربر پیدا نخواهند کرد .
o    خصلت ControlToValidate : مقدار id کنترل textBox که مسئولیت بررسی آن به کنترل RequiredFieldValidator واگذار شده است ،‌نسبت داده می شود.
o    خصلت ErrorMessage :  پیام مورد نظر در صورت بروز خطاء را مشخص می نماید .
o    خصلت SetFocusOnErrorMessage :  یک blinking cursor را در کنترل TextBox مربوطه به منظور تسهیل در امر درج داده جدید قرار می دهد .
o    خصلت ValidationGroup : یک گروه از کنترل های TextBox را که مجموعه ای از تست های بررسی روی آنها اعمال خواهد شد ، مشخص می نماید (در مواردی که دکمه های متفاوت می توانند باعث فعال شدن تست های مختلفی گردند ) .
o    خصلت Display : کنترل RequiredFieldValidator ، یک فضای افقی را متناسب با طول رشته مربوط به پیام خطاء اشغال خواهد کرد . در اغلب موارد ، پیام خطاء در کنار TextBox مربوطه نمایش داده می شود . مکان فوق بر روی صفحه همواره نشان داده خواهد شد ( به جزء این که خطائی اتفاق نیافتد ) . در صورتی که مقدار خصلت Display معادل Dynamic در نظر گرفته شود ، مکانی برای نمایش پیام خطاء رزو نخواهد شد و  بطور پویا و همزمان با بروز خطاء ایجاد می گردد . 
•    RangeValidator
کنترل فوق مسئولیت بررسی و ارزیابی داده ورودی در یک TextBox را برعهده گرفته و ماموریت آن حصول اطمینان از این موضوع است که داده درج شده در محدوده مورد نظر است . این محدوده توسط دو خصلت  MinimumValue  و MaximumValue  مشخص می گردد . فرآیند فوق می تواند در ارتباط با نوع های متفاوت داده  نظیر  Date ، اعداد صحیح ، اعداد اعشاری و یا رشته ( مقدار پیش فرض ) اعمال گردد .
o    خصلت Type : در صورتی که نوع داده ورودی مشخص نگردد ،‌ نوع آن به صورت پیش فرض string در نظر گرفته خواهد شد .  یک TextBox خالی ، به عنوان یک نوع داده معتبر ارزیابی خواهد شد . بنابراین ، لازم است که به همراه کنترل RangeValidator از یک کنترل RequiredFieldValidator نیز استفاده گردد تا این اطمینان حاصل شود که با عدم درج داده در TextBox مربوطه با آن به عنوان یک داده معتبر برخورد نخواهد شد .
o    خصلت های MinimumValue  و MaximumValue  : حداقل و حداکثر محدوده مجاز برای داده ورودی را مشخص می نمایند .
•    CompareValidator
کنترل فوق مسئولیت بررسی‌ مقدار درج شده در یک TextBox  را برعهده دارد . بدین منظور داده ورودی با یک مقدار خاص و یا مقدار یک کنترل موجود بر روی فرم مقایسه می گردد . نوع داده درج شده در TextBox می تواند از نوع Currency ، Date ، اعشاری ، صحیح و یا رشته ( مقدار پیش فرض ) باشد. مقدار ورودی می تواند با یک مقدار مشخص شده توسط خصلت ValueToCompare و یا مقدار یک کنترل دیگر موجود در صفحه ( مشخص شده توسط خصلت ControlToCompare ) ، مقایسه گردد .
 به صورت پیش فرض ، عملیات مقایسه برای "برابری " انجام خواهد شد . در صورت نیاز می توان از سایر عملگرهای مقایسه ای  که توسط خصلت Operator مشخص می گردند ، استفاده نمود . عملیات مقایسه بر اساس نوع داده درج شده در Textbox که توسط خصلت Type مشخص می گردد ، انجام خواهد شد . لازم است که به همراه کنترل <asp:CompareValidator> از یک کنترل RequiredFieldValidator نیز استفاده گردد تا این اطمینان حاصل شود که با عدم درج داده در TextBox مربوطه با آن به عنوان یک داده معتبر برخورد نخواهد شد .


•     گروه های validation
در زمان پیاده سازی فرم های ورود اطلاعات به مواردی برخورد خواهیم کرد که لازم است از چندین TextBox به منظور دریافت داده ورودی جهت انجام پردازش های مورد نیاز در یک اسکریپت ، استفاده گردد .همچنین ، ممکن است در مواردی لازم باشد که از چندین button در یک فرم ورود اطلاعات استفاده گردد و متناسب با این که کدام button توسط کاربران فعال شده است ، بررسی و صحت داده ورودی تعداد خاصی از کنترل های موجود بر روی فرم ورود اطلاعات ( مستقل از سایر کنترل ها ) ، انجام شود . در چنین مواردی می بایست تمامی کنترل هائی را که می خواهیم  پس از کلیک بر روی یک button خاص ، validate شوند را عضوء یک گروه نمود و نام آن گروه را برای button مورد نظر نیز مشخص نمود . بدین ترتیب ، پس از کلیک بر روی button مورد نظر صرفاً آندسته از کنترل هائی که عضو گروه هم نام با گروه معرفی شده به همراه button می باشند ، بررسی و ارزیابی خواهند شد .
•    ValidationSummary
با استفاده از کنترل ValidationSummary ، پیام های خطاء جداگانه توسط یک کنترل تولید و با یکدیگر نمایش داده می شوند. کنترل فوق ، همچنین قادر به تولید گزارش پیام های خطاء محدود به مجموعه ای خاص از کنترل ها می باشد .
o    خصلت DisplayMode : نحوه ( فرمت ) نمایش پیام های خطاء را مشخص می نماید که به صورت پیش فرض یک لیست bulleted در نظر گرفته می شود .
o    مکان نمایش گزارش پیام های خطاء در محلی است که کنترل ValidatiomSummary استفاده شده است .
o    خصلت ShowMessageBox : با استفاده از  ShowMessageBox نسبت دادن مقدار True به آن ، یک پیام pop-up نمایش داده خواهد شد .  بدین ترتیب ، خروجی کنترل ValidationSummary در یک PoP-Up نمایش داده می شود .
o    در صورتی که خلاصه گزارش خطاء مرتبط با یک گروه validation  خاص می باشد ، می بایست نام آن گروه به خصلت ValidationGroup نسبت داده شود .
اصول استفاده از رنگ ها در صفحات وب
   یکی از اصول بسیار مهم و کلیدی در طراحی صفحات وب، توجه به اصول رنگ بندی صفحات و استفاده از رنگ های مکمل و ترکیبی مطلوبی است که کاربران بتوانند بر اساس اصل سهولت و جذابیت صفحه، به مشاهده مطالب آن بپردازند. گرافیک یک سایت در اصل زبان گفتگوی تصویری آن می باشد. رنگ ها اثر زیادی روی احساسات ما در 90 ثانیه اول دیدن می گذارند.
    سایت هایی که رنگین کمانی هستند و از هر نوع رنگی استفاده می کنند، بیننده آن ها خیلی زود از سایت خارج شده و خسته می شود. هر چه تعداد رنگ ها کم شود مدت زمان ماندن بازدید کننده در صفحه زیاد می شود.
در رنگ بندی یک صفحه، باید به این موضوع توجه شود که این رنگ قرار است در چه صفحه ای و با چه موضوعی به کار رود و باید به نتیجه نهایی کار خود اندیشید. سایت های دولتی از رنگ سفید برای زمینه صفحات و رنگ آبی برای لینک های صفحه و رنگ بنفش برای لینک های مشاهده شده استفاده می کنند. در طراحی سایت های کودکان باید از رنگ های خیلی شاد استفاده شود.
•    سبز
رنگ سبز آرامش بخش است و راحت تر از بقیه رنگ ها در چشم انسان آنالیز می شود. رنگ سبز بیانگر تندرستی، فراوانی، حاصلخیزی، آزادی، شفا و بهبودی، طبیعت، پیشرفت، حسادت و خونسردی است. این رنگ در تجارت به معنی مقام و ثروت است.


•    قرمز
افرادی که در محیط قرمز کار می کنند معمولاً سریعتر کار می کنند، اما اشتباهاتشان در کار بیشتر از دیگران است. قرمز بیانگر توانایی، هیجان، احساسات شدید، سرعت، خطر و تهاجم است. این رنگ شدیدترین رنگ احساس است و ضربان قلب و تنفس را تسریع می کند.
•    آبی
سایت هایی که از سا یه های آبی یا رنگ آبی و سفید استفاده می کنند بیشتر از بقیه، مردم پسند بنظر می آیند. رنگ آبی، آرامش، استواری، امید داشتن و دانایی و بخشندگی را عرضه می دارد. متن های آبی رنگ بیشتر در ذهن مردم به یاد می مانند. آبی بیانگر امنیت، اعتماد، مسئولیت پذیری، سرما، ایمان، وفاداری، وابستگی و جاه و جلال است. این رنگ دومین رنگ عوام پسند است و در تجارت به معنی ضمانت مالی است.
•    سفید
رنگ سفید به صداقت، پاکیزگی، صمیمیت، ملایمت و معاصر بودن چیزی اشاره دارد. سفید بهترین رنگ برای BackGround های وب است. در تجارت سفید رنگ خستگی گیر و انرژی بخش است.
•    بنفش
رنگ بنفش نمایانگر وقار، معنویت، شاهانه بودن، عیش، نعمت و دارایی، اعتبار و نفوذ، سوگواری و مهارت است. در تجارت بنفش به معنی بزرگ نشان دادن است. رنگ بنفش طرفداری از سبک های هنرمندانه است.


ارسال شده در توسط مینا افشاری

تجزیه و تحلیل: اولین چیزی که مورد بررسی قرار میدهیم 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 می گردد. که خوشبختانه این مسئله به راحتی قابل حل می باشد.

حال به مثالهای زیر توجه کنید:

<% @ Language="VB" %>
<% Option Explicit %>
<html>
<body>
The current time is <% = Time ( ) %>
<p>
<%
If Datepart("h",time( )) >= 12 then
%>
<%
"After noon
%>
<%
Response.Write "Good Evening"
%>
<%
Else
%>
<%
"Before noon
%>
<%
Response.Write "Good Morning"
%>
<%
End If
%>
</body>
</html>

تجزیه و تحلیل: در اینجا ما برای هر خط از کدهای 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 استفاده نمایید، همانطوری که از <% ... %> استفاده نمودید.

حال، برای اثبات این امر مثال نوشته شده در زیر را اجرا کنید:

<% @ Language="VB" %>
<% Option Explicit %>
<html>
<body>
<b>
<%
Response.Write "Hello"
%>
</b>
<%
Response.Write "my friends"
%>
</body>
</html>

این فایل را با نام 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- <% Response.Write "Hello" %>

3- <% Response.Write "Hello"
%>

4-                      <%
Response.Write "Hello"
 %>

به هر حال، هر چهار عبارت فوق مرسوم و صحیح می باشند.


ارسال شده در توسط مینا افشاری