میهن داکیومنت                میهن داکیومنت                      میهن داکیومنت              میهن داکیومنت

مرکز دانلود پایان نامه ، پروژه ، روش تحقیق ، مقاله 


میهن داک - میهن داکیومنت

پروژه ASP.NET SQL


کد محصول : 10001036 نوع فایل : word تعداد صفحات : 71 صفحه قیمت محصول : 7000 تومان تعداد بازدید 259

فهرست مطالب و صفحات نخست


ASP.NET SQL

فهرست

مقدمه: ...............................................................1
بخش اول: ..........................................................5

•    Asp.netچيست؟
•    چگونگي سازگاري ASP
•    يك فايل ASP چگونه فايلي است؟
•    ASP چگونه كار مي كند؟
•    ASP چه كارهايي مي تواند انجام دهد؟
•    چگونه ASP را برروي PC خود اجرا كنيد؟

بخش دوم : .........................................................8

•    آشنائی با ASP.NET
•    مقايسه ASP.NET و ASP کلاسيک
•    زبانهای برنامه نويسی در ASP.NET
•    ابزارهایASP.NET
•    دريافت ASP.NET
بخش سوم : ......................................................12

•    Namespace چيست؟
•    فضانامSystem
•    فضانام Microsoft
•    استفاده از فضانام ها در صفحات ASP.NET

بخش چهارم : ...................................................22

•    Smart Navigation چيست؟
•    نحوه استفاده Smart Navigation

بخش پنجم : ......................................................25
   

•    upload کردن فايل به سرور در ASP.NET

بخش ششم : .....................................................26

•    نشان دادن قابليتهای مرورگر در ASP.NET
•    شئ HTTP Browser Capabilities




بخش هفتم : ......................................................29

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


بخش هشتم : .....................................................40

•    آماده سازی محیط
•    Web From ها در عمل
•    آشنائی با فرم‌های وب در ASP.NET


بخش نهم : .......................................................46

•    ارسال ایمیل در ASP.NET با استفاده از HTML Template
•    استفاده از قالب Import شده فوق و ارسال Email
•    خواندن فایل Template جهت قراردادن در Body نامه شما
•    ساختن Template مورد نظر شما جهت ارسال Email


نتیجه گیری : ....................................................53

منابع و مأخذ : ...................................................57

مقدمه

ASP.Net چیست ؟
تکنولوژی ASP .Net را می توان به زبان ساده، محیط برنامه نویسی تحت سکوی دات نت برای ساخت برنامه های کاربردی (Applications) قابل اجرا در بستر اینترنت به همراه زبان HTML معرفی کرد. هم اکنون نسخه های 2006،2005،8 زبان دلفی به طور کامل با سکوی دات نت سازگار بوده و از توسعه برنامه های کاربردی بوسیله ASP .Net پشتیبانی می نمایند. اگر شما با ASP کلاسیک آشنا هستید، باید گفت که ASP .Net به طور کلی با ASP کلاسیک متفاوت می باشد [تا قبل از ارائه سکوی دات نت تکنولوژی شرکت مایکروسافت برای ساخت برنامه های کاربردی تحت اینترنت ASP بود. که آخرین نسخه آن هم ASP 3.0 بوده است. بعد از ارائه ASP .Net تکنولوژی قدیمی ASP، را ASP کلاسیک نامیدند. همچنین به ASP .Net عبارت "ای اس پی پلاس" هم می گویند- م]. برای شما، به عنوان یک برنامه نویس دلفی که با توسعه سریع نرم افزار یا RAD و برنامه نویسی شیئ گرا (OOP) بوسیله خاصیت ها، متدها و رویدادها آشنایی دارید، تکنولوژی ASP .Net یک مدل بسیار قوی و مناسب جهت ساخت برنامه های کاربردی قدرتمند مطرح می باشد. هم اکنون در اینترنت تعدادی راه حل نرم افزاری با ASP .Net و دلفی ارائه شده است. که از آن جمله می توانید به پورتال و فروشگاه اینترنتی در سایت aspxDelphi.com مراجعه نمایید [این سایت تماما با ASP .Net و دلفی ساخته شده است].
ASP .Net متشکل از چندین تکنولوژی متفاوت شامل : فرم های وب یا WebForms (همانند فرم های متداول در برنامه های Win32 در دلفی )، سرویس های وب، کنترل های وب، کنترل های HTML و کنترل های اعتبار



 سنجی؛ می باشند. وقتی تمام این موارد در کنار هم قرار گیرند، توسعه دهنده گان و برنامه نویسان را قادر به ساخت و ارائه برنامه های کاربردی تحت وب قوی، قابل نگهداری و مقیاس پذیر می نمایند.
اکنون بیایید تا در قالب جملاتی ساده بررسی نماییم که به طور کلی ASP .Net در مورد چه چیزهایی می باشد :
•    فرم های وب (Web Forms) : قلب و جان برنامه های کاربردی ASP .Net می باشند. یک WebForm نوعا شامل کنترل های سرور و عناصر HTML می باشد [در مورد کنترل های سرور به زودی بحث خواهیم کرد]. این کنترل ها به شما این امکان را می دهند که یک وب فرم با کدی بسیار ساده متشکل از اجزائ توکار و قابل استفاده مجدد را به سرعت ایجاد نمایید. وب فرم های ASP .Net فایل های متنی هستند که نام آنها با پسوند aspx مشخص می گردند. وقتی یک کاربر برای اولین بار یک فرم را بوسیله وب مورد دستیابی قرار می دهد، ASP .Net یک فایل dll کامپایل شده را تولید می نماید، که بعدا به صورت پویا به خروجی HTML برای مشاهده در مرورگر وب در سمت کاربر یا سرویس گیرنده تبدیل می گردد.
•    کنترل های سرویس دهنده وب (Web Server Controls) : وب فرم ها از بلوک هایی از کد ساخته شده اند. کنترل های سرور یا Server Controls در یک فایل با پسوند aspx بوسیله تگ های سفارشی یا اختصاصی یا تگ های استاندارد HTML که حاوی یک خصوصیت با مقدار runat="server" می باشند، تعریف می گردند. کنترل های سرور شباهت زیادی به کنترل های استاندارد VCL در دلفی دارند؛ با این تفاوت که کنترل های سرور خروجی HTML تولید می نمایند. کنترل


های سرور دارای خواص، رویدادها و متدهایی می باشند و در واقع رابط کاربر را پیاده سازی می نمایند که قابل بسط و توسعه نیز هستند.
•    کنترل های HTML و کنترل سرور اچ تی ام ال (HTML Controls and HTML Server Control) : اچ تی ام ال استاندارد در واقع به صورت بلوکی [بلوک هایی از کد] می باشد.عناصر HTML در ASP .Net تشابه زیادی با عناصر متداول HTML همانند table,span,div,input و غیره، در صفحات وب دارند. به طور پیش فرض عناصر HTML در یک WebForm برای سرور فراهم نمی باشند. بلکه آنها به عنوان اعضای اولیه وب فرم ها ارائه شده اند. با تبدیل عناصر HTML به کنترل های سرور HTML یا HTML Server Controls ، بوسیله افزودن خاصیت runat="server" در واقع شما آنها را به عناصر سمت سرور تبدیل کرده اید.
•    کنترل های کاربر (User Controls) : مکانیسمی برای ساخت کد صفحات کوچک ASP .Net، با قابلیت استفاده مجدد را فراهم می کنند. کنترل های کاربر همانند WebForm ها می باشند. با این تفاوت که تگ (Tag) ابتدا و انتهای صفحه را ندارند. و در قالب یک فایل متنی با پسوند ascx ذخیره می شوند. User Control ها را می توان مشابه شیئ TFrame در دلفی قلمداد کرد.
•    کنرل های اعتبار سنجی (Validation Controls) : این کنترل ها همگی سمت کاربر یا Client Side بوده و عملیات اعتبار سنجی ورودیهای کاربر (مثل رشته، عدد و ...) بدون ارسال اطلاعات به سرور را انجام می دهند. کنترل های اعتبار سنجی این قابلیت را فراهم می آورند تا اطلاعاتی را که کاربر در کنترل های HTML یا کنترل های کاربر


