طراحی سایت پروژه های دانشجویی

پیشگفتار
وب يکی از مهمترين و در عين حال جوان ترين سرويس های اينترنت است که در مدت زمانی کوتاه توانسته است در کانون توجه تمامی استفاده کنندگان اينترنت قرار بگيرد و منشاء تحولات عمده ای در حيات بشريت باشد. در گذشته از وب صرفا” به منظور عرضه اطلاعات استفاده می گرديد و کاربران از آن به عنوان يک کنابخانه الکترونيکی بزرگ و در جهت يافتن اطلاعات مورد نياز خود استفاده می کردند. وضعيت فعلی وب نسبت به گذشته دستخوش تحولات فراوانی شده است و هم اينک از آن به عنوان بستر ارتباطات ، مبادله اطلاعات ، عمليات تراکنشی نظير فعاليت های تجاری ، اجتماعی ، سياسی ، آموزشی و فرهنگی استفاده می گردد .
نرم افزار و دنيای برنامه نويسی يکی ازعرصه هائی است که بدون شک بيشترين تاثير را از اينترنت پذيرا بوده است ( پرداختن به مقوله تاثير اينترنت بر دنيای برنامه نويسی و يا تاثير نرم افزار بر اينترنت خود بحث مفصلی است ). شرکت های عظيم نرم افزاری با لحاط نمودن جايگاه برجسته اينترنت ، اقدام به ارائه تکنولوژی ها و معماری های متفاوتی در جهت طراحی و پياده سازی برنامه های کامپيوتری با بهره گيری از زيرساخت اينترنت نموده اند .
به منظور پاسخ به خيل عظيم نيازهای موجود با توجه به تسهيلات ارائه شده توسط اينترنت ، نسل جديدی از برنامه های کامپيوتری با نام “برنامه های وب ” مطرح و در اين رابطه تاکنون تکنولوژی های متفاوتی توسط شرکت های عظيم نرم افزاری ارائه شده است.
با دارا بودن مجموعه ای گسترده از اشياء که دارای اينترفيس های ساده برنامه نویس ASP.net باشند و بهره گيری از يک محيط ترجمه شده شی گراء ، امکان پردازش های ساده تا پيچيده را با حداقل کد ممکن فراهم می نمايد.

فهرست مطالب
عنوان صفحه
چکیده ۴
مقدمه ۵
برخي ويژگي‌هاي پلتفرم ASP.NET 2.0 7
برنامه چند لایه چیست؟ ۱۰
مزیت های برنامه های چند لایه ۱۱
طراحی پایگاه داده های پروژه ۱۲
ابزار مدیریت سایت وب(WAT) 18
معماري و مدل Provider در ASP.NET 2.0 20
ایجاد فرم Login 21
ایجاد فرم Registration 23
لايه نمايش و رابط بصري در ASP.NET 2.0
●نمونه‌سازي از صفحات و Master Page 24
●كامپوننت‌هاي Source Data 29
●‌‌Themes 31
Configuration 32
لایه ی نمایش وب سایت
۱- صفحات قابل دسترس مدیر سایت ۳۳
۲- صفحات قابل دسترس اساتید ۳۷
۳- صفحات قابل دسترس دانشجویان ۴۱

چکیده:
این پروژه به منظور دسترسی دانشجویان به پروژه های قبلی و توسعه آنها و جلوگیری از دوباره کاری طراحی شده است که در آن هر استاد می تواند لیست عناوین پروژه های ارائه شده خود را وارد نماید و دانشجویان با مشاهده عناوین پروژه ها عنوان مورد نظر خود را انتخاب نمایند. همچنین امکان جستجو و دستیابی به نتایج پروژه های قبلی جهت استفاده از تجربیات قبلی وجود دارد.
برقراری ارتباط بین دانشجویان واساتید از طریق پیغام نیز از امکاناتی است که در این سایت قرار داده شده است.
در طراحی پروژه معماري سایت را مطابق با معماري معروف سه لايه٬ در نظر گرفته ایم، يعني ساختار نرم‌افزار سايت از لايه‌هاي نمايش ٬ موتور اصلی نرم افزار٬ و ارتباط با پایگاه داده ها تشکیل شده است.
صفحات سايت از طریق روش code behind برنامه نویسی شده اند به این صورت که کد هایی از آن که باید در سمت سرور اجرا شوند در یک فایل جداگانه ذخیره شده اند.
در این پروژه از امکانات جدید ASP.NET 2.0 نظیر MasterPage٬ کنترل های login Themes ، کنترل های لازم به منظور ايجاد منو و treeview و رويکرد جديد به data grid و غيره استفاده شده است.

