زبان برنامه نويسي دات نت

Microsoft .NET

Microsoft . NET واژه اي كه به مثابه يك چتر ، شماري از فن آوريهاي كه اخيراً توسط شركت مايكروسافت عرضه شده اند در بر مي گيرد . با كنار هم قرار گرفتن اين فن آوريها ، يك تحول اساسي در بستر توسعه مايكروسافت ، از زمان انتقال از سيستم ۱۶ بيتي به سيستم ۳۲ بيتي ايجاد شده است .

Microsoft . NET شامل فن آوريهاي زير مي شود :
. NET Framework
. NET Enterprise Servers
. NET Languages and Language Tools
. NET Framework
. NET Framework فن آوري است كه درتوسعه ASP. NET ضروري مي نمايد و ارائه كننده سرويس هاي مقدماتي سيستم هايي است كه ASP.NET را مورد پشتيباني قرار مي دهند ، نظير ايجاد فرم هاي ويندوز و فن آوري جديدrich client development كه در .NET ارائه شده است . درست همانند بستة اختياري (Option Pack) ويندوز NT4 ، كه به همراه ويندوز NT4 نصب مي شد Internet Information Server 4.0 (IIS) وactive Server Pages Technologies را به ويندوز NT4 مي افزود ،NET Framework ، نيز يك بستة add-on ( افزودني ) مي باشد كه روي

ويندوز۲۰۰۰ ، ويندوزNT4.0 و ويندوز ۹۸/ME نصب مي شود و سرويس هاي مقدماتي پشتيباني سيستم را به فن آوريهاي .NET مي افزايد .
Framework درنسخه هاي جديدتر سيستم عامل هاي سرويس دهنده و ويندوز ، نظير .NET Server نيز بكار خواهد رفت .

Common Language Runtime
Common Language runtime يا ( به اختصار Runtime ) محيط runtime اي را ايجاد مي كند كه در آن محيط كدهاي نوشته شده به زبانهاي .NET اجرا مي گردند . runtime مديريت اجراي كدهاي .NET را برعهده دارد ، كه شامل مديريت بلند مدت حافظه و آبجكت ها مي شود . علاوه بر اين سرويس هاي مديريتي ، runtime به توسعه دهندگان امكان اشكال زدايي ، رسيدگي به

استثنائات و وراثت در ميان چندين زبان را مي دهد . لازمة اجراي اين وظايف اين است كه كامپايلر هاي زبان از خصوصيات زبان مشترك با Common Languge Specification (CLS) ، كه نمايانگر زير مجموعه اي از انواع داده پشتيباني شده توسط runtime مي باشد و در تمام زبانهاي مورد استفاده .NET مشترك است ، پيروي نمايند .

كامپايلر هر زباني كدهاي نوشته شده توسط برنامه نويسان را به يك زبان ميانجي به نام Microsofot Intermediate Language (IL ,MSIL) كامپايل مي كنند .
سپس اين IL در زمان نصب به وسيله runtime ، به كد محلي كامپايل مي شود و يا حين اولين اجرا به صورت (GIT) Gust-In-Time كامپايل مي شود . ازكدي كه به IL كامپايل مي شود و به وسيلة runtime مديريت مي گردد ،به عنوان managed Code نام برده مي شود . دليل اين نام گذاري بر عهده گرفتن مسئوليت مديريت اجراي كد توسط runtime است ، كه شامل معرفي آبجكت ها ، اختصاص حافظه و جمع آوري پس مانده آبجكت ها و حافظه مي باشد .

از كامپوننت هاي نوشته شده در Managad Code و اجرا شده توسط runtime به عنوان .NET Managed Assemblies نام برده مي شود و يا به اختصار فقط assemblies خوانده مي شوند . Assemble ها واحدهاي اصلي گسترش در دنياي .NET هستند و شباهت زيادي به كامپوننت هاي Com دارند . با اين تفاوت كه ، در حالي كه كامپوننت هاي Com حاوي يك نوع كتابخانه متناظر براي تعريف چگونگي به كارگيري آنها توسط سرويس گيرنده هستند ، يك Assembly حاوي يك manifest است كه مجموعه اي از Metadata ها (فرداده ها ) مي باشند كه محتويات assembly را تعريف مي كنند . از فوائد ديگر آن ، ماهيت خود تعريفي كامپوننت هاي .NET است . به اين معني كه براي اينكه بتوانند كار كنند ، نيازي به ثبت شدن ( رجيستر شدن) روي كامپيوتر ندارند .