(User Controls) در یک وب فرم وارد می نماید را تست نمایید.
•    ADO .Net : اجازه دهید در حال حاضر، تنها به ذکر این نکته بسنده کنیم که : ADO .Net برای ذخیره [و بازیابی] اطلاعات در تمامی مدل های برنامه نویسی تحت سکوی دات نت شامل وب فرم ها، وب سرویس ها، و برنامه های کاربردی تحت ویندوز یا WinForm ها طراحی شده است [درباره ADO .Net در آینده بیشتر بحث خواهد شد].
•    سرویس های وب (Web Services) : اجزائ برنامه های کاربردی مبتنی بر XML می باشند. یک وب سرویس بر پایه XML عملکردی همانند منطق برنامه کاربردی را فراهم می سازد. و از طریق هر سیستم توزیع شده (Distributed System) دیگری که از پیام رسانی بر پایه XML استفاده نماید، در دسترس خواهد بود [این مساله بدین معناست که سایر سیستم های مبتنی بر XML می توانند با یک برنامه کاربردی دیگری که از XML استفاده می کند، ارتباط برقرار نمایند و با هم به تبادل اطلاعات بپردازند].

Asp.net ( بخش اول )

ASP كه سرنام واژه هاي Active Server Pages ميباشد برنامه اي است كه درون IIS اجرا ميشود.
IIS نيز سرنام واژه هاي Internet Information Services ميباشد و IIS يكي از اجزاء سيستم عامل ويندوز 2000 است وIIS همچنين بخشي از Option pack موجود براي ويندوز ان تي 4 مي باشد.
PWS (Personal Web Server) يك روايت مختصرتر ازIIS مي باشد كه آن را مي توانيد برروي سي دي ويندوز خود بيابيد.

چگونگي سازگاري ASP
براي اجراي IIS بايد سيستم عامل ويندوز ان تي 4 يا بالاتر داشته باشيد وبراي اجراي PWS بايد از ويندوز 95 يا بالاتر استفاده كنيد.
Chili ASP يك تكنولوژي است جهت اجراي ASP بدون نيار به سيستم عامل ويندوز.
Instant ASP تكنولوژي ديگري است براي اجراي ASP بدون ويندوز.

يك فايل ASP چگونه فايلي است؟
يك فايل ASP مي تواند شامل text، HTML، XML واسكريپتها باشد.
اسكريپت هاي موجود در فايل ASP بر روي كامپيوتر سرويس دهنده اجرا مي شوند.
يك فايل ASP داراي پسوند asp. مي باشد.

ASP چگونه كار مي كند؟
هنگامي كه برنامه مرورگر، يك فايل HTML را درخواست مي كند، Server فايل را برمي گرداند.هنگامي كه يك برنامه مرورگر يك فايل ASP را درخواست مي كند، IIS اين درخواست را به موتور ASP ارجاع مي دهد.
موتور ASP خط به خط فايل ASP را مي خواند واسكريپت هاي درون فايل را اجرا مي كند. سرانجام فايل ASP به فرم Plain HTML به مرورگر ارسال مي شود.

ASP چه كارهايي مي تواند انجام دهد؟
مي توانيد به شكلي پويا هرگونه محتوايي از يك صفحه وب راويرايش نماييد، تغيير دهيد يا اضافه كنيد. به درخواست هاو queryهاي كاربران پاسخ دهيد. به هرگونه داده وپايگاه داده اي دسترسي داشته باشيد ونتايج را به يك مرورگر بازگردانيد. يك صفحه وب را جهت استفاده بهينه براي ديگر كاربران به طور دلخواه تنظيم كنيد.
سادگي و سرعت از مهم ترين مزاياي استفاده از ASP مي باشد.
از آن جايي كه كد ASP شما از طريق برنامه مرورگر قابل دبدن نيست پس امنيت يكي ديگر از ويژگي هاي ASP است.
چون فايل هاي ASP به صورت Plain HTML بازگردانده مي شوند مي توان آن ها را از داخل هر مرورگري مشاهده كرد.
يك برنامه نويسي هوشمندانه ASP، از ترافيك شبكه مي كاهد.

چگونه ASP را برروي PC خود اجرا كنيد؟
شما مي توانيد بدون نياز به يك سرويس دهنده خارجي جداگانه ، ASP را بر

روي PC خود اجرا كنيد. براي اين منظور لازم است PWS يا IIS راروي PC خود نصب كنيد.
اگر براي استفاده از ASP جدي هستيد بايد حداقل يك ويندوز 98 نسخه Second Edition داشته باشيد.
اگر در استفاده از ASP خيلي جدي هستيد بهتر است از ويندوز 2000 استفاده كنيد.

در بخش بعدي چگونگي نصب PWS و ASP در ويندوزهاي مختلف توضيح داده خواهد شد.


Asp.net ( بخش دوم )

آشنائی با ASP.NET
 NET نسل بعدی Active Server Pages يا ASP است که توسط شرکت ميکروسافت ارائه شده است. اين محصول توسط ميکروسافت بعنوان شاخص اصلی فناوری در ساخت سايتهای وب در نظر گرفته شده است. با استفاده از ASP.NET می توان هم اينترانت کوچک يک شرکت را ساخت و هم يک سايت وب تجاری خيلی بزرگ را طراحی و پياده سازی نمود. مهمترين نکاتی که در طراحی اين محصول در نظر گرفته شده است راحتی استفاده و بالا بودن کارائی و قابليت آن می باشد. در زير برخی ويژگيهای ASP.NET را بررسی می کنيم.

• صفحات ASP.NET کامپايل می شوند.
هنگامی که يک صفحه ASP.NET برای اولين بارتوسط يک مراجعه کننده به سايت فراخوانی می شود، آن صفحه ابتدا کامپايل شده و بر روی سرور نگهداشته می شود و در فراخوانی های بعدی از آن استفاده می شود. اين بدين معنی است که صفحات ASP.NET خيلی سريع اجرا می شوند.
• صفحات ASP.NET با ابزارهای روی سرور ساخته می شوند.
با ابزارهای موجود در ASP.NET می توان صفحات پيچيده وب را براحتی
طراحی نمود. بعنوان مثال با استفاده از ابزار DataGrid می توان به آسانی داده های موجود در يک بانک اطلاعاتی را تحت وب نمايش داد.

• مجموعهASP.NET عضوی از بدنه NET. است.
بدنه NET. دارای بيش از ۴۵۰۰ کلاس آماده جهت استفاده در ASP.NET است. اين کلاس ها تقريبا هر نيازی را در برنامه نويسی برآورده می کنند. بعنوان مثال از اين کلاس ها می توان جهت توليد تصاوير بر حسب تقاضا، به رمز درآوردن يک فايل و يا ارسال يک نامه استفاده کرد.

مقايسه ASP.NET و ASP کلاسيک
ASP.NET نسل بعدی ASP يا ASP کلاسيک است. اما اين يک پيشرفت تکاملی است بطوريکه اين دو فناوری تقريبا از يکديگر متفاوتند. صفحات ASP با زبان های دستورالعمل نويسی مانند VBScript يا JScript ايجاد می شوند اما در ASP.NET ما يک فرايند کامل برنامه نويسی با زبانهای Visual Basic يا #C (سي-شارپ تلفظ شود) داريم. همچنين در ASP کلاسيک تنها پنج کلاس استاندارد (Request, Response, Application Session, Server) وجود دارد حال آنکه در ASP.NET می توان از بيش از ۴۵۰۰ کلاس استاندارد موجود در بدنه NET. بهره جست.همچنين عليرغم قدرت و امکانات زياد و متعدد ASP.NET، استفاده از آن در مقايسه با ASP کلاسيک بسيار آسانتر است. بعنوان مثال با استفاده از چند ابزار در يک
 صفحه ASP.NET می توان يک صفحه بسيار پيچيده HTML بدست آورد که ساخت آن در ASP کلاسيک ممکن است نياز به چند روز کار داشته باشد.
زبانهای برنامه نويسی در ASP.NET
شما در ASP.NET می توانيد از هر زبان برنامه نويسی که با بدنه NET. سازگار باشد استفاده کنيد. اين زبانها عبارتند از Visual Basic.NET و #C و JScript.NET . اين بدين معنی است که شما جهت نوشتن برنامه در ASP.NET نياز به فراگيری زبان جديدی نداريد و اگر يکی از زبانهای ويژوال بيسيک يا ++C يا جاوا را می دانيد هم اکنون می توانيد در ASP.NET برنامه بنويسيد.از طرف ديگر تعدادی زبانهای ديگر توسط بعضی از شرکتهای فعال در اين زمينه به مجموعه زبانهای استاندارد ASP.NET افزوده شده است. بعنوان مثال اگر مايل باشيد حتی می توانيد از PERL و COBOL هم در ASP.NET استفاده کنيد.

