مقدمه
فناوري اطلاعات و ارتباطات و حركت از جوامع سنتي به جوامع اطلاعاتي ،تمامي ابعاد نيازمنديهاي بشري را تحت تاثيرقرارداده است.مسلماً بهره گيري از روشهاي الكترونيكي با استفاده از روشهاي جديد،موجبات كارايي و اثربخشي بيش از پيش سازمانها، درجوامع بشري را فراهم مي نمايد. به منظور بهره گيري از چنين روشهايي در اجراي آموزشها، تصميم به الكترونيكي كردن نظر سنجي در دانشگاه گرفتيم.كه براي اين كار بايد سايتي پويابدين منظور طراحي مي كرديم

. حال آنكه براي ساخت يك سايت پويا ASP يك راه حل ساده مي باشد.مايكروسافت ASP.net را به عنوان نگارش جديدي از ASP معرفي كرده است.Asp.Net موانع ايجاد وب سايتهاي پويا و پيچيده را اساساً كاهش داد.

تيم توليد كننده ي Asp.Net در مايكروسافت،براي تنظيم و ايجاد فهرستي از اهداف مشترك صاحبان سايتها ،بيش از هزاران صفحه،سايت را مورد بررسي قرار دادند.اين فهرست شامل بيست هدف از جمله خواندن داده ها،رويه اي يكپارچه براي ورود و احراز هويت،سازگاري در ظاهر سايت و سازگاري صفحات در انواع مختلف مرورگرها بود.بدين ترتيب تيم دست به كارشد تا مجموعه كدهايي ايجاد كند كه به شيوه اي صحيح به اين اهداف دست يابند.مجموعه اين قابليت ها بصورت كلاسهائي در Asp.Net درآمد.نتيجه نهايي ساده است.سازندگان سايتها مي توانند تنها با كنارهم قراردادن بلاكهايي كه مايكروسافت در Asp.Net ايجاد كرده است

،سايتي پيچيده درست كند.طراحان سايت مي توانند به جاي نوشتن كدهاي زياد به سادگي و تنها با كشيدن و رها كردن(drag and drop) يك كنترل برروي صفحه و پاسخ دادن به تعدادي سؤال دريك برنامه wizard (جادوگر)، سايت مورد نظرشان را بسازند.اين كنترل مقدار كمي كد را براي صفحه توليد كرده و سرويس دهنده از اين كدها براي ساختن صفحه درHTML استفاده كرده و سپس آن را به مرورگر ارسال مي نمايد.از آنجائيكه صفحهHTML براي مرورگر ارسال مي شود،نيازي به داشتن قابليتي خاص جهت نشان دادن HTML درمرورگرو اجراي يك سند جاوا اسكريپت ساده نمي باشد.هر مرورگري كه بتواند HTML را نشان بدهد،صفحات Asp.Net را نيز نشان مي دهد.

درسايت به اطلاعات زيادي از قبيل كد دانشجو، نام و نام خانوادگي دانشجو،اطلاعات مربوط به اساتيدو… نياز ميشود كه اين اطلاعات را بايد درمحلي قرار داد. سايتها براي ذخيره و نگهداري اطلاعات از بانك هاي اطلاعاتي استفاده مي كنند.مفيد ترين ويژگي Asp توانايي آن در ارتباط برقراركردن با بانك اطلاعاتي است.به عبارتي بانك اطلاعاتي مجموعه اي از اطلاعات است كه مي تواند به راحتي مورد سؤال و تغيير قرارگيرد.بانك اطلاعاتي يك محيط واقعي براي ذخيره اطلاعات و اشياء مربوط به آن است.هنگاميكه ازبانك اطلاعاتي استفاده مي كنيد مي توانيد كارهايي از قبيل دريافت داده،درج داده،به روز رساني داده هاي موجود و يا حذف داده هاي موجود را انجام دهيد.

به طورمعمول محل واقعي ذخيره شدن اطلاعات Table ها هستند كه هر Table درحقيقت يك Entity (موجود،هستي) است كه شامل RecordوField مي باشد .ركورد يك نمونه ي واقعي از شئي است .ركورد در بانك اطلاعاتي به وسيله ي سطر مشخص مي شود. فيلد كوچكترين جزء اطلاعاتي از يك آبجكت است . بانك هاي اطلاعاتي تجارتي زيادي مثل Access، ,SQL-server Oracle ,Informixدر دسترس قراردارند. بعد از انتخاب بانك اطلاعاتي بايد بدانيد كه ابزارهاي مناسي براي ساختن صفحات Asp وجود دارد. ازجمله اين ابزارها مي توان به نرم افزارهاي Visual Studio , Visual Web Developer وVisual Web Developer Express اشاره كرد.

