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

وهمینطور اگر ما بخواهیم تا ساختمان را بخریم می توانیم به بنگاه رجوع کرده و اطلاعات ساختمان مورد نظر خود را به مدیر بنگاه داده سپس او چند ساختمان که اطلاعات آن به ساختمان مورد در خواست ما نزدیک است را معرفی می کند یعنی با ورق زدن دفترچه اطلاعات مسکن های فروشی این کار را انجام می دهد که ممکن است با ازدحام زیاد داده این کار مشکل شود . و اما اگر ساختمان مورد نظر این خریدار پیدا شد باید با فروشنده تماس گرفته شود وسپس با توافق طرفین معامله انجام شود .
۱-۲)مشکلات سیستم دستی :

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

۱-۳)مشخصات سیستم مکانیزه ی خرید و فروش مسکن :
در این روش ما برای خرید یا فروش مسکن خود به سایت خرید و فروش مسکن (شهریار ) با اتصال به اینترنت ( شبکه گسترده جهانی ) وسپس با وارد کردن آدرس اینترنتی این سایت به این وب سایت متصل می شوید ابتدا در صفحه ی اصلی هستید که در این صفحه دو شکل وجود دارد که از طریق آنها می فهمیم که به یک سایت خرید و فروش مسکن وارد شده ایم در پائین صفحه مشخصات ساختمان های فروشی داده شده است لذا اگر ما قصد خرید مسکن را داشته باشیم ابتدا کد مسکن مورد نظر را در نظر می گیریم سپس به لینک خرید

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

واگذار می شود . اما برای فروش نیز به لینک مورد نظر یعنی فروش مسکن رفته و دگمه ی new را انتخاب کرده و اطلاعات مسکن خود را وارد می کنیم و همچنین اطلاعات فردی و همچنین اطلاعات مورد نیاز برای تماس با ما را وارد می کنیم و منتظر می مانیم تا از طرف مدیر بنگاه با تماس گرفته شود .
طراحی سیستم خرید و فروش مسکن تحت وب :

در این سیستم مشتری ابتدا به صفحه اول وارد می شود وسپس با توجه به اینکه خریدار یا فروشنده باشد یک پروسه ای را طی می کند که شکل DFD آن به صورت زیر نمایش داده شده است .

شكل(۱-۱) نمودار ارتباطات مربوط به سیستم

اگر مشتری ما خریدار مسکن باشد اطلاعات خانه های فروشی را در صفحه ی اول مطالعه می کند و در صورت مورد پسند بودن کد ساختمان مورد نظر و مابقی اطلاعات را در لینک خرید ساختمان وارد می کند . اگر مشتری ما فروشنده مسکن باشد اطلاعات ساختمان خود را در لینک فروش مسکن و همچنین اطلاعات فردی مورد نیاز مدیر سایت را وارد می کند .
در لینکهای دیگر لینک نظرات را داریم که در این لینک مشتری یا هر کس دیگری می تواند نظرات خود را درباره این سایت بدهد که در این فرم شخص مقابل را ملزم به ذکر اسم و فامیل خود نکرده ایم که بتواند نظرات خود را بدون هیچ مشکلی وارد کند و سپس دگمه ارسال نظر زده می شود که این نظرات در پایگاه داده وب سایت ذخیره می شود که فقط مدیر سایت می تواند این نظرات را مطالعه کند . لینک اخبار مسکن اخبار روز در مورد مسکن ذکر شده است که برای دادن اطلاعات بیشتر برای مشتریان فراهم می کند که به آنها در مورد انتخاب مسکن مورد نظر خودکمک می کند .

لینک درباره ی ما توضیحاتی در مورد طراح سایت و توضیحات دیگری داده شده است . لینک راهنمای سایت در مورد طرز استفاده ی درست از سایت داده شده است به صورت کامل داده شده است که در همان صفحه ی اول هم به کاربر پیشنهاد می شود که ابتدا راهنمای سایت را مطالعه کند . در سایر لینکها هم لینکهای مربوط به مسکن یا لینکهای مورد علاقه داده شده است که کاربر می تواند از آنها استفاده کند .

۱-۵) نمودارهای usecase مورد نیاز:
در این قسمت نمودارهای usecase مورد نیاز برای طراحی سیستم را رسم می کنیم . در واقع نمودار usecase همان پروسه ای است که یک کاربر باید در سیستم طی کند تا به هدف خود برسد که در هر مرحله از این نمودار ممکن است نیاز به نوشتن یک نرم افزار یا یک کد نویسی باشد در نهایت تمام این نمودار ها به هم ارتباط داده می شوند که سیستم اصلی را بسازند .

۱-۵-۱) نمودار usecase مربوط به خرید مسکن :
ما ابتدا از نمودار usecase خرید مسکن شروع می کنیم که به صورت زیر است که مشاهده می کنید:

شكل(۱-۲) نمودار use caseمربوط به خرید مسکن

یعنی ابتدا یک مشتری که وارد سایت می شود ابتدا باید یک مسکن مناسب را از قسمت نمایشگاه مسکن انتخاب کند سپس کد آن را یادداشت کند بعد به صفحه ی خرید مسکن وارد شود و اطلاعات خواسته شده را در قسمتهای خواسته شده بنویسد سپس با زدن دگمه ثبت اطلاعات پروسه ی او به پایان می رسد .

۱-۵-۲) نمودار مربوط به فروش مسکن :
نمودار زیر برای فروش مسکن می باشد که بعد از زدن دگمه مربوط به فرو ش مسکن در بالای صفحه به آن صفحه رفته و اطلاعات خواسته شده را وارد می کنیم سپس دگمه ثبت اطلاعات را می زنیم با زدن این کلید عمل ثبت انجام می شود و این پروسه نیز با موفقیت انجام می شود .

شكل(۱-۳) نمودار use caseمربوط به فروش مسکن

جداول ER :

شكل(۱-۵) نمودار ER مربوط به دو table در پایگاه داده

جداول ارتباطات مربوط به پایگاه داده این وب سایت نیز به صورت زیر می باشد :

شكل(۱-۶) نمودار ارتباط دو table در پایگاه داده

همان گونه که می بینیم کد مسکن با کد فروشنده به عنوان یک کلید خارجی مطرح شده است و دو table خریدار و فروشنده مسکن را به هم ربط می دهد . یک جدول مربوط به جدول نظرات نیز داریم که نظرات بازدید کنندگان را در آن ذخیره می کنیم. که به صورت زیر می باشد :

شكل(۱-۷) نمودار table مربوط به نظرات

فصل دوم
انتخاب نرم افزار های مورد استفاده
و چرایی آن ها

۲-۱) مقدمه فصل:
با توجه به وجود نرم افزارهای فروارن در طراحی سایت و پایگاه داده های آن در این فصل به ارائه توضیحاتی در مورد نرم افزار های انتخاب شده برای پیاده سازی سایت و چرایی انتخاب آنها پرداخته ایم. برای اطلاعات بیشتر در این زمینه می توانید به منابع گفته شده در قسمت آخر پایانامه مراجعه نمایید ، با توجه به اهمیت این بحث یقینا هر فردی نیاز به این کار دارد که قبل از انجام هر کاری برای طراحی و پیاده سازی سایت دست به انتخاب آگاهانه نرم افزار های مورد نیاز خود بزند.

۲-۲) ابزار ها ، نرم افزار ها و منابع استفاده شده برای تجزیه تحلیل و طراحی سیستم:
برای طراحی صفحات از نرم افزار Microsoft Visual Web Developer 2008 Express Edition یا همان ASP.Net تحت زبان بر نامه نویسی سی شارپ( c# ) استفاده شده است و همان گونه که از نام آن پیداست قسمتی از مجموعه ویژوآل استودیو دات نتِ شرکت تولید نرم افزار ماکرو سافت می باشد. و اما چرا از این مجموعه های استفاده شده در ادامه توضیح داده خواهد شد، منابع استفاده شده نیز به دلیل کمبود و یا عدم وجود منابع فارسی برای نسخه ۲۰۰۸ این نرم افزار نیز معمولا مربوط به نسخه های ۲۰۰۵ و ۲۰۰۳ این نرم افزار می باشند، و برای طراحی پایگاه داده یا همان دیتا بیس نیز از نرم افزار اس کیو ال سرور محصول همین شرکت ماکرو سافت نسخه ۲۰۰۵ آن استفاده شد که چرایی این کار نیز در ادامه آورده خواهد شد.

۲-۳) چرا ASP.Net ؟
سالها پيش كهAsp.Ne چشم انداز جديدي را به دنيا وب گشود ،پديده واقعا شگفت انگيزي بود كه خيلي زود مورد توجه برنامه نويسان وب قرار گرفت.برنامه نويسان Asp كلاسيك خيلي زود به Asp.Net گرويدند و بسياري ديگر Asp.Net را به ساير زبانها ترجيح دادند.