ابزارهای ASP.NET
سالهاست که برنامه نويسان ويژوال بيسيک جهت ساخت فرم های خود از ابزارهای ويژوال بيسيک مانند TextBox و ListBox استفاده کرده اند. در ASP.NET هم شما می توانيد از ابزارهای فراوان موجود در آن برای ساخت فرم ها و صفحات خود استفاده نمائيد. در ASP.NET چهار دسته عمده از ابزارها موجود است:


• ابزارهای اصلی مانند TextBox، RadioButton، ListBox و Button.
• ابزارهای اعتباری برای حصول اطمينان از ورود و تائيد صحت اطلاعات ورودی فرم ها.
• ابزارهای داده ای برای ارتباط با بانک اطلاعاتی و دستکاری داده.
• ابزارهای پيشرفته جهت نمايش عناصر پيچيده در واسط کاربر مانند تقويم و آگهی های تبليغاتي.
با استفاده از Visual Studio.NET شما براحتی می توانيد با چيدن تصويری اين ابزارها بر روی فرم مورد نظر، صفحه دلخواه خود را بسازيد. در صورت تمايل حتی می توانيد در يک ويرايشگر ساده متن مانند Notepad برنامه مورد نظر را نوشته و از اين ابزارها استفاده کنيد.

دريافت ASP.NET
جهت شروع برنامه نويسی در ASP.NET تنها کافی است که مجموعه ASP.NET را بهمراه بدنه NET. از سايت ميکروسافت دريافت کنيد.
دريافت .NET Framework
ASP.NET با سيستم عامل های Windows 2000 (نسخه Server و Professional) و Windows XP کاملا سازگار است.


Asp.net ( بخش سوم )
Namespace چيست؟
يک نکته مهم که در زمان استفاده از NET Framework. بايد به آن توجه داشت آن است که فضانام (namespace يا نامکده) ها در ساختمان برنامه کاربردی قرار دارند. فضانام يک طرح نامگذاری منطقی برای گروه بندی کلاس های مرتبط است. اين طرح مانع از آن می شود تا کلاس هايی که برای متدها و خصوصيات از يک شناسه يکسان استفاده می کنند تداخل داشته باشند.
مثلا NET Framework. برای گروه بندی تايپ ها به مقوله های منطقی عملکرد، از قبيل چارچوب برنامه کاربردی ASP.NET، از يک طرح نامگذاری سلسله مراتبی استفاده می کند. ابزارهای طراحی از فضانام ها با هدف تسهيل مرور و ارجاع تايپ ها در برنامه بهره برداری می کنند. مثلا فرض کنيد در حال نوشتن کد زير هستيد:

Public Class NewClass
[Procedures and Functions]
End Class

Public Class NewClass
[Procedures and Functions]
End Class


اين کد به خطا منجر می شود چون کامپايلر راهی برای تشخيص کلاس ها از

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


Namespace One
Public Class NewClass
[Procedures and Functions]
End Class
End Namespace

Namespace Two
Public Class NewClass
[Procedures and Functions]
End Class
End Namespace

در اين کد برخوردی بين دو کلاس با نام NewClass وجود ندارد چون هر کدام در يک فضانام جداگانه قرار داده شده است. کلاس اول را می توان با استفاده از ترکيب One.NewClass صدا زد، حال آنکه کلاس دوم را می


توان با استفاده از ترکيب Two.NewClass صدا زد.
شما می توانيد در فضانام های خود از يک ساختار سلسله مراتبی استفاده کنيد. قرار دادن اشياء مشابه تحت زيرعنوانها در يک فضانام مشترک تشخيص هدف فضانام را آسانتر می کند، و در عين حال باعث می شود برنامه به مراتب شئ گراتر شود.
برای توضيح فضانام می توان ساختار فايل و دايرکتوری (کشو، فولدر) در يک کامپيوتر را در نظر گرفت. در اين مثال کلاس ها به مثابه فايل ها و فضانام ها مانند دايرکتوری ها هستند. بديهی است همانگونه که می توانيم دايرکتوريهای تو در تو داشته باشيم، فضانام ها هم در حاليکه کلاس ها را در خود جای داده اند می توانند بصورت تو در تو باشند.
فضانام ها در ساخت برنامه های کاربردی ASP.NET نقش مهمی ايفا می کنند. خوشبختانه لازم نيست برای همه اشيايی که می توانند به وسيله صفحات ASP.NET مورد استفاده قرار بگيرند سيستم طبقه بندی فضانام ايجاد کنيد. مايکروسافت اين مساله را برای شما حل کرده است. دو فضانام ريشه، و فضانامهای فرزند آنها را می توان وارد صفحات ASP.NET خود کرد. اولی System ناميده می شود، و دومی Microsoft نام دارد. اين فضانامها با جزئيات بيشتر در ادامه مورد بحث قرار گرفته اند.

فضانام System
فضانام System فضانام اصلی برای ساخت ASP.NET و همه برنامه های کاربردی ديگر مبتنی بر NET Framework. است. هر چيزی که در برنامه کاربردی شما قابل انجام باشد از طريق فضانام System کنترل می شود. به عنوان مثال کنترل آرايه، عمليات رياضی، و تبديل نوع داده ها از طريق فضانام


 System و فضانامهای فرزند آن اداره می شوند. ۹ فضانام پيش فرض (فضانام System و ۸ فرزند آن) وجود دارند که به صورت خودکار به صفحات ASP.NET اضافه می شوند:
• System
• System.ComponentModel.Design
• System.Data
• System.Drawing
• System.Web.SessionState
• System.Web
• System.Web.UI
• System.Web.UI.WebControls
• System.Web.UI.HTMLControls

هشت فضانام (بجز فضانام System) در زمان ساخت Visual Studio.NET يا VS.NET بطور خودکار به صفحات ASP.NET وارد می شوند. اين فضانام ها در زير به اختصار شرح داده شده اند.

• System.ComponentModel.Design: دربرگيرنده کلاس هايی است که می توان از آنها برای طراحی پشتيبانی سفارشی اجزا و زمان طراحی و دسترسی به سرويس های تامين شده توسط معماری NET Framework. استفاده کرد.

• System.Data: امکان دسترسی به کلاس ها و رابطهايی را فراهم می کند


که معماری ADO.NET را برای دسترسی به داده های عمومی تشکيل می دهند.

• System.Drawing: دربرگيرنده کلاس ها و رابطهايی است که عملکرد گرافيکی اوليه را تامين می کنند. فضانام System.Drawing نيز از طريق فضانام System.Drawing.Drawing2D و System.Drawing.Imaging عملکرد پيشرفته تری فراهم می کند.

• System.Web: کلاس ها و رابطهايی تامين می کند که ارتباط مرورگر/سرويس دهنده را امکان پذير می کنند. اين فضانام دربرگيرنده کلاس HTTPRequest (فراهم کننده اطلاعات وسيعی درباره درخواست HTTP جاری)، کلاس HTTPResponse (فراهم آورنده امکان دسترسی به فرآيندها و يوتيليتی های سمت سرويس دهنده) است.

• System.Web.SessionState: فراهم کننده کلاس ها و متدهايی برای مديريت وضعيت جلسات کاری می باشد.

• System.Web.UI: فراهم کننده کلاس ها و رابطهايی برای رابط واسط کاربر برنامه کاربردی ASP.NET است که موجب می شوند برنامه کاربردی با سطوح مختلف صفحه، ارتباط برقرار کند. کلاس اصلی اين فضانام، کلاس Page می باشد که دربرگيرنده همه خصوصيتها، متدها، و سازنده های صفحه است. اشياء اصلی Active Server Page زير خصوصيتهايی در کلاس Page هستند: Application ،Response ،Request ،Server و Session.

• System.Web.UI.HTMLControls: کلاس هايی برای عناصر HTML استاندارد، شامل فرم ها، کنترل های ورودی، آنکور، جداول، قسمتهای متنی، و غيره فراهم می کند. اين کنترلها همانند تگهای عادی HTML هستند با اين تفاوت که داری دو صفت runat="server" و id="controlname" می باشند.

• System.Web.UI.HTMLControls: برای کنترلهای سرويس دهنده ای که شبيه کنترلهای HTML هستند ولی انعطاف پذيری بيشتر و عملکرد پيچيده تری دارند کلاس هايی را تامين می کند.
برخی فضانام های مهم و پرکاربرد ديگر به شرح زير می باشند.
• System.IO: دربرگيرنده رابطها و کلاس هايی است که امکان خواندن و نوشتن همگام و غيرهمگام فايل ها و جريانهای داده را فراهم می کنند.

