دانلود ‫پروژه طراحی سایت ها

Word 8 MB 32138 139
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۳۰,۰۰۰ تومان
قیمت: ۲۴,۸۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • مقدمه قبل تجزیه و تحلیل قسمتهای مختلف این سایت در ابتدای امر لازم دیدم تا راجع به یک سری مفاهیم و کنترلهای پیشرفته که تقریبا جز ثابتی از سایتهای پویا هستند توضیحاتی اجمالی ارائه دهم و جزئیات آن را موکول میکنم به زمان استفاده آن در سایت و در آن قسمت توضیحات کاملتری را ارائه خواهم داد .

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

    در زبان html صفحه وب برای ما حکم کاغذی را دارا ست که در آن باید حتما از بالا به پایین بنویسیم و نیز قادر به حرکت به عقب نیستیم و همچنین در این صفحات قابلیت پاک کردن را نداریم ، محدودیت وسیعتری که زبانهای ایستا بر ما تحمیل میکنند نداشتن قابلیت برنامه نویسی است و برنامه نویسی در این زبان محدود میشود به نوشتن عملیاتهای ساده ریاضی درون تگ هایی به نام با وجود این محدودیتها و گسترش روز افزون اینترنت در میان جوامع نیاز به طراحی سایتهای پویا به شدت محسوس بود تا اینکه زبانی به بازار عرضه داشتند به نام DHTML این زبان یک سری از محدودیتها را تا حدی جبران میکرد ولی هنوز نیاز به پیشرفتهای گسترده ای داشت با کاملتر شدن این زبانها زبانهای قدرتمندی عرضه شدند که توانایی ساخت برنامه های کاربردی تحت وب را دارا بودند از جمله این زبانها می توان زبان های ASP,PHP,… را نام برد ، همانگونه که گفته شد این زبانها قادرند هر گونه عملیاتی را انجام دهند .

    Active Server Pages ASP یا همان صفحات فعال سرور یکی از رایج ترین زبانها برای ساخت صفحات وب است و بسیاری از سایت های شلوغ و پر بیننده از این زبان استفاده میکنند از جمله میتوان سایت شرکت مایکروسافت ،DELL را نام برد .

    ASP.NET این زبان آخرین نسخه زبان Asp است که توسط شرکت مایکروسافت عرضه شده است و به دلیل وجود پیشرفتها و تغییرات بسیاری که در زبانهای تحت شبکه به اصطلاح دات نت به وجود آمده این زبان نیز تغییرات زیادی نسبت به نسخه های قبلی اش دارد .

    بنا بر دلایل بالا و نیازهایی که در این پروژه با آن رویا رو بودم زبان ASP.NET را بر گزیدم .

    برای استفاده از این زبان نیاز است که با زبان Html و یکی از زبانهایی که .NET Common Language Runtime را بشناسد آشنایی داشته باشیم ، از جمله این زبانها می توان به C#, Jscript.NET, Visual Basic و نسخه تعمیم یافته C++ که توسط مایکروسافت حمایت میشوند و زبانهای دیگری چون ,Smalltalk , Eiffel, COBOL Python .

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

    برای نوشتن کدهای این زبان میتوانید از هر نرم افزار ویرایش متنی استفاده کنید .

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

    من برای طراحی این سایت از Microsoft Visual Studio .NET استفاده کردم.

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

    ما می توانیم با انجام تغییراتی جزئی فایل Html خود را تبدیل به یک فایل ASP.NET کنیم اول از همه پسوند فایل را به .aspx تغییر دهیم سپس صفت Runat=”server” را به تگهای اضافه کنیم و به جای استفاده از nameاز ID استفاده کنیم و چهارم اینکه به جای نوشتن تگ زیر از این تگ استفاده کنیم سوالی که ممکن است پیش آید این است که چطور صفحات ASP.NET با مرورگر سازگارند و چطور این امکان وجود دارد که مرورگری چون IE این توانایی را داشته باشد که تمامی زبانها را بشناسد ؟

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

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

    اما کنترلهای وبی این کنترلها خود به پنج گروه تقسیم میشوند.

    اولین گروه وب کنترلهای پایه هستند که تقریبا معادل کنترلهای Html هستند که از آن جمله Label Image TextBox Button Hyperlink و دیگر کنترل ها ...

    گروه دوم کنترلهای اعتبار سنجی اند که در توضیح صفحه Order به تفصیل در مرد آنها صحبت خواهد شد گروه سوم کنترلهای داده ای نام دارند که نامشان Data Grid Data List Repeater در مورد این کنترل ها به طور اجمالی بحث میکنیم و جزئیات را به قسمت تشریح سایت موکول میکنیم گروه چهارم به کنترلهای پیچیده موسومند که از آن جمله یک تقویم تعاملی calendar و کنترلی برای نمایش تبلیغات AdRotator که در یکی از صفحات سایت از آنها استفاده شده است گروه پنجم کنترلهای موبایل هستند که برای کار با دستگاههای موبایل از قبیل تلفن همراه ,PDA و ...

    بوسیله این کنترل ها که تعداد انها بسیار زیاد است میتوانید در سایتتان از گوشی های موبایل نیز استقبال کنید.

    بانکهای اطلاعاتی در ASP.NET یکی از مهمترین نیازهایی که یک طراح سایت پویا دارد اطلاع از چگونگی عملکرد زبان با بانکهای اطلاعاتی است و نحوه برقراری این ارتباط .

    ASP.NET این قابلیت را به ما میدهد که با تمامی بانکهای اطلاعاتی ارتباط برقرار کنیم .

    ASP.NET برای برقراری ارتباط دو راه را پیش روی ما میگذارد یکی استفاده از OLE DB,ODBC است که برای کلیه بانکهای اطلاعاتی مورد استفاده قرار میگیرد و دیگری استفاده از کلاسهایی است که مایکروسافت برای بهینه سازی SQL SERVER از آن استفاده کرده است ، این کلاسها چند ویژگی با ارزش دارند یکی اینکه به دلیل دور زدن OLE DB,ODBC و استفاده مستقیم از TDS سرعت و کارایی برنامه را بسیار بالا میبرد دیگر آنکه با استفاده از این کلاسها دیگر نیازی به استفاده از یک تامین کننده Provider و یا اینترفیسی چون ADO , ODBC نخواهیم داشت در ضمن محدودیتهایی نیز خواهیم داشت که از آن جمله اینکه استفاده از این کلاسها منوط به این است که ما حتما از بانک اطلاعاتی SQL SERVER استفاده کنیم و دیگر آنکه ما نمی توانیم از DSN یا اسم منبع داده ای استفاده کنیم و اگر بخواهیم از DSN استفاده کنیم باید به جای استفاده از کلاسهای SQL از کلاسهای OLE DB استفاده کنیم .

    من در این سایت به دلیل استفاده از بانک SQL Server و مزایای کلاسهای مخصوص این بانک استفاده از کلاسهای خاص این بانک را به کلاسهای عمومی ترجیح دادم.

    نحوه برقراری ارتباط با SQL SERVER برای انجام این کار باید از کلاسهای SqlConnection , SqlCommand , SqlDataReader استفاده کنیم .

    SqlConnection وظیفه برقراری ارتباط با بانک را به عهده دارد و این کار را با استفاده از متدهای Open , Close انجام میدهد.

    SqlCommand اغلب دستوراتی که کار با بانک نیاز داریم در این کلاس وجود دارد و به نوعی حامل دستورات SQL ی ما نیز میباشد .

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

    DataReader مجموعه ای سریالی است از رکورد های بانک اطلاعاتی که فقط رو به جلو حرکت میکند و در هر لحظه تنها یک رکورد را باز میگرداند .برای باز یابی اطلاعات از این شی باید از متد Read استفاده کنیم ، و برای باز خوانی تمامی رکورد ها باید از یک حلقه استفاده کنیم تا به انتها برسیم .

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

    مقید سازی Data Binding مقید سازی یا همان دیتا بایندینگ فرایندی است که طی آن ما مقداری را به کنترلی منتسب میکنیم ، به گونه ای که با تغییر مقدار مورد نظر مقداری که به کنترل داده ایم نیز تغییر میکند .

    برای نمونه برای نمایش زمان در سایت خود کافی ست زمان جاری را توسط متد .

    برای نمونه برای نمایش زمان در سایت خود کافی ست زمان جاری را توسط متد GetTime() گرفته و آنرا به خصوصیت text از یک کنترل مثلا label اختصاص دهیم.

    و در نهایت متد DataBind را فراخوانی کنیم ، این متد میتواند روی یک کنترل خاص انجام شود و یا روی تمام صفحه ، این متد را در قسمت منطق برنامه ریزی صفحه قرار میدهیم ، برای این مثال از این دستور استفاده می کنیم Tim.DataBind(); ’ > هنگامی که بخواهیم در قسمت طراحی از منطق برنامه نویسی استفاده کنیم باید منطق خود را درون قرار دهیم و اگر این منطق درون قسمت تعریف یک کنترل باشد باید از علائم ‘ در ابتدا و انتهای آن استفاده کنیم .

    اهمیت دیتا بایندینگ زمانی مشهود تر است که بخواهیم مقداری از یک بانک را به کنترلی انتساب دهیم در میان کنترل های موجود کنترلهایی وجود دارند که خصوصیتی به نام DataSource دارند این خصوصیت برای مقید سازی یک منبع داده ای به کار میرود از این قبیل کنترل ها می توان Repeater , DropDownList , RadioButtonList , ListBox را نام برد .

    روش قید گذاری روی DropDownList , RadioButtonList , ListBox مشابه هم است یعنی منبع داده ای که میتواند جدولی از بانک اطلاعاتی و یا یک آرایه باشد را به خصوصیت DataSource این کنترل ها اختصاص می دهیم در این کنترل ها چون فقط یک ستون را می توانیم نمایش دهیم باید ستون مورد نظر را از طریق خصوصیت DataTextField تعیین کنیم و پس از این دو کار متد DataBind را فرا خوانی کنیم .

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

    Repeater این کنترل بیشتر برای نمایش رکورد های بانک اطلاعاتی به کار میرود ، این کنترل به خودی خود هیچ چیز را نمایش نمیدهد بلکه قالبی خام است که باید به آن شکل و فرم دهیم میتوانیم قالب خود را توسط کنترلهای دیگر بسازیم و منبع داده ای را به هر کدام از کنترل ها نسبت دهیم .

    میتوانیم قالب خود را توسط کنترلهای دیگر بسازیم و منبع داده ای را به هر کدام از کنترل ها نسبت دهیم .

    روش مقید سازی این کنترل شبیه بقیه کنترل ها ست به این معنی که باید DataSource را مقدار دهی کرد و متد DataBind را فراخوانی کرد و به کار دیگری نیازی نیست چون این کنترل قادر است همه ستونها را به نمایش بگذارد .

    برای فرم دهی این کنترل چهار الگو مختلف وجود دارد .

    HeaderTemplate , ItemTemplate , AlternatingItemTemplate FooterTemplate , SeparatorTemplate قالب سر برگ و قالب کلی آیتم ها و قالب آیتم های جایگزین و قالب ته برگ و قالب خط جداکننده هر رکورد از رکورد بعدی که هر کدام را می توان جدای از بقیه فرمت دهی کرد.

    کنترلهای DataList , DataGrid این دو کنترل نیز همانند کنترل Repeater برای نمایش داده های بانک اطلاعاتی به کار می رود.

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

    این کنترل ها این توانایی را نیز دارند که به صورت تو در تو از آنها استفاده کرد به عنوان مثال در یک کنترل Repeater می توان از یک DataList استفاده کرد .

    این کار در این پروژه انجام شده است می توانید جزئیات کار را در همان قسمت مطالعه کنید.

    ابتدا وجه تشابه این کنترلها را بررسی میکنیم .

    و سپس به خصوصیات فردی هر کنترل میپردازیم.هر سه این کنترلها از قابلیتی به نام event bubbling برخوردارند .

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

    کنترل Repeater میتواند توسط رخداد OnItemCommand این کار را انجام دهد و دو کنترل دیگر برای این عمل می توانند از پنج کنترل برای کارهای مختلف بهره ببرند این یکی از تفاوتهای این کنترل است که فقط از دو کنترل DataList و DataGrid میتوان برای ویرایش بانک اطلاعاتی استفاده کرد پنج رخداد این دو کنترل عبارتند از: ItemCommand UpdateCommand EditCommand DeleteCommand CancelCommand برای استفاده از این خصوصیات باید خصوصیت CommandName را مقدار دهی کرد این خصوصیت در کنترلهای LinkButton , Button , ImageButton وجود دارد در ضمن این کنترلها خصوصیتی به نام CommandArgument دارند که برای ارسال آرگومانی به کنترل مادر یا همان کنترلی که این کنترل بخشی از آن است به کار میرود.

    با مقدار دهی CommandName بهupdate رخدادUpdateCommand فعال میشود .

    با مقدار دهی CommandName بهdelete رخدادDeleteCommand فعال میشود .

    با مقدار دهی CommandName بهcancel رخدادCancelCommand فعال میشود .

    با مقدار دهی CommandName بهedit رخداد EditCommand فعال میشود .

    و زمانی که هیچ یک از مقادیر بالا نبودItemCommand فعال میشود.

    تفاوت دیگر این کنترلها در الگوهایی ست که از آن حمایت میکنند به طوری که کنترل DataList به غیر از اینکه تمامی الگو های Repeater را میشناسد دو الگوی زیر را نیز حمایت میکند.

    EditItemTemplate , SelectedItemTemplate که برای آیتم انتخاب شده و برای آیتمی که باید تحت ویرایش قرار گیرد استفاده میشود.

    و کنترل DataGrid نیز از الگوهای زیر حمایت میکند .

    HeaderTemplate , ItemTemplate , EditItemTemplate , FooterTemplate و یک الگوی دیگر برای ویرایش آیتم انتخاب شده به نام SditItem .

    کنترلهای DataList و DataGrid دارای کلکسیونی به نام DataKey هستند این کلکسیون وظیفه نگهداری شماره مشخصه هر آیتم را به عهده دارد .

    از این کنترل زمانی میتوانیم استفاده کنیم که میخواهیم آیتمی را که باید روی آن عملیاتی انجام دهیم شناسایی کنیم و می توانیم تناظر بین سطرهای نمایش داده شده را با سطر های جدول برقرار سازیم .

    DataList قابلیت نمایش داده ها در چند ستون را نیز داراست و برای استفاده از این قابلیت باید از خصوصیات RepeatColumns که تعداد ستونها و RepeatDirection که مشخص کننده افقی یا عمودی چیدن رکوردهاست استفاده کرد .

    DataGrid در DataGrid می توان بدون استفاده از الگو رکوردها را نمایش داد .در این کنترل قابلیت تعریف ستون وجود دارد که این ستون میتواند از پنج نوع مختلف که در زیر آمده اند باشد BoundColumn نوع پیش فرض ستون HyperLinkColumn رکوردها به صورت هایپرلینک هستند .

    TemplateColumn با استفاده از الگویی که خودمان طراحی کرده ایم رکوردها را در ستون نمایش میدهد.

    ButtonColumn کنترلهایی از نوع Button را نمایش میدهند .

    EditCommandColumn فرامینی برای ویرایش در اختیار ما میدهد از جمله cancel , update , edit ویژگی منحصر به فرد این کنترل اجازه مرتب کرده رکوردها بر اساس یک ستون خاص است و میتوان این اجازه را به تک تک ستونها داد .برای فعال کردن این قابلیت خصوصیت AllowSorting را با true مقداردهی میکنیم و سپس سابروتینی را به رخداد (event) SortCommand نسبت میدهیم .

    با این روش همه ستونها قابلیت مرتب سازی را پیدا میکنند.

    عملیات مرتب سازی در حقیقت به وسیله سرویس بانک اطلاعاتی انجام می شود و درون دستورSql فرستاده شده از فرمانOrder By استفاده میکنیم.

    برای فعال کردن این قابلیت برای یک ستون خاص از خصوصیت SortExpression استفاده میشود .

    یکی دیگر از ویژگیهای این کنترل قابلیت صفحه بندی است که به ما اجازه میدهد رکوردها را در چند صفحه به نمایش درآوردیم و برای حرکت بین صفحات از دو لینک برای حرکت به صفحه بعدی و قبلی استفاده می کنیم.

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

    برای استفاده از صفحه بندی این نکته باید دقت شود کهDataReader به ما اجازه صفحه بندی را نمیدهد و باید ازDataTabel یاDataSet استفاده کنیم .

    برای فعال کردن این ویژگی از خصوصیتAllowPaging استفاده میکنیم .

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

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

    فرض کنید جدولی با 10000 رکورد داریم با هر بار درخواست این صفحه 10000 رکورد در حافظه قرار میگیرد .

    اگر 100 بازدید کننده داشته باشیم یک میلیون رکورد در حافظه سرور انبار میشود و به سرعت حافظه پر میشود و سرور از کار میافتد .

    بهتر است زمانی از DataSet استفاده کنیم که بخواهیم بارها و بارها از جدول درخواستی استفاده کنیم و اگر نیاز باسد هر بار مقدار جدیدی درخواست کنیم بهتر است از DataReader استفاده کنیم.

    پنج کلاس وجود دارد که زمانیکه میخواهیم از DataSet استفاده کنیم به آنها نیاز پیدا میکنیم .

    DataAdapterاز این کلاس برای درج محتویات یک جدول در DataSet استفاده میشود برای انجام این کار باید مراحل زیر را طی کنیم.

    تعریف و ایجاد یک DataSet تعریف یک Connection ایجاد یک DataAdapterنوشتن دستورSelect مورد نیازآن.

    فراخوانی متدFill درDataAdapter با دو پارامتر که اولی نام DataSet و دیگری نام DataTabel است .

    سه کلاس دیگر عبارتند از DataTabel و DataView و DataRelation هر DataSet حاوی چند DataTabel است که هر کدام نماینده یک جدول از بانک اطلاعاتی است و برای برقراری ارتباط بین این جداول از DataRelation استفاده میشود و از DataView نیز برای انجام اعمالی چون فیلتر و...

    استفاده میشود .

    و اما نحوه استفاده از DataSet استفاده از آن دقیقا شبیه همان روشی است که از DataReader برای مقید کردن اطلاعات به DataList و DataGrid و Repeater استفاده میکردیم .

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

    به همین دلیل نمی توانیم فرض کنیم که اطلاعات در حافظه وجود دارد و هر زمان که نیاز به استفاده از اطلاعات درون Cache داشتیم باید از وجود اطلاعات مورد نیازمان اطمینان حاصل کنیم .

    چگونگی این کار را در سایت ببنید.

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

    برای این عمل از فرمان Remove که در کلاس Cache وجود دارد استفاده می کنیم .

    لازم به ذکر است که در ASP.NET می توان شبیه نسخه های قدیمی تر از Application استفاده کرد ولی Cache امکانات و متد های کاملتری در اختیار ما قرار داده است .

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

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

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

    البته باید محدودیتهای کوکی را نیز در نظر بگیریم .

    اول اینکه حجم کوکی نمیتواند بیش از4 کیلو بایت باشد به همین دلیل نمیتوانیم اشیا حجیمی چون DataSet را انتقال دهیم .

    دوم اینکه همه مرورگر ها از کوکی حمایت نمیکنند و یا اینکه از طرف کاربر تنظیمات مرورگر طوری پیکر بندی شده است که کوکی را نپذیرد .

    پس زمانی که از کوکی استفاده میکنیم باید در نظر داشته باشیم که با این کار ممکن است تعدادی از مشتریان را از دست بدهیم .

    تجزیه و تحلیل قدم اول یک فروشگاه از ما درخواست میکند که برای سرویس دهی به مشتریانش از طریق اینترنت سایتی طراحی کنیم .

    نیازها این فروشگاه نیاز به سایتی دارد که در یک لحظه توان سرویس دهی به بیش از 200 نفر را داشته باشد .

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

    در این سایت محصولات را به مشتریان معرفی کند .

    برای معرفی عکسی از محصول باید نمایش داده شود .

    مشتریان بتوانند در این سایت محصولات مورد نیاز خود را خریداری کنند .

    باید امکان دریافت پول و محل ارائه کالا را به مشتری بدهد .

    امنیت و درستی اطلاعات مربوط به آدرس و پول باید چک شود .

    برای ارائه خدمات بهتر نظرات مشتریان را دریافت کند .

    بتوان تغییر قیمت محصولات و دیگر ویژگیهای محصول را به سهولت و به صورت OnLine انجام داد .

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

    سفارش هر مشتری که انجام شد باید از لیست سفارش دهندگان حذف شود .

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

    سرعت این سیستم نیز اهمیت زیادی دارد .

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

    دومین مطلبی که مد نظر قرار میگیرد استفاده از نوع سرویس دهنده بانک اطلاعاتی است .از آن جهت که این فروشگاه نیاز به سرویس دهی به حدود 200 نفر در آن واحد را دارد نمیتوانیم از بانک اطلاعاتی مانند Access استفاده کنیم بانک اطلاعاتی شی گرا نیز برای این کار مناسب نیست میتوانیم از بانک اطلاعاتی Sql Server, Oracle استفاده کنیم .

    در طی جلسه ای که با کارفرما داشتیم بدلیل هزینه بر بودن استفاده از بانک اطلاعاتی Oracle و سرعت بالاتری که Sql Server به ما میدهد و اهمیت سرعت برای این کارفرما تصمیم بر استفاده از بانک اطلاعاتی Sql Server شد.

    و از آن جهت که ASP.NET ارتباط ویژه ای با Sql Server دارد از این زبان استفاده میکنیم.

    برای نوشتن Script های این زبان نیز زبان C# را به دلیل امنیت برنامه نویسی درآن و خوانایی این زبان انتخاب می کنیم .

    از دیگر نیازهای کارفرما فارسی زبان بودن سایت است که برای این کار مجبوریم از Unicode استفاده کنیم برای این کار باید هنگام ذخیره صفحه وبی که ساخته ایم تنظیمات ذخیره سازی را روی Unicode(utf 8) تنظیم کنیم و قسمت encoding صفحه را به Unicode(utf 8) تغییر دهیم و جداولی که میسازیم نیز باید نوع Unicode را بپذیرند .

    پس از ارائه درخواستهای مشتری این درخواستها را تجزیه و تحلیل کرده و در طی جلسه ای با کارفرما مواردی را که قابل انجام نیستند یا نیاز به هزینه بالاتری دارد را مطرح کرده ( مثلا در مورد اینکه تا چه حد سرعت اهمیت دارد و تا چه اندازه میتواند هزینه کند ) و زمانی را که برای این پروژه نیاز داریم و هزینه ساخت کل طرح را ارائه میدهیم و در نهایت به یک توافق در مورد درخواستهای که باید انجام شود میرسیم .

    برای شروع پروژه باید یک طرح مدیریتی ارائه دهیم.

    در این طرح باید مسائلی از قبیل ساخنار مراحل کار که در آن باید در هر مرحله زمان انجام آن مرحله را نیز مشخص کرد .

    مورد دیگری که باید در این طرح مشخص شود نیروی انسانی است که تعداد و سطح تخصص را باید تعیین کنیم .

    و هزینه طرح را نیز برآورد کنیم .

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

    که باید هر کدام از این درخواستها را در قراردادی تنظیم کنیم و به تایید کارفرما برسانیم .

    یکی از مهمترین کارهایی که باید انجام دهیم تا پروژه با شکست مواجه نشود تعیین محدوده است .

    DFD ای که در بالا ملاحظه میکنید مربوط به سطح اول یا Context است DFD سطح دوم را در صفحه بعد ببینید .

    همانطور که میبینید DFD رسم شده از محدوده تعیین شده برای این پروژه تجاوز کرده است محدوده کار ما طبق نیاز کار فرما محدود می شود به فرآیند سرویس دهی .

    همانطور که میبینید به وسیله خط قرمزی محدوده را مشخص کرده ام .

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

    به همین دلیل هزینه ساخت جداول مورد نیاز را که باید از سیستمهای دیگر به این سیستم ارائه میشد را به قرارداد اضافه کردیم .

    برای رسم ERD از DataStore ها استفاده می کنیم .

    و همانطور که قبلا نیز گفته شد دو جدول از این چهار جدول مربوط به سیستم انبار است که بدلیل مکانیزه نبودن این سیستم مجبوریم این جداول را به پروژه اضافه کنیم و خدماتی از قبیل حذف و اضافه و ...

    را برای رکوردهای این جدول در این سایت اضافه کنیم .

    باید به چند نکته در مورد ERD رسم شده اشاره کنم اول اینکه جدول Advice صرفا بدلیل اسرار کارفرما برای داشتن نظرات مشتریان ساخته شده و دیگر آنکه عملکرد جدول ShoppingCart همانند یک واسط و به عنوان Temporary است که سفارشات را قبل از تایید مشتری نگهداری میکند .

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

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

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

    انتقال اطلاعات محصول از صفحه ای به صفحه دیگر .

    انتقال محصولات خرید شده از صفحه ای به صفحه دیگر .

    ساخت سبد خریدی که در تمامی صفحات قابل دسترسی باشد .

    و هر کدام از این صفحات نیز به تنهایی پیچیده گیهای خودش را دارد .

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

    اولین صفحه را صفحه ای در نظر میگیریم که دسته بندیها را نشان میدهد برای این کار باید با بانک اطلاعاتی ارتباط برقرار کنیم و اطلاعات مربوط به دسته بندیها را خارج کرده و درون یک DataList میریزیم از این جهت DataList انتخاب شده چون که میخواهیم رکوردها تنها در یک ستون نمایش داده شود و نیازی به مرتب سازی و یا فیلتر شدن که از ویژگیهای DataGrid است نداریم .

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

    اولین کلاسی که میسازیم کلاسی برای برقراری ارتباط با بانک اطلاعاتی است که نام آنرا CacheClass میگذاریم این کلاس با پسوند .cs ذخیره میشود که یک فایل استاندارد به زبان C# است و در هنگام تولید نهایی آنرا به صورت یک DLL کامپایل میکنیم و درون پوشه bin ذخیره میکنیم تا تمامی صفحات به آن دسترسی داشته باشند .

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

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

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

    با این کار تنها یک بار نیاز به برقراری ارتباط با بانک اطلاعاتی وجود دارد و در دفعات بعدی این کار با سرعت بسیار بالایی انجام میشود ، از آن جهت که نیازی به برقراری ارتباط با بانک اطلاعاتی نیست .

  • فهرست:

     مقدمه..................................................................... 4

    Active Server Pages............................................. 5

    کنترلها..................................................................... 6

    بانکهای اطلاعاتی....................................................... 8

    نحوه برقراری ارتباط با SQL SERVER....................... 8

    مقید سازی Data Binding....................................... 9

    Repeater.............................................................. 10

    کنترلهای DataList , DataGrid............................. 11

    DataGrid............................................................. 13

    DataSet............................................................... 14

    ذخیره DataSet در حافظه....................................... 15

    کوکی Cookie........................................................ 16

    تجزیه و تحلیل........................................................ 17

    نیازها..................................................................... 19

    DFD.................................................................... 20

    ERD.................................................................... 22

    طراحی و پیاده سازی................................................ 23

    نحوه ایجاد قابلیت خرید........................................... 23

    نحوه ساخت و طراحی سبد خرید................................ 38

    طراحی سبد خرید.................................................... 39

    نحوه شناسایی کاربر................................................. 41

    ساخت سبد خرید.................................................... 41

    اضافه کردن کالا به سبد خرید................................... 43

    تعیین قیمت کل...................................................... 45

    حذف کالا............................................................... 45

    اعتبارسنجی آدرس مشتری و تایید نهایی................... 51

    StoredProcedure................................................ 55

    EditItemTemplate.............................................. 72

    کلاسها................................................................... 84

    کلاس CacheClass................................................ 84

    کلاس ShoppingCartClass................................... 86

    کد صفحه Category............................................... 94

    کد صفحه Product............................................... 98

    کد طراحی صفحه Category.................................... 94

    کد طراحی صفحه Product.................................... 100

    کد صفحه Final................................................... 102

    کد طراحی صفحه Final........................................ 108

    کد صفحه Orders................................................. 115

    کد طراحی صفحه       Orders................................ 118

    کد صفحه ChangeDB......................................... 119

    کد طراحی صفحه ChangeDB............................... 129

    کد صفحه Thank You......................................... 137

    کد طراحی صفحه ThankYou............................... 140

    منبع:

    ندارد.