اين ابزار كمپاني ميكروسافت (Microsoft) خيلي زود به رقيبي جدي در زمينه ساخت برنامه هاي وب و صفحات پويا تبديل شد.
ASP.Net چيزي بيش از نسخه ارتقاء يافته Asp كلاسيك به شمارمي رود.در واقعAsp.Net يك پرش به جلو محسوب ميشود.
نسخه نهاييAsp.Net 2.0 مدتهاست توسط ميكروسافت در اختيار برنامه نويسان وب قرار گرفته است. به علت ایتکه بنده منبع خوب و کاملی از ASP.Aet 3و ASP.NET 3.5 نداشتم به بررسي همين نسخه ازASP.Net در اینجا اکتفا نموده ام.

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

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

نسل جديد زبان‌هاي برنامه‌نويسي به اين دليل توليد مي‌شود كه زبان‌هاي قديمي‌تر داراي امكانات محدود بوده و يا قدرت استفاده از تكنولوژي‌هاي فعلي را بصورت مطلوب ندارند. ASP.Net نسل جديدي از ASP بوده كه توسط شركت مايكروسافت عرضـه گرديده است. ASP.Net اولين سيستم جامع براي برنامه‌نويسي تحت وب (اينترنت) است كه از مراحل سطح پايين آن يعني زبان ماشين تا بالاترين سطح آن كه برنامه‌نويسي ويژوال مي‌باشد براي استفاده در اينترنت و شبكه هاي محلي طراحي شده‌است. بزرگترين مزيت آن در برابر سيستم‌هاي ديگر، امكانات اينترنت آن است. از ASP.Net مي‌توان در طراحي و توليد سايت‌هاي وب اينترانت كوچك يك شركت و نيز سايت‌هاي وب تجاري خيلي بزرگ استفاده نمود. مهمترين نكته‌اي كه در طراحي اين محصول درنظرگرفته‌شده‌است، استفاده‌ي آسان، كارآيي بالا و نيز قابليت فوق‌العاده اين نرم‌افزار است.

ASP.Net، يك زبان برنامه نويسي run time است. ساختار آن بر اساس فریم ورک بوده كه تمام لايه‌هاي برنامه نويسي را در بالاي سيستم عامل دربرگرفته‌است. اين تمامي تكنولوژي هاي موجود از طرف مايكروسافت و ساير شركت ها را شامل مي‌شود. در .Net تمام اعمال تخصيص حافظه و سازماندهي فايل بعهده‌ي .Net ، Framework است. همين باعث

مي‌شود تا بتوان برنامه‌اي را كه به سيستم عامل متكي نمي‌باشد ، نوشت. اما قلب Framework، CLR مي‌باشد. مسئول اجراي فايل‌ها، فراخواني آنها به حافظه و كمپايل‌كردن آنها به زبان MSIL است. سپس كدهاي IL در هنگام اجرا، توسط برنامه‌ي كمپايلر Just-in-time به زبان ماشين تبديل مي‌شود. اين بدان معني است كه در .Net دو مرحله براي كمپايل‌شدن وجود دارد. اولين مرحله وقتي است كه برنامه به IL كمپايل شود كه اين كد كمپايل‌شده، وابسته به سيستم عامل نمي‌باشد. مرحله‌ي دوم زمان اجرا است كه كمپايلر Just-in-hime كد IL را براي اجرا به زبان ماشين ترجمه مي‌كند.

 

۲-۳-۱) ASP.Net داراي چندين ويژگي مهم در مدلهاي توسعه يافته مي‌باشد:
– بهبود عملكرد:
ASP.Net يك تكنولوژي قدرتمند از مجموعه‌ي تكنولوژي‌هاي Server-side براي ايجاد صفحات وب پويا است . برخلاف پردازشگرهاي مفسر ،ASP.Net بهبود در مقيدسازي ،كمپايل Just-in-time، بهينه‌سازي و سرويس Cache را در بهترين شرايط ارائه مي‌دهد. مي‌توان گفت ASP.Net بهترين عملكرد را قبل از نوشتن حتي يك خط برنامه ارائه‌خواهدداد.

– پشتيباني از ابزار جهاني:
ASP.Net جعبه ابزاري كامل، و محيط طراحي توسعه يافته‌اي دارد. به علت تغيير اساسي‌اي كه در برنامه داده‌شده‌است، برنامه اينترنتي قابليت گرافيكي در حد برنامه‌هاي Win32GUI را دارا هست. ويرايش WYSIWYG، كنترل‌هاي بكش‌ورهاكن سرور و گسترش اتوماتيك، از ويژگي‌هاي اين ابزار قدرتمند مي‌باشند.

– قدرت و انعطاف‌پذيري :
به واسطه‌ي استفاده از CLR، ASP.Net از قدرت و انعطاف‌پذيري خاصي در توسعه‌ي برنامه‌هاي كاربردي وب دارا است. كتابخانه‌ي كلاس .Net، پيام‌ها و راه‌حل‌هاي دستيابي داده، تواماً گواهي بر قدرت دستيابي وب مي‌باشد. XML، ADO.Net وThreading (اشيايي براي برنامه نويسي هر Thread ) از جمله‌ي كلاس‌ها و اشياي مورد استفاده‌ي برنامه‌نويسان است. ASP.Net داراي زباني مستقل است كه مي‌توانيد آنرا انتخاب و جزيي از زبان‌هاي برنامه‌ي كاربردي خود قراردهيد.

– سادگي: ASP.Net كارها را ساده كرده و از يك فرم ساده و مجوزي، براي گسترش و پيكربندي سايت جهت ايجاد يك برنامه استفاده مي‌كند. براي مثال، يك صفحه‌ي ASP.Net اجازه مي‌دهد شما رابط كاربري بسازيدكه برنامه‌ي كاربردي آن جداي از كنترل‌هاي دستي مي‌باشد، در واقع Code-behind وجود دارد. بعلاوه براحتي با سرويس كدهاي مديريتي مانند ارجاع اتوماتيك و garbrage توسعه مي‌يابد.

 

– مديريت:
ASP.Net بر پايه‌ي متن پيكربندي سلسله مراتبي كه در محيط سرور و برنامه‌هاي كاربردي وب ظاهرمي‌شود، كار مي‌كند. بدليل اينكه اطلاعات پيكربندي در متن ذخيره شده، تنظيمات جديد، بدون ابزار مديريتي ظاهرمي‌شوند. اين مديريت، سبب گسترش برنامه‌ي‌كاربردي در ASP.Net مي‌شود. برنامه كاربردي ASP.Net تحت سرور، به سادگي با كپي فايلهاي لازم روي سرور توسعه مي‌يابند. سرور نياز به restart نداشته و تنها با جايگزيني كدهاي كمپايل‌شده يا توسعه‌يافته گسترش مي‌يابد.

– قدرت و توانايي:
ASP.Net با تفكر سطح بالايي طراحي شده و داراي ويژگي بهبود عملكرد كار در محيط هاي چند پردازنده است. پردازش‌ها توسط ASP.Net مديريت شده ونمايش‌داده‌مي‌شوند. به عنوان مثال اگر گسيختگي پيش‌آيد، يك پردازش مي‌تواند در اين مكان ايجاد شود تا به درخواست ‌هاي برنامه كاربردي كمك نمايد.

– مشتري ‌مداري و قابليت تمديد:
بر اساس معماري ASP.Net اجازه‌ي توسعه Plug-inها را به شركت‌ها و اشخاص خواهد داد. در واقع اين امكاني است كه به كاربران اجازه‌ي نوشتن، جايگزين كردن، و به كار بردن قطعات نوشته شده را در ASP.Net مي‌دهد.

– امنيت:
با استفاده از مجوزها در ويندوز وپيكربندي برنامه‌ي كاربردي، يقيناً برنامه كاربردي مطمئني را مي‌توان ارائه داد. ASP.Net قادر به ارائه امنيت در سطوح مختلف مي‌باشد.
– کتابخانه و کلاس ها در.NET:

