پایان نامه مقطع کارشناسی
رشته مهندسی کامپیوتر
سال 1386
پیشگفتار
وب یکی از مهمترین و در عین حال جوان ترین سرویس های اینترنت است که در مدت زمانی کوتاه توانسته است در کانون توجه تمامی استفاده کنندگان اینترنت قرار بگیرد و منشاء تحولات عمده ای در حیات بشریت باشد. در گذشته از وب صرفا" به منظور عرضه اطلاعات استفاده می گردید و کاربران از آن به عنوان یک کنابخانه الکترونیکی بزرگ و در جهت یافتن اطلاعات مورد نیاز خود استفاده می کردند. وضعیت فعلی وب نسبت به گذشته دستخوش تحولات فراوانی شده است و هم اینک از آن به عنوان بستر ارتباطات ، مبادله اطلاعات ، عملیات تراکنشی نظیر فعالیت های تجاری ، اجتماعی ، سیاسی ، آموزشی و فرهنگی استفاده می گردد .
نرم افزار و دنیای برنامه نویسی یکی ازعرصه هائی است که بدون شک بیشترین تاثیر را از اینترنت پذیرا بوده است ( پرداختن به مقوله تاثیر اینترنت بر دنیای برنامه نویسی و یا تاثیر نرم افزار بر اینترنت خود بحث مفصلی است ). شرکت های عظیم نرم افزاری با لحاط نمودن جایگاه برجسته اینترنت ، اقدام به ارائه تکنولوژی ها و معماری های متفاوتی در جهت طراحی و پیاده سازی برنامه های کامپیوتری با بهره گیری از زیرساخت اینترنت نموده اند .
به منظور پاسخ به خیل عظیم نیازهای موجود با توجه به تسهیلات ارائه شده توسط اینترنت ، نسل جدیدی از برنامه های کامپیوتری با نام "برنامه های وب " مطرح و در این رابطه تاکنون تکنولوژی های متفاوتی توسط شرکت های عظیم نرم افزاری ارائه شده است.
با دارا بودن مجموعه ای گسترده از اشیاء که دارای اینترفیس های ساده برنامه نویس ASP.net باشند و بهره گیری از یک محیط ترجمه شده شی گراء ، امکان پردازش های ساده تا پیچیده را با حداقل کد ممکن فراهم می نماید.
این پروژه به منظور دسترسی دانشجویان به پروژه های قبلی و توسعه آنها و جلوگیری از دوباره کاری طراحی شده است که در آن هر استاد می تواند لیست عناوین پروژه های ارائه شده خود را وارد نماید و دانشجویان با مشاهده عناوین پروژه ها عنوان مورد نظر خود را انتخاب نمایند. همچنین امکان جستجو و دستیابی به نتایج پروژه های قبلی جهت استفاده از تجربیات قبلی وجود دارد.
برقراری ارتباط بین دانشجویان واساتید از طریق پیغام نیز از امکاناتی است که در این سایت قرار داده شده است.
در طراحی پروژه معماری سایت را مطابق با معماری معروف سه لایه٬ در نظر گرفته ایم، یعنی ساختار نرمافزار سایت از لایههای نمایش ٬ موتور اصلی نرم افزار٬ و ارتباط با پایگاه داده ها تشکیل شده است.
صفحات سایت از طریق روش code behind برنامه نویسی شده اند به این صورت که کد هایی از آن که باید در سمت سرور اجرا شوند در یک فایل جداگانه ذخیره شده اند.
در این پروژه از امکانات جدید ASP.NET 2.0 نظیر MasterPage٬ کنترل های login Themes ، کنترل های لازم به منظور ایجاد منو و treeview و رویکرد جدید به data grid و غیره استفاده شده است.
مقدمه
محیط برنامه نویسی ASP.NET بیش از بیست و پنج زبان نظیر VB.NET ، سی شارپ و Jscript.NET را حمایت می نماید. به عنوان یک محیط شی گراء ، فریمورک دات نت بیش از 4500 کلاس را ارائه می نماید که از آنان به منظور انجام عملیات متفاوتی در ارتباط با اسناد XML ، دستیابی به داده ، تولید تصاویر ، مونیتورینگ ، ثبت تراکنش ها و سایر عملیات دیگر استفاده می گردد . کلاس ها مجموعه ای گسترده از اشیاء ، خصلت ها و متدها را ارائه می نمایند که می توان از آنان به منظور پیاده سازی برنامه های وب قدرتمند استفاده بعمل آورد.
علیرغم این که کدها ترجمه می گردند ، ASP.NET به صورت اتوماتیک هر گونه تغییر در کدها را تشخیص و به صورت پویا اقدام به ترجمه فایل های مورد نیاز نموده و آنان را برای استفاده مجدد به منظور پاسخگوئی به درخواست هائی آتی ، ذخیره می نماید . ترجمه پویا ، این اطمینان را ایجاد می نماید که برنامه بهنگام بوده و کد ترجمه شده با سرعت مناسبی اجراء می گردد. در زمان درخواست یک صفحه و ترحمه آن برای اولین مرتبه ، یک تاخیر کوتاه را شاهد خواهیم بود . پاسخ به درخواست های آتی از طریق نتایج ترجمه شده و یا نسخه های Cache شده صفحات انجام خواهد شد و نتایج با سرعت بمراتب بیشتری برای سرویس گیرندگان ارسال می گردد .
با توجه به ویژگی های منحصربفرد ASP.NET ، تاکنون از آن به منظور پیاده سازی برنامه های وب در سایت های معتبر متعددی استفاده شده است .
در ASP.NET 2.0 انجام هر کاری با سهولت بمراتب بیشتری نسبت به گذشته انجام می شود.
صفحات master ، ویژگی themes و skins ، ارائه امکانات مناسب در جهت حمایت از دستگاه های سرویس گیرنده متفاوت ، ارائه چهل و پنج کنترل سرویس دهنده جدید شامل کنترل های سرویس دهنده پیشرفته منبع داده ، کنترل های navigation ، کنترل های login ، کنترل های web part ، کنترل های لازم به منظور ایجاد منو و treeview ، رویکرد جدید به data grid ، ارائه امکانات و ابزارهای لازم در جهت مدیریت بهینه برنامه ها ، حمایت از پردازنده های 64 بیتی ، کاهش حجم کد نوشته شده به میزان هقتاد درصد ، نمونه هائی از امکانات و پتانسیل های جدید ASP.NET 2.0 می باشد.
با استفاده از ASP.NET 2.0 پیاده کنندگان برنامه های وب می توانند کارهای پیچیده متعددی را بدون نیاز به نوشتن کد انجام دهند .
که ASP.NET 2.0 صددرصد با ASP.NET 1.x سازگار است. بنابراین میتوانیم برنامه ASP.NET 1.x خود را بدون حتی یک خط تغییر در سورس کد روی سروری که برای اجرای ASP.NET 2.0 تنظیم شده است، اجرا کنیم. شکل 1 نمایی از پنجره تنظیمات یک سایت روی IIS 6.0 را نشان میدهد که امکان تغییر دادن فناوریASP.NET را از نسخه یک به دو و یا برعکس فراهم میکند.
شکل1
این tab ویژه، پس از نصب NET Framework 2.0 روی ویندوز سرور، به سایر Tabها در پنجره تنظیمات سایت افزوده میشود. برای آزمودن ادعای فوق، کافی است پنجره تنظیمات سایتی که هماکنون با ASP.NET 1.x نوشتهاید را باز کنید و آن را روی نسخه دوم ASP.NET تنظیم کنید و دوباره سایت را اجرا نمایید. همه چیز مانند قبل بدون تغییر قابلمشاهده خواهد بود.
برخی ویژگیهای پلتفرم ASP.NET 2.0
فایلهای موسوم به <پروژه> در ویژوال استودیوی 2005 حذف شدهاند و اکنون همه چیز در فایل solution هر پروژه قرار دارد. بنابراین مدیریت پروژههای ASP.NET اکنون آسانتر از گذشته است و سایتها میتوانند به سادگی از مکان فیزیکی فعلی خود باز شوند.
در محیط Visual Web Developer 2005 یا Visual Studio 2005، یعنی محیطی که برنامههای ASP.NET 2.0 داخل آن نوشته میشوند، دو روش برای اجرای سایتها و صفحات داینامیک وجود دارد. روش اول همان روش قدیمی است. به این ترتیب که یک وبسایت روی IIS تعریف میکنید و سپس هنگام تعریف یک پروژه جدید، آدرسHTTP آن سایت را به ویژوال استودیو میدهید تا فایلهای پروژه را آنجا بگذارد. در این صورت هنگام بازکردن و اجرای سایت، این صفحات روی آدرس HTTP سایت مربوطه باز میشوند. در این حالت شما برای آزمایش کارکرد سایتی که درست کردهاید، نیازمند اجرای وب سرور IIS هستید.
شکل 2
در روش دوم که روش جدیدی در ASP.NET 2.0 است نیازی به وجود IIS نیست. این روش به صورت پیشفرض روی ویژوال استودیوی 2005 تنظیم شده و هنگام آزمایش و مشاهده یک صفحه داینامیک در حالت اجرا، یک وب سرور کوچک روی یک پورت تصادفی خاص (روی http://localhost) اجرا میشود و صفحات سایت به کمک آن قابل اجرا و مشاهده خواهند بود. (شکل 2)
این روش سه مزیت دارد که عبارتنداز:
●نیازی به نصب IIS نیست. بنابراین میتوان کار برنامهنویسی را روی یک ویندوز دسکتاپ (مثلاً اکسپی) انجام داد. ضمناً نیازی به نصب نسخه استاندارد SQL Server هم نیست؛ زیرا ویژوال استودیو به روش مشابهی میتواند به کمک یک نرمافزار کوچکتر به نام SQL Server 2005 Express Edition که همراه ویژوال استودیو نصب میشود، نیاز به وجود یک پایگاه اطلاعاتی را تأمین کند.
● عدم نیاز به فایلهای موسوم به <پروژه>. هر سایتی میتواند از محل فیزیکی خودش به آسانی باز شود؛ زیرا اجباری در وابسته کردن پروژه به یک IP خاص نیست.
● امنیت بیشتر در محیط برنامه نویسی. عدم نیاز به IIS برای تست صفحات عملاً به این معنا است که می توانید اصلاً IIS را نصب نکنید و همانطور که میدانید هرچه تعداد سرویسهای درحال اجرا روی یک سیستم کمتر باشد، امنیت آن بیشتر است. ضمن اینکه اجرای سایت روی یک پورت تصادفی از localhost امکان حدسزدن URLصفحات پروژه را برای هکرها دشوار میسازد.
ویژوال استودیوی 2005 بر خلاف نسخه 2003 همه روشهای دسترسی به یک سایت راه دور را به صورت مناسب و آسان در اختیار برنامهنویس میگذارد. بنابراین برای اینکه سایت پروژه خود را از طریق FTP یا از طریق شبکه (فایل سیستم) آپلود کنید، ابزار قدرتمندی برای این منظور در اختیار شماست. شکل 3 نمایی از ابزار Copy Web Site را نشان میدهد. به کمک این ابزار میتوانید پروژه خود را مستقیماً به سایت مقصد آپلود کنید.
- ویژوال استودیوی 2005 امکانات مفصلی برای کار با بانکهای اطلاعات دارد. به گونهای که ما را از مراجعه مستقیم به اینترفیس مدیریت SQL Server یا دیگر بانکهای اطلاعاتی تقریباً بینیاز میکند. میتوانیم به کمک این ابزارها جداول بانک اطلاعاتی خود را طراحی کنیم یا برای اجرای فرامین مختلف روی بانکاطلاعاتی Stored Procedure بنویسیم و این توابع را همانجا داخل ویژوال استودیوی اشکالزدایی (Debug) نماییم.
شکل 4
در معماری چند لایه تمام برنامه به چندین بخش تقسیم می شود.شکل 4 این بخش ها را نمایش داده است . این بخش ها می توانند فیزیکی یا منطقی باشند. هر بخش کار خاصی را انجام می دهد مثلا نمایش اینترفیس کاربر یا دسترسی به داده ها. برنامه می تواند به هر تعداد لایه داشته باشد ولی به هر حال بیشتر برنامه ها سه لایه مجزا دارند که عبارتند از :
1- 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 گفته می شود )
- تغییر یا گسترش برنامه بسیار ساده تر خواهد شد، بدون نیاز به تغییر یا کامپایل مجدد برنامه کلاینت.
منابع و مآخذ :
http://barnamenevis.org -
- آموزش ویژوال c# 2005 گردآوری سید محمد هاشمیان
- آموزش گام به گام ASP.NET ترجمه مانی قاسم نیا
- Wrox-Beginning Asp.net 2.0 DataBases Beta Preview
-Wrox-Professional Asp.net 2.0
- http://www.asp.net