در دنياي امروز که رفته رفته تمامي اعمالي که بشر انجام مي دهد به صورت مجازي و از طريق اينترنت به منظور سهولت کار انجام مي شود ، سايت هاي اينترنتي خود را به عنوان يکي از نياز هاي انسان روز به روز بيشتر پيدا مي کنند و هر شرکت ، نهاد ، مجموعه و هر شخصي

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

مقدمه امروزه وب به عنوان یک واقعیت انکارناپذیر سایه خود را در تمامی زندگی اجتماعی، اقتصادی و بشریت انداخته و دارای رشد بسیار سریع در زمینه بکارگیری تکنولوژی‌های جدید است. همزمان با این رشد اعجازگونه وب‌ سایتها از حالت اولیه خود که کوچک و عمدتا ایستا بودند خارج شده و به سمت حجیم شدن و پویایی حرکت کردند. امروزه روی یک وب سایت نرم‌افزارهای متعددی اجرا می‌شوند تا پاسخ وی نیاز ...

ASP.Net چيست ؟ تکنولوژي ASP .Net را مي توان به زبان ساده، محيط برنامه نويسي تحت سکوي دات نت براي ساخت برنامه هاي کاربردي (Applications) قابل اجرا در بستر اينترنت به همراه زبان HTML معرفي کرد. هم اکنون نسخه هاي 2006،2005،8 زبان دلفي به طور کامل با

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