کتابخانه.NETداراي بیش از۳۴۰۰کلاس آماده جهت استفاده در برنامه ها است. بعضی از این کلاس هاهمان کلاس هاي پایه مانند آرایه و رشته هستند. اما عمده این کلاس ها به پیاده سازي اعمال تخصصی مانند کار بافایل و یا تولید مستنداتXMLپرداخته اند.

– فضانام ها در.NET:
انبوه کلاس هاي موجود در.NETبه حال خود رها نشده اند بلکه این کلاس ها در یک دسته بندي سلسله مراتبی به نامNamespaceیا فضانام چیده شده اند. بعنوان مثال کلیه کلاس هاي مربوط به کار با فایل ها در فضاينام System.IO دسته بندي شده اند. بنابراین با استفاده از نام کلاس و فضانام مربوطه هر کلاس بصورت منحصربفردي مشخص می شود. بعنوان مثال جهت دسترسی به کلاس File در فضانام System.IO می توان از عبارت System.IO.File استفاده کرد.یک دسته از فضانام ها بطور خاص براي برنامه نویسی در ASP.NET در نظر گرفته شده اند. این فضانام ها با System.Web شروع می شوند. بعنوان مثال کلیه ابزارهاي HTML در فضانام System.Web.UI.HTMLControls و ابزارهاي Web در فضانام System.Web.UI.WebControls قرار دارند.

– مجموعه ها در .NET :
کلاس هاي موجود در.NETدر قالب مجموعه ها (Assemblies) جاسازي شده اند. نکته مهم این است که در اینجا یک مجموعه با یک فضانام اشتباه نشود. یک مجموعه عبارت است از یک یا چند فایل که کد برنامه مربوط به کلاس ها در آن قرار دارد. براي مثال، کلیه کلاس هاي موجود در فضانام System.IO در یک مجموعه بنام Mscorlib.dll یک فایل معمولی است که در دیسک سخت یک کامپیوتر حاوي .NET در کنار سایر فایل ها قرار می گیرد. براي یک فضانام مهم نیست که کلاس هاي آن بروي دیسک چگونه ذخیره شده است. کلاس هاي یک فضانام ممکن است در قالب چند مجموعه ذخیره شده باشند و از طرف دیگر یک مجموعه ممکن است حاوي کلاس هاي چند فضانام باشد. یک فضانام عبارت است از دسته بندي منطقی کلاس ها در محیط برنامه نویسی در حالیکه یک مجموعه، دسته بندي فیزیکی کلاس ها بروي دیسک سخت است.

 

– زبان مشترك زمان اجرا در .NET :
قسمت دوم بدنه .NET یک محیط یا زبان براي زمان اجرا است که زبان مشترك زمان اجرا
Common Language Runtime – CLR) (The .NET نام دارد. در اولین فراخوانی یک صفحه ASP.NET آن صفحه ابتدا کامپایل شده و سپس اجرا می گردد و کد حاصله جهت مراجعات بعدي و جلوگیري از کامپایل مجدد بروي سرور نگهداري می شود. این کد کامپایل شده یک کد میانی است که زبان آن زبان جدیدي است بنام زبان میانی میکروسافت (Microsoft

Intermediate Language) یا MSIL یا به اختصار IL نام دارد. MSILمشابه کد زبان اسمبلی است. با این تفاوت که داراي ویژگیهاي شئ گرا است و مستقل از پردازنده کامپیوتر طراحی شده است. صفحات ASP.NET با هر زبانی که نوشته شوند در نهایت به کد MSIL تبدیل می شوند .سپس کد MSIL در زمان اجرا توسط کامپایلري بنام JIT به کد زبان ماشین مربوطه تبدیل می شود. در واقع اینکه صفحات ASP.NET قبل از اجرا به کد میانی MSIL تبدیل می شوند دلایل مهمی دارد. دلیل اول اینکه این مساله دست برنامه نویس را در انتخاب زبان

برنامه نویسی باز می گذارد بدون آنکه تفاوتی در نتیجه چه از جهت سرعت و چه از جهت کارآئی برنامه احساس شود. بعنوان مثال شما می توانید یک صفحه ASP.NET را با زبان ویژوال بیسیک بنویسید در حالیکه سرعت اجراي آن همان سرعت برنامه اي است که با C# یا C++ نوشته شده است. و این به آن دلیل است که هر زبانی که برنامه نویس انتخاب کند در نهایت برنامه تولید شده به کد MSIL تبدیل خواهد شد.دلیل دوم اینکه چون همه زبان هاي .NET به یک زبان میانی تبدیل می شوند، لذا این زبان ها در کنار یکدیگر بخوبی کار می کنند. بعنوان مثال شما می توانید از کلاسی که به زبان ویژوال بیسیک نوشته شده است در زبان C# استفاده نمائید.

:Controls –
Asp.Net با قابليتها و كنترلهاي جديد خود برنامه نويسي را براي طراحان وب بسيار آسان و لذت بخش نموده است. اكنون شما با استفاده از كنترلهاي جديد ارائه شده در Asp.Net اعمالي همچون هدايت كاربران در سايت (Site Navigation)، ورود كاربران به سايت (User Login) و … را به آساني و بدون نوشتن كد هاي طولاني به سايتتان اضافه مي كنيد.

:Services And APIs –
بسياري از كنترلهاي جديد Asp.Net توسط سرويسها و Api ها پشتيباني ميشوند.بعنوان مثال كنترلهاي مربوط به ورود (Login) كاربران توسط مجموعه اي از Api هاي عضويتي (Membership Apis) كنترل مي شوند كه اعمال تائيد هويت (Authentication)، ثبت نام (Registration) و… را فراهم مي آورند. با استفاده از كنترلهاي جديد شما بطور مستقيم به اين Api ها دسترسي داريد.

جهت اطلاعات بیشتر می توانید به منابع ذکر شده در پایان پروژه مراجعه نمایید.

۲-۳-۲) دات نت فریم ورک چیست؟
وقتی شما یک برنامه نصب میکنید علاوه بر فایل های اصلی برنامه که در ProgramFiles نصب میشود ، تعدادی از فایل ها هم هستند که در شاخه ویندوز نصب میشوند . این فایل ها همان درایور های مورد نیاز ویندوز برای اجرای برنامه شما هستند که توسط برنامه نویس نوشته نمیشوند، بلکه آنها قبلا تعریف شده اند و برنامه نویس از قابلیت های آن در برنامه خود استفاده میکند . پس برای اینکه برنامه شما کارکند باید آن فایل ها به ویندوز شما اضافه شوند.

Framework مجموعه ای از فایل های مورد نیاز سیستم عامل (شامل فایل های DLL و رجیستری و واسطه های استاندارد ارتباط برنامه ها بایکدیگر) است که برای اجرای برنامه های نوشته شده تحت دات نت ضروری میباشد. یعنی یک پکیج کامل از تمام dll های مورد نیاز برنامه هایی که با خود دات‌نت نوشته شده اند.( توجه: برای اجرای برنامه های تحت جاوا نیز نیاز به نصب JAVA virtual machine دارید که در اصل فریم ورک جاوا است).

چون دات نت میخواهد از فلسفه سادگی “keep it simple” پشتیبانی کند بهمین دلیل، اساس کار نصب برنامه ها copy-only installation میباشد . یعنی دیگر نیازی به پکیج کردن برنامه ها توسط برنامه نویس و نصب توسط کاربر نیست . بلکه تمامی فایل های کتابخانه ای (dll) مورد نیاز را فریم ورک تامین میکند و برنامه ها با روش فقط کپی در ویندوز کار میکنند.

۲-۳-۳) CLRچه کمکی به برنامه نویسان میکند ؟
CLR همانگونه که ذکر شد مخفف Common Language Runtime میباشد یک زبان میانی است بین برنامه نویسان و سیستم عامل که محیطی یک دست را برای ساخت همه جور برنامه با دات نت ایجاد میکنه. برنامه نویسان زبان VB دیگر محدود به محیط سیستمی ویندوز نیستند و میتوانند مانند برنامه سازان زبان C/C++ برنامه خود را روی سیستم های دیگری که فریم ورک دارند نیز ببینند . و همچنین بخاطر قابلیت های چند زبانه بودن محیط دات نت برنامه نویسان C و VB براحتی کد های نوشته شده توسط دیگری را میتوانند استفاده کنند و میشه گفت در محیط دات نت براحتی میشه یک پروژه را با چند زبان نوشت و در نهایت با هم ترکیب کرد.

