پایان نامه فروشگاه مجازی
مقدمه:
NET چیست ؟
.NET یک اصطلاح کلی است برای نگاه استراتژیک میکروسافت به آینده دنیای نرم افزار و قلب این استراتژی چارچوب .NET نام دارد . ASP.NET هم یکی از دهها عضو این چارچوب است . .NET برای حل مشکلات بنیادی پیش روی برنامه نویسان و توسعه دهندگان نرم افزار طراحی شده است. .NET وظایف زیر را برعهده می گیرد :
1- قسمت اعظم کار ایجاد بر نامه های بزرگ مقیاس را به طور خودکار ا نجام می دهد.
2- انواع مختلف نرم افزار ( آنهایی که روی یک ماشین اجرا می شوند و آنهایی که روی وب اجرا می شوند ) را یکپارچه می کند .
3- برنامه نویس را از نوشتن ماژولهای پیچیده بی نیاز می کند.
4- به برنامه نویسانی که در زبانهای مختلف تخصص دارند اجازه می دهد تا روی یک پروژه مشترک کار کنند.
5- چرخه توسعه نرم افزار را سرعت می دهد.
6- تمام انواع سخت افزار ( از سوپر کامپیوتر گرفته تا PDA و تلفن همراه ) را هدف گرفته است .
آن چیزی که باید در عمل این اهداف را تحقق بخشید همان چار چوب .NET است . چار چوب .NET را می توان به اجزا اصلی زیر تقسیم کرد :
زبان میانجی(MSIL ) : زبان میانجی (MS Intermediate Language ) زبان عمومی .NET است. کدهایی که به زبانهای مختلف (مانند VB وc # ودهها زبان برنامه نویسی دیگر ) نوشته شده اند قبل از اجرا به زبان میانجی تبدیل ( کامپایل) می شوند . از آنجاییکه چارچوب.NET این کار را به طور خودکار و بدون دخالت ما انجام می دهد ما هم دیگر درباره آن حرفی نخواهیم زد .
سیستم زمان اجرای عمومی ( CLR ) : سیستم زمان اجرای زبان عمومی (Common Language Runtime سیستمی پیچیده است که کدهای MSIL را اجرا می کند.
کتابخانه های چارچوب .NET : اینها مجموعه بزرگی از کدهای آماده هستند که به سادگی می توانیم از آنها در برنامه های خود استفاده کنیم.
زبانهای .NET : زبانهای برنامه نویسی منطبق با استاندارهای CLS طراحی شده اند و خروجی MSIL تولید می کنند . VB.NET و C #.NET از معروفترین ومهمترین زبانهای .NET هستند.
ASP.NET : بخشی از چارچوب .NET که به IIS اضافه می شود و به آن اجازه می دهد تا کدهای نوشته شده با زبانهای .NET را اجرا کند.
سرویسهای وب : با اینکه سرویسهای وب ( Web Services ) جزیی از .NET نیستند ا ما مطمئنا هیچ چیز مانند .NET آنها گسترش نداده است. سرویس وب برنامه ایست که ورودی خود را از راه دور ( از طریق وب) می گیرد و خروجی خود را هم به همان صورت تحویل می دهد.
شی چیست ؟
یکی از مفاهیم کلیدی و مهم در .NET مفهوم شی ( object ) در واقع چارچوب .NET یک محیط شی گرا ( object-oriented ) محسوب می شود . هر چیزی که در چارچوب .NET به آن برخورد می کنید یک محیط شی نرم افزاری است. شی در ساده ترین تعریف چیزی نیست جز یک بسته از کد( داده) که می توان بدفعات از آن استفاده کرد. شی موجودی خود کفا و مستقل است که سرویسهایی را در اختیار بقیه برنامه می گذارد . مزایای نوشتن برنامه های .NET بصورت مجموعه ای از اشیا عبارتند از :
1- از یک شی می توان به دفعات استفاده کرد و نیازی به کد نویسی مجدد نیست.
2- می توان اشیا مورد نیاز را از منابع دیگر تهیه کرد و نیازی به آگاهی از ساز و کار داخلی آنها نیست( همین که بدانیم چه ورودی هایی باید به آنها داد و خروجی آنها چیست کافیست ) .
3- یک شی .NET را می توان به هر زبانی نوشت.
4- اشیا .NET استاندارد شده هستند به آسانی می توان از آنها در برنامه های مختلف استفاده کرد. بدین ترتیب می توان یک شی برنامه بزرگ را به سادگی با اشیا از پیش آماده تولید کرد
در چارچوب .NET اشیا متعدد و متنوعی وجود دارند که برای کارهای مختلف تهیه شده اند . برای مثال یک گروه ازاین اشیا ADO.NET نام دارد که برای اتصال به منابع پایگاه داده و استخراج اطلاعات ازآنها طراحی شده است. اگر خودتان می خواستید چنین اشیایی را بنویسید در بهترین حالت سالها وقت لازم داشتید ( اگر نگوییم چنین کاری اساسا غیر ممکن است)
کلاسهای پایه .NET
اشیا .NET ( که تعدادآنها بی شمار است ) در گروه های عملکردی مختلف سازماندهی شده اند . این گروهها کلاسهای پایه .NET نامیده می شوند. کلاسهای پایه .NET را از مقدار معتنابهی کد نویسی مفصل , خسته کننده و اغلب پر اشتباه بی نیاز می کنند . مثلا برای کارهای گرافیکی ( ترسیم اشکال هندسی , نمایش تصاویر و اجرای انیمیشن ) می توان از فضای نام System.Drawing که شامل تعداد زیادی کلاس گرافیکی کمک بگیرید .
برای استفاده از یک فضای نام ابتدا باید آنرا وارد کنید (import ) در صفحات ASP.NET این کار با استفاده از دستور Import انجام می شود . مثلا اگر بخواهید از کلاسهای فضای نام System.Drawing در یک صفحه وب استفاده کنید باید دستور زیر را در ابتدای کد صفحه بنویسید :
<%@ Import Namespace = System.Drawing %>
فقط بعد از آن است که می توانید کلاسهای گرافیکی و توابع آنها را در صفحه ASP.NET به کار بگیرید.
ASP.NET چگونه کار می کند ؟
صفحات ASP.NET چیزی نیستند جز همان صفحات HTML که مقداری کد به آنها اضافه شده است وقتی چارچوب .NET را روی کامپیوتری که IIS دارد نصب می کنید سرویس دهنده IIS به طور خودکار طوری پیکربندی می شود که فایلهای دارای پسوند .aspx را شناسایی کرده و کد داخل آنها را اجرا کند . IIS برای این کار از ماژولی بنام aspnet-isapi.dll کمک می گیرد. طرز کار ماژول aspnet-isapi.dll چنین است :
وقتی کاربر تقاضای بازدید یک صفحه ASP.NET را از سرویس دهنده وب می کند IIS صفحه مورد نظر را به ماژول aspnet-isapi.dll می دهد. این ماژول محتویات صفحه .aspx را خوانده و ساختار کد آنرا تعیین می کند ( که این ساختار الزاما با آنچه شما نوشته اید یکسان نیست ). سپس ساختار ایجاد شده را به صورت یک کلاس استاندارد در می آورد و از این کلاس شی خاصی بنام Page می سازد . کلاس Page مسئول تبدیل تقاضای کاربر و خروجی IIS به استریم HTML ( در ضمن اجرای کدها ) است .
صفحات ASP.NET را با پسوند ASPX ذخیره کنید
IIS برای تشخیص صفحات ASP.NET و اجرای کد داخل آنها از پسوند .aspx بهره می برد . بدون این پسوند IIS قادر به تشخیص صفحه ASP.NET و اجرای کد داخل کد آن نیست چنین صفحه ای به سادگی به مرورگر وب فرستاده می شود تا خودش کدها را اجرا کند ( که البته مرورگر وب هم قادر به اجرای کدهای ASP.NET نیست) ! . اغلب تازه کارانی که از Notepad پسوند .txt را به آخر فایل اضافه می کند ( و مثلا آن به صورت MyFile.aspx.txt در می آید) . برای جلوگیری از این اتفاق وقتی فایل را در Notepad ذخیره می کنید در قسمت Save type as گزینه ALL File را انتخاب کنید . اگر فایل را قبلا ذخیره کرده اید می توانید پسوند اضافی .txt را در My Computer یا Windows Explorer پاک کنید . با برنامه هایی مثل Visual Studi.NET چنین مشکلی نخواهید داشت چون آنها کار خودشان را بلد هستند.
کدهای ASP.NET را در صفحه وب بنویسید
کدهایی که در صفحه وب نوشته می شوند باید به گونهای مشخص شوند تا IIS بتواند آنها را از دستورات معمولی HTML تمیز دهد . برای نوشتن کدهای ASP.NET در صفحه وب سه روش وجود دارد :
1- بلوک کد درون – خطی ( inline )
2 – برچسب<script>
3 – کنترل سرویس دهنده ( server control )
روش اول همان روش قدیمیست که در صفحات ASP نیز به کار می رفت . در این روش کد داخل صفحه وب در داخل برچسب <% %> قرار داده می شود. اما این روش برای صفحات ASP.NET توصیه نمی شود و بهتر است از دو روش دیگر استفاده کنید .
برچسب<script>
بهترین راه برای نوشتن کدهای ASP.NET درصفحات HTML استفاده از برچسب <script> است البته باید صفت runat را هم به server ست کنیم تا صفحه وب صورت یک صفحه دینامیک سمت – سرویس دهنده در آید.( حالت پیش فرض صفحات دینامیک از نوع سمت- مشتری است .) چیز دیگری که باید مشخص شود برنامه نویسی صفحه وب است ( همانطور که گفتیم ASP.NET خودش یک زبان نیست) . زبان پیش فرض صفحات ASP.NET زبان VB.NET است اما توصیه می کنیم حتی اگر با VB.NET برنامه می نویسید صراحت را فراموش نکنید و این موضوع را حتما قید کنید . تعیین زبان صفحه وب در برچسبی بنام Page انجام می شود:
>%@ Page Language =” VB” %<
پس از آن می توان بلوکهای کد VB.NET را در صفحه وب نوشت :
>script Language =” VB” runar = “server< “
…Visual Basic.NET statements go here …
</script>
از آنجاییکه قبلا زبان صفحه را در برچسب Page مشخص کردیم دیگر نوشتن آن در برجسب <script> ضروری نیست اما بهتر است نوشته شود . در زیر صفحه ای را با زبان C# تعریف کرده ایم :
<%@ Page Language =” c ” %>
>script Language =”c” runar = “server < “
…c# statements go here …
</script>
با اینکه یک برنامه ASP.NET راکه از چند صفحه تشکیل شده می توان با زبانهای مختلف نوشت اما از نظر تکنیکی هر صفحه ASP.NET بایستی با یک زبان نوشته شود . علت آنست که در هر صفحه ASP.NET فقط یک برچسب Page می تواند وجود داشته باشد . کدهای صفحه ASP.NET می تواند به بخش های مجزا تقسیم شود . یکی از متداولترین واحدهای تقسیم بندی کد روال sub ( که سابروتین – subroutine خوانده می شود ) . روالهای sub فقط در صورت فراخوانی اجرا می شوند . توجه داشته باشید که الزامی نیست تمامی کد یک صفحه ASP.NET حتما اجرا شوند . قسمتی از کد یک صفحه ASP.NET می تواند یک بار اجرا شود قسمتی دیگر چند بار و قسمتی از آن بعد از یک اتفاق خاص اجرا شود و قسمتی دیگر هیچوقت اجرا نشود ( درباره شرایط اجرای کدهای صفحه ASP.NET بعدا بیشترصحبت خواهیم کرد .)
اما آیا می توان کاری کرد که قسمتی از کد صفحه ASP.NET( به محض بار شدن صفحه ) همیشه به طور خودکار و بدون قید و شرط اجرا شود ؟ پاسخ مثبت است . روال ویژه ای وجود دارد بنام Page – Load() که ماژول aspnet- isapi.dll به محض ایجاد شی Page آنرا اجرا می کند . شکل کلی این روال چنین است:
<%@ Page Language =”VB” %>
<script Language =”VB”runat =”server” >
Sub Page – Load (source As Object, e As EventArgs)
…Location for visual Basic.NET code to be run when the page is started
End sub
</script>
بلوک کد درون – خطی ( زوج برچسب <% % >
اکنون می دانیم چطور کد ASP.NET بنویسیم اما متاسفانه هر چیزی که از طریق روال Page-Load() می نویسیم در ابتدای صفحه HTML قرار می گیرد نه آنجایی که ما می خواهیم ؛ و این اصلا خوب نیست . یکی از روشهای نوشتن خروجی ASP.NET در محل دلخواه صفحه HTML استفاده از بلوک کد درون – خطی است. خروجی کدهای ASP.NET که به صورت درون – خطی نوشته می شوند در همان محلی که کد ASP.NET قرار دارد ظاهر می شوند.
کنترل سرویس دهنده
با اینکه کدهای درون – خطی کمک بزرگی در نوشتن صفحات ASP.NET هستند اما در ویرایش های قبلی ASP هم مشخص شده بود که این روش منجر به ایجاد صفحات شلوغ و درهمی می شود که عیب یابی و نگهداری آنها بسیار مشکل است . استفاده از کنترلهای سرویس دهنده روش بسیار موثری محسوب می شود که با وجود داشتن مزایای فراوان معایب کد های درون – خطی را هم ندارد .
امکانات ASP.NET
اتصال به پایگاه داده
برای اغلب مردم اصلی ترین دلیل استفاده از ASP.NET قابلیت متصل کردن صفحه وب به یک پایگاه داده و استخراج و نمایش داده های آن است . در ویرایش های قبلی ASP برای این کار باید دهها خط کد می نوشتید ولی در ASP.NET این کار به سادگی و با استفاده از کنترلهای سرویس دهنده – بدون نیاز به کدنویسی مفصل و پیچیده می شود .
اتصال به فایل XML
یکی از ویژگی های جالب ASP.NET قابلیت استخراج اطلاعات از فایل های XML است . مدتهاست که XML به یکی از مهمترین فرمتهای داده در اینترنت تبدیل شده است . فایل های XML فایل های متنی خودکفایی هستند که می توانند به صورت یک منبع داده مستقل عمل کنند و هر نوع داده ای ( حتی داده های باینری مانند تصویر ) را در خود ذخیره کنند.
کنترل های سرویس دهنده
گرفتن اطلاعات از کاربر و پردازش آنها همیشه یکی از مهمترین کارهایی بوده که طراحان صفحات وب با آن روبرو بوده اند . واضح است که این کار به تنهایی از عهده مرورگر وب بر نمی آید و بخش عمده پردازش اطلاعات باید برعهده سرویس دهنده وب گذاشته شود. برای گرفتن اطلاعات کاربر و ارسال آنها به سرویس دهنده وب معمولا از فرم (form ) استفاده می شود . فرمهای HTML می توانند شامل عناصری مانند جعبه چک , لیستهای بازشو و مانند آنها باشند و در ASP.NET نیز کنترلهای دیگری برای این منظور تعبیه شده است . کنترلهای ASP.NET هوشمندتر نیز هستند ؛ مثلا جعبه متن ها می توانند متنهای وارد شده در آنها را به خاطر بسپارند یا لیستها می توانند انتخاب های قبلی کاربر را بیاد بیاورند . اینها ویژگیهایی هستند که باید توسط سرویس دهنده انجام شوند. وقتی با پردازش اطلاعات سر وکار داریم پای متغیر (variable ) نیز به میان می آید . در زبان VB.NET هر متغیر باید از یک نوع داده خاص تعریف شده باشد.
فرم چیست ؟
فرم اصلی ترین ابزار برنامه نویس وب برای گرفتن اطلاعات کاربر و ارسال آنها به سرویس دهنده وب است . در زیر به چند مورد که در آنها به عملکرد فرمها نیاز داریم اشاره کرده ایم :
1 – ثبت نام کاربر برای دریافت شناسه ایمیل , عضویت در یک لیست پستی , یا گروه خبری
2- گرفتن نظرات درباره محتویات سایت
3- شرکت در گروهای بحث و تبادل نظر
4 – خرید اینترنتی و پرداخت پول در سایتهای تجارت الکترونیک
صفحه وب , فرم HTML , و فرم وب
هر تکنولوژی جدید زبان و اصطلاحات خاص خود را به همراه می آورد و ASP.NET هم از این قاعده مستثنی نیست . برای اجتناب از سر درگمی باید مفهوم دقیق هر اصطلاح را در ASP.NET بدانیم . در زیر چند اصطلاح مهم ASP.NET و معنای آنها را توضیح داده ایم :
صفحه وب ( Web page ) : هر فایلی که از برچسب های HTML تشکیل شده باشد یک صفحه وب است . صفحات وب با برچسب <html > شروع و به برچسب </html > ختم شده و با پسوند .html یا .htm ذخیره می شوند . صفحات وب روی سرویس دهنده قرار داده می شوند و این سرویس دهنده آنها را ( در قالب یک استریم HTML ) به هر کاربری تقاضا کند , ارسال خواهد کرد .
فرم HTML : فرم HTML یک صفحه وب است که در آن از کنترلهای فرم ( در داخل برچسب<form > ) استفاده شده باشد . فرم HTML به کاربر اجازه می دهد تا اطلاعات را وارد کرده و آنها را به سرویس دهنده وب بفرستد .
فرم وب ( Web form ) : یک صفحه وب که از مقداری کد ASP.NET ( برای پردازش اطلاعات) و یک الگوی HTML ( برای نمایش اطلاعات ) تشکیل باشد . در فرمهای وب می توان از کنترلهای فرم HTML نیز استفاده کرد ولی ASP.NET کنترلهای سرویس دهنده قویتری دارد که بهتر است از آنها استفاده شود .
برچسب <form > در ASP.NET
فرمهای ASP.NET مجموعه ای از کنترلهای مختلف ( مانند HTML ) هستند که در سرویس دهنده وب پردازش شده و خروجی آنها به مرورگر وب ارسال می شود . شکل کلی یک فرم ASP.NET چنین است :
نقد و بررسیها
هنوز بررسیای ثبت نشده است.