• System.Data.OleDb: امکان دسترسی به کلاس ها و رابطهای مخصوص دسترسی به يک منبع داده از طريق ADO را فراهم می کند.

• System.Data.SqlClient: امکان دسترسی به کلاس ها و رابطهای مخصوص دسترسی به داده های خاص Microsoft SQL Server از طريق ADO را فراهم می کند.

• System.Web.Security: امکان دسترسی به کلاسها و رابطهای مخصوص امنيت برنامه کاربردی ASP.NET را فراهم می کند. دستيابی به رمزنگاری، مجوزها، و تنظيمات خط مشی برنامه کاربردی در اين فضانام قرار می گيرند.

• System.XML: امکان دسترسی به کلاسها و رابطهای مخصوص پردازش اسناد XML را فراهم می کند.

فضانام Microsoft
علاوه بر فضانام System که در چارچوب NET. يافت می شود، مايکروسافت چند فضانام اضافه کرده است که برای زبان برنامه سازی ای که می خواهيد از آن در برنامه کاربردی خود استفاده کنيد عملکرد لازم را تامين می کنند. ممکن است شما بصورت مستقيم با اين فضانام کاری نداشته باشيد.

• Microsoft.VisualBasic: اين فضانام محتوی CLR يا زمان اجرای Visual Basic.NET است. از اين زمان اجرا با زبان Visual Basic.NET استفاده می شود. اين فضانام همچنين دربرگيرنده کلاس هايی است که از کامپايل و توليد کد با استفاده از زبان ويژوال بيسيک پشتيبانی می کنند.

• Microsoft.CSharp: اين فضای نام دربرگيرنده کلاس هايی است که از کامپايل و توليد کد با استفاده از زبان #C پشتيبانی می کنند.

• Microsoft.JScript: اين فضای نام دربرگيرنده کلاس هايی است که از کامپايل و توليد کد با استفاده از زبان JScript پشتيبانی می کنند.

• Microsoft.Win32: کلاسها و رابطهای مورد نياز برای کار با کليدها و hiveهای رجيستری را تامين می کند.

با وجود آنکه فضانام ها از قبل تامين می شوند، می توانيد برای استفاده از برنامه کاربردی ASP.NET فضانام های خود را ايجاد کنيد. برای هر کلاس ايجاد شده توسط سازنده يک فضانام توليد می شود.

استفاده از فضانام ها در صفحات ASP.NET
دو راه برای افزودن فضانام به برنامه کاربردی ASP.NET وجود دارد. از شبه دستور (Directive) صفحه Import@ برای صفحات ASPX و از کلمه کليدی Imports برای افزودن فضانام به برنامه codebehind مربوطه در ويژوال بيسيک استفاده می شود و برای زبان #C از دستور using استفاده می گردد. قطعه برنامه زير ترکيب نحوی برای افزودن فضانام System.Web.UI.WebControls به صفحه ASP.NET شما است.

<%@ Import namespace = "System.Web.UI.WebControls" % >
همين فضانام را در قسمت codebehind بصورت زير به برنامه اضافه می کنيم.