۲-۳-۴) ابزارهاي ASP.NET :
سالهاست که برنامه نویسان ویژوال بیسیک جهت ساخت فرم هاي خود از ابزارهاي ویژوال بیسیک مانند ListBox وTextBox استفاده کرده اند. در ASP.NET هم شما می توانید از ابزارهاي فراوان موجود در آن براي ساخت فرم ها و صفحات خود استفاده نمائید. در ASP.NET چهار دسته عمده از ابزارها موجود است:
•ابزارهاي اصلی مانندButton وListBox ،RadioButton ، TextBox.

• ابزارهاي اعتباري براي حصول اطمینان از ورود و تائید صحت اطلاعات ورودي فرم ها.
• ابزارهاي داده اي براي ارتباط با بانک اطلاعاتی و دستکاري داده.
•ابزارهاي پیشرفته جهت نمایش عناصر پیچیده در واسط کاربر مانند تقویم و آگهی هاي تبلیغاتی.

با استفاده از Visual Studio.NET شما براحتی می توانید با چیدن تصویري این ابزارها بر روي فرم مورد نظر، صفحه دلخواه خود را بسازید. در صورت تمایل حتی می توانید در یک ویرایشگر ساده متن مانند Notepad برنامه مورد نظر را نوشته و از این ابزارها استفاده کنید.
ASP.NET با سیستم عامل هاي ۲۰۰۰ Windows )نسخه Professional و Server) وXP Windows کاملا سازگار است.
تا به حال ویژگی های گفته شده به ASP.Net نسخه ۲ مربوط می شد و اما ASP.Net 3.5 :

۲-۳-۵) آشنائی اوليه با ASP. NET 3.5 و ویژوآل استودیو ۲۰۰۸:
شركت مايكروسافت در نوزدهم نوامبر ۲۰۰۷ ( بيست و هشتم آبان ماه هشتاد و شش ) ، رسما” نسخه ASP. NET 3.5 و ويژوال استوديو ۲۰۰۸ را عرضه كرد .
همانند نسخه شماره ۳ كه نسبت به نسخه شماره ۲ دارای امكانات بيشتری بود ، در اين نسخه نيز نسبت به نسخه قبلی امكانات جديدی اضافه شده است . اسمبلی های اساسی نصب شده توسط نسخه شماره ۲ فريمورك ، همچنان در نسخه های ۲ و ۵ / ۳ قابل استفاده می باشند . به عبارت ديگر ، در نسخه شماره ۵ / ۳ ، مفاهيم و نحوه نوشتن كد و مواردی از اين قبيل نسبت به نسخه شماره ۲ تغيير نكرده است . در اين نسخه ، نوع ها ، ويژگی ها و قابليت های جديدی به فريمورك اضافه شده است .

ويژوال استوديو ۲۰۰۸ ، ابزاری قدرتمند برای پياده سازی برنامه های ASP. NET است . برخلاف نسخه قبل كه صرفا” مختص يك نسخه خاص فريمورك بود ( به عنوان نمونه در ويژوال استوديو ۲۰۰۳ ، نسخه ۱٫۱ASP.NET و در ويژوال استوديو ۲۰۰۵ نسخه ASP. NET 2.0 ) ، از ويژوال استوديو ۲۰۰۸ می توان به همراه چندين نسخه فريمورك استفاده كرد . شما می توانيد از طريق يك ليست drop down ، نوع فريمورك خود جهت پياده سازی برنامه ها ( به عنوان نمونه ASP. NET 2.0 ، ASP. NET 3.0 و يا ASP. NET 3.5 ) را انتخاب نمائيد .
شكل (۲-۱) نحوه انتخاب فريمورك در زمان ايجاد يك وب سايت جديد را در ويژوال استوديو ۲۰۰۸ نشان می دهد .

شكل (۲-۱) : نحوه انتخاب فريمورك در زمان ايجاد يك وب سايت جديد در ويژوال استوديو ۲۰۰۸

در ويژوال استوديو ۲۰۰۸ ،‌در محيط طراحی نيز تغييراتی در جهت قدرتمند تر شدن آن ايجاد شده است . افزودن امكاناتی نظير هوشمندی در تايپ و اشكال زدائی كدهای جاوا اسكريپت و قابليت مشاهده و حتی توقف در هسته كد فريمورك دات نت در حين اشكال زدائی نمونه هائی در اين زمينه می باشند .
در اين قسمت مروری خواهيم داشت به ويژگی های جديد ۵ / ۳ و امكانات جديد مرتبط با ASP.Net در ويژوال استوديو ۲۰۰۸ .

۲-۳-۵-۱) ارائه يك نسخه جديد فريمورك دات نت و دستاوردهای آن :
زمانی كه يك نسخه جديد ASP. NET ارائه می گردد ، در واقع يك نسخه جديد از فريمورك دات نت نيز ارائه می گردد . كنترل های وب و منطق برخورد با صفحات در كلاس هائی خاص از فريمورك دات نت پياده سازی شده اند .
فريمورك دات نت دارای امكانات فراوانی است كه از آنها در شرايط مختلف استفاده می شود و همه چيز به ASP. NET خلاصه نمی گردد .
متعاقب ارائه يك نسخه جديد از فريمورك دات نت ، امكانات و ويژگی های جديدی نيز به همراه آن ارائه می گردد كه می توان آنها را در سه گروه زير تقسيم كرد :
• ويژگی هائی از فريمورك كه مختص پياده كنندگان برنامه های ASP.NET ارائه شده اند :
اين نوع ويژگی ها جهت پياده سازی برنامه هایASP. NET بسيار مهم و حياتی می باشند . مثلا” پس از معرفی نسخه شماره ۲ از ASP ، قابليت های جديدی نظير كنترل Gridview و كنترل های نسبت دهی داده نظير sqlDataSource و ObjectDataSource در اختيار پياده كنندگان قرار گرفت .

• ويژگی هائی از فريمورك كه می تواند برای پياده كنندگان برنامه های ASP. NET نيز مفيد واقع شود :
اين نوع از ويژگی ها صرفا” مختص ASP. NET نمی باشند و از آنها می توان در مواردی ديگر نظير WinForm نيز استفاده كرد . از پتانسيل های فوق عموما” در ASP. NET استفاده می گردد . به عنوان نمونه ، فريمورك ۲ ، نوع های anonymous و Generics را معرفی و وضعيت Dataset را بهبود بخشيد .

هيچكدام از موارد فوق مختص ASP. NET نمی باشند ، ولی اغلب توسط پياده كنندگان ASP. NET استفاده می گردند.

• ويژگی هائی از فريمورك كه توسط پياده كنندگان ASP. NET استفاده نمی گردد:
فريمورك دات نت مشتمل بر تعداد زيادی از كلاس هائی است كه به ندرت و يا هرگر توسط پياده كنندگان ASP NET. استفاده نمی گردد نظير كلاس های موجود در System.Windows.Forms .

در ادامه به بررسی دو گروه اوليه خواهيم پرداخت .
علاوه بر وجود تعداد زيادی از كلاس ها و namespace در فريمورك دات نت ، اين پوستر دو چيز را كاملا” شفاف نشان می دهد اين كه چه ميزان از فريمورك دات نت با ASP.NET مرتبط نيست و امكانات و ويژگی های جديد اضافه شده به هر يك از نسخه های فريمورك دات نت .
شكل(۲-۲) ويژگی های ASP. NET 2.0 و قابليت های جديد اضافه شده در هر يك از نسخه های ۳ و ۵ / ۳ را نشان می دهد .

شكل(۲-۲) امكانات اضافه شده به هر يك از نسخه های فريمورك دات نت
برای كسب اطلاعات بيشتر در خصوص اين موضوع كه چگونه دات نت ۵ / ۳ ، اسمبلی های اضافه و قابليت های جديدی را به دات نت ۲ اضافه كرده است ، به منابع گفته شده در آخر پایان نامه مراجعه نمائيد .

۲-۳-۵-۱-۱) مروری بر ويژگی هائی از فريمورك كه مختص پياده كنندگان برنامه های ASP.NET ارائه شده اند:
ASP.NET 3.5 يك نسخه جديد و ارتقاء‌ يافته نسبت به نسخه قبلی است كه سه ويژگی جديد زير در آن از ساير موارد مشهود تر است :
• حمايت ذاتی از ASP.NET AJAX
• كنترل ListView
• كنترل DataPager
قبل از ASP.NET 3.5 ، لازم بود كه در ابتدا فريمورك ASP.NET AJAX مايكروسافت دانلود و بر روی سيستم به عنوان يك الحاقيه نصب گردد . در ASP.NET 3.5 ، كلاس های مرتبط با AJAX مستقيما” در فريمورك دات نت ساخته شده اند تا امكان ساخت سريع و آسان برنامه های وب مرتبط با AJAX در برنامه های ASP.NET فراهم گردد .

