دسته بندی سایت
پیوند ها
وب يکي از مهمترين و در عين حال جوانترين سرويس اينترنت است، که در مدت زماني کوتاه توانسته است در کانون توجه تمامي استفاده کنندگان اينترنت قرار بگيرد و منشاء تحولات عمدهاي در حيات بشريت باشد. در گذشته از وب صرفاً به منظور عرضه اطلاعات استفاده ميگرديد و کاربران از آن به عنوان کتابخانه الکترونيکي بزرگ در جهت يافتن اطلاعات مورد نياز خود استفاده ميکردند. نرم افزار و دنياي برنامه نويسي يکي از عرصههايي است که بدون شک بيشترين تأثير را از اينترنت پذيرا بوده است. شرکتهاي عظيم نرم افزاري با لحاظ نمودن جايگاه برجسته اينترنت، اقدام به ارائه تکنولوژيها و معماريهاي متفاوتي در جهت طراحي و پياده سازي برنامههاي کامپيوتري با بهرهگير از اينترنت نمودهاند. يکي از تکنولوژيهاي طراحي شده در اين زمينه تکنولوژي ASP.NET ميباشد. در اين پروژه سعي شده است که شناختي کافي در زمينه ASP.NET (.NET ، ASP و ASP.NET و ... ) بدست آمده باشد.
«آشنايي با دات نت و بررسي مشكلاتي كه حل آنها سبب تولد دات نت گرديد».
به طور معمول نسلهاي جديد زبان هاي برنامه نويسي به اين دليل متولد مي شوند كه زبانهاي قديمي تر داراي امكانات محدود بودند و يا قدرت استفاده از تكنولوژيهاي فعلي را به صورت مطلوب و ساده ندارند. مهمترين نيازي كه به عنوان آخرين تكنولوژي وجود دارد، برنامه نويسي در محيط اينترنت است. اينترنت در مدت تقريبا 8 سال جاي خود را به عنوان يكي از مهمترين وسايل ارتباطي براي كارهاي روزمره و تجارت باز كرده است. سيستمهاي برنامه نويسي قديمي تر امكان برنامه نويسي براي اينترنت را فراهم كرده بودند اما هر كدام داراي اشكالات بزرگي هستند، براي مثال تكنولوژي Com اولين بار در ويندوز به كار گرفته شد. در سال 1970 نيز سيستمهايي براي Unix نوشته شده بودند، جاوا نيز در اصل براي ابزارهاي الكترونيكي بود و نه براي اينترنت.
سپس براي اولين بار يك سيستم جامع براي برنامه نويسي تحت اينترنت ايجاد شد. اين سيستمکه.NET، نام داشت، از مراحل سطح پايين كه به زبان ماشين ميباشد تا بالاترين سطح كه برنامه نويسي ويژوال آن مي باشد، براي استفاده در اينترنت طراحي شده است البته NET فقط براي اينترنت نيست و با استفاده از آن مي توان برنامه هاي كامل تحت Client نيز ايجاد كرد، اما بزرگترين مزيت آن در برابر سيستمهاي ديگر امكانات اينترنت آن است. براي اين كه از مزاياي استفاده از NET را بهتر متوجه بشويم بهتر است در ابتدا معايب سيستم هاي پيشين را ذكر كنيم.
شركت مايكروسافت تا قبل از سال 1995 به برنامه نويسي در محيط هاي Client و server پرداخت، اما از ان سال به بعد توجه بيشتري به مساله برنامه نويسي در اينترنت كرد.
مايكروسافت com و +com را ايجاد كرد و آن ها را در ويژوال استوديوي 6 به كار گرفت. در سال 1999 حدود 50 درصد از بزرگترين سايتهاي تجارت الكترونيكي از محصولات مايكروسافت استفاده مي كردند. اما هنوز هم مشكلاتي زيادي در سيستمهاي مايكروسافت وجود داشت كه يكي از آنها دشواري نوشتن برنامه در اينترنت با محصولات مايكروسافت بود. شركت مايكروسافت براي راحتي كار برنامه نويسها ASP يا Active server page را ايجاد كرد. با اين كه اين قدم بزرگ بود و كارها را بسيار ساده كرد ولي هنوز از برنامه نويسي شي گرا پشتيباني نمي كرد. همچنين در ويژوال استوديوي 6 قسمتي براي Internet Application ايجاد شده بود و در آن امكان ساختن web class وجود داشت ولي هيچ وقت به عنوان يك ابزار كارآمد براي برنامه نويسي وب در نظر گرفته نشد.
مدل برنامه نويسي DNA
مايكروسافت يك مدل برنامه نويسي به نام Distributed internet Application دارد كه برپايه برنامه نويسي n-tier و com بنا نهاده شده است. مدل DNA از سه بخش اساسي تشكيل شده است:
1-بخش اول به نام Presentation tire معروف است. در اين بخش رابط تصويري كاربر وجود دارد و خود نيز به دو نوع Internet Browser و will 32 GUI تقسيم ميشود كه هر كدام مشكلات خاص خود را دارند. در مدلي كه از win 32 GUI يا همان نرم افزارهاي معمولي استفاده ميشود دو مشكل بزرگ وجود داشت: دشواري بروز رساني نرم افزار و ديگري DllHell كه در ادامه توضيح داده خواهد شد. در نوع دوم مشكلاتي از اين قبيل نبود. امكانات برنامه نويسي كافي در محيط مرورگر، نبود رابط قوي كاربر، نبودن مرورگرهاي يكسان و … وجود دارد. همچنين هميشه يك اتصال به اينترنت يا اينترانت لازم است. در اين نوع از برنامه نويسي مي توان از Java Appletها يا Activex استفاده كرد ولي مرورگر بايد امكان استفاده از آن را داشته باشد، مخصوصا هنگام استفاده از Activex كه بايد فقط از IE استفاده كرد.
2-بخش دوم كه Middle tier نام دارد، مكاني است كه اطلاعات و قوانين تجاري در آن وجود دارد، منظور از قوانين، متدها و اجزائي هستند كه اعمال كاربران را كنترل مي كنند. مهمترين و آسان ترين زبان براي نوشتن اين اجزا از DNA ويژوال بيسيك است. برنامه نويسي كه بخواهد در اين رده برنامه بنويسد بايد آشنايي كاملي با com و پروتكل هاي رايج داشته، همچنين بايد مهارت كافي در استفاده از ADO و ADSL داشته باشد.
مشخص كه يك اشتباه در اين لايه باعث بروز خطا و نقص در كل سيستم ميشود.
3-بخش سوم يا Data tier مكاني است كه اطلاعات سازمان در آن ذخيره ميشود معمولا در اين قسمت از بانكهاي اطلاعاتي پيشرفته رابطهاي مانند SQL server و Oracle استفاده مي كنند.
محدوديتهاي Com
همان طور كه ديديد مهمترين قسمت در DNA همان Com است كه در جاي جاي آن استفاده مي شود. كه در اين جا برخي معايب com را ذكر مي كنيم:
DLL Hell: اگر كوچكترين تغييري در يك com ايجاد شود، ديگر برنامههايي كه از ورژن قبلي استفاده مي كردند قادر به فعال ساختن نسخه جديد نيستند. هنگامي كه در ويندوز، يك com نصب شود برايش در رجيستر يك GUID ثبت ميشود كه اطلاعات آن com را در خود ذخيره مي كند. اگر يك برنامه از نسخه اول يك com استفاده كند و بعد از مدتي شما تغييراتي در نسخه اول بدهيد و بخواهيد آن را دوباره در سيستم نصب كنيد ويندوز به شما پيغام خطا ميدهد چون ورژن آن تكرار است، اگر هم آن را به ورژن دوم ارتقاء دهيد. نرم افزار قبلي هنوز به دنبال نسخه اول ميگردد، اين امر باعث ميشود كه شما مجبور شويد يكبار ديگر كل برنامه را كامپايل كرده و در كامپيوترتان نصب كنيد.
كمبود در وراثت: در نسخه هاي Com كه در حال حاضر هستند چيزي به نام وراثتي كه در C++ وجود دارد نميباشد، بلكه وراثت تنها در واسط يك Com ميباشد، استفاده از آن هم چندان كمكي به برنامه نويسي نميكند. حل اين مشكلات باعث تولد .NET گرديد.
از زمان معرفي دات نت توسط مايكروسافت در تابستان 2000، تعداد زيادي از علاقمندان به دنياي گسترده كامپيوتر خصوصا طراحي و پياده سازي نرم افزار، همواره به اين سئوال مواجه بودند كه دات نت چيست و استفاده از آن چه دستاوردهايي را براي استفاده كنندگان به دنبال خواهد داشت؟ دات نت، پلات فرم مايكروسافت براي سرويس هاي وب Xml است.
به منظور شناخت تمامي ابعاد دات نت لازم است به موارد زير توجه گردد:
·دات نت پلات فرمي جديد به منظور پياده سازي و به كارگيري برنامههاي مديريت يافته،شيگرا و پيشرفته است.
·به منظور پياده سازي برنامه هاي دات نت مي توان از زبان هاي برنامه نويسي متفاوتي استفاده كرد (كد توليد شده توسط كامپايلر، Runtim دات نت خواهد بود).
·دات نت، كتابخانه كلاس گسترده اي را ارائه مينمايد.
·دات نت، روشي جديد به منظور پياده سازي برنامه تحت ويندوز (Desktop Application) را با استفاده از كلاس هاي فرم ويندوز، ارائه مي نمايد.
·دات نت، امكان تشريح خودكار عناصر نرم افزاري را ارائه و حمايت مينمايد.
·دات نت، امكاناتي نظير: ارتباط بين زبانها، عناصر مستقل از زبان برنامه نويسي با قابليت استفاده مجدد و توارث در بين زبانها را ارائه مينمايد.
·دات نت، روش جديدي براي پياده سازي برنامه هاي مبتني بر مرورگر (برنامههاي وب) را با استفاده از كلاسهاي ASP. NET ارائه مينمايد.
·كلاسهاي ADO.NET مربوط به دات نت، يك معماري جديد غير متصل براي دستيابي به داده از طريق اينترنت را ارائه مي نمايند.
·دات نت، امكان ايجاد سرويس هاي وب XML مستقل از پلات فرم را با استفاده از استانداردهايي نظير : SOAP و WSDL ارائه مي نمايد.
·دات نت، يك معماري جديد براي پياده سازي و به كارگيري اشياء راه دور را ارائه مي نمايد.
·دات نت، تكنولوژي هاي متعددي از ويندوز را حمايت مي نمايد.
براي پياده كنندگان نرم افزار تحت ويندوز، دات نت امكانات متعددي را از ويژوال C++ تا ويژوال بيسيك ارائه مينمايد. دات نت، مستقل از نوع زبان برنامه نويسي بوده و در اين راستا كامپايلرهاي متعددي براي چنين زبان طراحي و پياده سازي شده و تمهيدات لازم در خصوص طراحي و پياده سازي كامپايلرهاي ديگر نيز انجام شده است. در حال حاضر از زبانهاي Jscript و Visual Basic.NET و C# و Eiffel و Python و Per1 و CoBol و .NET و APL ميتوان استفاده كرد. دات نت از زبانهاي فوق مستقيما حمايت نمينمايد. در حقيقت دات نت صرفا قادر به درك يك زبان بيشتر نيست. زبان فوق IL (Microsoft Intermediate Language) ناميده ميشود.
از كامپايلر اختصاصي هر زبان، به منظور ترجمه كدهاي نوشته شده به IL، استفاده ميگردد. خروجي فرآيند ترجمه، شامل IL و متاديتا است. IL، را مي توان به منزله يك زبان اسمبلي براي يك پردازنده مجازي Stack – based دات نت تصور نمود. از اين زاويه عملكرد IL مشابه كدهاي P در نسخههاي اوليه ويژوال بيسيك و يا بايت كدهاي منتشر شده توسط يك كامپايلر جاوا، است. IL، براي يك زبان خاص طراحي نشده است. به عبارتيIL، نوعهاي متداول به اشتراك گذاشته شده را كه توسط تمامي زبانهاي دات نت، استفاده ميگردد، را پردازش مينمايد. نوع سيستم فوق (Common Type System) CTS ناميده ميشود. يك نوع دات نت، چيزي به مراتب بيشتر از يك نوع داده است. نوع هاي دات نت،عموما توسط كلاس هايي شامل كد و اعضا داده تعريف ميگردند. در زمان اجراء (Common Language Runtime) C LR مسئوليت استقرار يك برنامه دات نت در حافظه و اجراي آن را بر عهده خواهد داشت. به منظور نيل به هدف فوق،CLR از تكنيكي به نام (Just-In-Time) JIT به منظور ترجمه IL به كد مختص و وابسته به يك ماشين استفاده مينمايد. كد دات نت، همواره ترجمه و هرگز تفسير نمي گردد، بنابراين دات نت از يك ماشين مجازي به منظور اجرا برنامه استفاده نكرده و در مقابل كد IL براي هر متد براساس كامپايلر JIT در اولين فراخواني ترجمه خواهد شد. در مرتبه بعد كه يك متد صدا زده ميشود، كد ترجمه شده توسط JIT، اجرا خواهد شد.
CoBol Soarce |
Eiffel Source |
VB.NET Source |
C# Source |
CoBol Compiler |
Eiffel Compiler |
VB.NET Compiler |
C# Compiler |
IL+Meta Data |
IL+Meta Data |
IL+Meta Data |
IL+Meta Data |
CLR
Native code (Managed)
ماحصل فرآيند ترجمه، توليد يك فايل اجرايي ويندوز با فرمت (Executable Portable) PE است. در رابطه با فايل فوق ذكر دو نكته ضروري است:
اول اين كه ، CLR از زبان استفاده شده براي توليد برنامه و يا عنصر مورد نظر آگاهي نداشته و صرفا به كدهاي IL توجه خواهد داشت.
ثانيا، در تئوري استفاده از كامپايلر JIT تمام عمليات مورد نياز به منظور استفاده از پتانسيلهاي دات نت است.
دات نت و كد مديريت يافته (اداره شده)
نحوه اجرائ برنامه هاي دات نت تابع مدلي است كه در شكل قبل، نشان داده شده است. كد توليد شده كه مقصد آن CLR فريمورك دات نت باشد را برنامه هاي مديريت يافته (applications managed) ميگويند. در مقابل، برنامههاي ويندوز غير از دات نت با نام برنامه هاي غير مديريت يافته (applications unmanaged) از آنان ياد ميگردد. CLR، علاوه بر اين كه امكان ترجمه كدهاي IL را به كد مختص يك ماشين فراهم مينمايد، عمليات مديريتي لازم در خصوص برنامهها را نيز انجام خواهد داد. استقرار يك برنامه در حافظه، بررسي صحت كد، حفاظت برنامهها از يكديگر، تاكيد بر مسائل امنيتي، ارائه سرويسهاي اشكال زدايي، نمونههايي از خدمات ارائه شده توسط CLR ميباشند. مديريت كد توسط CLR، يك لايه اضافه را ارائه و باعث جدا سازي برنامهها از سيستم عامل ميگردد. در گذشته سرويس هاي ارائه شده توسط لايه فوق در خود برنامه و با استفاده از امكانات ارائه شده سيستم عامل ارائه ميگرديد.
متاديتا و ضرورت انتشار و همراهي آن با كد IL يكي از جنبههاي كليدي دات نت است. براي افرادي كه با Com و CORBA آشنايي دارند، متاديتا به منزله شكل خاصي از يك (Language Interface Definition) IDL بوده كه به صورت اتوماتيك توسط كامپايلر زبان مربوطه توليد ميگردد. متاديتا مسئول تشريح نوعها، شامل فيلدهاي مربوطه، خصلتها، امضاء (تاييد) متد بوده و عمليات حمايتي لازم را در اين خصوص ارائه مي نمايد. با توليد اتوماتيك اين داده در زمان ترجمه، عناصر دات نت به صورت خود تشريح شده و نيازمند ساير اطلاعات مورد نياز براي استفاده از عناصر دات نت نوشته شده با زبان هاي برنامه نويسي متفاوت به منظور ارتباط بين آنها وجود نخواهد داشت.
IL، يك زبان اسمبلي عمومي در مقايسه با زبان هاي اسمبلي نظير 8080 و يا 6809 نيست. IL، شامل مجموعه اي از دستورالعملها و يك بردار از ويژگيهايي است كه به منظور حمايت از عمليات ضروري و خصايص تعداد زيادي از برنامههاي پيشرفته و شيگرا طراحي شده است. تاكيد دات نت بر بودن به عنوان يك سيستم شي متداول در مقابل يك زبان برنامه نويسي خاص است. CLR، مستقيما ويژگي هاي زيادي را كه عموما به عنوان خصايص مربوط به زبان هاي برنامه نويسي مطرح ميگردد، حمايت مي نمايد. اين موضوع شامل يك سيستم نوع زبانهاي طبيعي براي حمايت از كلاسها، توارث، نسبت دهي پويا، مديريت حافظه، جمع آوري زائدههاي حافظه، بررسي و برخورد با موارد غير قابل پيش بيني و ساير موارد مرتبط است.
به منظور تسهيل در ارتباط بين زبانها، دات نت مشخصه استانداردي را براي زبانها، تعيين نموده است. (Common Language Specification): CLS
استاندارد فوق، مجموعه قوانين لازم در ارتباط با امكاناتي نظير: نوعهاي اساسي، محدودههاي بردار، نوعهاي مرجع، اعضاء، خصلتها، رويدادها و ساير موارد ديگر را تعريف مينمايد. عناصر و كتابخانههايي كه استانداردهاي فوق را رعايت و به آنها پايبند باشند به عنوان يك زبان سازگار با CLS شناخته خواهند شد.
توارث در بين زبان ها، چالش خاصي را در زمان فراخواني كد سازگار با CLS ايجاد نخواهد كرد. در اين راستا مي توان، يك كلاس پايه را با استفاده از ويژوال بيسيك دات نت ايجاد كرد كه از يك كلاس C# ، مشتق شده باشد. ويژگي فوق (ارتباط بين زبانها)، يكي از مهمترين پتانسيلهاي دات نت محسوب ميگردد.
در اوايلي كه ويندوز پياده سازي گرديده بود، برنامه ها عموما با زبان c كد و از طريق توابع API مبتني بر c با سيستم عامل مرتبط و از خدمات مربوطه استفاده مينمودند. اين موضوع در حقيقت بدين علت است كه بخش عمده اي از ويندوز خود با زبان c نوشته شده است. پس از طي سالياني، رويكرد فوق بر روي استفاده از اينترفيسهاي مبتني بر Com انعطاف پذير، تمركز و امكان استفاده از آنان (فراخواني) توسط برنامههاي مبتني بر c و ساير برنامههاي نوشته شده توسط زبان هاي اسكريپت، فراهم گرديد.
دات نت ، رويكردهاي فوق را با يك كتابخانه كلاس فريمورك مستقل از زبان جايگزين نموده است. در فريمورك دات نت، هر چيز به منزله يك شي در نظر گرفته ميشود. از يك بردار ساده در C# و يا ويژوال بيسيك دات نت (System. Arrag) گرفته تا يك دايركتوري مربوط به سيستم فايل (System. Io.Directory) و يا جمع كننده اطلاعات زائد در حافظه (system.Gc). همان گونه كه قبلا اشاره گرديد، كلاسهاي فريمورك دات نت براساس عملكرد و منطق مربوطه گروهبندي و در مجموعهاي از namespace ها سازماندهي شدهاند. در اين راستا بيش از يكصد namespace به همراه دات نت ارائه شده است. كه برخي از آنها شامل دهها كلاس ميباشند. ذكر تمامي name space ها به همراه كلاسهاي موجود در آنان، كار مشكلي بوده و امكان آن از حوصله اين بحث خارج است.
NameSpace، روش مناسبي به منظور تقسيم منطقي گروههايي از كلاسهاي مرتبط با يكديگر است. كلاس ها خود به صورت فيزيكي در فايلهاي DLL قرار گرفته و به همراه فريمورك دات نت، ارائه شده اند. فايلهاي DLL در دايركتوري فوق قرار دارند:
C:WINNTMicrosoft.NETFrame work<.NET Version>
در صورتي كه يك برنامه از كلاسهاي موجود در ساير DLLها، استفاده نمايد، ميبايست در زمان ترجمه، برنامه به DLL مربوطه مراجعه نمايد. يك DLL ممكن است شامل كلاسهايي از چنين namespace متفاوت بوده در حالي كه كلاسهايي از namespaceهاي مشابه ممكن است، به صورت فيزيكي در بين چندين فايل DLL توزيع شده باشند.
شكل فوق نحوه استقرار فريمورك به همراه مدل پياده سازي دات نت را نشان مي دهد.
مبلغ واقعی 16,000 تومان 50% تخفیف مبلغ قابل پرداخت 8,000 تومان
محبوب ترین ها
پرفروش ترین ها