Imports System.Web.UI.WebControls (vb.net )
using System.Web.UI.WebControls; (C#)
( به تفاوت Import و Imports دقت کنيد )
 در صورتيکه می خواهيد چند فضانام را به صفحه ASP.NET خود و يا صفحه codebehind اضافه کنيد بايد هرکدام را جداگانه اضافه کنيد. بعنوان مثال، برای افزودن فضانام System.Web.UI.HTMLControls به صفحات با فضانام های موجود، درست بعد از آخرين عبارت مهم به خط بعد برويد و Imports System.Web.UI.HTMLControls را اضافه کنيد. به محض آنکه .Imports System را تايپ کنيد، VS.NET فهرستی از فضانام ها را ظاهر می کند، و می توانيد به سادگی فضانام مورد نظر را با ماوس برگزينيد. امتياز اين فهرست آن است که مجبور نيستيد همه فضانام های NET. را از حفظ بدانيد، بلکه می توانيد به آسانی از فهرست انتخاب کنيد. اين ويژگی با عنوان Intellisense شناخته می شود. برای صفحات ASP.NET از اين ترکيب استفاده کنيد:

< %@ Import namespace = "System.Web.UI.WebControls" % >
< %@ Import namespace = "System.Web.UI.HTMLControls" % >
< %@ Import namespace = "namespace name" % >

برای صفحات codebehind ويژوال بيسيک از اين ترکيب استفاده کنيد:


Imports System.Web.UI.WebControls
Imports System.Web.UI.HTMLControls
Imports namespace
...


Asp.net ( بخش چهارم )
Smart Navigation چيست؟
مفهوم Smart Navigation و فوايد آن
Smart Navigation يكى از بهترين ابزارهاى جديدى است كه ASP.NET آنرا عرضه كرده است. اين ابزار جديد باعث شده ظاهر برنامه هاى وب و احساسى كه نسبت به آن وجود دارد شباهت بيشترى با برنامه هاى عادى و نوشته شده براى ويندوز پيدا كند.
يكى از موانع بزرگ برنامه هاى تحت وب به معمارى و ساختار HTTP برمى گردد. جاييكه مجبوريم اطلاعات جمع آورى شده در سمت مشترى را به سرور بازگردانيم. به همين دليل مجبور به رسم مجدد و كامل صفحه اى كه قبلا ديده ايم مى باشيم، كه اين نه تنها باعث مى شود يك حالت فلش مانند در اين رفت و برگشت و رسم مجدد رخ دهد، بلكه براى صفحه هاى بلند كه براى ديدن تمام صفحه نيازمند بهscrolling هستيم، باعث مى شود كه ديدمان را به اول صفحه انتقال دهد، چيزى كه هم شايد دلخواه ما نباشد و هم اينكه ممكن است باعث سردرگمى كاربر گردد. همچنين اين فرآيند باعث تغيير فوكوس كنترل ها و بسيارى از اتفاقات ديگرنيز مى شود.
در برنامه هاى عادى ويندوز ما به طور معمول فقط قسمت هايى از صفحه را به روز مى كنيم كه تغييرى در آن ايجاد شده باشد يا تحت تاثير چيزى قرار گيرند و اين بدون نياز به تغيير در كل برنامه مى باشد (مثلا فقط يك عضو به listbox ما اضافه مى شود. بدون تغيير و رسم مجدد فرم برنامه).
Smart Navigation يا به عبارتى هدايت هوشمندانه اين توانايى موجود در برنامه هاى ويندوز را براى برنامه هاى تحت وب فراهم مى كند! اما قبل از هر
چيز بايد بدانيد كه اين ابزار فقط براى IE مى باشد و آن هم نسخه هاى ۵ به بالاتر آن. با اين وجود شما مى توانيد Smart Navigation را فعال يا غيرفعال سازيد، بدون آنكه تاثيرى در برنامه شما بگذارد. حتى اگر شما در پروژه تان مرورگرهاى محتلفى را مدنظر قرار داده باشيد، مى توانيد Smart Navigation را فعال سازيد. در اين صورت ASP.NET نوع مرورگر را تشخيص داده و Smart Navigation را فقط براى مرورگرهاى پشتيبانى شده فعال مى سازد.

چهار مورد برجسته اى كه Smart Navigation فراهم مى كند عبارتند از:
• صفحه در ميان درخواست ها يك نمايش ممتد را داراست و به عبارتى حالت فلش زدن به خود نمى گيرد.
• موقعيت Scroll را حفظ مى كند.
• فوكوس عضو دارنده فوكوس را نگه مى دارد.
• آخرين صفحه درون تاريخچه (History) نگهدارى مى شود.
اين ابزار در حالت واقع گرايانه براى برنامه هايى كه ارسال به عقب(!) Postback فراوانى دارند طراحى شده است ولى با توجه به اين نكته كه محتواى صفحه نبايد زياد تغيير نكند. احتمالا بنا به دلايل كارايى و نه اينكه در تغييرات زياد ايرادى بهم بزند - مترجم. شايد يك چيز شگفت آور در مورد اين

ابزار اين باشد كه شما در حقيقت نياز به نوشتن هيج كد و برنامه اى نداريد.
نحوه استفاده
Smart Navigation درون هدايت كننده صفحه (Page directive : )، براى تنظيم يك صفحه و درون web.config براى تنظيم كل برنامه استفاده مى شود. براى تنظيم در Page Directive به صورت زير عمل كنيد:

<%@ Page SmartNavigation=true % >

و براى تنظيم در web.config از ساختار زير استفاده نماييد:

< Configuration>
< System.web>


روش كار اينگونه است كه كل صفحه بدرون يك فريم دورنى مخفى (hidden IFrame) بارگذارى (load) مى شود و سپس فقط قسمت هاى تغيير كرده دوباره رندر(render) مى شوند.


Asp.net ( بخش پنجم )
upload کردن فايل به سرور در ASP.NET
کدهای مربوط به Upload کردن فايل به سرور را بايد به دو قسمت تقسيم نمود. قسمت اول شامل کدهايی است که نحوه نمايش در مرورگر را شامل می شوند و اساس آن بر HTML است. و قسمت دوم مربوط به طرف سرور است که شامل کدهايی است که با ASP.NET نوشته می شوند. برنامه زير حاوی کدهای مربوطه برای انجام اين کار به صورات خيلی ساده و ابتدايی می باشد. همانطور که ملاحظه می کنيد برخلاف ASP کلاسيک، نياز به وجود component خاصی نمی باشد و اين کار در ASP.NET بصورت خيلی ساده انجام پذير است.

Upload.aspx:

Asp.net ( بخش ششم )
نشان دادن قابليتهای مرورگر در ASP.NET
اگرچه در حال حاضر جنگ مرورگرها تقريبا تمام شده است اما اين موضوع دليلی بر شناخته نشدن قابليتهای مرورگرها نيست. در اينجا توانايی ASP.NET در نشان دادن قابليتهای مرورگرها بحث شده است. بعنوان نمونه، مثال ۱ نوع مرورگر را به ما نشان می دهد.

< body>
You are using < % =Request.Browser.Type % >
< /body>< /html >

برای نمونه اگر شما از IE 5 استفاده می کنيد نتيجه خروجی چنين بايد باشد:
You are using IE5

در مثال ۱ Request.Browser.Type يک رشته را که همان نام ونسخه‎ی مرورگر است را بر می گرداند. اما اين موضوع چگونه صورت ميگيرد ؟

شئ HTTPBrowserCapabilities
در حقيقت خاصيت Browser در شئ Request کلاسی از HTTPBrowserCapabilities است که در فضانام System.Web قراردارد. وقتی که اين کلاس روی يک صفحه ASP.NET نمونه سازی می

شود خواص صفحه سرويس گيرنده ای را نشان می دهد که از آن برای اجرا
شدن کد استفاده شده است. شئ Request در برگيرنده اين خاصيت مرورگر است که اين کلاس را ميتوان معادل کلاس MSWC. BrowserCapabilities در ASP کلاسيک در نظر گرفت.
در ليست زير اکثر خاصيتهای شی HTTPBrowserCapabilities تشريح شده است:
ActiveXControls: نشان می دهد که مرورگر اکتيويکس را ساپورت می کند يا نه.
AOL: چک می کند که مرورگر از نوع AOL است يا نه.
Cookies: نشان می دهد که مرورگر کوکی ها را ساپورت می کند يا نه بايد توجه داشت که اين خاصيت وضعيت فعال بودن يا غير فعال بودن کوکی ها را نشان نمی دهد.
Crawler: نشان ميدهد که مرورگر سرويس گيرنده از موتورهای جستجو تاثير می پذيرد يا نه.
Browser: نوع مرورگر را نشان می دهد.
Frames: نشان می دهد که مرورگر از قابليت Frame برخورداراست يا نه.
MajorVersion: نسخه اصلی مرورگر را نشان می دهد بعنوان مثال در IE5 عدد 5 نشانگر نسخه اصلی است.
MinorVersion: نسخه جزيی (کوچکتر) مرورگر را نشان می دهد بعنوان مثال در IE5.1 عدد .1 نشانگر نسخه جزيی است.
Type: نوع ونسخه مرورگر را بصورت يک رشته بازميگرداند..
VBScript: نشان می دهد که مرورگر VBScript را ساپورت می کند يا نه.

Version: نسخه اصلی و جزيی مرورگر را بعنوان يک رشته برمی گرداند.

در زير نمونه کامل يک مثال آورده شده است.
< %@ page language="VB" % >
< %@ Import Namespace="System.Web" % >
< html >
< body >
< head >< title >HTTPBrowserCapabilities Demo< /title >< /head >
< %
Dim browserObj As HTTPBrowserCapabilities
browserObj = Request.Browser
% >
< font face="verdana, arial" size=2 >
< p >Your browser supports ActiveX controls: < %=browserObj.ActiveXControls % > < /p >
< p >Your browser type: <%=browserObj.Type % > < /p >
< p >Your browser version: <%=browserObj.Version% > < /p >
... Add any other property that you would like to display
< / font >
< /body >
< /html >
Asp.net ( بخش هفتم )
نحوه پردازش صفحات ASP.NET بر روي سرويس دهنده وب
برنامه هاي وب از معماري سرويس گيرنده - سرويس دهنده تبعيت نموده و بر روي سرويس دهنده وب مستقر و مسئوليت پاسخگوئي به درخواست هاي ارسالي توسط سرويس گيرندگان را برعهده خواهند داشت .در سمت سرويس گيرنده ، مرورگر و در سمت سرويس دهنده ، سرويس دهنده وب داراي جايگاهي خاص مي باشند . مرورگر ، ميزبان برنامه وب بوده و مهمترين وظيفه آن ارائه بخش رابط کاربر يک برنامه وب است . در اين راستا ، مرورگر داراي پتانسيل لازم به منظور تفسير و نمايش تگ هاي HTML مي باشد .در سمت سرويس دهنده ، برنامه هاي وب با نظارت و مديريت يک سرويس دهنده وب ( مثلا" IIS ) اجراء مي گردند . سرويس دهنده وب ، مسئوليت مديريت برنامه ، پردازش درخواست هاي ارسالي توسط سرويس گيرندگان و ارائه پاسخ لازم به سرويس گيرندگان را بر عهده دارد .به منظور قانونمند کردن ارسال درخواست سرويس گيرندگان و ارائه پاسخ سرويس دهنده ، مي بايست از يک پروتکل ارتباطي خاص استفاده گردد. پروتکل ، مجموعه اي از قوانين لازم بمنظور تشريح نحوه ارتباط دو و يا چندين آيتم از طريق يک محيط انتقال ( زير ساخت انتقال داده ) نظير اينترنت است . در برنامه هاي وب ( ارسال درخواست توسط سرويس گيرنده و پاسخ به درخواست توسط سرويس دهنده ) از پروتکل ارتباطي HTTP)Hypertext Transport Protocol) ، استفاده مي گردد.
ASP.NET پلات فرم مايکروسافت براي طراحي و پياده سازي برنامه هاي
وب در دات نت مي باشد . پس از درخواست يک صفحه ASP.NET توسط
مرورگر سرويس گيرنده ، پردازش هاي متعددي بر روي سرويس دهنده وب به منظور ارائه پاسخ لازم ، انجام خواهد شد.شايد تاکنون سوالات مختلفي در رابطه با نحوه پردازش صفحات ASP.NET بر روي سرويس دهنده ، براي شما مطرح شده باشد :
پس از درخواست يک صفحه ASP.NET ، بر روي سرويس دهنده وب چه اتفاقي مي افتد ؟
نحوه برخورد سرويس دهنده وب با درخواست ارسالي توسط سرويس گيرنده چگونه است ؟
تگ هاي HTML چگونه توليد و براي مرورگر ارسال مي گردد؟
و شايد سوالات ديگر!
در اينجا قصد داريم با نحوه پردازش صفحات ASP.NET بر روي سرويس دهنده بيشتر آشنا شويم . بديهي است تشريح تمامي مراحل با ذکر جزئيات از حوصله يک مقاله خارج بوده و هدف آشنائي با کليات موضوع با يک روند مشخص و سيستماتيک است .

مرحله اول :
ايجاد يک درخواست HTTP براي يک صفحه ASP.NET توسط مرورگر:
 پردازش با درخواست يک صفحه ASP.NET که توسط مرورگر ايجاد مي شود ، آغاز مي گردد .مثلا" يک کاربر ممکن است در بخش آدرس مرورگر
کامپيوتر خود آدرس http://www.srco.ir//Articles/DocView.asp?ID=210 را به منظور دريافت اين مقاله وارد نمايد . مرورگر در ادامه يک درخواست HTTP را از سرويس دهنده وب محل استقرار سايت Srco.ir ايجاد و درخواست فايل حاوي مقاله را مي نمايد .

مرحله دوم :
 دريافت درخواست HTTP ، توسط سرويس دهنده وب :

مهمترين وظيفه سرويس دهنده وب ، دريافت درخواست ارسالي HTTP و ارائه منبع درخواست شده درقالب يک پاسخ HTTP است . سرويس دهنده وب ( مثلا" IIS ) ، پس از دريافت درخواست ارسال شده توسط سرويس گيرنده ، تصميم لازم در رابطه با نحوه برخورد با آن را اتخاذ مي نمايد. محور تصميم گيري فوق بر پايه نوع انشعاب فايل درخواستي استوار مي باشد. مثلا" در صورتيکه فايل درخواستي داراي انشعاب asp. ، باشد ، IIS درخواست را به سمت asp.dll هدايت تا عمليات مرتبط با آن انجام شود . انشعابات فايل متعددي به موتور ASP.NET ، مپ مي گردند . برخي از آنان شامل موارد زير مي باشد :
انشعاب aspx . ، براي صفحات وب ASP.NET
انشعاب asmx . ، براي سرويس هاي وب ASP.NET
انشعاب config . ، براي فايل هاي پيکربندي ASP.NET
انشعاب ashx . ، براي هندلرهاي سفارشي ASP.NET HTTP

انشعاب rem . ، براي منابع راه دور
و ساير انشعابات ديگر

پس از دريافت درخواست ارسالي توسط سرويس گيرنده ، سرويس دهنده وب آن را در اختيار مسئول مربوطه قرار خواهد داد . مثلا" در صورتيکه درخواست دريافتي مربوط به يک صفحه ASP کلاسيک باشد ، درخواست در اخـتيار asp.dll گذاشته شده و يا در صورتيکه درخواست در ارتباط با يک صفحه
ASP.NET باشد ، درخواست در اختيار موتور ASP.NET قرار داده مي شود . همانگونه که اشاره گرديد ، معيار اصلي در اين تصميم گيري ، نوع انشعاب فايل درخواست شده توسط سرويس گيرنده مي باشد .

مرحله سوم :
عملکرد موتور ASP.NET :

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

ASP.NET HTTP pipeline ياد مي گردد. علت نامگذاري فوق ، بدين دليل است که درخواست دريافتي از بين تعداد متغيري از HTTP modules در بين مسير خود براي رسيدن به يک HTTP handler عبور مي نمايد . HTTP modules ، کلاس هائي مي باشند که امکان دستيابي به درخواست دريافتي را دارا مي باشند. اين ماژول ها قادر به بازبيني و بررسي درخواست دريافتي و اتخاد تصميماتي مي باشند که مستقيما" بر نحوه گردش داخلي ( روند برخورد با درخواست ) تاثير خواهد گذاشت . درخواست دريافتي پس از عبور از ماژول هاي مسخص شده HTTP ، به يک HTTP Handler خواهد رسيد . HTTP Handler مسئوليت ايجاد خروجي لازم به منظور ارسال براي مرورگر متقاصي ( ارسال کننده درخواست ) را برعهده دارد.

تعداد زيادي از ماژول هاي HTTP از قبل ايجاد شده، بصورت پيش فرض در HTTP pipline وجود دارد:

OutputCache ، مسئوليت برگرداندن و Caching خروجي صفحات HTML در صورت نياز ، برعهده دارد .

Session ، ماژول فوق ، مسئوليت لود Session state را بر اساس درخواست دريافتي کاربر و روش Session که در فايل Web.config مشخص شده است ، برعهده دارد .
FormsAuthentication ، ماژول فوق ، مسئوليت تائيد کاربران بر اساس مدل تعريف شده Forms Authentication را در صورت ضرورت برعهده دارد .

و موارد ديگر

به منظورآشنائي با ماژول هاي پيش فرض، مي توان مقادير نسبت داده شده به عنصر در فايل machine.config را مشاهده نمود. جدول زير مقدار پيش فرض عنصر را نشان مي دهد .

machine.Config: httpModules Section
Path :

$WINDOWS$\Microsoft.NET\Framework\$VERSION$\CONFIG

< httpModules >
< add name="OutputCache"
type="System.Web.Caching.OutputCacheModule"/ >
< add name="Session"

type="System.Web.SessionState.SessionStateModule"/ >
< add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule"/ >
< add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/ >
< add name="PassportAuthentication" type="System.Web.Security.PassportAuthenticationModule"/ >
< add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule"/ >
< add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule"/ >
< add name="ErrorHandlerModule"

type="System.Web.Mobile.ErrorHandlerModule, System.Web.Mobile,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/ >
< / httpModules >

هندلرهاي HTTP ، نقطه پايان در ASP.NET HTTP pipeline مي باشند . مسئوليت HTTP handler ، توليد خروجي براي منبع درخواست شده است . براي صفحات ASP.NET ، اين به معني Rendering ، کنترل هاي وب به HTML و برگرداندن HTML مي باشد. براي يک سرويس وب ، مسئوليت فوق ، شامل اجراي متد مشخص شده و Wrapping مقاير برگردانده شده به يک پاسخ مناسب و با فرمت SOAP مي باشد . منابع متفاوت ASP.NET از هندلرهاي متفاوت HTTP استفاده مي نمايند.هندلرهاي پيش فرص استفاده شده ، توسط بخش < httpHandlers > فايل machine.config مشخص شده اند. بخش فوق، شامل کلاس هائي است که يا خود HTTP handler بوده و يا HTTP handler factories ، مي باشند. يک HTTP handler factory ، صرفا" يک نمونه از يک HTTP handler را پس از فراخواني ، برمي گرداند . جدول زير ، اطلاعات عنصر در فايل machine.config را نشان مي دهد .

machine.Config: httpHandlers Section
Path : $WINDOWS$\Microsoft.NET\Framework\$VERSION$\CONFIG

< httpHandlers >
< add verb="*" path="trace.axd"


type="System.Web.Handlers.TraceHandler"/ >
< add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory "/ >

. ...
< add verb="*" path="*.resources" type="System.Web.HttpForbiddenHandler"/ >
< add verb="GET,HEAD" path="*" type="System.Web.StaticFileHandler"/ >
< add verb="*" path="*" type="System.Web.HttpMethodNotAllowedHandler"/ >
< /httpHandlers >

لازم است به اين نکته اشاره گردد که امکان ايجاد HTTP modules و HTTP handler اختصاصي ، توسط طراحان وپياده کنندگان برنامه هاي وب


ASP.NET نيز وجود دارد . پس از ايجاد ماژول ها و هندلرهاي HTTP ، مي توان آنان را به pipeline ملحق تا براي تمامي سايت هاي وب موجود بر سرويس دهنده وب ، قابل استفاده گردند. بدين منظور، مي توان تغييرات لازم را در فايل machine.config اعمال تا زمينه استفاده از آنان توسط تمامي برنامه هاي وب فراهم گردد . در اين رابطه مي توان تغييرات را در فايل


Web.config نيز اعمال نمود، در چنين مواردي امکان استفاده از ماژول ها و هندلرهاي HTTP ايجاد شده ، صرفا" براي يک برنامه وب وجود خواهد داشت .

 
مرحله چهارم :
توليد خروجي :
 
آخرين مرحله درارتباط با پردازش يک صفحه ASP.NET بر روي سرويس دهنده وب ، شامل ايجاد خروجي مناسب است . خروجي فوق ، در ادامه از طريق ماژول هاي HTTP عبور داده شده تا مجددا" به IIS برسد . در نهايت IIS ، خروجي توليد شده را براي سرويس گيرنده متقاصي ارسال مي نمايد .مراحل لازم به منظور توليد خروجي با توجه به HTTP handler متفاوت بوده و در ادامه صرفا" يک حالت خاص آن را بررسي مي نمائيم ( هندلر HTTP که از آن به منظور rendering صفحات ASP.NET استفاده مي گردد).
سرويس دهنده وب (IIS) پس از دريافت درخواستي براي يک صفحه ASP.NET ( انشعاب فايل aspx.) ، آن را در اختيار موتور ASP.NET ،


 قرار خواهد داد. درخواست دريافتي در ادامه از بين ماژول ها عبور داده شده تا به PageHandlerFactory برسد ( در بخش < httpHandlers > فايل machin.config که قبلا" mapping آن انجام شده است ) .

machine.Config: httpHandlers Section :PageHandlerFactory
Path : $WINDOWS$\Microsoft.NET\Framework\$VERSION$\CONFIG

< httpHandlers >
...
< add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory"/ >
. ...
< /httpHandlers >

کلاس PageHandlerFactory ، يک HTTP handler factory است که وظيفه آن ارائه نمونه اي از يک HTTP handlerبوده که قادر به برخورد مناسب با درخواست ارسالي است.مهمترين رسالت PageHandlerFactory ، يافتن کلاس ترجمه شده اي است که نشاندهنده صفحه ASP.NET درخواستي مي باشد.


Asp.net ( بخش هشتم )

آشنائی با فرم‌های وب در ASP.NET
به عنوان یک برنامه نویس ویژوال بیسیک شما می توانید برنامه های تحت اینترنت نیز بنویسید. به طور معمول برنامه نویسان ویژوال بیسیک به سمت ASP که یک تکنولوژی از مایکروسافت است متمایل هستند. دلیل این امر هم شباهت میان VB و VBScript می باشد. بزرگترین ایرادی که ASP کلاسیک دارد نداشتن یک محیط ویژوال مانند فرم‌های معمولی بیسیک است. مایکروسافت با Visual InterDev سعی کرد این کمبود را جبران کند اما چندان موفق نبود. بالاخره در ویژوال بیسیک دات نت ترکیبی از InterDev و ویژوال بیسیک وجود دارد و امکانات فرم‌های ویژوال بیسیک را برای اینترنت نیز فراهم می کند.

Web Form ها یکی از اجزای تکنولوژی ASP.NET است که به برنامه نویس های اکثر زبان ها این امکان را می دهد که یک قالب ویژوال با HTML و یک محیط برنامه‌نویسی تحت سرور با کدهای پیشرفته داشته باشند.

Web From ها در عمل
بهترین راه برای فراگیری این تکنولوژی یک مثال عملی از آن است. پس از مثال معروف Hello World برای شروع استفاده می کنیم.

آماده سازی محیط
قبل از شروع ابتدا باید نرم‌افزارهای مورد نیاز را از روی لیست زیر نصب کنید. اگر ویژوال استودیو دات نت را به شکل کامل و بر روی ویندوز 2000 یا اکس پی نصب کردید احتیاج به مراحل زیر ندارید.
• سیستم عامل شما باید حتما ً از نوع ان تی باشد، ویندوز 2000 (سرور یا Professional)، ویندوز اکس پی Professional و یا ان تی سرور 4.
• باید NET Framework. بر روی سروری که می خواهید با آن کار انجام دهید یا برنامه شما بر روی آن اجرا خواهد شد نصب شده باشد. اگر ویژوال استودیو دات نت را نصب کرده اید مشکلی در این مرحله ندارید.
• مایکروسافت توصیه کرده که سیستم فایل هارد دیسک سرور شما بهتر است NTFS باشد، هم به دلیل مسائل امنیتی و هم سرعت بیشتر.
Hello World
در فرم مخصوص ایجاد یک پروژه جدید ASP.NET Web Application را انتخاب کنید و نام آن را HelloWorld قرار دهید. دقت کنید که مکان ذخیره پروژه http://localhost باشد.

سپس بر روی کلید OK کلیک کنید تا یک Solution جدید ایجاد گردد. به طور قراردادی ویژوال استودیو یک Web Form با نام WebForm1.aspx ایجاد می کند. دقت کنید که پسوند فایل چه تغییری کرده است.

وقتی بر روی کلید OK کلیک می کنید چند عمل در پشت صحنه انجام می شود. به غیر از ایجاد کردن یک شاخه در دایرکتوری Visual Studio Projects،
ویژوال استودیو یک Web Application نیز در سروری که انتخاب کرده اید

ایجاد می کند. بر روی سرور، ویژوال استودیو دات نت:
• یک دایرکتوری با نام پروژه در شاخه inetpub/wwwroot ایجاد می کند.
• این دایرکتوری را به عنوان یک IIS Application معرفی کرده و اجازه اجرای Script را بر روی آن می دهد.
• اگر FrontPage Server Extensions را نصب کرده باشید یک FrontPage Web ایجاد می کند تا با FrontPage هم بتوانید به آن دسترسی داشته باشید.
می توانید همانگونه که با فرم های معمولی ویژوال بیسیک کار می کردید از Web Formی که جلوی شما است استفاده کنید، یعنی به شما امکان استفاده از Toolbox و استفاده از کامپوننت های درون آن بر روی Web Form داده شده است. یک Label را از Toolbox برداشته و بر روی قسمت بالای فرم قرار دهید و خاصیت Text آن را به Hello World تغییر دهید.

برای این مثال تمام کاری که لازم بود انجام شود را انجام دادیم. حالا می توانیم برنامه را اجرا کنیم. قبل از اینکار از Toolbar و در قسمت Solution Configuration به جای Debug ،Release را انتخاب کنید. حالا بوسیله کلید F5 برنامه را اجرا کنید. اگر هیچ مشکلی در سیستم نباشد باید صفحه مرورگر باز شود و فایل WebForm1.aspx نمایش داده وبر روی آن Hello World نوشته شود.

بر روی صفحه مرورگر کلید سمت راست موس را بزنید و View Source را انتخاب کنید تا ببینید چه مطالبی در سورس این صفحه آمده است. همانطور که می بینید کدهایی به HTML است که بوسیله فایل aspx در زمان اجرا ایجاد

شده است.
همانطور که می بینید یک HTML Form در این متن دیده می شود در حالی که ما چنین چیزی را اضافه نکرده بودیم، درباره این مساله در ادامه توضیح خواهم داد. Labelی که اضافه کرده بودیم در تگ Span قرار دارد. تگ Span مانند یک Container برای Label ما است و اطلاعات آن را در خود نگهداری می کند. به ویژوال استودیو دات نت باز می گردیم.

همانطور که دیدید Web Form ها خیلی شبیه فرم های معمولی ویندوز هستند. در Web From جدیدی که می سازیم این خاصیت را بیشتر امتحان می کنیم. در برنامه Hello World که ایجاد کردیم تنها یک Web Form داشتیم: WebForm1.aspx. یک Web Form دیگر می سازیم تا کارهای بیشتری با آن انجام دهیم.

منوی Project | Add Web Form را انتخاب کنید. در فرمی که باز می شود Web Form را انتخاب کنید و مطمئن شوید که نام آن WebForm2.aspx است. (قبل از این کار ویژوال استودیو را از حالت اجرای برنامه خارج کنید)
بر روی Open کلیک کنید تا WebForm2.aspx در Solution ایجاد شود. بر روی WebForm2.aspx در Solution Explorer دو بار کلیک کنید تا مطمئن باشید که فرمی که تازه ایجاد کرده اید فعال است. مانند مثال قبلی یک Label بر روی فرم قرار دهید، سپس یک Button در زیر آن قرار دهید و اندازه هر دو را یکسان کنید. بر روی Label کلیک کنید و از پنجره

Properties خاصیت ID را انتخاب کنید و آن را به lblText تغییر دهید. سپس بر روی کلید کلیک کنید و ID آن را به btnSubmit تغییر دهید. بر روی کلید یک بار کلیک کنید، سپس کلید Enter را بزنید تا به قسمت نوشتن کد برای این کلید وارد شوید.

در ASP.NET هر کدام از کنترل ها، کدی در پشت صحنه برای خود دارند. همانطور که مشاهده می کنید یک روال با نام btnSubmit_Click وجود دارد که هنگامی که بر روی کلید کلیک می شود اجرا می شود. کدی که در این روال نوشته شده باشد در سرور اجرا می شود و نه در مرورگر کامپیوتر کاربر. کد زیر را در روال مورد بحث بنویسید:
lblText.Text = "Hello World"

همانطور که مشاهده کردید IntelliSense وارد عمل شده و وقتی بعد از lblText، نقطه را تایپ کردید لیستی از خواص و متد های مربوط به Label را به شما نمایش داد. این خاصیت در InterDev هم وجود دارد ولی در ویژوال استودیو دات نت از امکانات بیشتر و لیست پرمحتواتری برخوردار است.
پنجره کد را ببندید و به قسمت طراحی Web Form بروید، خاصیت Text کلید را به Submit تغییر دهید. حالا برنامه را امتحان می کنیم. اگر سعی کنید تا برنامه را بوسیله کلید F5 اجرا کنید دوباره WebForm1.aspx نمایش داده خواهد شد، زیرا که این فرم، فرم ابتدایی در پروژه ما است. برای اینکه WebForm2.aspx به فرم ابتدایی تبدیل شود در پنجره Solution Explorer بر روی WebForm2.aspx کلید سمت راست موس را بزنید و

سپس Set As Start Page را انتخاب کنید. حالا می توانید برنامه اجرا کنید.

Web Form جدید، WebForm2.aspx در مرورگر اینترنت نمایش داده می شود در حالی که بر روی آن یک Label و یک کلید وجود دارد. بر روی کلید کلیک کنید تا متنی که تایپ کرده بودید در Label نمایش داده شود. همانطور که می بینید برنامه مانند فرم های معمولی ویندوز اجرا می شود.

Asp.net ( بخش نهم )
ارسال ایمیل در ASP.NET با استفاده از HTML Template
آیا تاکنون سعی کرده اید برای سایت خود خبرنامه ایجاد کنید؟ آیا تاکنون وسوسه شده اید که سیستمی طراحی کنید که در صورتی که بینندگان سایت شما نظرات خود را در سایت شما وارد کنند برای آنها یک Email تشکرآمیز ارسال کنید؟ آیا می دانید ساختن یک HTML Template زیبا برای خبرنامه شما و استفاده همیشگی از آن جهت ارسال خبرنامه در ASP.NET بسیار ساده صورت می گیرد؟ چنانچه سوالات بالا شما را به دانستن بیشتر ترغیب کرده است به شما تبریک می گویم! چرا که در ادامه این مقاله شما روش بسیار ساده ارسال Emailهای HTML زیبا را بدون اینکه نگران چگونگی کدنویسی HTML متغیر رشته ای Body در MailMessage باشید را فرا خواهید گرفت.
برای شروع بیایید به روش کار نظری بیاندازیم: خوب احتمالا شما با روش ساختن یک نمونه از آبجکت MailMessage که در ASP.NET برای ارسال Email استفاده می شود آشنایی دارید (اگر این چنین نیست در ادامه مقاله به طور اجمالی توضیحاتی ارائه شده است) تنها قسمتی که باید مورد توجه قرار دهید این است که چگونه می توانیم Body نامه خود را به فرمت HTML و بدون نیاز به اینکه تمامی تگها را پشت سر هم در یک رشته طولانی و سردرگم کننده تایپ کنیم، درآوریم. یک ایده جالب این است که ما Template نامه خود را با استفاده از ادیتورهای WYSIWYG مثل FrontPage یا
Dreamweaver طراحی کنیم و سپس تمامی کدهای HTML آن را درون یک
متغیر رشته ای Import کرده و از آن استفاده کنیم. این کار بسیار آسان است. اما می توان این نامه را برای هر کاربر کمی سفارشی (Customize) کرد! برای مثال شما می توانید در ابتدای نامه کاربر را با نام وی مورد خطاب قرار دهید. بهتر است از این پس توضیحات را همراه با کدنویسی دنبال کنیم. (کلیه کدهای Server Side به زبان VB.NET نوشته شده است) سه گام اساسی برای این کار وجود دارد:
1- ساختن Template مورد نظر شما جهت ارسال Email:
برای این کار کافی است که Template مورد نظر خود را به فرمت HTML طراحی کنید. این به خود شما بستگی دارد که کدهای HTML را به صورت دستی بنویسید و یا از ادیتورهای WYSIWYG مانند FrontPage یا Dreamweaver یا !GoLive استفاده کنید. تنها تفاوتی که در اینجا وجود دارد این است که شما بایستی قسمتهایی از متن نامه خود را که متغیر هستند (مانند نام گیرنده Email، آدرس پست الکترونیکی وی و ...) را به گونه ای از بقیه قسمتها متمایز کنید. برای مثال اگر شما می خواهید در ابتدای نامه، دریافت کننده نامه را با نام خود مورد خطاب قرار دهید عبارت را به صورت زیر وارد کنید: "سلام "#NAME# لطفا توجه کنید که هیچ محدودیتی در تکنیک به کار رفته وجود ندارد و قرار دادن کاراکترهای ## فقط جهت متمایز ساختن این قسمت از محتوای استاتیک صفحه است و شما می توانید به صور دیگر آن را مشخص کنید مثلا ?NAME? یا هر چیز مشابه دیگر. این قسمت بعدا با نام
شخص مورد نظر ما جایگزین می شود. نکته قابل ذکر دیگر اینکه چنانچه قصد دارید نامه خود را فارسی ارسال کنید تگ زیر را فراموش نکنید:

< meta http-equiv = " Content-Type " content = " text / html; charset = utf-8 " >

2- خواندن فایل Template جهت قراردادن در Body نامه شما:
پس از اینکه Template را آماده نمودید بایستی این فایل را بخوانید، قسمتهای مورد نظر (متمایز شده با ##) را با عبارات مورد نظر خود (که می توانید از Database استخراج کنید) جایگزین کنید و این متن را به صورت یک متغیر رشته ای در Body نامه خود قرار دهید (گام 3). این کار به وسیله کد زیر صورت می پذیرد: (قبل از هر چیز شما بایستی Namespace مورد نیاز که در اینجا System.IO می باشد را Import کنید)

Imports System.IO

Dim reader As StreamReader
Dim strFileName As String = Server.MapPath( " templatel.htm " )
Dim strFileT ext

reader = File.OpenText( strFileName )

While reader.Peek < > -1
strFileText + = reader.ReadLine( )
End While

reader.Close()
strFileText = Replace( strFileText, "#Username#", Name.Text)
strFileText = Replace(strFileText, "#MsgID#", Request("MsgID" ))
strFileText = Replace(strFileText, "#AuthorID#", Request("AuthorID" ))

حال بیایید نگاهی به کد فوق بیاندازیم: در سطر اول شما یک شی از نوع StreamReader که جهت خواندن فایلهای متنی به کار می رود را می سازید و در سطر بعدی مسیر فیزیکی فایل Template خود را در متغیر رشته‌ای strFileName ذخیره می کنید.

نکته: در صورتیکه بخواهید در فایل کلاس خود از کد فوق استفاده کنید بایستی مسیر فیزیکی فایل را با استفاده از


System.Web.HttpContext.Current.Server.MapPath("template.htm") به دست آورید. اما در Code Behind یک WebForm همان Server.MapPath() کافی است.

سپس در سطر بعدی ما با استفاده از متد OpenText فایل مورد نظر را باز کرده و متن آن را در Reader قرار می دهیم. حال در یک حلقه While...End While سطر به سطر فایل Template را (که در اینجا کدهای HTML ما هستند) می خوانیم و در متغیر strFileText ذخیره می کنیم.

Reader.Peek <> -1 بررسی می کند که آیا به انتهای فایل رسیده ایم یا خیر. پس از اینکه کل فایل را خوانده و در متغیر ذخیره کردیم. شی reader را می بندیم.

در اینجا شما باید Template نامه خود را برای کاربر خاص Customize کنید. یعنی عبارات محصور شده با ## را با اطلاعات کاربر (که از بانک اطلاعاتی استخراج می شود و یا از یک Query String دریافت می شود) جایگزین کنید. در مثال بالا مقدار اول در Template با مقدار یک Textbox و دو مورد بعدی با Query String های انتهای یک URL جایگزین می شود.

حاصل کار یک متغیر رشته ای به نام strFileText است که حاوی کد HTML مورد نیاز شما برای ارسال یک HTML Email می باشد. که مثلا عبارت ابتدای آن به صورت زیر در آمده است: "سلام مهدی"


3- استفاده از قالب Import شده فوق و ارسال Email:
حال به آسانی Email را ساخته و ارسال می کنیم. بدین ترتیب: (Imports System.Web.Mail را فراموش نکنید!)
 


منابع :


منابع و مأخذ :

http://www.4guysfromrolla.com

http://www.iritn.com

 

دانلود پایان نامه,خرید پایان نامه,فروش پایان نامه,پایان نامه,آرشیو پایان نامه,پایان نامه عمران,پایان نامه روانشناسی,

پایان نامه حقوق,پایان نامه اقتصاد,پایان نامه برق,پایان نامه معدن, پایان نامه کارشناسی ,پایان نامه صنایع,پایان نامه علوم سیاسی ، پایان نامه کاردانی

طراحی سایت : سایت سازان