صفحات Asp بايد در يكي از اين محيط ها ساخته شوند. اين سايت در محيط Visual Web Developer Express طراحي شده است. درنرم افزارVWD ابزارهاي زيادي براي ساخت سايت وجود دارد.براي ايجاد يك وب سايت، VWD را باز كرده ودرمنوي File آيتم New Site را كليك مي كنيد.مي توانيد يكي اززبانهايVisual Basic يا C# را به عنوان زبان مورد استفاده انتخاب نماييد.اين سايت به زبان VB نوشته شده است.

اكنون به نحوه ايجادصفحه اصلي كه اصطلاحاً به آن Master گفته مي شود مي پردازيم.هرسايتي ازداشتن ظاهري زيبا و يكنواخت سود مي برد.در اينترنت به ندرت مي توان سايتي را يافت كه از داشتن چينش عمومي يك سايت منحرف شده باشد.چينش عمومي معمولاً شامل موارد زير است:
۱٫ يك Header (سرآمد) مشترك براي كل سايت.
۲٫نواري در سمت چپ صفحه كه شامل لينك هاي موجود درسايت است.
۳٫يك منو براي ارتباط با مدير سايت.
۴٫درنهايت يك Footer (پاورقي) كه اطلاعات كپي رايت را فراهم مياورد.

اين عناصربا اينكه ويژگي هاي ضروري را فراهم نمي كنند،برروي همه صفحات قرار مي گيرند.ولي ظاهر يكنواخت اين عناصر به كاربر اين اطمينان را مي دهد كه هنوز در همان سايت هستند.اگرچه اين ظاهررا با تگ هاي HTMLنيز مي توان ايجاد كرد،ولي Asp.Net ابزار قدرتمندتري همچون Master و Content را براي اين منظور فراهم نموده است. با داشتن ابزارونرم افزارهاي كه بطور مختصر آنها را بيان كرديم مي توان سايتي با يك موضوع خاص طراحي كرد.ما در اين پروژه سايت نظرسنجي الكترونيكي را ايجاد كرده ايم،بطوريكه دانشجويان مي توانند با ورود به اين سايت راي خودرابه اساتيد مورد نظر اعلام كند.در سايت براي اطلاعات بيشتردانشجويان به معرفي كليه اساتيد دردانشگاه پرداخته ايم.در فصل ۳ بطوركامل سايت را تجزيه و تحليل كرده ايم.

فصل ۲
نرم افزارهاي مورد نياز در طراحي سايت
بخش اول : ASP.NET

ASP.NET چيست؟
وب جهان گستر(www) امكان اتصال گسترده به اينترنت را فراهم مي كند.هركسي كه ازكامپيوتر استفاده مي كند به وب دسترسي دارد.اما حداقل استانداردهايي بايد وجود داشته باشد تابتوان به اين دسترسي فراگير دست يافت.اطلاعات درقالب كدهاي اسكي ارسال مي شوند وبراي كدهاي زبان ماشين اين قابليت نياز نمي باشد.ملزومات سرويس گيرنده بسيارناچيز است.

درواقع خود اينترنت هيچگونه استاندادي براي نحوه عملكرد يك مرورگر ندارد و به همين دليل است كه مرورگرهاي مختلفي براي انواع سيستم عامل ها وجود دارد.درسال۲۰۰۵ به آساني فراموش شد كه اينترنت در ابتدا براي ارسال صفحات متني ساده ايستا به همراه تصاوير و لينك ها طراحي شده و به وجود آمده بود.

سال اخير،دربرنامه نويسي اينترنت سعي شده است تا درعين حال كه از قوانين www (كه تمايل زيادي به ساده سازي صفحات وب دارد) تخلف نكرد، نتوان پيچيدگي لازم را به كاربران تجربه نمود.كاربران انتظارداشتند تا پياده سازي برنامه هاي كاربردي،مانندword و Access آسان باشد،اما اين سطح از پيچيدگي در طراحي وب سايتها با حداقل پيكره بندي مورد نيازآنها آسان نيست.

Asp.Net با ايجاد بلاك ها وكنترل هاي متعدد،موانع ايجاد وب سايتهاي پيچيده را اساساً كاهش داد.بنابراين Asp.Net راه حل مايكروسافت براي ايجاد صفحات وب پويا و پيچيده مي باشد.

مايكروسافت درنسخه هاي قديمي Asp.Net فهرستي ازاهداف عمومي و مشتركي كه طراحان سايت درپياده سازي سايت ها استفاده مي كردندرا ايجاد كرد.دسرسي به برخي از اين اهداف آسان ولي وقتگير بود و برخي ديگر نيز بسيارپيچيده بودند