مقدمه
محيط برنامه نويسی ASP.NET بيش از بيست و پنج زبان نظير VB.NET ، سی شارپ و Jscript.NET را حمايت می نمايد. به عنوان يک محيط شی گراء ، فريمورک دات نت بيش از ۴۵۰۰ کلاس را ارائه می نمايد که از آنان به منظور انجام عمليات متفاوتی در ارتباط با اسناد XML ، دستيابی به داده ، توليد تصاوير ، مونيتورينگ ، ثبت تراکنش ها و ساير عمليات ديگر استفاده می گردد . کلاس ها مجموعه ای گسترده از اشياء ، خصلت ها و متدها را ارائه می نمايند که می توان از آنان به منظور پياده سازی برنامه های وب قدرتمند استفاده بعمل آورد.
عليرغم اين که کدها ترجمه می گردند ، ASP.NET به صورت اتوماتيک هر گونه تغيير در کدها را تشخيص و به صورت پويا اقدام به ترجمه فايل های مورد نياز نموده و آنان را برای استفاده مجدد به منظور پاسخگوئی به درخواست هائی آتی ، ذخيره می نمايد . ترجمه پويا ، اين اطمينان را ايجاد می نمايد که برنامه بهنگام بوده و کد ترجمه شده با سرعت مناسبی اجراء می گردد. در زمان درخواست يک صفحه و ترحمه آن برای اولين مرتبه ، يک تاخير کوتاه را شاهد خواهيم بود . پاسخ به درخواست های آتی از طريق نتايج ترجمه شده و يا نسخه های Cache شده صفحات انجام خواهد شد و نتايج با سرعت بمراتب بيشتری برای سرويس گيرندگان ارسال می گردد .
با توجه به ويژگی های منحصربفرد ASP.NET ، تاکنون از آن به منظور پياده سازی برنامه های وب در سايت های معتبر متعددی استفاده شده است .
در ASP.NET 2.0 انجام هر کاری با سهولت بمراتب بيشتری نسبت به گذشته انجام می شود.
صفحات master ، ويژگی themes و skins ، ارائه امکانات مناسب در جهت حمايت از دستگاه های سرويس گيرنده متفاوت ، ارائه چهل و پنج کنترل سرويس دهنده جديد شامل کنترل های سرويس دهنده پيشرفته منبع داده ، کنترل های navigation ، کنترل های login ، کنترل های web part ، کنترل های لازم به منظور ايجاد منو و treeview ، رويکرد جديد به data grid ، ارائه امکانات و ابزارهای لازم در جهت مديريت بهينه برنامه ها ، حمايت از پردازنده های ۶۴ بيتی ، کاهش حجم کد نوشته شده به ميزان هقتاد درصد ، نمونه هائی از امکانات و پتانسيل های جديد ASP.NET 2.0 می باشد.
با استفاده از ASP.NET 2.0 پياده کنندگان برنامه های وب می توانند کارهای پيچيده متعددی را بدون نياز به نوشتن کد انجام دهند .
كه ASP.NET 2.0 صد‌درصد با ASP.NET 1.x سازگار است. بنابراين مي‌توانيم برنامه ASP.NET 1.x خود را بدون حتي يك خط تغيير در سورس كد روي سروري كه براي اجراي ASP.NET 2.0 تنظيم شده است، اجرا كنيم. شكل ۱ نمايي از پنجره تنظيمات يك سايت روي IIS 6.0 را نشان مي‌دهد كه امكان تغيير دادن فناوري‌ASP.NET را از نسخه يك به دو و يا برعكس فراهم مي‌كند.

