چکیده
با توجه به پیشرفت فناوری اطلاعات در چند سال اخیر، نظام پزشکی کشور نیزدرصدد فراگیر کردن اطلاع رسانی اینترنتی اقدام فرموده است،که سایت مرکز درمانی شهیدشوریده جزءاولین سایت های مراکز درمانی کشور می باشد.دراین سایت تلاش شده تا با انجام مشاوره های پزشکی و اطلاع رسانی جمعی به جمعیت فناوری اطلاعات کشوری بپیوندد. هر یک از بازدیدکنندگان از این سایت می توانند با مراجعه به صفحه سوالات متداول سوالات معمولی که از طرف اکثریت بازدیدکنندگان پرسیده شده است، دیدن فرمایندودرصورتیکه سوال دیگری از متخصصین مرکز درمانی دارند،می توانند با عضویت از طریق صفحه عضو جدید وپرکردن فرم عضویت وهمچنین گرفتن کد ورمز عبور به عضو یت سایت درآیند وسوال خود را وارد نمایند .این سوال از طریق مدیریت سایت به متخصص مخصوص داده می شود وایشان بعد از پاسخ گویی ،جواب را بر روی سایت می فرستند وفرد مورد نظر می تواند پاسخ را با وارد کردن کد ورمز عبور مشاهده نماید.درصورتیکه افراد کد ورمز عبور خود را فراموش کنند می توانند با ورود به صفحه تغییر رمز عبور ،رمز عبورخود را تغییرداده ووارد سایت شوند. همچنین بازدیدکنندگانی که دارای مقالات علمی هستند می توانند مقالات خود راباورودبه صفحه ارسال مقالات به این مرکز ارسال نمایند.برای اطلاع بیشتر بازدیدکنندگان از سایت ونحوه عملکرد سایت می توانند به صفحه راهنمای سایت مراجعه نمایند.برای دیدن تعداد صفحات ونام آنها می توانند به صفحه نقشه سایت مراجعه کنند وازآنجا به صفحه دلخواه خود بروند.برای کارایی هرچه بهتر سایت بازدیدکنندگان می توانند با مراجعه به صفحه تماس باما پیشنهادات وانتقادات خودرابرای ما ارسال نمایند.با گسترده شدن اینگونه سایت ها ومشاوره های از راه دور با پزشکان متخصص ، میتوانیم درآینده نزدیک جامعه ای سالم وسلامت داشته باشیم ومراجعات بیماران فقط برای بیماریهای پیشرفته صورت بگیرد.
فصل 1
مقدمه
فناوری اطلاعات و ارتباطات و حرکت از جوامع سنتی به جوامع اطلاعاتی ،تمامی ابعاد نیازمندیهای بشری را تحت تاثیرقرارداده است.مسلماً بهره گیری از روشهای الکترونیکی با استفاده از روشهای جدید،موجبات کارایی و اثربخشی بیش از پیش سازمانها، درجوامع بشری را فراهم می نماید. به منظور بهره گیری از چنین روشهایی در اجرای آموزشها، تصمیم به الکترونیکی کردن نظر سنجی در دانشگاه گرفتیم.که برای این کار باید سایتی پویابدین منظور طراحی می کردیم. حال آنکه برای ساخت یک سایت پویا 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 گفته می شود می پردازیم.هرسایتی ازداشتن ظاهری زیبا و یکنواخت سود می برد.در اینترنت به ندرت می توان سایتی را یافت که از داشتن چینش عمومی یک سایت منحرف شده باشد.چینش عمومی معمولاً شامل موارد زیر است:
1. یک Header (سرآمد) مشترک برای کل سایت.
2.نواری در سمت چپ صفحه که شامل لینک های موجود درسایت است.
3.یک منو برای ارتباط با مدیر سایت.
4.درنهایت یک Footer (پاورقی) که اطلاعات کپی رایت را فراهم میاورد.
این عناصربا اینکه ویژگی های ضروری را فراهم نمی کنند،برروی همه صفحات قرار می گیرند.ولی ظاهر یکنواخت این عناصر به کاربر این اطمینان را می دهد که هنوز در همان سایت هستند.اگرچه این ظاهررا با تگ های HTMLنیز می توان ایجاد کرد،ولی Asp.Net ابزار قدرتمندتری همچون Master و Content را برای این منظور فراهم نموده است. با داشتن ابزارونرم افزارهای که بطور مختصر آنها را بیان کردیم می توان سایتی با یک موضوع خاص طراحی کرد.ما در این پروژه سایت نظرسنجی الکترونیکی را ایجاد کرده ایم،بطوریکه دانشجویان می توانند با ورود به این سایت رای خودرابه اساتید مورد نظر اعلام کند.در سایت برای اطلاعات بیشتردانشجویان به معرفی کلیه اساتید دردانشگاه پرداخته ایم.در فصل 3 بطورکامل سایت را تجزیه و تحلیل کرده ایم.
فصل 2
نرم افزارهای مورد نیاز در طراحی سایت
بخش اول : ASP.NET
ASP.NET چیست؟
وب جهان گستر(www) امکان اتصال گسترده به اینترنت را فراهم می کند.هرکسی که از کامپیوتر استفاده می کند به وب دسترسی دارد.اما حداقل استانداردهایی باید وجود داشته باشد تابتوان به این دسترسی فراگیر دست یافت.اطلاعات درقالب کدهای اسکی ارسال می شوند وبرای کدهای زبان ماشین این قابلیت نیاز نمی باشد.ملزومات سرویس گیرنده بسیارناچیز است.درواقع خود اینترنت هیچگونه استاندادی برای نحوه عملکرد یک مرورگر ندارد و به همین دلیل است که مرورگرهای مختلفی برای انواع سیستم عامل ها وجود دارد.درسال2005 به آسانی فراموش شد که اینترنت در ابتدا برای ارسال صفحات متنی ساده ایستا به همراه تصاویر و لینک ها طراحی شده و به وجود آمده بود.در15 سال اخیر،دربرنامه نویسی اینترنت سعی شده است تا درعین حال که از قوانین www (که تمایل زیادی به ساده سازی صفحات وب دارد) تخلف نکرد، نتوان پیچیدگی لازم را به کاربران تجربه نمود.کاربران انتظارداشتند تا پیاده سازی برنامه های کاربردی،مانندword و Access آسان باشد،اما این سطح از پیچیدگی در طراحی وب سایتها با حداقل پیکره بندی مورد نیازآنها آسان نیست. Asp.Net با ایجاد بلاک ها وکنترل های متعدد،موانع ایجاد وب سایتهای پیچیده را اساساً کاهش داد.بنابراین Asp.Net راه حل مایکروسافت برای ایجاد صفحات وب پویا و پیچیده می باشد.مایکروسافت درنسخه های قدیمی Asp.Net فهرستی ازاهداف عمومی و مشترکی که طراحان سایت درپیاده سازی سایت ها استفاده می کردندرا ایجاد کرد.دسرسی به برخی از این اهداف آسان ولی وقتگیر بود و برخی دیگر نیز بسیارپیچیده بودند و فقط طراحان خبره و ماهر می توانستند از آنها استفاده کنند.به طور کلی راه حل های برنامه نویسان یا بسیار معمولی ویا بسیارپیچیده بود.این راه حل ها نه تنها گاهی اوقات ضعیف بودند،بلکه زمان بسیاری را تلف می کردند و این بدان دلیل بودکه هزاران برنامه نویس جهت طراحی،کدنویسی و تست کدها زمان صرف می کردند.که این عیب Asp.Net در ورژن های جدید برطرف شده بطوریکه آن اهداف عمومی بصورت کنترلهای سمت سرویس گیرنده ی Asp.Net بوده و حاوی کدهایی برای تنظمات اجرا و عملکرد هستند.طراحان سایت با قراردادن یکی از این کنترلها برروی صفحه می توانند به همان نتایجی که در گذشته باید برای آنها کدنویسی می کردند،دست یابند. یکی دیگر از امکاناتی که Asp.Net در اختیار برنامه نویسان قرارداده اینست که،اصولاً طراحان وب علاقمندند تا دو ویژگی متعارض درطراحی وب ا یکجا استفاده کنند.از یک طرف مایلند که کل سایت ظاهری پایدار(consistent) داشته باشد و ازطرف دیگر می خواهند این امکان را برای کاربران فراهم کنند تا آنها بتوانند به طور دلخواه و مطابق سلیقه ی خود ظاهر سایت مانند رنگ ها،اندازه فونت ها و سایر خصوصیات سایت را تغییر دهند. Asp.Netیک کنترل صفحه اصلی به نام Master Page فراهم کرده (که در بخش 4-2 آمده است) تا از طریق ان بتوان آرایش و چینش (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 بیش از20زبان مختلف را پشتیبانی می کند.کلیه کدها بدون توجه به زبانی که برنامه نویس استفاده می کند،قبل از اجرا به یک زبان میانی ترجمه(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 ها استفاده کرد.
بدون درنظر گرفتن روشی که برای ارسال اعتبارنامه احراز هویت به سرویس دهنده استفاده شده است،اصول کلی احراز هویت یکسان می باشد.پس از اینکه احراز هویت شدید،بررسی اینکه آیا دارای سطح دسترسی کافی برای استفاده از منابع هستید،از طریق مکانیزم احراز هویت کار راحتی است.در بحث امنیت ابتدا مفاهیم مورد نیاز را تعریف می کنیم:
1. هویت: کلکسیونی گسترده از حقایق که موجب منحصر به فرد شدن هر شخص می گردد.
2. احراز هویت: به مفهوم شناساندن یک کاربر به سرویس دهنده از طریق اعتبارنامه ای(کلمات کاربری و عبور) که برای سرویس دهنده ارسال می گردد،می باشد.اگر اعتبارنامه کاربر مورد قبول سرویس دهنده قرار گیرد،آن کاربر احراز هویت شده است.
3.صدور مجوز: صدور مجوز فرایندی است،برای کسب لطلاعات بیشتر درباره نوع حساب کاربری(user account) شما در یک سایت
4.شخصی سازی: قابلیت و توانایی مهیا کردن اطلاعات مخصوص و مربوط به کاربری که در حال حاضربه سایت وارد (login) شده است.
5.عضویت: به مفهوم تعلق داشتن است. اگر از بحث تئوری خارج شویم، Asp.Net ابزار بسیار خوبی را برای پیاده سازی مکانیزم ورود،احرازهویت و صدور مجوز فراهم کرده است در نسخه های قدیمی Asp.Net برای پیاده سازی یک مکانیزم ورود،احراز هویت و عکس العمل در مقابل کاربری که در حال حاضر به سایت وارد شده است باید کد می نوشتیم که کار بسیار ملال آور و خسته کننده بود ولی Asp.Net ابزاری دارد که با استفاده از آنها به راحتی می توان این مکانیزم ها را پیاده سازی کرد.در این قسمت با کنترل های سرویس دهنده ای که Asp.Net برای این منظور فراهم کرده است آشنا می شویم. کنترل login : این کنترل با مهیا کردن جعبه های متن،دکمه ها و اعتبارداخلی(built-invalidation)به شما امکان می دهد تا بتوانید مکانیزم ورود را تنها با استفاده از روش drag and drop بر روی یک صفحه پیاده سازی کنید. کنترل login view: این کنترل روشی را فراهم می کند تا بسته به اینکه کاربر وارد سایت شده است یا خیر،ظاهر صفحه تغییر کند ویا اینکه برای گروه متفاوتی از کاربران،محتویات متفاوتی را نشان دهد.
کنترلlogin status: این کنترل یک بازخورد (feedback) ساده به کاربران می دهد تا ورود به سایت را به آنها یاد آوری نماید.
کنترل login موجود در صفحات Asp.Net یک هدیه واقعی از طرف تیم مایکروسافت است.قبلاً برای سایتهایی که به قابلیت login نیاز داشتند،باید کدهای زیادی نوشته می شد،ولی درحال حاضر تنها کاری که باید انجام داد،قراردادن کنترل ها برروی صفحه است. از آن بالاتراینکه با استفاده از ابزارwizard موجود،می توانید حساب هایکاربران را پیکربندی کرده و مجوزهای لازم را به آسانی برای آنها تخصیص دهید.