ASP.NET 2.0 به همراه خود كنترل های داده جديدی نظير Gridview، DetailsView و FormView را معرفی كرد . كنترل GridView ، ليستی از ركوردها را در يك جدول نمايش می دهد . كنترل های DetailsView و FormView در هر لحظه يك ركورد را نمايش می هند . كنترل DetailView در يك ساختار نمايشی مشابه جدول و FormView در يك لی اوت متاثر از يك تمپليت خاص ، اطلاعات خود را نمايش می دهند .

ListView در واقع يك نسخه ارتقاء يافته از كنترل های DataList و Repeater است كه می تواند چندين ركورد را به همراه قابليت هائی‌ نظير Gridview نمايش دهد . با اين تفاوت كه بكارگيری تمپليت ها با انعطاف بيشتری انجام می گردد .

كنترل DataPager به صورت يك نوع اينترفيس free-standing paging كار می كند . به عبارت ديگر كنترل فوق ، يك رابط كاربر paging را تفسير ( به عنوان نمونه صفحه بعد ، قبل ، دكمه آخر ) و با يك كنترل وب داده مرتبط می شود . كنترل فوق صرفا” با آن گروه از كنترل هائی كار می كند كه IPageableItemContainer interface را پياده سازی كرده باشند كه صرفا” ( در حال حاضر ) در كنترل ListView وجود دارد .

۲-۳-۵-۱-۲) مروری بر ويژگی هائی از فريمورك كه می تواند برای پياده كنندگان برنامه های ASP. NET نيز مفيد واقع شود:
مهمترين ويژگی ارائه شده در نسخه شماره ۵ / ۳ فريمورك دات نت ، معرفی LINQ ( برگرفته شده از Language Integrated Query ) است . با استفاده از فناوری فوق ، می توان گرامری شبيه SQL را با استفاده از زبان های برنامه نويسی VB و #C نوشت تا پياده كنندگان بتوانند از داده در برنامه های خود استفاده نمايند .
به همراه ويژوال استوديو ۲۰۰۸ يك LINQ To SQL Designer ارائه شده است كه به كمك آن می توان يك بانك اطلاعاتی را به عنوان يك LINQ به SQL object model مدل سازی كرد . پس از مدل سازی بانك اطلاعاتی ، می توان به سادگی كدهای مورد نظر خود را به منظور كار با داده نوشت .

كد زير نحوه بازيابی محصولات گروه Test از بانك اطلاعاتی نمونه Northwind را با گرامر مبتنی بر LINQ توسط VB و #C نشان می دهد ( كلاس NorthwindDataContext بر اساس مدل طراحی شده ، ايجاد شده است ) .

C#

NorthwindDataContext db = new
NorthwindDataContext() ;
var Products = from p in db.Products
Where p.category.CategoryName == “Test”
select P;
VB

Dim db AS New NorthwindDataContext
Dim products = From p In db.products _
Where p.category.categoryName = “Test” _
Select p
LINQ ، به سادگی يك گرامر را جهت كار با داده تعريف می كند . همچنين ، ORMs ( برگرفته شده از Relational Object Mappers ) از قبل تعبيه شده ای وجود دارد كه فريمورك مرتبط را به منظور توليد عبارات LINQ ايجاد می نمايد تا بر روی يك بانك اطلاعاتی و يا XML كار كند .ويژوال استوديو ۲۰۰۸ از گرامر LINQ در زمان استفاده از آن به صورت full-IntelliSense حمايت می نمايد . گرامر LINQ از طريق امكانات جديد ارائه شده در فريمورك دات نت نظير خصلت های اتوماتيك ، متدهای extension و عبارات lambda ، امكان پذير می باشد .

۲-۳-۵-۲) مروری بر ويژگی های جديد ويژوال استوديو ۲۰۰۸ :
ويژوال استوديو ۲۰۰۸ امكانات متعددی را در جهت كمك به پياده كنندگان نظير بهبود محيط Designer ، امكانات پيشرفته ويرايش CSS و اشكال زدائی جاوا اسكريپت ارائه كرده است . در اين نسخه از ويژوال استوديو برای پياده سازی برنامه های وب می توان يكی از محيط های NET 2.0, NET 3.0 و يا۳٫۵ NET را انتخاب كرد . اين بدان معنی است كه شما می توانيد از ويژوال استوديو برای كار بر روی يك وب سايت پياده سازی شده با ASP.NET 2.0 نيز استفاده نمائيد . در ادامه مروری سريع خواهيم داشت به هر يك از موارد فوق .

در نسخه قبلی ويژوال استوديو ، پياده كنندگان می توانستند از Designer و يا Source view در زمان ويرايش عناصر ويژوال در يك صفحه ASP.NET استفاده نمايند . در ويژوال استوديو ۲۰۰۸ ، يك ويژگی جديد با نام Split screen ارائه شده است كه توسط آن كدهای markup در يك pane و WYSIWYG در pane ديگر نمايش داده می شود . زمانی كه در مد split قرار می گيريم ، همزمان با اضافه كردن محتويات به Designer ، بطور اتوماتيك كدهای markup در Source view بهنگام می گردند . اگر شما markup جديدی را بطور دستی در Source view درج نمائيد ، مجبور خواهيد بود كه صفحه را save و يا دكمه refresh را كليك نمائيد تا Designer view نيز بهنگام گردد .
شكل(۳-۳) ، Split screen را در ويژوال استوديو ۲۰۰۸ نشان می دهد .

 

شكل(۲-۲) Split screen در ويژوال استوديو ۲۰۰۸

همزمان با افزايش تعهد مايكروسافت به AJAX ، ويژوال استوديو ۲۰۰۸ امكانات حمايتی بهتری را در ارتباط با جاوا اسكريپت ارائه كرده است . امكانات زمان طراحی و اشكال زدائی بطور كامل بهبود يافته اند . زمانی كه از طريق source view اقدام به نوشتن كدهای جاوا اسكريپت می نمائيد ، امكانات و قابليت های IntelliSense مشابه در زمان نوشتن كدهای سمت سرويس دهنده در اختيار شما گذاشته می شود . اين شامل حمايت از كدهای جاوا اسكريپت inline و اسكريپت هائی است كه از طريق فايل های جاوا اسكريپت خارجی به آنها مراجعه می گردد .( دستيابی به فايل های اسكريپت از طريق گرامری مشابه <script language=”javascript” src=”fileName”> </script> امكان پذير است ) .

اخيرا” شركت مايكروسافت عنوان نموده است كه به زودی كد فريمورك دات نت را تحت مجوز MS-RL در اختيار عموم قرار خواهد داد . نكته جالب مرتبط با اين رويداد برای پياده كنندگانی كه از ويژوال استوديو استفاده می نمايند در اين است كه آنها می توانند ويژوال استوديو ۲۰۰۸ را به يك URL اشاره دهند كه شامل نمادهای اشكال زدائی برای فريمورك دات نت است . بدين ترتيب ، در زمان اشكال زدائی امكان ورود به كد فريمورك دات نت فراهم می گردد . اين موضوع می تواند به پياده كنندگان كمك نمايد تا شناخت بهتر و عميق تری نسبت به نحوه عملكرد فريمورك دات نت پيدا نمايند .

 

۲-۳-۵-۳) خلاصه
نسخه جديد ويژوال استوديو و ASP.NET ويژگی های جديد و جالبی را نسبت به نسخه های قبلی در اختيار پياده كنندگان قرار می دهد. در ASP.NET 3.5 ، مايكروسافت فريمورك ASP.NET AJAX را به عنوان بخش لاينفك فريمورك دات نت معرفی كرده است و به همراه ساير كنترل ها ، كنترل های جديد ListView و DataPager را ارائه كرده است .
در ويژوال استوديو ۲۰۰۸ ، تغييرات متعددی نظير افزايش توانمندی پياده كنندگان جهت طراحی رابط كاربر ( يك محيط طراحی قوی تر ) ، بهبود قابليت های ويرايش CSS ، حمايت از اشكال زدائی و تايپ هوشمند جاوا اسكريپت ، قابليت انتخاب نسخه فريمورك برای پياده سازی برنامه وب ارائه شده است .