اين پروژه بر اساس تئوري تورهاي مجازي از طريق اينترنت طراحي و نوشته شده است . محتواي اين سايت توضيحاتي در مورد مناطق ديدني استان فارس شهر شيراز والبته به طور اختصاصي از بناي تخت جمشيد مي باشد . در طراحي اين سايت از زبان ASP و کدهاي HTML استفاده شد

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

شرح پروژه تمامی اختراعات، اکتشافات و پیشرفت های بشر زمانی توجیه شده و مفید واقع می شوند که از آنها استفاده شود و به صورت کاربری دربیایند. یکی از مهمترین و پرکاربردترین این اختراعات کامپیوتر است که به جرأت می توان آن را پدیده قرن نامید. پدیده ای که امروزه در تمامی زمینه ها برای خود جایی باز نموده است. در اینجا نیازی به برشمردن فواید و کاربردهای کامپیوتر نمی باشد زیرا که امروزه ...

ASP راه حل شرکت مايکروسافت براي ايجاد صفحات پوياي وب مي باشد. با گسترش اينترنت و www در زندگي روزمره، ايجاد وب سايت يکي از بخشهائي است که به سرعت در حال رشد مي باشد. همواره در تار جهان گسترده، طراحي وب سايت براي ايجاد گرافيک هاي تخيلي و زيبا و صفحات

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

ثبت سفارش
تعداد
عنوان محصول