شکل۱
اين tab ويژه، پس از نصب NET Framework 2.0 روي ويندوز سرور، به ساير Tabها در پنجره تنظيمات سايت افزوده مي‌شود. براي آزمودن ادعاي فوق، كافي است پنجره تنظيمات سايتي كه هم‌اكنون با ASP.NET 1.x نوشته‌ايد را باز كنيد و آن را روي نسخه دوم ASP.NET تنظيم كنيد و دوباره سايت را اجرا نماييد. همه چيز مانند قبل بدون تغيير قابل‌مشاهده خواهد بود.
برخي ويژگي‌هاي پلتفرم ASP.NET 2.0
فايل‌هاي موسوم به <پروژه> در ويژوال استوديوي ۲۰۰۵ حذف شده‌اند و اكنون همه چيز در فايل solution هر پروژه قرار دارد. بنابراين مديريت پروژه‌هاي ASP.NET اكنون آسان‌تر از گذشته است و سايت‌ها مي‌توانند به سادگي از مكان فيزيكي فعلي خود باز شوند.
در محيط Visual Web Developer 2005 يا Visual Studio 2005، يعني محيطي كه برنامه‌هاي ASP.NET 2.0 داخل آن نوشته مي‌شوند، دو روش براي اجراي سايت‌ها و صفحات دايناميك وجود دارد. روش اول همان روش قديمي است. به اين ترتيب كه يك وب‌سايت روي IIS تعريف مي‌كنيد و سپس هنگام تعريف يك پروژه جديد، آدرسHTTP آن سايت را به ويژوال استوديو مي‌دهيد تا فايل‌هاي پروژه را آنجا بگذارد. در اين صورت هنگام بازكردن و اجراي سايت، اين صفحات روي آدرس HTTP سايت مربوطه باز مي‌شوند. در اين حالت شما براي آزمايش كاركرد سايتي كه درست كرده‌ايد، نيازمند اجراي وب سرور IIS هستيد.