۲-۴) معرفي پايگاه داده SQL Server 2005 :
SQL Server یک سرویس پایگاه داده ارائه شده توسط شركت مايكروسافت است.ميتوان گفت اين محصول پر كاربرد ترين Package پايگاه داده محسوب ميشود. البته مايكروسافت ادعا كرده است كه بيش از ۶۰ % بازار Database جهان را به خود اختصاص داده و اين روز به روز در حال افزايش است. شركت IBM در اواخر دهه ۷۰ زبان SEQUEL كه براي Query ها (پرس و جو ها ) استفاده ميشد را ابداع كرد. با تغيير زمان اين زبان نيز تغييراتي كرد و تا آنجا كه فقط براي Query ها استفاده نميشد و از آن ميتوانستيم براي مدیریت بانکها و امنیت در Database نيز استفاده كنيم و بعد از مدتها اين زبان به SQL تغيير نام داد.

امروزه ورژنهاي متعددي از اين نرم افزار استفاده ميشود كه نرم افزار Microsoft SQL Server 2005 از Transact SQL كه به آن TSQL هم ميگويند استفاده ميكند. در SQL Server يک پايگاه دادهها شامل مجموعهای از جداول است که حاوی داده ها و ساير اشياء است؛ برای مثال ديد ها ، رويه های ذخيره شده که هر کدام از اين اشياء نوعی فعاليت روی دادهها را پشتيبانی میکنند. هر سرور میتواند چند پايگاه داده ها را ذخيره کند. این موضوعات وسایر مباحث در ادامه و در فصول بعدی آورده خواهد شد.

۲-۴-۱) ده دليل قانع کننده برای استفاده از SQL Server 2005 :
اگر مایل به دریافت خلاصه ای از مطالبی که در اینجا گفته می شود هستید می توانید بدون مطالعه قمست های اول و دوم این بخش مستقیما به قسمت ۱-۶-۳ ( نگاهی گذرا به ویژگیهای نوین ذکر شدۀ برنامه نویسی در پایگاه های داده) مراجعه کنید.

از آنجائي که نسخه SQL Server 2005 داراي قابلیت ها و ویژگی های نوین و کاملتری نسبت به نسخه ها قدیمی مانند SQL Server 2000 می باشد ، در این قسمت ۱۰ دلیل اصلی را که شما را ترغیب به ترفیع به SQL Server 2005 می کند ، را به شکلی فهرست وار توضیح می دهم.

در حال حاضر بسیاری از سازمان ها و شرکت ها از نسخه SQL Server 2000 استفاده می کنند. زمانی که شرکت Microsoft نسخه SQL Server 2005 را ارائه داد، بسیاری از مدیران IT و راهبران پایگاه داده با این سوال مواجه شدند: آیا لازم است ورژن SQL Server خود را upgrade کنیم ؟!
مسلما پیشرفت هایی که در نسخه SQL Server 2005 به چشم می خورد به قدری حائز اهمیت می باشند که شما به عنوان یک IT Manager یا DBA در صورت شناخت، خود را موظف به این امر خواهید دانست:

 

۱٫ هر برنامه کاربردی که در حال حاضر کار می کند، بدون هیچ تغییری با SQL Server 2005 نیز کار خواهد کرد:
ابزار SQL Server 2005 Management Studio جایگزین ابزار Enterprise Manager خواهد شد. اما شما با این ابزار جدید نیز قادر به مدیریت پایگاه های داده SQL Server 2000 نیز خواهید بود. البته از این ابزار جهت مدیریت SQL Server 6.5 و SQL Server 7.0 نمی توان استفاده نمود .

برنامه های کاربردی و سایت های شرکت یا سازمان شما بدون نیاز به انجام هیچ گونه تغییری به فعالیت ادامه خواهد داد. وجود این سازگاری بسیار مهم است. به اهمیت آن بیشتر فکر کنید.

۲٫ SQL Server 2005 دارای ابزار های بیشتری می باشد:
در نسخه های قدیمی SQL Server اجزا گوناگون مانند Analysis Services در بسته های نرم افزاری مختلفی قرار گرفته بود. اما در نسخه SQL Server 2005 شرکت مایکروسافت رویکرد بازاریابی خود را تغییر داده و تمامی اجزا را در یک بسته قرار داده است. همان طور که در قسمت آموزش نصب SQL Server 2005 )اول فصل دوم) توضیح داده ام، شما می توانید سرویس ها و اجزا مختلف را هنگام نصب انتخاب کنید.

۲٫ دسترسی آسان و یکپارچه به همه اجزا :
SSMS به شما این امکان را می دهد که خیلی ساده و واضح به همه اجزا مانند DTS ، profiler ، Reporting Services ، Tuning Advisor و حتی SQL Server Integration SSIS )Services ) و OLAP ) Online Analytical Processing ) دسترسی داشته باشید.
این یکپارچگی موجب افزایش کارایی و هزینه کمتر آموزش می گردد. حتی اگر شما نسخه های SQL Server 2000 داشته باشید، توسط ابزار SSMS می توانید آن ها را مدیریت کنید.

۴٫ بهره گیری از قدرت Net. برای ایجاد اشیا پایگاه داده:
در این نسخه شما قادر می باشید از زبان های برنامه نویسی سطح بالا مانند Visual Basic.Net یا C#.Net جهت تولید اشیا پایگاه داده مانند Stored Procedures ، Functions و Triggers استفاده کنید. در واقع قرار گیری CLR در هسته اصلی SQL Server 2005 استفاده از هزاران class موجود در Net. را در پایگاه داده میسر ساخته است.
لازم به ذکر است استفاده از CLR برای تولید اشیا پایگاه داده زمانی ارزشمند است که شی ساخته شده دارای منطق عملیاتی پیچیده ای باشد، در واقع قدرت عملکرد اشایی که با CLR ساخته می شود، به مراتب بالاتر از اشیایی می باشد که با T-SQL ساخته شده باشد.

۵٫ بهره گیری از مزایای Reporting Services :
به یک قاعده کلی اشاره می کنم، ” هر چیزی که Back end می تواند انجام دهد، باید Back end انجام دهد و نباید به Front end سپرده شود. ” برای مثال ساخت یک Query به صورت Dynamic معمولا کار سخت و زمان فرسایی می باشد که مستلزم کد نویسی زیادی در لایه Application می باشد. در واقع راه بهتر حالت دریافت پارامتر ها از کاربر و ارسال آن ها به یک Stored Procedure می باشد.

SQL Server Reporting Services این مفهوم را بسیار بهینه و کاراتر ساخته است. در نسخه های قدیم SQL Server ، گزارشات توسط برنامه های Front End مانند ( VB ، C++ ، Crystal Reports و … ) صورت می پذیرفت . در SQL Server 2005 شما می توانید از مزایای بسیار Reporting Services استفاده نمائید. اول از همه شما می توانید کلیه منطق های مربوطه را از برنامه کاربردی جدا نموده و به Reporting Services بسپارید. پس از آن از هر Frond end دیگری می تواند جهت فراخوانی گزارشات به سادگی استفاده کنید.

۶٫ Business Intelligence موجود در SQL Server 2005 :
سیستم های هوشمند و تحلیلی که بیشتر با عنوان سیستم های ( OLAP ) شناخته می شوند درون SQL Server 2005 قرار گرفته شده است. یکپارچگی هوش تجاری با موتور پایگاه داده قابلیت های فراوانی را به طراحان برنامه های کاربردی و تحلیل گران داده های سازمانی ارائه می دهد.

۷٫ با DTS خداحافظی کنید و به SSIS خوش آمد گوئید !:
SQL Server 2005 ویژگی جدیدی به نام SSIS را معرفی می کند که از نظر امنیتی ، مدیریتی و کاربردی بسیار مناسب عمل می کند. این ویژگی که جایگزین مانسبی برای DTS می باشد، عملیات ارسال و دریافت داده ها و تغییر آن ها را میان پایگاه های داده و فایل های مختلف به شکلی ساده و حرفه ای مدیریت می کند.

۸٫ بهره گیری از مکانیسم امنیتی نوین و مطمئن با مدیریت آسان تر:
توسط این نسخه می توانید دسترسی های خاص تر به افراد خاصی بدهید، طراحی جدید Schema به شما امکان می دهد به کاربران خود فقط دسترسی هایی را بدهید که به آن نیاز دارند.