اين Metadata همچنين وظيفه تعريف وابستگي ها و اطلاعات تفسيري متناظر با يك assembly را بر عهده دارد . اين نه تنها باعث كسب اطمينان از برآورده شدن وابستگي هاي ضروري assembly ها مي شود ، بلكه به اين معني است كه چندين نسخه از يك assembly مي توانند دركنار هم روي يك كامپيوتر بدون ايجاد اختلال اجرا شوند . اين موضوع گامي بزرگ در تقابل با “DLL Hell ” ( مكافات DLL ) است ، كه براي تعداد كثيري از برنامه نويسان آزار دهنده است .

با روي كار آمدن .NET اين مسائل به فراموشي سپرده خواهند شد . از آنجائي كه برنامة كاربردي [ مورد نظر ] مي داند براي كدام نسخه از يك assembly طراحي شده است . مي تواند با گرفتن پرس و جو (query) از متاديتاي اسمبلي ، نسخه صحيح را از ميان نسخه هاي مختلف همان اسمبلي بابد .

.NET Framework Class Library
.NET Framework Class Library براي پشتيباني از تلاشهاي به عمل آمده توسط برنامه نويسان و با ارائه كلاسهاي اصلي برنامه نويسان مي توانند [ براي ايجاد كلاسهاي فرعي ] از آنها به ارث ببرند ، طراحي شده است . اين يك مجموعه سلسله مراتبي از كلاسهاي .NET است كه برنامه نويسان مي توانند در برنامه هاي كاربردي خودشان از انها استفاده نمايند . اين كلاسها كه به

وسيله محفظه هايي به نام namespace سازماندهي مي شوند ، هر دو نوع عملكرد مقدماتي و پيشرفته را كه برنامه نويسان مي توانند به آساني براي دومين مرتبه مورد استفاده قرار دهند را فراهم مي نمايند . آنها شامل كلاسهايي كه از انواع داده هاي مشترك مقدماتي ؛ كلاسهاس فراهم كننده دسترسي به داده ؛ و كلاسهايي كه چنين سرويس هاي سيستمي مانند طراحي ( كه خبر خوبي براي كساني است كه از كامپوننت هاي third-party براي ايجاد تصاوير در يك برنامه

كاربردي ASP به صورت پويا استفاده مي كنند ) ، عملكرد شبكه ( شامل DNS و reverse DNS Lookups ) ، و خيلي چيزهاي ديگر را پشتيباني مي كنند .
كتابخانه همچنين شامل كلاسهايي است كه اساس ASP.NET را تشكيل مي دهند و شامل كلاسPage ( بخشي از يك namespace به نام System .Web .UI ) كه تمام صفحات ASP.NET از آن مشتق مي شوند .و كلاسهاي زياد ديگري در يك namespace به نام System.Web و فرزندان آن مي باشند .
Windows. NET Server

به همان صورت كه Microsoft ,Internet Information Server , Microsoft Trasaction Server Message Queue Server وinternet Explorer محصولاتي بودند كه جداگانه نصب مي شدند و سرانجام درون سيستم عامل اصلي محصور شدند ،.NETFramework Class Library , runtime نيز جزئي از سيستم عامل ويندوز خواهند شد . بيل گيست در [ كنفرانس ] Tech Ed 2001 اعلام كرد كه اولين نسخه ويندوزي كه همراه با فن آوريهاي .NET عرضه مي شود ، Windows.NET Server خواهند بود .