شكل ۲
در روش دوم كه روش جديدي در ASP.NET 2.0 است نيازي به وجود IIS نيست. اين روش به صورت پيش‌فرض روي ويژوال استوديوي ۲۰۰۵ تنظيم شده و هنگام آزمايش و مشاهده يك صفحه دايناميك در حالت اجرا، يك وب سرور كوچك روي يك پورت تصادفي خاص (روي http://localhost) اجرا مي‌شود و صفحات سايت به كمك آن قابل اجرا و مشاهده خواهند بود. (شكل ۲)
اين روش سه مزيت دارد كه عبارتنداز:
‌‌●‌‌نيازي به نصب IIS نيست. بنابراين مي‌توان كار برنامه‌نويسي را روي يك ويندوز دسكتاپ (مثلاً اكس‌پي) انجام داد. ضمناً نيازي به نصب نسخه استاندارد SQL Server هم نيست؛ زيرا ويژوال استوديو به روش مشابهي مي‌تواند به كمك يك نرم‌افزار كوچك‌تر به نام SQL Server 2005 Express Edition كه همراه ويژوال استوديو نصب مي‌شود، نياز به وجود يك پايگاه اطلاعاتي را تأمين كند.

‌‌●‌‌ عدم نياز به فايل‌هاي موسوم به <پروژه>. هر سايتي مي‌تواند از محل فيزيكي خودش به آساني باز شود؛ زيرا اجباري در وابسته كردن پروژه به يك IP خاص نيست.

●‌ امنيت بيشتر در محيط برنامه نويسي. عدم نياز به IIS براي تست صفحات عملاً به اين معنا است كه می توانید اصلاً IIS ‌را نصب نكنيد و همانطور که مي‌دانيد هرچه تعداد سرويس‌هاي درحال اجرا روي يك سيستم كمتر باشد، امنيت آن بيشتر است. ضمن اين‌كه اجراي سايت روي یک پورت تصادفی از localhost امكان حدس‌زدن URLصفحات پروژه را براي هكرها دشوار مي‌سازد.
ويژوال استوديوي ۲۰۰۵ بر خلاف نسخه ۲۰۰۳ همه روش‌هاي دسترسي به يك سايت راه دور را به صورت مناسب و آسان در اختيار برنامه‌نويس مي‌گذارد. بنابراين برای اینکه سايت پروژه خود را از طريق FTP يا از طريق شبكه (فايل سيستم) آپلود كنيد، ابزار قدرتمندي براي اين منظور در اختيار شماست. شكل ۳ نمايي از ابزار Copy Web Site را نشان مي‌دهد. به كمك اين ابزار مي‌توانيد پروژه خود را مستقيماً به سايت مقصد آپلود كنيد.

شکل ۳
– ويژوال استوديوي ۲۰۰۵ امكانات مفصلي براي كار با بانك‌هاي اطلاعات دارد. به گونه‌اي كه ما را از مراجعه مستقيم به اينترفيس مديريت SQL Server يا ديگر بانك‌هاي اطلاعاتي تقريباً بي‌نياز مي‌كند. مي‌توانيم به كمك اين ابزارها جداول بانك اطلاعاتي خود را طراحي كنيم يا براي اجراي فرامين مختلف روي بانك‌اطلاعاتي Stored Procedure بنويسيم و اين توابع را همانجا داخل ويژوال استوديوي اشكال‌زدايي (Debug) نماييم.

برنامه چند لایه چیست؟

شکل ۴
در معماری چند لایه تمام برنامه به چندین بخش تقسیم می شود.شکل ۴ این بخش ها را نمایش داده است . این بخش ها می توانند فیزیکی یا منطقی باشند. هر بخش کار خاصی را انجام می دهد مثلا نمایش اینترفیس کاربر یا دسترسی به داده ها. برنامه می تواند به هر تعداد لایه داشته باشد ولی به هر حال بیشتر برنامه ها سه لایه مجزا دارند که عبارتند از :
۱- Presentation Layer
2- Business Logic Layer
3- Data Access Layer
لایه Presentation چیزی نیست به جز بخشی از نرم افزار که با کاربر برنامه شما ارتباط برقرار می کند ( اینترفیس برنامه شماست ) نمایش داده ها به کاربر نهایی و اجازه به آنان برای ارتباط داشتن با داده ها، اصلی ترین وظیفه این لایه است.
در بیشتر موارد داده هایی که توسط کاربر وارد می شوند نیاز به اعتبارسنجی یا پردازش اضافی دارند. این مسوولیت لایه Business Logic است.
در نهایت داده های برنامه شما نیاز به ذخیره و بازیابی از طریق یک انبار داده دارند ( مثلا سیستم مدیریت دیتابیس های رابطه ای یا RDBMS و یا XML , .. ) این وظیفه توسط لایه دسترسی به داده انجام می شود.
به طور خلاصه، فرآیند مورد نظر ما این گونه کار می کند:
– کاربر برای داده های برنامه درخواستی ارسال می کند.
– لایه Data Access داده های مورد نظر را بازیابی می کند و از طریق لایه Business Logic آن ها را به لایه نمایش می فرستد.بعضی مواقع لایه دسترسی به داده ها، این داده ها را مستقیما به لایه نمایش ارسال می کند.
– لایه نمایش اطلاعاتی که باید نمایش داده شوند را از طریق لایه Business Logic دریافت می کند.
– کاربر داده ها را تغییر می دهد و عمل مناسب در مورد آن ها را اجرا می کند ( مثل اضافه یا به روز کردن داده ها )
– لایه Business Logic صحت داده های وارد شده توسط کاربر را بررسی می کند ( داده ها را اعتبار سنجی می کند)
– اگر داده ها معتبر باشند آن ها را برای به روز رسانی در بانک اطلاعاتی به دست لایه دسترسی به داده می سپارد.
مزیت های برنامه های چند لایه
– برنامه ها به چند بخش منطقی جدا از هم تقسیم می شوند و اتصال میان UI ( رابط کاربری ) ، پردازش ها و بانک اطلاعاتی کم می شود.
– تغییر در بانک اطلاعاتی یا روال های دسترسی به داده ها تاثیری در لایه نمایش یا برنامه کلاینت نخواهد گذاشت.
– برنامه کلاینت با عبارات SQL آمیخته نخواهد شد.
– نام جداول و ستون ها به طور موثری از برنامه کلاینت حذف می شوند.
– برنامه کلاینت نمی فهمد که داده ها از کجا آمده اند ( چیزی که به آن location transparency گفته می شود )
– تغییر یا گسترش برنامه بسیار ساده تر خواهد شد، بدون نیاز به تغییر یا کامپایل مجدد برنامه کلاینت.
نکته منفی در معماری چند لایه این است که شما باید تعداد زیادی بخش ها و کلاس های از هم جدا در نرم افزار بسازید. اما به هر حال مزایای این روش بیشتر و برتر از معایب آن است.