۹٫ قابلیت بسط پذیری در سازمان های بسیار بزرگ :
بدون شک یکی از اصلی ترین مشکلات SQL Server 2000 ، عدم قابلیت یا بهتر است بگوئیم عدم کارایی این نسخه با حجم وسیعی از داده ها در سطح Enterprise بوده است. در واقع یکی از مهم ترین نقاط مورد توجه در طراحی این نسخه از SQL Server ، قابلیت رقابت این سیستم با رقبای تجاری مانند Oracle و DB/2 بوده است.

۱۰٫ ارائه روش های جدید برای برنامه نویسی پایگاه داده :
نسخه SQL Server 2005 دارای ویژگی های متعددی جهت افزایش کارایی و کاهش زمان برنامه نویسی می باشد.
این ویژگی ها شامل موارد زیر می باشد:

• ADO.Net version 2.0
• Hosted Common Language Runtime
• Security Enhancement
• Transact-SQL Enhancement
• Service Broker
• Web Services- HTTP Endpoints
• Native XML Support
• Embedded Reports

۲-۴-۲) با SQL Server 2005 بيشتر آشنا شويد:
با نسخه جديد SQL Server ،برنامه نويسان بانك هاي اطلاعاتي قادرند از امكانات و قابليت هاي موجود در پلتفرم دات نت و كليه توابع و كلاس هاي ساخته شده در آن بهره مند شوند. يكي از ابتدايي ترين و در عين حال اساسي ترين اين قابليت ها،امكان استفاده از دو زبان مهم و كاربر پسند دات نت يعني ويژوال بيسيك و سي شارپ در پياده سازي اجزاي مختلف يك بانك اطلاعاتي است.

۲-۴-۲-۱) Snapshot lsolation level:

يكي از روش هايي كه به انواع متدهاي قفل كردن رديف هاي يك جدول بانك اطلاعاتي در نسخه جديد اضافه شده است شيوه تصوير برداري از ركورد است. در روش هاي قبلي،اگر يك يا چند ركورد بانك اطلاعاتي توسط دستور Begitn Trans كه شروع يك فرآيند را مشخص مي كند در شرف تغيير يا حذف قرار مي گرفتند،تا مادامي كه فرآيند مذكور توسط دستور Commit Trans تاييد يا توسط ROLLBack منتفي نشود،از هيچ جا و برنامه اي نمي توان ركوردهاي مذكور را حتي با دستور ساده SELECT خواند. اما در روش جديد قفل گذاري در صورت بروز چنين رويدادي ساير كاربران مي توانند همواره آخرين ارزش ركوردهاي مذكور را با اين فرض كه هنوز هيچ تغييري در آن ها ايجاد نشده است بخوانند و مورد استفاده قرار دهند.

۲-۴-۲-۲) باز هم دات نت:
با نسخه جديد SQL Server ،برنامه نويسان بانك هاي اطلاعاتي قادرند از امكانات و قابليت هاي موجود در پلتفرم دات نت و كليه توابع و كلاس هاي ساخته شده در آن بهره مند شوند. يكي از ابتدايي ترين و در عين حال اساسي ترين اين قابليت ها،امكان استفاده از دو زبان مهم و كاربر پسند دات نت يعني ويژوال بيسيك و سي شارپ در پياده سازي اجزاي مختلف يك بانك اطلاعاتي است. اين عامل نه تنها باعث مي شود كه برنامه نويسان براي نوشتن ماژول هايي مثل تريگرها،روال ها(Stored Procedures ) در توابع به جاي استفاده از زبان

استاندارد و در عين حال پيچيده T-SQL ،بتوانند از زبان هاي محيط دات نت با تمام ساختارها،دستورات،كلاس ها،آرايه ها،و خلاصه تمام ويژگي هاي يك زبان شي گرا استفاده كنند،بلكه اين همكاري نزديك بين موتور برنامه نويسي دات نت يعني CLR (مسئول تبديل كدهاي نوشته شده دات نت به زبان سيستم عامل است) و موتور بانك اطلاعاتي SQL Server باعث شده تا به غير از تنوع زبان هاي برنامه نويسي قابل استفاده در SQL Server ،تغيير قابل توجهي نيز در كارآيي ماژول هاي مذكور پيش آيد. در واقع موضوع از اين قرار است كه اصولا”

كدهاي نوشته شده به زبان هاي دات نت، ابتدا توسط كامپايلر به زبان (IL ) ترجمه مي شوند. سپس CLR اين كد مياني را به كد قابل فهم سيستم عامل تبديل و آماده اجرا مي نمايد. اين كار سبب مي شود تا كدهاي نهايي به دليل اين بسيار به سيستم عامل نزديك مي باشد سريع تر از كدهاي TSQL ( كه فقط توسط موتور بانك اطلاعاتي قابل اجرا هستند )اجرا شوند و در زمان اجرا از كارايي بيشتري برخوردار باشند. البته اين مساله بدين معني نيست كه استفاده از زبان هاي دات نت هميشه بر زبان هاي SQL ارجحيت دارد،بلكه منظور آن است كه در برخي موارد ممكن است آن قدر منطق و الگوريتم يك ماژول پيچيده باشد كه برنامه نويس استفاده از زبان هاي دات نت را به دليل آسان تر بودن ساختار و دستورات آن به زبان SQL ترجيح دهد. بنابراين زماني كه بيشتر عمليات يك ماژول مربوط به خواندن و نوشتن اطلاعات باشد بهتر است از همان دستورات استاندارد SQL يعني

DELETE,UPDATE,SELECR و INSERT استفاده كرده و بي جهت منابع سيستم را صرف تعريف متغيرها و كلاس هاي دات نت ننمايد. اما در ماژول هايي كه بيشتر عملياتشان شامل پردازش اطلاعات مثل انجام عمليات هاي رياضي يا مقا يسه اطلاعات با يكديگر است بهتر است تا هم از امكانات برنامه نويسي و هم از سرعت و كارايي بالاي دات نت در اين زمينه بهره برد و ماژول هاي مذكور را با زبان هاي دات نت پياده سازي كرد.

۲-۴-۲-۳) ADO.NET وارد مي شود:
طبق يك سنت نه چندان قديمي برنامه نويسي در محيط ويندوز،برنامه نويسان SQL Server بانك اطلاعاتي مورد نظرشان را بروي سرور و برنامه كاربردي نوشته شده با زباني مثل ويژوال بيسيك را بر روي كلاينت ها قرار مي دهند. سپس از طريق اين برنامه كاربردي و با استفاده ا زاشياي از جنس ADO داده هاي مورد نياز خود را از سمت سرور دريافت كرده و يا به آن ارسال مي كنند. اكنون اين ارتباط به لطف نسخه جديد SQL Server و همچنين محيط دات نت با امكانات جديد ADO.NET بسيار كامل تر از قبل شده است. اين ارتباط جديد با استفاده

از مكانيسمي به نام اعلان (Notification ) به يك ارتباط دو طرفه فعال تبديل شده به طوري كه ADD.NET قادر است پيغام هايي را از سمت پايگاه داده به سمت كلاينت ارسال كند. به عنوان مثال فرض كنيد كه شما با استفاده از ADO تعدادي از ركوردهاي يك جدول بانك اطلاعاتي را انتخاب كرده و مشغول كار بر روي آن ها هستيد. در همين هنگام كاربر ديگري از

طريق كلاينت و ADO خود،ركوردي در محدوده ركوردهاي مورد انتخاب شما را تغيير مي دهد يا حذف مي كند. در اين وقت موتور پايگاه داده با ارسال پيغامي به ADO شما،اين مساله را با استفاده از فراخواني يك رخداد (Event ) شي ADO به اطلاعاتي مي رساند. علاوه بر اين قابليت جديد،فناوري جديد ديگري هم با استفاده از ADO.NET به نسخه جديدSQLServer اضافه شده و آن امكان چند پرس و جوي همزمان توسط يك شي ADO است. در اين شيوه اگر يك شي ADO با استفاده از دستور SELECT مشغول خواندن تعدادي از ركوردهاي يك

جدول بانك اطلاعاتي باشد،مي تواند بدون اين كه منتظر به پايان رسيدن اين عمليات شود،تعداد ديگري از ركوردهاي يك جدول ديگر بانك اطلاعاتي را بخواند. اين قابليت جديد با نام MARS كه قبلا” در كرسرهاي سمت سرور و آن هم نه با كارايي بالا وجود داشت اكنون در كرسرهاي سمت راست كلاينت هم وجود دارد و تفاوت عمده آن با شكل قديمي هم علاوه بر مورد مذكور امكان ايجاد چند كرسر در يك شي ADO به صورت همزمان است SQL.Server . نسخه ۲۰۰۵ به خوبي از تمام اين ويژگي ها،پشتيباني مي كند.