و فقط طراحان خبره و ماهر مي توانستند از آنها استفاده كنند.به طور كلي راه حل هاي برنامه نويسان يا بسيار معمولي ويا بسيارپيچيده بود.اين راه حل ها نه تنها گاهي اوقات ضعيف بودند،بلكه زمان بسياري را تلف مي كردند و اين بدان دليل بودكه هزاران برنامه نويس جهت طراحي،كدنويسي و تست كدها زمان صرف مي كردند.

كه اين عيب Asp.Net در ورژن هاي جديد برطرف شده بطوريكه آن اهداف عمومي بصورت كنترلهاي سمت سرويس گيرنده ي Asp.Net بوده و حاوي كدهايي براي تنظمات اجرا و عملكرد هستند.طراحان سايت با قراردادن يكي از اين كنترلها برروي صفحه مي توانند به همان نتايجي كه در گذشته بايد براي آنها كدنويسي مي كردند،دست يابند

. يكي ديگر از امكاناتي كه Asp.Net در اختيار برنامه نويسان قرارداده اينست كه،اصولاً طراحان وب علاقمندند تا دو ويژگي متعارض درطراحي وب ا يكجا استفاده كنند.از يك طرف مايلند كه كل سايت ظاهري پايدار(consistent) داشته باشد و ازطرف ديگر مي خواهند اين امكان را براي كاربران فراهم كنند تا آنها بتوانند به طور دلخواه و مطابق سليقه ي خود ظاهر سايت مانند رنگ ها،اندازه فونت ها و ساير خصوصيات سايت را تغيير دهند. Asp.Netيك كنترل صفحه اصلي به نام Master Page فراهم كرده (كه در بخش ۴-۲ آمده است) تا از طريق ان بتوان آرايش و چينش (Layout) عناوين،منوها ولينك هاي يك سايت را بصورت سازگارو پايداردراورد.طراح سايت مي تواند با اضافه كردن يك كنترل به اين آرايش،اين امكان را براي كاربران فراهم كند تا بتوانند يكي از Theme ها راانتخابو برروي تمام صفحات سايت اعمال كنند.

Asp.Net داراي مجموعه ي كاملي از وب سرويسها است.ابتدا به تعريف مفهوم وب سرويس مي پردازيم.هرسازمان اطلاعات و سرويس هايي را درسايت خود فراهم مي كندومردم مي خواهند اين سرويس ها را درسايتهاي ديگر نيز دراختيار داشته باشند. وب سروس ها اين امكان را فراهم مي كنند. Asp.Net مجموعه ي كاملي از وب سرويسها را فراهم كرده است كه با خصوصيات (Simple Object Access Protocol ،روشي براي درخواست داده از يك وب سرويس) SOAP وXML (Extensible Markup Language،قالبي براي داده) مطابقت مي كنند.

Asp.Net نيزبراي پاسخ به خطا سيستم مخصوصي دارد.پاسخ خطا مي تواند به شكل كد باشد ويا مي تواند به شكل يك صفحه خطا (error page) گزارش شود و صفحه خطا مي تواند مخصوص يك خطا و يا براي كل سايت در نظر گرفته شود.در Asp.Net امكان اداره كردن (handle) خطا در چند سطح وجود دارد.اگردرهنگام خواندن داده خطايي رخ دهدمي توان آنرا درسطح منبع داده اداره كرد.اگرخطا دراين سطح اداره نشود،به سطح بعدي وارد شده ودرآنجا اداره مي شود.

Asp.Net نيز مانند ساير فناوريهاي طراحي وب سايت،نيازبه كدنويسي دارد. Asp.Net بيش از۲۰زبان مختلف را پشتيباني مي كند.كليه كدها بدون توجه به زباني كه برنامه نويس استفاده مي كند،قبل از اجرا به يك زبان مياني ترجمه(compile) مي شوند.كنترل هاي Asp.Net برروي سرويس دهنده اجرا مي شوند،ولي برنامه نويس اين اختياررا دارد تا كدهايي كه مي نويسد را برروي سرويس گيرنده هم به اجرا در آورد.

كارايي ذخيره سازي نهان Asp.Net
صفحه وب پس ازطراتحي،به يك زبان يكپارچه ي .NET كه زبان مياني مايكروسافت يا MSIL (Microsoft Intermediate Language) نام دارد،ترجمه وسپس برروي ماشين گسترش (deployment machine) كپي مي شود.وقتي اين صفحه براي بار نخست مورد درخواست واقع مي شود،به زبانCLR (زبان مشترك زمان اجرا) ترجمه مي شود تا نسبت به سخت افزاري كه مي خواهد به آن سرويس دهد بهينه شود. پردازش صورت گرفته دراين دو مرحله،موجب مي شود تادو هدف پايداري نرم افزار و بهينه سازي سخت افزار حاصل گردد.

