NET پیشرفته ترین زیرساختی است که تا کنون برای توسعه وب ساخته شده است. ساختار جدید آن است که بر اساس تکنولوژی جدید Microsoft موسوم به NET . شکل گرفته است .
آشنایی با MICROSOFT . NET
. NET واژه ای است که مفهوم تعدادی از تکنولوژی های جدید M icrosoft را تحت پوشش قرارمی دهد. در مجموع ، این تکنولوژی پراهمیت ترین ، عظیم ترین و اساسی ترین تغییراتی هستند که از زمان انتقال از محیط 16 بیتی به محیط 32 بیتی ،در زیر ساخت توسعه برنامه ها توسط M icrosoft به وجود آمده اند .
Microsoft . NET شامل سه گروه اصلی می باشد:
چارچوب NET .
. NET Enterprise Servers
ابزارها وزبان های جدید سازگار با NAT .
چارچوب NET
چارچوب . NETیک تکنولوژی ضروری برای ASP . NET به شمار می رود . این چارچوب خدمات و سرویس هایی را که از ASP . NET پشتیبانی می کنند ارائه می دهد . به علاوه ، تکنولوژی جدید دیگری موسوم به Windows Forms Development ( توسعه برنامه های کاربردی با استفاده از فرم های ویندوز ) را ارائه می دهد که برای ساختن برنامه های سرویس گیرنده بسیار قدرتمند می باشد . همانظور که Windows NT 4.0 Option pack به عنوان یک افزودنی برای سیستم عامل Windows NT محسوب می شود و تکنولوژی های IIS 4 .0 وASP را به این سیستم عامل اضافه می کرد ، چارچوب NAT . نیز یک افزودنی برای سیستم عامل های 2000 Windows ، Windows 98/ME , Windows NT می باشد که با اضافه کردن سرویس های اساسی سیستم ، امکان پشتیبانی از تکنولوژی NET . را برای این سیستم عاملها فراهم می آورد.این چارچوب در خانواده سیستم عامل های جدید Windows ، از جمله NET Server . Windows گنجانده خواهد شد .
(CLR) Common Language Runtime
CLR محیطی برای اجرای کدهای نوشته شده به وسیله زبان های سازگار با چارچوب NET . ارائه می دهد. runtime مدیریت اجرای کدهای NET . را به عهده دارد؛ اعم از مدیریت مدت زمان زندگی اشیاء و مدیریت حافظه . علاوه بر این خدمات ، runtime به برنامه نویسان یا به عبارتی توسعه دهندگان امکان می دهد که عملیات اشکال زدایی،مهار کردن استثناء ها و وراثت میان کلاس ها رادربین زبانهای مختلف سازگار با NET به راحتی انجام دهند .
انجام این عملیات مستلزم آن است که کامپایلرهای زبانهای مختلف ازCommon Language pecification یا به اختصار CLS پیروی کنند . CLS مجموعه قوانین و نوع های داده ای را تعریف می کند که بین تمام زبان های سازگار با NET. مشترک می باشند . هر یک از کامپایلرها ، کد نوشته شده توسط برنامه نویسان را به یک زبان میانی موسوم به Microsoft Intermediate Languageیا به اختصار IL یا MSIL کامپایل می کند.سپس این کد میانی درزمان نصب برنامه یا در هنگام اولین اجرا توسط runtime به زبان ماشین تبدیل می شود . روش کامپایل کردن کد در هنگام اولین اجرا را JIT می گویند . کدی که به IL تبدیل شده و مدیریت آن توسط runtime صورت می گیرد، Managed Code (کد اداره شده ) نامیده می شود. علت این نامگذاری این است که مدیریت اجرای این کد، اعم از ساختن اشیاء ، تخصیص حافظه و حذف اشیاء بلا استفاده از حافظه توسط runtime انجام می شود .
مؤلفه هایی که با کد IL نوشته می شوند و توسط runtime اجرا می گردند ، Assemblies .Net Managed یا به اختصاراسمبلی نامیده می شوند اسمبلی ها کوچکترین واحد دسته بندی اشیاء دردنیای NET. می باشندوبسیار شبیه مؤلفه های COM هستند.تفاوت آنها در این است که یک مؤلفه COM برای تعیین چگونگی استفاده ازاشیاء درونی اش ،یک Type Library به مشتریان خود ارائه می دهد،در حالی که یک اسمبلی برای این منظور یک مانیفست دارد.مانیفست فهرستی است که محتویات آن اسمبلی را مشخص می کند . این ویژگی مؤلف های NET . علاوه بر مزایای دیگری که بعداً به آنها اشاره خواهد شد . بیانگر این مطلب است که یک اسمبلی نیازی به ثبت در رجیستری کامپیوتر ندارد و خودش شامل اطلاعاتی است که محتویات و چگونگی استفاده از آن را مشخص می سازند .
اطلاعات موجود درمانفیست ، وابستگی ها و شماره نسخه آن اسمبلی را نیز معین میکند. این اطلاعات به شما کمک میکند که به راحتی تمام اسمبلی های مورد نیاز برای استفاده از یک اسمبلی را شناسایی کنید.به علاوه،این امکان وجود دارد که چندین نسخه مختلف ازیک اسمبلی بر روی یک کامپیوتر و بدون ایجاد تداخل با یکدیگر کار کنند.این ویژگی گام مهمی برای حل یکی از مشکلات فایل های DLL می باشد که به DLL HELL معروف است و یکی از بدترین مصیبت های هر برنامه نویس می باشد .کافی است از کسی که با چند نسخه مختلف ADO کار کرده است دراین مورد مشورت کنید! با وجود NET . این مشکل به دست فراموشی سپرده خواهد شد . با توجه به این که یک برنامه کاربردی می داند برای استفاده از کدام نسخه یک اسمبلی طراحی شده است ،با مراجعه به مانفیست به راحتی می تواند نسخه مورد نظر را از میان چند نسخه موجود انتخاب کند.
مطالب گفتنی در مورد runtime بسیار زیاد است و فعلا از آنها صرف نظر می کنیم .
کتابخانه چارچوب NET .
کتابخانه چارچوب NET. مجموعه ای از کلاس های پایه است که برنامه نویسان می توانند به طور مستقیم ازآنها استفاده کنند و یا از روی آنها کلاس های جدیدی بسازند . کلاس های موجود در این مجموعه به صورت سلسله مراتبی طراحی شده اند. این کلاس ها که بسته به نوع و موارد کاربرد آنها در گروه های مختلفی موسوم به فضای نامی طبقه بندی شده اند، توانایی های اساسی وپیشرفته ای دارندکه شما به راحتی می توانید آنها رابه خدمت بگیرید.به عنوان مثال،برای هر یک از نوع های داده ای پایه یک کلاس دراین کتابخانه وجود دارد.همچنین کلاس هایی برای دسترسی به داده های موجود درپایگاه داده ، کلاس هایی برای انجام کارهای گرافیکی و ترسیمی و … نیز در این کتابخانه موجود می باشند .
به علاوه ، این کتابخانه شامل کلاس هایی است که ساختار ASP . NET را شکل می دهند از جمله Page که در فضای نامی System. Web.UI قرار دارد و تمام صفحات ASP . NET از آن مشتق می شوند کلاس های دیگری که در فضای نامی System. Web و فضاهای نامی درونی آن قرار دارند .
وراثت
وراثت یکی از مفاهیم اصلی چارچوب NET . است و به شما امکان می دهد که از کد درون کلاس های موجود استفاده کنید . یک کلاس می تواند ویژگی ها و متدهایی داشته باشد که کلاس های دیگر آنها را به کار می برند .کلاس هایی که با استفاده از تکنیک وراثت از یک کلاس پایه خاص ساخته می شوند و به عبارتی از آن مشتق می شوند، تمام کد موجود درکلاس پایه را به ارث می برند.به این ترتیب . نیازی به نوشتن مجدد کد نیست.به علاوه ،نکته مهم دیگری که باید متذکر شویم این است که یک برنامه نویس می تواند با مشتق کردن یک کلاس جدید از یک کلاس پایه ، یک یا چند متد موجود در کلاس پایه را در کلاس بازنویسی کند وبه این ترتیب عملکرد متد یامتدهای مزبور را درکلاس جدید به شیوه دلخواه خود تعریف کند .
Enterprise Servers .
نسل جدید سرویس دهنده ها موسوم به NET Enterprise Servers اولین گام در تحول زیرساخت توسعه برنامه ها محسوب می شود . اگر چه این سرویس دهنده ها به طور صریح از runtime و کتابخانه چارچوب NET . بهره نمی برند ، ولی پایه واساس محکمی برای ساختن برنامه های کاربردی حرفه ای و سطح بالا ارائه می دهند.
سرویس دهنده های جدید برنامه های ASP عبارتند از :
SQL Server 2000
Exchange 2000 Server
Commerce Server2000
Host Integration Server 2000
BizTalk Server 2000
Internet Security and Acceleration Server 2000
Application Center 2000
این محصولات در کنارهم بیشتر کارآیی برنامه های کاربردی تجاری سطح بالا را ارائه می دهند .
Visual Studio . NET
شاید بیشتر برنامه نویسان برای توسعه سریعتر و ساده تر ،بخواهند در محیط Visual Studio.NET کار کنند . Visual Studio.NET یک محیط توسعه یکپارچه برای تمام زبان های .NET فراهم آورده و این در تاریخ بی سابقه بوده است . به این ترتیب ، برنامه نویسان Visual Basic ، Visual C++ و C # همگی از همین IDE استفاده می کنند.به علاوه ، اشکال زدایی ومهار کردن استثناءها در بین برنامه هایی که با زبان های مختلف نوشته شده اند ، همگی در همین محیط امکان پذیر می باشد .
Visual Studio.NET چندین ویژگی جدید قدرتمند دارد که در این جا به بعضی از آنها اشاره می کنیم :
یک مدل برنامه نویسی منفرد و یکپارچه برای تمام زبان های سازگار با NET . و برنامه های کاربردی مبتنی بر وب و ویندوز.
دسترسی آسان و سریع به امکانات سرویس دهنده با استفاده از پنجره Server Explorer .
راهنمای دینامیکی .
یک مدل قدرتمند برای سفارشی کردن و توسعه IDE .
پشتیبانی قوی از XML .
Visual Basic . NET
همانطورکه قبلا گفته شد،برنامه نویسانASP .NET دیگرمجبورنیستند ازیک نسخه ضعیف Visual Basic مثل VBScript استفاده کنند . حالا می توانند از تمام قدرت زبان Visual Basic بهره ببرند و باید بدانید که قدرت این زبان نیز افزایش یافته و اگر بخواهیم به بعضی از این امکانات جدید اشاره کنیم می توانیم از وراثت ، مهار کردن استثناء ها به صورت ساختار یافته و پشتیبانی از برنامه نویسی Multithread یاد کنیم .
Visual Basic .NET زبانی است که مدیریت اجرای کدهای نوشته شده با آن به عهده runtime می باشد . از این رو ،آن را به عنوان یک Managed Language (زبان اداره شده ) می شناسیم .
دیگر مجبور نیستند همانند 6 Visual Basic با استفاده از دستور Set object = Nothing رفرنس به اشیا را از بین ببرید . یکی از ویژگی های چارچوب Garbage Collector , . NET یارفتگر حافظه می باشد که حافظه می باشد که حافظه اشغال شده توسط اشیا را در هنگامی که هیچ رفرنسی به آنها وجود ندارد آزار می سازد .
ویژگی جدیدVisual Basic .NET بسیارزیادمی باشند ولی کسانی که قبلاً با VBScript و 6 Visual Basic کارکرده باشد، به راحتی می توانند ازآنها استفاده کنند و به این منظور کافی است با مدل برنامه نویسی NET . آشنا شوند .
C#
زبان C# که یکی از اعضای جدید خانواده Visual Studio می باشد از زبان C نشأت گرفته است . C# شباهت زیادی به C++ دارد ولی بسیارساده تراست وبه راحتی قابل استفاده می باشد. اگر چه یادگیری آن به راحتی Visual Basic نیست ، ولی از C++ خیلی ساده تر است و تقریباً تمام قدرت زبان C++ را نیز دارا می باشد . همچنین مانند C++ شما را مجبور نمی کد که مدیریت حافظه را به عهد بگیربد چون C# مانند Visual Basic .NET یک زبان اداره شده است ، تمام امور مربوط به مدیریت حافظه توسط runtime صورت می گیرد . این یکی از مزایای مهم این زبان است ؛ چون مدیریت حافظه یکی از مشکل ترین مسائل برنامه نویسی با C،C++ و یا Java آشنایی داشته باشند به سرعت می توانند C# را یاد گرفته و فعالیت خود را با این زبان ادامه دهند .
دیگر زبان های سازگار با NET .
علاوه بر Visual Basic .NET و C# ، زبان های Jscript . NET ، Visual C++ و Managed Extensions for Visual C++ نیز به همراه Visual Studio.NET ارائه شده است . منظور از Managed Extensions for Visual C++ دستورات و کلید واژه هایی است که توسط Microsoft به زبان C++ اضافه شده اند و به شما امکان می دهند که با استفاده C++ نیز در محیط NET . برنامه بنویسید .
به علاوه،معماریVisual Studio.NET به گونه ای طراحی شده است که برای جذب زبان های دیگر قدرت فراوانی دارد.این قدربه توسعه دهندگان زبان های جدیدی که برای کارکردن در چارچوبNET . ساخته می شوند و یا زبان هایی که از قبل موجود بوده اند و برای سازگاری با NET . به روز در می آیند امکان می دهد که محصول خود را در محیط Visual Studio بگنجانند .
لیست زبان های دیگری که قرار است در آینده به Visual Studio.NET اضافه شوند درزیر آمده است :
APL
COBL
Pascal
Eiffel
Haskell
ML
Oberon
Perl
Python
Scheme
Smalltalk
و بسیاری دیگر ( در زمان نوشتن این کتاب ، تعداد آنها به 17 عدد می رسید)
معماری ASP . NET
بسیاری از چیزهایی که در ASP . NET وجود دارند برای برنامه نویسانی که قبلاً با ASP کلاسیک کار کرده اند آشنا می باشد . اشیاء Request و Response که بسیار پرکاربرد بودند . هنوز هم وجود دارند همچنین اشیاءApplication ، Session و Server نیز با چند ویژگی و متد جدید کماکان قابل استفاده می باشند . شما هنوز هم می توانید برای مشخص کردن اسکریپت های server – side از ‹ “SERVER ” = SCRIPT RUNAT › و یا ‹ % , % › استفاده کنید . در حقیقت ، به همان روشی که قبلاً یک صفحه ASP می ساختید می توانید یک صفحه ASP . NET نیز بسازید ولی هنگامی که با مدل جدید برنامه نویسیASP . NET آشناشوید دیگر هیچگاه برنامه های ASP خود را مانند قبل نخواهید نوشت .
همچنین مجبور نیستید تمام برنامه های ASP قبلی خود را یکباره ارتقاء دهید. ASP . NET به گونه ای طراحی شده که می تواند در کنار ASP کلاسیک کار کند . بنابراین هنگامی که بر روی اولی برنامه ASP . NET خود کار می کنید ، برنامه های ASP قبلی شما نیز می توانند به کار خود ادامه دهند .
ویژگی های جدید
موضوعات جدید ASP . NET بسیار زیاد هستند و برای یادگیری تمام آنها به زمان زیادی نیاز است .ولی هنگامی که آن را یاد بگیرید ، قدرت ابتکار و سازندگی شما نسبت به زمانی که با ASP کلاسیک کارمی کردید بسیار بیشتر خواهد شد.بیایید به لیست ویژگی های جدید ASP . NET نگاهی بیاندازیم.
Web forms : این مدل جدید برنامه نویسی ASP . NET است . این ویژگی ، قدرت ASP را با سهولت استفاده از Visual Basic ترکیب می کند . شما می توانید کنترل ها را از جعبه ابزار بکشید و روی فرم رها کنید و سپس کد مورد نظر خود را در تابع پاسخ گوی یکی از رویدادهای آن کنترل بنویسید.( به عنوان مثال،اگر یک کنترل Command Button روی فرم قرار دهید و سپس روی آن دوبار – کلیک کنید ، Visual Studio تابع پاسخ گوی رویداد Click این دکمه را برایتان می نویسد . حالا کافی است کدمورد نظر خود را درون این تابع تایپ کنید - مترجم )
Server Controls :این یکی ازمؤلفهای بزرگ مدل برنامه نویسیWeb Formsمی باشد.این مؤلفه به کنترل هایی اشاره می کند که تقریباًهریک ازآنها به یکی ازالمان هایHTML مربوط می شود(البته چند کنترل اضافی دیگر وجود دارد که بعدابا آنها آشنا خواهید شد ) وقدرت برنامه نویسی – Side Server را تا حد زیادی افزایش می دهند. این کنترل ها بر روی کامپیوتر سرویس دهنده کار می کنند و می توانند خروجی HTML تولید کنند . خروجی این کنترل ها برای برنامه های مرورگر سطح بالا مثل Internet Explorer 5.x یا بالاتر و یا مرورگرهای سازگار با HTML 3.2 قابل شناسایی می باشد .
Web Services : این یکی از بخش های کلیدی ASP . NET است . و به برنامه نویسان امکان می دهد که سرویس های مورد نظر خود را به صورت برنامه ای و از طریق اینترنت (یا اینترنت محلی)دراختیار برنامه نویسان دیگر قرار دهند.این ویژگی براساس استاندارد S OAP کار می کند .
Caching : ASP . NET شامل یک موتور قوی برای نگهداری و پنهان سازی صفحات است که به برنامه نویسان امکان می دهد بار پردازشی موجود بر روی سرویس دهنده وب و سرویس دهنده اطلاعات را کاهش دهند وبه این ترتیب عملکرد برنامه کاربردی خود را بهبود بخشند.
بهبود پیکر بندی : ASP . NET برای ذخیره کردن اطلاعات پیکر بندی برنامه های کاربردی مبتنی بر وب ازیک روش جدید استفاده می کند . به جای این که IIS این اطلاعات را در یک پایگاه داده ( که دسترسی به آن بسیار مشکل است)ذخیره کند، برای نگهداری اطلاعات پیکر بندی از فایل های XML استفاده می شود که خواندن آنها برای انسان و ماشین امکان پذیر می باشد .
بهبودمدیریت وضعیت: اگرقبلاًیک برنامه کاربردی ASPکلاسیک محدودیتهایی وجوددارد.ASP . NET براین محدودیت ها غلبه کرده است وامکان توزیع اطلاعات وضعیت درمیان چندین سرویس دهنده وب رافراهم آورده است ، اطلاعات وضعیت را در یک پایگاه داده SQL Serverذخیره می کند و بدون استفاده از Cookie ها مدیریت وضعیت را به عهده می گیرد .
امنیت : بی شک امروزه یکی از مهمترین مسائل در توسعه برنامه های کاربردی مبتنی بر وب، حفظ امنیت اطلاعات می باشد ، مدل امنیتی موجود در ASP . NET تا حد زیادی بهتر شده است ؛ از جمله جلوگیری از دسترسی به کد برنامه و روش های جدیدی که برای شناسایی کاربران پیش بینی شده است .
”. NET“Notepad
در واقع نام این برنامه ”. NET“Notepad نیست، ولی چون بعضی ها از روی علاقه Notepad Visual می نامند ، با تحولات جدید و ارائه چارچوب NET . توسط Microsoft بد نیست آن را ”. NET“Notepad .
یکی از مزایای بزرگ Notepad قیمت آن می باشد که رایگان است . حتی لازم نیست آن را از اینترنت Download کنید . برای شروع کاربا ASP .NET به وسیله Notepad فقط کافی است NET Framework. SDK (یا ASP .NET runtime redistrbutable package) را نصب کنید .
پس از این که این SDK را نصب کردید ، ساختن یک صفحه ASP .NET به سادگی ساختن یک صفحه HTML با Notepad و ذخیره کردن آن با پسوند .aspx است . به عنوان مثال ، کد HTML زیر را که برای یک صفحه ASP .NET ساده نوشته شده است در نظر بگیرید :
< html>
< head>
< titlel> first Asp . NET Page ! < / title>
head>
< body>
< p> Hello world !
< body>
html>
اگر شما یک فایل متن در Notepad بسازید این کد را درون آن تایپ نمایید و آن را با پسوند .aspx در یک دایرکتوری مجازی معتبر ذخیره کنید . یک صفحه ASP .NET کاملا صحیح خواهید داشت . البته این کد کار زیادی انجام نمی دهد . در ادامه آ را بهتر خواهیم کرد . ولی ابتدا اجازه دید برای تست کردن صفحات ASP و ASP .NET یک Virtual Directory در IIS بسازیم .
ویراستارهای دیگر
شاید Notepad رایج ترین ویراستار متن دردنیای ویندوز باشد ولی بدون شک اولین و آخرین ویراستار نیست . علاوه بر Notepad ، بسیاری ویراستارهای دیگر نیز هستند که ویژگی های خاص برنامه های قدرتمند را ارائه می دهند . بضی از این ویژگی ها عبارتند از:
استفاده از رنگ برای نشان دادن کلید واژه های مختلف موجود در زبان برنامه نویسی .
کامل کردن گزاره یا عبارت در هنگام تایپ ، بر اساس آنچه که بیش از آن تایپ شده است .
برای برنامه نویسانی که می خواهند از چگونگی ساخته شدن برنامه ویراستار خود مطلع باشد ، بعضی از برنامه های ویراستار به همراه کد اصلی آنها به فروش می رسند .
اگردردنیای ASP .NET مبتدی هستید، شاید یکی از این ویراستارهای متن برای کار شما مناسب باشد، این برنامه ویژگی هایی در اختیار شما قرار دارد که در Notepad پیدا نمی کنید .
Visual Studio . NET
همانطور که گفته شد برای ساختن یک برنامه کاربردی ASP .NET می توان Notepad یا یک ویراستار متن دیگر استفاده نمود .ولی اگر کار شما جدی است ، شاید بخواهید در محیط Visual Studio. NET کار کنید . مزایای Visual Studio. NET نسبت به ویراستارهای متن ساده عبارتند از :
مدیریت قدرتمند فایل های پروژه و چندین پروژه به طور همزمان .
همبستگی با Microsoft Visual Source Safe که برای کنترل کد اصلی برنامه ها بکار میرود .
ابزارهای گرافیکی برای کار با کنترل ها و سرویس های وب و ابزارهای کار با پایگاه داده .
ارائه سرویس هایی برای آماده سازی و بسته بندی برنامه های کاربردی وب .
پشتیبانی از چند زبان برنامه نویسی در یک محیط منفرد .
انواع پروژه های ASP . NET
برنامه های کاربردیASP .NET به دودسته اصلی تقسیم می شوند که هریک برای منظوری خاص بکار می روند. برای برنامه های کاربردی مبتنی بر وب که خودشان رابط کاربر یا UI مبتنی بر HTML دارند از برنامه های کاربردی ASP .NET استفاده می شود برای یک برنامه کاربردی که رابط کاربر نداشته باشد و فقط به صورت برنامه ای مورد استفاده قرار گیرد ، از سرویس های وب مبتنی برXML استفاده می شود.هر دو نوع برنامه کاربردی را می توان با استفاده از Visual Studio. NET و یا بدون آن ساخت. البته محیطVisual Studio. NET توسعه هر دونوع برنامه را به طور کاملامحسوسی سریعتر و آسانتر می سازد .