سرورهاي Enterprise
سرورهاي .NET Enterprise ، اولين گام در تكامل سير توسعه مايكروسافت هستند . با اينكه سرورهاي .NET Enterprise ، صريحاً از runtime ، Class Library بهره نمي گيرند ، اما زيربناي محكمي را تشكيل مي دهند كه مي توان بر روي آن شروع به ساختن روشهاي تجاري enterprise- class كنيد .

سرورهاي .NET Enterprise شامل مواد زير هستند :
SQL Server 2000
Exchange 2000 Server

Commerce Server 2000
Host Integration Server 2000
BizTalk Server 2000
Internet Security and Accleration Server 2000
Application Center 2000
اين محصولات در كنار يكديگر ، فراهم آورنده بخش عمده كارآيي موردنياز براي اكثر كارهاي بزرگ هستند .
SQL Server 2000
SQL Server 2000 ، سيستم مديريت پايگاه داده (DBMS) كلاس تجاري شركت مايكروسافت است . بر پايه موقعيتي كه SQL Server 7.0 به دست آورد ، SQL Server 2000 به دست آورد ، SQL Server 2000 نيرومند ، با انعطاف پذيري بالا و با قابليت هاي XML است و براي توسعه دهندگان برنامه هاي كاربردي بازگشت سرمايه اي دركوتاه ترين زمان ممكن را به همراه دارد .
در ميان امكاناتي كه SQL Server 2000 ارائه مي دهد ، به موارد زير مي توان اشاره كرد :
• اجراي چندين SQL Server 2000 به صورت همزمان روي تنها يك ماشين .
• همكاري همزمان با SQL Server 2000 ، شامل مديريت SQL Server 7.0 و SQL Server 2000 از يك SQL Server Enterprise Manager
• ورودي ـ خروجي داده به صورت XML

