آموزش ASP .NET - قسمت اول



اي اس پي دات نت چيست؟
ASP .NET يک فريم ورک برنامه نويسي است که بر اساس دات نت بنا شده است که امکان توسعه نرم افزار هاي قدرتمند تحت وب (Web Application) را مهيا مي سازد. نکته مهم اين است که ASP .NET نسخه بعدي ASP کلاسيک نيست بلکه نسل بعدي ASP مي باشد به همين دليل تفاوت هاي بسياري در ساختار و امکانات با هم دارند. امکانات و قابليت هاي زير به عنوان مهم ترين ويژگي هاي ASP .NET نسبت به ابزارهای قبلی توسعه نرم افزار هاي تحت وب مي باشند:
  • کارائي بيشتر (Enhanced Performance): با توجه به اين نکته که در ASP .NET کد هاي شما کامپايل مي شود ولي در تکنولوژي هاي مشابه (مثل ASP یا Php) کد ها تفسير (یا اصطلاحا interpret) مي شدند و همچنين در ASP .NET با استفاده از امکاناتي همچون Just-In time compilation و Caching و ... سرعت اجرا اين کد ها به مراتب بيشتر خواهد بود.

  • محيط توسعه نرم افزار کارآمد: با استفاده از Visual Studio .NET و امکانات آن شما مي توانيد به راحتي نسبت به توسعه و البته deploy کردن نرم افزار هاي تحت وب اقدام کنيد.

  • قدرت و انعطاف پذيري: با توجه به اينکه در ASP .NET شما از تمامي قابليت هاي فريم ورک دات نت را در اختيار داريد لذا از تمامي قدرت و امکانات آن به راحتي استفاده خواهيد کرد. وجود بيش از 2500 کلاس در فريم ورک دات , بستر آماده براي کار با بانک هاي اطلاعاتي از نمونه هاي اين قدرت است. همچنين شما در ASP .NET مي توانيد از چندين زبان برنامه نويسي (مثل C#, J# , VB .NET) در توسعه نرم افزارهاي خود استفاده کنيد.

  • سادگي: توليد صفحات وب در ASP .NET به سادگي توليد صفحات در نرم افزارهاي تحت ويندوز مي باشد. همچنين مايکروسافت در توليد کنترل هاي تحت وب سعي کرده تا آن ها را بسيار شبيه به کنترل هاي متناظرشان در ويندوز توليد ايجاد کند تا برنامه نويسان تحت ويندوز به سادگي به سمت نرم افزارهاي تحت وب سوق پيدا کنند.

  • مديريت: استفاده از ساختار سلسله مراتبي بر مبناي فايل هاي متني (text based) که به سادگي مديريت و اعمال تنظيمات بر روي سرور را امکان پذير مي نمايد. همچنين به سادگي و تنها با کپي کردن فايل هاي خود بر روي سرور مي توانيد وب سايت خود را بر روي سرور Deploy نمائيد.

  • امنيت: وجود بستر هاي پيش فرض و آماده براي اعمال Security بر روي وب سايت ها و برنامه هاي تحت وب يکي ديگر از مهمترين ويژگي هاي ASP .NET مي باشد.

  • قابليت گسترش و مقياس پذيري: هدف مايکروسافت از ارائه اين محصول بيش از ارائه يک بستر براي توليد وب سايت هاي کوچک بوده و امکان توسعه نرم افزار هاي Enterprise و وب سايت هاي عظيم (به عنوان مثال وب سايت MySpace با بيش از صد ميليون کاربر)به عنوان يکي از قابليت هاي اين بستر مي باشد. استفاده از امکانات شيء گرايي و پشتيباني کامل از آن ها و همچنين امکان ارائه آن بر روي سرور هاي چند پروسسور و  امکانات خاص وب سايت هاي عظيم از اين دست مي باشد.
اين ليست فقط اشاره اي به ويژگي هاي اصلي ASP .NET مي باشد و امکانات بسيار ديگري نيز وجود دارد که در پست هاي بعدي به آن ها اشاره خواهم کرد.

ادامه دارد ...

آموزش ASP .NET

بعد از حدود 30 قسمت آموزش سي شارپ و برنامه نويسي شيء گرا در سي شارپ , فکر مي کنم که حالا مي توانيم همزمان با ادامه آموزش سي شارپ , آموزش ASP .NET را هم شروع کنيم. در اين سري آموزشي سه هدف را پيگيري خواهم کرد:
  1. آموزش سينتکس ASP .NET 
  2. معرفي معماری و امکانات ASP .NET
  3. ارائه مثال هاي عملی و کاربردي
به تمامي دوستاني که تمايل دارند که از اين آموزش ها استفاده کنند تاکيدا پيشنهاد مي کنم که اطلاعات خودشان را در زمينه هاي HTML و JavaScript و CSS گسترش دهند. (مي تونين از سايت W3Schools.com به عنوان يکي از منابع ساده و کارآمد استفاده کنيد). البته بنده سعي خواهم کرد که تا حد ممکن اطلاعات مورد نياز را ارائه کنم ولي همانطور که قبلا هم اشاره شد هدف بنده آموزش HTML و JavaScript و CSS نيست. ضمنا در تمامي مثال هاي اين سري از زبان برنامه نويسي سي شارپ  و مبناي آموزش بنده ASP .NET 2.0 مي باشد. اميدوارم که در اين سري از آموزشي نيز دوستان با ارائه نظرات و انتقادات خودشان من رو در ارائه موضوعات با کيفيت بهتر  کمک کنند.

لينک پست هاي آموزشي ASP .NET

آموزش سی شارپ - قسمت سي و يکم

در قسمت قبلی در رابطه با اینکه اينترفيس ها را به عنوان سرويس در نظر بگيريم صحبت شد و گفتيم که به عنوان مثال در صورتيکه شما از اينترفيس IComparable به ارث بريد و متد CompareTo را پياده سازی کنيد آنگاه مي توانيد از سرويس Sort در کلاس ArrayList استفاده کنيد. اما چرا؟

در واقع وقتي شما متد Sort را فراخواني مي کنيد در کلاس ArrayList فرض را بر این مي گذارد که تک تک اشياي داخل آرایه از این اينترفيس به ارث رفته اند در نتيجه شي داخل آرايه را (که يک object مي باشد) Cast به IComparable می کند در نتيجه مي تواند از متد CompareTo استفاده کرده و مقايسه مورد نظر را انجام دهد. حالا در صورتيکه شيء شما از اين اينترفيس به ارث نرفته باشد يک خطا از نوع InvalidOperationException دريافت خواهید کرد.



نمونه های بسياري وجود دارند که شما با پياده سازي يک يا چند Interface امکان استفاده از يک موضوع (به صورت سرويس) را بهره مند مي شويد. البته به اين نکته توجه داشته باشيد که روش پياده سازي و Logic آن کاملا در اختيار شماست و در صورتيکه درست پياده سازي نشود مسئوليت خطا های احتمالی و يا عملکرد نادرست به عهده شما مي باشد.

فرض کنيد که شما يک کلاس داريد که وظيفه آن چاپ کردن اطلاعات اشياء ديگر توسط يک چاپگر مي باشد. نکته مهم اين است که شما مي خواهيد اين سرويس (یعني چاپ کردن توسط يک چاپگر خاص) را در اختيار همه قرار دهيد. براي همين منظور کافيست که يک interface طراحي کنيد و يک متد به نام Print در آن تعريف کنيد.



حالا کافيست که در اين کلاس از کاربران انتظار ارسال کلاس هايي را داشته باشيد که از اين اينترفيس به ارث رفته اند و در صورتيکه يک شيء به متد شما ارسال شود که از اين اينترفيس به ارث نرفته باشد شما هم يک خطا از نوع InvalidOperationException پرتاب خواهيد کرد.



مثال هاي بسياري از اين دست در رابطه با استفاده از اينترفيس ها به عنوان سرويس مي توان نوشت. در پست بعدي در رابطه با استفاده از اينترفيس ها برای پياده سازي توارث چندگانه خواهم نوشت.

بارگزاري مثال
ادامه دارد....

آموزش ADO .NET - قسمت سوم

Connected Database Programming
به هر حال وقتی شما قصد برنامه نویسی و ارتباط با بانک های اطلاعاتی را دارید اولین چیزی که نیاز دارین که ارتباط یا همان Connection به بانک می باشد. به طور کلی تمامی کلاس های نوع Connection در دات نت از یک Interface به نام IDbConnection که در namespace ی به نام System.Data وجود دارد. در این namespace تمامی اطلاعات مورد نیاز برای ارتباط با بانک های اطلاعاتی در نظر گرفته شده است.
در صورتیکه شما از بانک اطلاعاتی SQL Server استفاده می کنید در namespace ی بنام System.Data.SqlClient یک کلاس به نام SqlConnection وجود دارد که می توانید از آن برای ارتباط با بانک اطلاعاتی خود استفاده کنید. کلاس SqlConnection از این اینترفيس به ارث رفته و تمامی Property ها و Method های آن را پياده سازی کرده است. به همین تزتیب اگر از بانک اطلاعاتی Oracle استفاده می کنید از کلاس OracleConnection که در namespace ی به نام System.Data.OracleClient می باشد استفاده کنید. (دقت کنین که برای استفاده از OracleConnection باید یک Assembly به نام System.Data.OracleClient را به Reference های پروژه خود اضافه نمائید)

Connection String
برای استفاده از یک Connection کافيست که متن رشته ای به نام ConnectionString را آماده سازید. ConnectionString حاوی اطلاعات مورد نياز برای ارتباط با بانک اطلاعاتی می باشد. به عنوان مثال به کانکشن استرينگ زیر توجه کنيد:
User ID=sa;Password=1234;Initial Catalog=ReportDb;Data Source=DatabaseServer
همان طور که در خط بالا مشاهده می کنین این ConnectionString حاوی اطلاعاتی از قبیل نام سرور , نام بانک اطلاعاتی , کد کاربری و رمز عبور می باشد.

چگونه ConnectionString بسازیم
یکی از ساده ترین راه ها برای ایجاد این رشته استفاده از ابزاری به نام Server Explorer در محيط Visual Studio .Net می باشد. برای اینکار کافی است از منوی View گزینه Server Explorer را انتخاب نمائید (همچنین می توانید از طریق کلید های Alt + Ctrl + S اینکار را انجام دهید). سپس در Server Explorer بر روی گزینه Data Connection راست کلیک نمائید و در نهایت گزینه Add Connection را انتخاب کنید.


سپس در پنجره ای که باز می شود (Choose Data Source) گزینه مورد نظرتان (در این مثال Microsoft SQL Server) را انتخاب نمائید و سپس Continue را کلیک کنید. در این مرحله باید اسم سرور , روش انتخابی برای Authentication (اهراز هویت) و در نهایت نام بانک اطلاعاتی خود را انتخاب کنید.



در نهایت برای کسب اطمینان از صحت عملکرد خود روی گزینه Test Connection کلیک کنید.
بعد از این مراحل Connection شما به بانک اطلاعاتی مورد نظر ایجاد شده و در Server Explorer نمايش داده خواهد شد.



سپس بر روی Connection خود کلیک کرده و سپس با استفاده از کلید F4 لیست Property های آن را مشاهده کنید. در این ليست یکی از Item ها گزينه ConnectionString است. متن مقابلش را کپی کنید.




استفاده از SqlConnection
حالا کافيست يک شيء از جنس SqlConnection ساخته و بعد از مشخص کردن ConnectionString خود با استفاده از متد های Open و Close ارتباط آن را با بانک اطلاعاتی تست نمائید. همچنین می توانید با استفاده از خاصيت State وضعیت جاری Connection خود را چک کرده و از باز یا بسته بودن آن مطلع شويد. (دقت کنید که مابقی وضعيت های ConnectionState در ورژن های بعدی دات نت قابل استفاده خواهد بود.)




دريافت قسمت سوم - نسخه Pdf
ادامه دارد...