اين ويژگي باعث كارايي Asp.Net مي گردد. Asp.Netامكان ذخيره سازي نهان (caching) صفحات را نيز فراهم مي كندتا درخواست هاي بعدي آنها سريعتر سرويس داده شوند.با ذخيره سازي نهان،نسخه نهايي صفحه درداخل RAM سرويس دهنده قرار مي گيرد تا براي درخواست بعدي سريعتر ارسال شود،

زيرا در اين حالت سرويس دهنده صفحه را مجدداً ايجاد نمي كند.طراح همچنين مي تواند مشخص كند،تنها بخشي از صفحه در حافظه ذخيره گردد كه اين فرايند به ذخيره سازي نهان قطعه اي (fragment caching) مرسوم است. ذخيره سازي نهان قطعه اي موجب مي شود تا سرويس دهي به بخش هاي بدون تغيير صفحه سريعتر شود درحاليكه هنوز امكان توليد دلخواه قطعه هاي پويا (dynamic fragments) نيز وجود دارد.

اگر از Microsoft SQL Server7 يا بالاتر استفاده كنيد، مي توانيد از گزينه بطلان ذخيره نهان داده(data invalidation caching) براي بخش هايي از صفحه كه وابسته به داده بوده(data-dependent) ولي كمتر تغيير مي كنند،ا ستفاده كنيد. گزينه بطلان ذخيره نهان داده،تا هنگامي كه پيامي مبني بر تغيير كردن داده ازSQL Server دريافت كند،صفحه را درحافظه نگه خواهد داشت.بدين ترتيب مجموعه اي از داده ها بمنظور اينكه خبري درمورد تغييرداده ازSQL دريافت شود،درحافظه ذخيره مي شود.وقتي داده تغيير كند،SQL Server مراتب را به.NET اطلاع مي دهد و اين موجب مي شود تا Asp.Net عمل بازخواني را انجام دهد.

 

امنيت Asp.Net ومكانيزم ورود
اكثرسايتها به يك مكانيزم ورود (login) نيازدارند تا توسط آن بتوانند ID و كلمه عبور كاربر رادريافت وبررسي كنند و سپس اجازه ورود يا عدم ورود كاربر را صادر نمايند.هرچند اصول پياده سازي چنين مكانيزمي چندان مشكل نيست ولي درصد كمي از برنامه نويسان هستند كه مي توانند يك مكانيزم ورود مطمئن را پياده سازي كنند.

Asp.Net براي اين منظور نيز كنترلي را پيشنهاد مي كند كه مكانيزم ورود را بسيار بهتر از آنچه كه ما مي توانيم با كد نويسي پياده سازي كنيم،ايجاد مي نمايد.به علاوه اين سيستم مي تواند كلمه عبور كاربر را به خاطر بسپارد و همچنين كاربران جديدي ايجاد كند.به هر كاربر نيز مي توان نقشي (role) تخصيص داد تا براساس آن صفحات و ويژگي هايي براي وي قابل رؤيت و دسترسي باشد.مثلاً همه كاربران مي توانند مشخصات اساتيد را مشاهده كند ولي تنها مدير است كه مي تواند

اين مشخصات را علاوه بر رؤيت،تغيير نيز بدهد. فرايند ورود به يك سايت از ديد كاربر عبارت است از وارد كردن يك اعتبارنامه و سپس نمايش واسط كاربر متفاوتي كه متاظر با مرورگر كاربر مي باشد.اعتبار نامه مكعمولاً تركيبي از نام كاربري و كلمه عبور است ،ولي در سايتهاي امن تر مثل وب سايتهاي بانكي،مي توان از ساير روش هاي ورود،از جمله گواهينامه هاي امنيتي و PIN ها استفاده كرد.

بدون درنظر گرفتن روشي كه براي ارسال اعتبارنامه احراز هويت به سرويس دهنده استفاده شده است،اصول كلي احراز هويت يكسان مي باشد.پس از اينكه احراز هويت شديد،بررسي اينكه آيا داراي سطح دسترسي كافي براي استفاده از منابع هستيد،از طريق مكانيزم احراز هويت كار راحتي است.در بحث امنيت ابتدا مفاهيم مورد نياز را تعريف مي كنيم:
۱٫ هويت: كلكسيوني گسترده از حقايق كه موجب منحصر به فرد شدن هر شخص مي گردد.