۲-۴-۲-۴) تكنولوژي: XML
اكنون كه XML به يك استاندارد ارتباطي بين سكوهاي مختلف تبديل شده است،نسخه جديد SQL Server هم از توجه كافي به آن و ايجاد يك انقلاب در ساده تر استفاده كردن از آن طفره نرفته است. در نسخه ۲۰۰۰ كاربران قادر بودند تا با استفاده از دستور FOR XML نتيجه يك پرس و جوي SELECT از يك بانك اطلاعاتي را به درون يك فايل XML را باز كرده و شروع به خواندن دستورات آن نمايند. از آن جا كه در نسخه جديد SQL Server توجه خاصي به اين استاندارد و زبان ارتباطي شده است.يك نوع داده جديد (Date type ) به انواع داده هاي قبلي و استاندارد SQL مثل Char,int و امثال آن اضافه شده است. اين نوع داده جديد كه XML نام دارد و داراي خصوصيات يك نوع داده موجود در يك محيط شي گرا است،داراي متدهاي پيشرفته اي چون guery() ، exist() ، value() ،nodes() ، modify() بوده و قادر است انواع پردازش هاي قابل انجام بر روي اسناد XML را به راحتي انجام دهد. عمليات

جستجو ،تغيير، حذف و درج مقادير مورد نظر در داخل يك فايل XML را مي توان با استفاده از متدهاي مذكور و صرفا” با چند خط برنامه نويسي انجام داد. همچنين در اين نسخه برخلاف نسخه ۲۰۰۰ ،با استفاده از دستور FOR XML مي توان يك شي از جنس XML را بدون ارسال آن به كلاينت،بر روي سرور ساخته و از آن نگهداري كرد. با اين كار مي توان جداولي را كه مرتبا” مورد رجوع كاربران قرار مي گيرند هر از گاهي در قالب XML به داخل حافظه آورد و كاربران مذكور به جاي رجوع به جداول اصلي در هارد ديسك،با استفاده از دستورات ويژه

جستجو در XML ،متغير مذكور را در حافظه سرور مورد جستجو قرار دهند و بدين وسيله يك نوع عمل Cache كردن را جهت افزايش سرعت دسترسي به اطلاعات تكراري شبيه سازي كنند. در اين حالت،كاربران به جاي استفاده از دستور SELECT استاندارد مي توانند از OPEN XML كه در نسخه ۲۰۰۵ قادر است متغيرهاي جديد از نوع XML را بخواند استفاده كرده و به سرعت به اطلاعات مورد نياز خود دسترسي پيدا كنند. اين قابليت جديد آن قدر در سريع تر كردن جستجو در برنامه هاي تحت وب مهم و موثر است كه جاي هيچ مشكلي را در استفاده از آن باقي نمي گذارد.

 

۲-۴-۲-۵) سرويس اعلان :
همان طور كه گفتيم سيستم اعلان در SQL Server قادر است پيغام هايي را طي زمان هاي مشخص به سمت كاربران بفرستد. مثلا” تصور كنيد كه تعدادي كاربر در حال اتصال به يك بانك حاوي اطلاعات مربوط به ارزش سهام در بورس هستند. از آن جايي كه ممكن است قيمت سهام هر شركت يا موسسه براي تعدادي از كاربران از اهميت زيادي برخوردار باشد،مي توان اين سيستم را طوري تنظيم كرد تا هر گاه ارزش سهام خاصي که مورد نظر هر كاربر است تغيير كرد،به صورت اتوماتيك به وي اعلام شود. كاربر هم مي تواند اين تغييرات را بر روي برنامه كاربردي خود،تلفن همراه(در قالب SMS ،Windows Messenger ) و يا ايميل به صورت مرتب دريافت و مشاهده كند.

۲-۴-۲-۶) سرويس گزارش گيري :
سرويس جديد توليد گزارش هاي متنوع در نسخه ۲۰۰۵ به يكي از جالب ترين و پركاربرد ترين قابليت هاي اين نسخه تبديل شده است،وجود يك موتور گزارشگر قوي در سمت سرور و يك ابزار مناسب ساخت گزارش با واسط كاربر عالي،باعث شده تا برنامه نويسان بتوانند گزارش هاي مورد نظر خود را با كارايي و سرعت مناسب در سمت سرور بسازند به طوري كه اين گزارش هاي سمت سرور توسط هر برنامه كاربردي سمت كلانيت در هر پلتفرمي با همان امكانات اتصال به SQL Server قابل مشاهده است.

۲-۴-۲-۷) بهبودهاي ايجاد شده در زبان:
در SQL Server 2005 تغييرات بسيار مثبتي در زبان SQL T ايجاد شده است. اين تغييرات در زمينه هاي مختلف مثل مديريت خطاها،جستجوهاي بازگشتي (Recursive Query ) و حتي در بدنه موتور پايگاه داده ها انجام شده و كارايي كلي ذخيره و يا خواندن اطلاعات را به نحو مطلوبي افزايش داده است. به عنوان مثال در دستورات TSQL ،دو اپراتور جديد ديده مي شود كه PIVOT و UNPIVOT نام دارند. اين دو اپراتور كه در قسمت FROM يك پرس وجو مورد استفاده قرار مي گيرند مي توانند نتيجه يك جستجوي انجام شده توسط دستور SELECT را به جاي برگرداندن در قالب رديف ها يا ركوردهاي پشت سر هم،به صورت ستون هاي مختلف يك يا چند ركورد برگردانند. در اين روش يكي از ستون هاي فيلدهاي يك جستجو به عنوان محور معرفي شده و بقيه ستون ها بر اساس آن به صورت افقي طبقه بندي مي شوند. به يك مثال توجه كنيد:

SELECT CUSTOMER ID, Order NO FROM Orders PIVOT Customer ID
Order NO Order NO Order NO Order NO Customer ID
4400 1120 25 1
350 2
1780 443 3
8989 2222 1980 555 4

نتيجه جستجوي فوق چيزي شبيه جدول بالا خواهد بود.
همان طور كه مشاهده مي كنيد با استفاده از اپراتور مذكور،نتيجه پرس و جوي انجام شده به اين صورت كه هررديف به يك شماره مشتري و جندين شماره سفارش مربوطه به آن مشتري در قالب ستون هاي مختلف است. در مي آيد. اين همان چيزي است كه سالها SQLServer آن را با نام Cross Tab به كاربران خود ارايه مي دادند. در همين رابطه اپراتور

UNPIVOT هم عمل عكس اپراتور مذكور را انجام مي دهد. اپراتور ديگري كه مي تواند نقش مهمي را در دستورات SQL بازي كند APPLY نام دارد كه در قسمت FROM يك دستور SQL به كار مي رود. با استفاده از اين دستور مي توان خروجي يك تابع را با يك يا چند جدول ديگر تركيب كرد همان طور كه مي دانيد در SQL Server توابع مي توانند يك يا چند رديف جدول اطلاعاتي را برگردانند كه اين خروجي مي توانند با يك جدول ديگر با استفاده از اپراتور مذكور تركيب شود.

۲-۴-۲-۸) مديريت خطا:
در نسخه هاي قديمي SQL Server براي كشف و مديريت خطا از سيستم Error Handing استفاده مي شد. اين شيوه كشف خطا كه در زباني مثل ويژوال بيسيك ۶ مورد هم استفاده قرار مي گرفت با استفاده از دستور GOTO مي توانست كنترل و خط اجراي روال را از يك محل به محل ديگر و در واقع از محل بروز خطا به محل مديريت و آشكار كردن آن ببرد و بدين وسيله پيغام خطايي را به كاربر نشان دهد. نسخه جديد SQL Server با تاثير از پلتفرم دات نت،از دستورات ويژه كشف و مديريت خطا با عنوان Exception Handling استفاده مي

كند،اين روش با استفاده از دستورات جديد TRY\CATCH شيوه بهتري از مديريت خطا را به اجرا مي گذارد. در اين روش برخلاف روش قبل،تمام خطاهاي اتفاق افتادني مثل خطاهاي مربوط به تبديل داده ها به يكديگر Data Conversion به خوبي مديريت شده و از بروز خطاهايي كه منجر به اتمام ناقص عمليات يك روال يا تريگر مي شود جلوكيري به عمل مي آيد.