• موتور OLAP مجتمع شده
• انعطاف پذيري جهاني ( طبق سنجش به عمل آمده بوسيله شركت كنترل كيفيت TPC-C ؛ آدرس http:// www.tpc.org را براي كسب اطلاعات بيشتر و آخرين نتايج كنترل كيفيت ببينيد .
Exchange 2000 Server
Exchange 2000 Server ، ابزار پيام رساني و تشريك مساعي شركت مايكروسافت است . علاوه بر امكانات پيام رساني و تشريك مساعي مورد استفاده درEchange Server ، Exchange 2000 مخزن وب XML محلي را ارائه مي دهد ، كه يك نسخه كاملاً بهينه سازي شده اي از Outlook

Web Access كه با Active Directory مجتمع شده است ، مي باشد . براي برنامه نويساني كه نيازمند پيام رساني يا امكانات پيگيري و مديريت فعاليتهاي پروژه و ساخت برنامه كاربردي هستند ،Exchange Server 2000 كارآيي خارج از محدودة زيادي را ارائه مي دهد كه مي تواند در كاهش زمان ايجاد و بهره وري مؤثر باشد .
Commerce Server 2000

با استفاده از سايتهاي مبتدي Commerce Server 2000 ، برنامه نويسان مي توانند به راحتي با وارد كردن كاتالوگ محصول ، يك سايت تجارت الكترونيكيbusiness-to-Consumer كاملاً كارآمدي را ايجاد نمايند . گرچه سايت آغازين فقط يك واسط كاربر مقدماتي را ارائه مي دهد . از تمامي منطق مورد نياز براي اجراي پيمايش جستجو و مرور محصولات و سبد خريد پشتيباني مي كند .

با ارائه يك واسط كاربر سفارشي [ درگام اضافي بعدي ] ، برنامه نويسان مي توانند به آساني يك سايت تجارت الكترونيكي با واسط كاربر قوي و كارآييbackend ( بخش اجرايي برنامه كاربردي درسرويس دهنده ) كه شامل ابزارهاي تحليل ترافيك و داده ( بر پايه SQL Server 2000 OLAP engine ) مي شوند و به سازمانهاي اجازه ردگيري فروش ها ، ترافيك سايت و غيره را مي دهند ، را بسازند .
امكانات جديد در Commerce Server 2000 ، شامل موارد زير است :
• سيستم قدرتمند پروفايل گيري و ثبت كاربران
• مديريت كاتالوگ بهينه سازي شده
• تحليل تجارت در اينرنت ( با استفاده از (SQL Server 2000 Analysis Service)
Host Integration Server 2000
Host Integration Server 2000 جانشين SNA Server مايكروسافت است و به اين هدف طراحي شده است تا برنامه هاي كاربردي نوشته شده در بستر ويندوز ، اجازة دسترسي به داده ها و تعامل با برنامه ها در سيستمهاي back-end قديمي ، همانند DB2 روي AS/400 ، سيستم هاي تراكنشي IMS وCISC ومحيطهاي پيام رساني بر اساس سري هاي MQ ، را داشته باشند .
BizTalk Server 2000
BizTalk Server 2000 يكي از مهمترين سرورهاي Enterprise است و به برنامه نويسان امكان ايجاد برنامه هاي كاربردي تجارت الكترونيكي business-to-business با قابليت بالاي كاركردن در محيطهاي متفاوت ، نيرومند و مؤثر را مي دهد . امكاناتBizTalk Server 2000 شامل موارد زير مي باشد :
• تغييرات اسناد مبتني بر XML

• منظم ساختن فرآيند تجاري (orchestration)
• ريشه يابي و رد يابي اسناد
BizTalk Server اجازه مي دهد ، اسناد را( نظير سفارشات خريد ) درهر قالبي ( فرمتي) كه باشند ، با استفاده از توابع متغير مبتني بر زبان XML موجود در BizTalk Mapper ارسال و دريافت نمايد . BizTalk Orchestrator امكان رسم سريع و آسان دياگرام يك فرآيند تجاري را مي دهد و سپس هر مرحله را به صورت اسكريپت يا كامپوننت هايي كه آن مرحله را به اجرا در مي آورند ، ترسيم مي كند وقتي كه فرآيندي ترسيم شد،BizTalk Orchestrator مي تواند سندي مبتني بر XML را ايجاد نمايد كه فرآيند تجاري را شرح مي دهد . سپس اين سند توسط BizTalk

Orchestrator runtime براي اجراي فرآيند به كار مي رود . از فوائد آشكار اين رهيافت اين است كه امكان توسعه سريع به طرز چشمگيري و اصلاح آسان فرآيند تجاري را امكان پذير مي سازد .
Internet Security and Acceleration Server 2000
به عنوان جانشيني براي محصول Proxy Server مايكروسافت ، طراحي و توسعه يافته است ، امنيت firewall و امكانات كاشه كردن (Caching) را كه سازمانها براي ارتقاء سطح امنيتي و عملكرد شبكه هاي متصل به اينترنت خود مورد استفاده قرار مي دهند را فراهم مي نمايد . از امكانات جديد ISA موارد زير را مي توان نام برد :
• بازرسي جامع مزاحمين
• توانايي ايجاد و به كار گيري سياست هاي استفاده ازاينترنت
• توانايي زمان بندي ( برنامه ريزي) دريافت محتويات
• اعمال گزارش ها و logging به صورت جامع
براي سادگي ايجاد و مديريت كلاسترهاي وب يا برنامه هاي كاربران سرورها طراحي شده است .Application Center 2000 يك كنسول مديريتي را ارائه مي دهد كه ايجاد گروهي از سرورها ،افزودن يك سرور جديد به گروه ( شامل برنامه هاي كاربردي يا محتواي تكراري براي سرور جديد ) متوقف كردن يا راه اندازي مجدد سرورها براي ارتقاء و غيره را ميسر مي سازد .
معماريASP.NET

با اينكه در ASP.NET امكانات موجود در ASP كلاسيك به طرز گسترده اي استفاده شده است. اما تغييرات عمده اي نيز در معماري ASP.NET به وجود آمده است كه اين شامل بهينه سازي ها و امكانات جديد مي شود.
چه چيز جديدي در ASP.NET وجود دارد :
• فرم هاي وب: اين مدل جديد برنامه نويسي ASP.NET است . فرمهاي وب بهترين هايASP را با برنامه نويسي قدرتمند و كارآمد Visual Basic در هم مي آميزند . مي توانيد كنترل ها را به درون يك صحنه بكشيد و سپس براي ايجاد حالت محاوره اي ، آبجكت هاي تجاري را فراخواني نماييد و غيره .
• كنترل هاي سرويس دهنده : از اجزاء اصلي مدل برنامه نويسي فرم هاي وب ، كنترل هاي

سرويس دهنده هستند.ASP.NET تقريباً به عناصر HTML ، نگاشت مي شوند و قابليت برنامه نويسيServer-side نيرومندي را ارائه ي دهند . كنترل هاي سرويس دهنده روي سرويس دهنده اجرا شده و مي توانند HTML را كه مخصوص مرورگرهاي سطح بالا نظير Internet Explorer 5.x و پس از آنو هر مرورگري كه با HTML 3.2 سازگار باشد ايجاد شده اند را به خروجي بدهند .

• سرويس هاي وب: اين بخش كليدي ASP.NET ، به برنامه نويسان اجازه مي دهد تا سرويس هاي برنامه نويسي را در دسترس برنامه نويسان ديگر روي اينترنت ( يا يك شبكه اينترنت محلي ) ، سرويس هاي وب بر مبناي استاندارد (SOAP) يا Simple Object Access Protocol قرار دهند .
• Caching ( حافظه پنهان) : ASP.NET ، شامل موتور حافظه پنهان قدرتمند جديدي است كه به برنامه نويسان اجازه بهبود كارآيي برنامه هاي كاربردي را به وسيله كاهش بارگذاري هاي پردازش روي سرويس دهنده هاي پايگاه داده و سرويس دهنده وب را مي دهد .

• يهينه سازي هاي پيكربندي : ASP.NET ، از روش جديدي براي ذخيره اطلاعات پيكربندي برنامه هاي كاربردي وب بهره مي گيرد . به جاي ذخيرهIIS ، اين اطلاعات در پايگاه داده اي كه دسترسي به آن دشوار است ، در فايل هاي پيكر بندي قابل خواندن توسط ماشين و انسان و برمبناي XML ذخيره مي شوند .

• امنيت : امنيت فاكتور بسيار مهمي در برنامه هاي كاربردي وب امروزي است . مدل امنيتي در ASP.NET به شكلي اساسي بهبود يافته و شامل متدهاي تأييد اعتبار ارتقاء يافته جديد ، امنيت دسترسي به كدها و مجوزها بر اساس نقشي كه ايفاء مي كنند مي شود .
ايجاد يك برنامه كاربردي وب ASP.NET باVisual Basic .NET

براي ايجاد يم برنامه كاربردي در Visual Basic .NET مراحل زير را دنبال كنيد :
۱ـ Visual Basic .NET را با انتخابPrograms از منوي شروع ، انتخابMicrosoft Visual Basic .NET 7.0 و كليك روي Microsoft Visual Studio .NET 7.0 آغاز كنيد .
۲ـ از منويFile گزينة New را انتخاب كنيد و سپس Project را برگزينيد .
۳ـ در كادر محاورةNew Project ، يك زبان و يك نوع پروژه را انتخابكنيد ( دراين موردWeb Application ) نام و موقعيت پروژه جديد را وارد كنيد و بر روي دكمة OK كليك كنيد .
۴ـ Visual Studio .NET ، تمام فايل هاي ضروري و دايركتوري مجازي IIS را براي پروژه ايجاد مي نمايد .
ايجاد يك برنامه كاربردي وب با .NET SDK
ايجاد يك برنامه كاربردي وب با SDK كمي پيچيده تر از Visual Studio .NET است . كماكان ، ايجاد يك برنامه كاربردي وب نسبتاً راحت است . فرآيند آن شامل مراحل زير مي باشد :
• ايجاد يك ريشه برنامه كاربردي
• ايجاد زير دايركتوري ها
• ايجاد صفحات aspx
• ايجاد يك فايلGlobal.asax
مجوزهاي دسترسي
پيش از آنكه مجوزهاي Write ,Execute يا Browse را انتخاب كنيد ، بايد اطمينان حاصل كنيد كه بافت امنيتي هر كدام را مي فهميد . اين تنظيمات در صورتي كه به طور مناسبي استفاده نشده باشند ، مي تواند برنامه هاي كاربردي شما را در برابر حملات مهاجمان (hacker) هاآسيب پذير سازند . ليست زير هدف هر دسترسي موجود و موقعيت مناسب استفاده از آن را توضيح مي دهد :
• Read : با اين مجموعه مجوزها ، سرويس گيرنده مي تواند فايل ها را بخواند . اين مجوز به صورت پيش فرض انتخاب مي شود .
• Run Scripts : امكان اجراي فايل هايي نظير فايل هاي ASP را فراهم مي نمايد اما به فايل هاي اجرايي (.exe,dll) امكان اجرا را نمي دهد .

• Execute : امكان اجراي انواع فايل هاي اجرايي نظير برنامه هاي كاربردي .exe و.dll و همچنين برنامه هاي كاربردي CGI را مي دهد .
• Write : با اين مجموعه مجوزها ، سرويس گيرنده ها مي توانند درون يك دايركتوري بنويسند .
• Browse : سرويس گيرنده هايي كه URL ي را وارد مي كنند كه يك نام فايل يا يك سند پيش فرض را مشخص نمي كند (نظيرindex.htm ياdefault.asp ) ليستي از فايل هاي دروم دايركتوري را كه درحال مرور آن مي باشند را دريافت خواهندكرد .
ايجاد يك فايل Clobal.asax
علاوه بر ايجاد ريشه برنامه كاربردي و افزودن زير پوشه ها و محتويات ، همچنين مي توانيد فايلي به نام Giobal.asax را به برنامه كاربردي وب خود اضافه كنيد . Clobal.asax ( كه به صورت پيش فرض به برنامه هاي كاربردي وب Visual Studio.NET اضافه مي گردد ) فايلي است كه در ابتدا براي فراهم نمودن كد start-up وclean-up مربوط به آبجكت هاي Session وapplication و همچنين براي تنظيم گزينه هاي كد به طور كلي براي برنامه كاربردي به كار مي روند . در Global.asax مي توانيد:
• رويدادهاي Session وapplication منتخب را پاسخ دهيد .

• رويدادهاي HttpModules سفارشي كه براي برنامه كاربردي خود ايجاد نموده ايد ، پاسخ دهيد .
• namespace هايي را با استفاده از دستور @Import به برنامه كاربردي وارد كنيد . سپس مي توانيد بدون نياز به وارد نمودن namespace به هر صفحه اعضاي namespace ، هر كدي راكه دربرنامه كاربردي خود مورد استفاده قرار دهيد .
• اسمبلي ها را براي استفاده در برنامه كاربردي خود با استفاده ازدستور @Assebbly ثبت نماييد .
ايجاد يك فايل Web.config

فايل اختياري ديگري كه مي توانيد به برنامه كاربردي خود بيفزاييد ،web.config نام دارد . اين يك فايل مبتني برXML و قابل خوانده شدن براي انسان و ماشين است كه گزينه هاي پيكر بندي برنامه كاربردي شما را در بر دارد . دليل اختياري بودن فايل Web.config اين است كه اگر آن را لحاظ نكنيد ، برنامه كاربردي شما تنظيمات فايل پيكر بندي سطح ماشينMachine-config را به ارث خواهد گرفت . شما اگر يك فايلWeb.config را به ريشة برنامه اصلي خود بفزاييد ، تنظيمات پيكربندي

درون آن فايل در سراسر برنامه كاربردي شما اعمال خواهدشد . شما مي توانيد اين تنظيمات را در نواحي خاصي از برنامه كاربردي خود و به وسيله ايجاد پوشه هاي فرزند در درون برنامه كاربردي خود كه فايل هاي Web.config خودشان را شامل مي شوند ، پوشش دهيد .