
تحلیل محتوای علوم تجربی پایه پنجم سال تحصیلی 95 - 94 از نظر تاکید به مهارت های فرآیندی
فرمت :PDF
صفحات : 7
تحلیل محتوای علوم تجربی پایه پنجم سال تحصیلی 95 - 94 از نظر تاکید به مهارت های فرآیندی

تحلیل محتوای علوم تجربی پایه پنجم سال تحصیلی 95 - 94 از نظر تاکید به مهارت های فرآیندی
فرمت :PDF
صفحات : 7
XSL، در واقع دارای دو راستا می باشد، تبدیلات XSL یا XSLT (نگارش 1.0 که یک معرفی W3C است و نگارش 1.1 که ارائه شده است) و اشیاء قالب بندی XSL یا XSLFO. هر کدام هنگامی که واردکار با داده های XML می شوند، برای انجام وظایف متفاوتی طراحی می شوند.
XSLT اجازه می دهد محتوای XML را بگیریم و به هر شکل دیگری تغییر دهیم، ممکن است آن شکل دیگر، یک صفحة XTML یک فایل متنی یا حتی یک سند XML دیگر باشد. می توانیم محتوایی که می خواهیم نمایش داده شود را انتخاب کنیم و محتوا را اضافه کنیم یا حتی محتوایی را که آنجا وجود دارد اجرا کنیم. XSLT با تبدیل XML به HTML و افزودن اطلاعات شیوه CSS عمل می کند بلکه اساس آن CSS است و اساساً از همان صفحات و مقادیر استفاده می کند. در این صورت چه نیازی به آن داریم؟ چرا منحصراً از CSS استفاده نکنیم؟ یکی از نکات قوت XML، این است که می توان در محیطهای مختلف از آن استفاده کرد، نه تنها در مرورگر. به همین دلیل است خود را در موقعیتی ببینید که محیط کاری شما، کد XML را می شناسد ولی از HTML که در برگیرندة اطلاعات شیوه است یا به آن مراجعه می کند، چیزی متوجه نمی شود.
اشیاء قالب بندی XSL به عنوان بخشی از «درخت نتیجه» که بعد از تبدیل به دست می آید، می باشد، و می توانند توسط هر برنامه کاربردی که از آن پشتیبانی کند، پردازش شود.
آماده سازی
برای استفاده از معرفی لازم است آخرین نگارش MSXML3 دریافت شود.
نصب MSXML3
با وجود اینکه، دریافت و نصب MSXML3 شاید بسیار راحت به نظر برسد، گزارشات بسیار زیاد از سیستم ها رسیده است که پردازش کل XSL بعد از عملیات نصب، متوقف می شود. کاربران دو گزینه انتخابی دارند:
نصب MSXML3 در مد "side- by- side" که پیش فرض می باشد. ابتدا از ایجاد backup در C;\windows\system\MSXML.DDL مطمئن شوید. اگر این فایل خراب شد و پردازش XSL متوقف گشت، باید با جایگذاری backup، حداقل اجازة استفاده از گزینة انتخابی زیر را بدهد.
ادامه نصب پیش فرض و استفاده از پیش نویس کاری، اکثر اطلاعاتی که در این متن تحت پوشش قرار گرفته، برای هر دو حالت یکی هستند و ما فقط به یک استثنایی که در آنجا مثل هم نیستند، اشاره خواهیم کرد. بعداً، هنگامی که به پردازش XSLT روی سرویس دهنده (به جای سرویس گیرنده) می پردازیم، می توانیم از معرفی کامل آن برای تولید صفحات XHTML استفاده کنیم که در این صورت لازم نیست در هنگام ساخت برنامة کاربردی خود، نگران پشتیبانی مرورگر از XSL باشیم.
نصب MSXML3 از مراحل زیر است:
1 – مطمئن باشید که بر روی ماشین خود برنامة Windows Installer دارید. می توان از این آدرس آن را دریافت کرد:
http:\www.microsoft.com/msdwnload/
این نرم افزار را نصب کنید، مرورگر را ببندید و دوباره آن را باز کنید.
2 – نرم افراز را از روی اینترنت دریافت کنید. ما همراه اینترنت اکسپلرر از نگارش منتشر شده MSXML3 استفاده می کنیم که این نرم افزار در آدرس زیر پیدا می شود:
http:\msdn.microsoft. com/
هشدار: اگر نگارش قبلی MSXML را نصب کرده باشید، شاید لازم باشد آن را در اینجا ارتقا دهید. زیرا بعضی از نتایجی که در این فصل خواهیم دید، با نگارشهای قبلی متفاوت است.
3- از C:/windows/system/MSXL.DDL یک کپی به عنوان backup بگیرید، همان طور که قبلاً به آن اشاره شد.
4 – با دو بار کلیک کردن روی فایل msxm13.exe فایل دریافت شده از روی اینترنت را اجرا کنید.
5 – گاهی اوقات، در صورتی که پیش فرض، مد "side-by-side" باشد (که DLL قبلی را دست نخورده نگه می دارد) ممکن است نصب کامل نشود. شاید لازم باشد که یک فایل نصب دیگر، xmlinst.exe را اجرا کنید. که آن را می توان از آدرس زیر دریافت کرد:
http:\msdn.microsoft. com/downloads/default.asp?URL=/
cod\sample.asp?url=/msdn-files/027/001/469/msdncompositedoc.xml
پس از اینکه آن را دریافت کردید، روی آن دوباره کلیک کنید تا از حالت فشرده خارج شود. توجه داشته باشید که در کجا از حالت فشرده آن را خارج کرده اید. در پنجرة اعلان فرمان (Commad Prompt) به آن شاخه بروید و این را تایپ کنید:
Xmlipst
در این صورت، نصب کامل خواهد شد.
هشدار: با وجود این، مایکروسافت هنوز هم هشدار می دهد که بعضی از سیستم های ممکن است بعد از اجرای xmlinst.exe ناپایدار شوند. پس تنها در صورتی که نمی توانید برای گذراندن تست به زیر، به مرحلة نصب برسید، آن را اجرا کنید. برای خنثی کردن اثرات xmlinst.exe پیشنهاد می شود به شاخة مناسب بروید و تایپ کنید:
umlinst /u
معرفی جاوا
شاید توجه کرده باشید که تا به حال دربارة اینکه از چه سیستم عاملی استفاده می کنیم، صحبت نکرده ایم، زیرا هیچ فرقی نمی کند. XML تنها متن است و بر روی هر سیستم عاملی که بتوان یک فایل متنی ساخت، می تواند ساخته شود.
به هر حال معمولاً برنامه نویسی واقعی، محدودکننده تر از آن است. علاوه بر این، شما هنوز نمی توانید برنامه ای مثلاً برای اَپل مکینتاش بنویسید و آن را به همان شکل در ویندوز 98 اجرا کیند.
البته، این مساله به خوبی اصلاح شده است. عملکرد داخلی هر سیستم عامل و کامپیوتری با بقیه متفاوت است، بنابراین یک برنامه حتماً باید زبان مناسب برای صحبت کردن با آنها را می دانست. همچنین ممکن است تصور کنید، این کار با طبیعت وب چندان سازگار نیست، چون وب جایی است که یک مطلب باید بتواند به طور مجازی از طریق هر نوع سیستمی مورد دسترسی قرار گیرد. بنابراین، قبل از اینکه فردی بخواهد یک زبان فراگیر و جهانی پیشنهاد کند، تنها این مساله مهم بود.
در این حالت، آن فرد شرکت Sun Microsystems بود. سان پیش از آنکه اعلام کند که روی جاوا (زبان برنامه نویسی که در محیطهای مختلف قابل اجراست) کار می کند در حیطة کاری اینترنت وجهة خوبی داشت. زیرا در آن زمان، تمام سرویس دهنده های اینترنت روی سیستم عاملی به نام یونیکس اجرا می شدند و درصد بالایی از آنها از سولاریس (نمونه ای از یونیکس شرکت سان) استفاده می کردند.
التبه، در آن زمان ماشینهای رومیزی زیادی وجود نداشتند که از یونیکس استفاده کنند، بنابراین اختلاف زیادی بین نرم افزاری که روی سرویس دهنده اجرا می شد و نرم افزاری که می توانست روی مرورگر یا سرویس گیرنده اجرا شود وجود داشت.
جاوا تمام آنها را تغییر داد.
کلید موفقیت جاوا در ایدة JVM یا ماشین مجازی جاوا است. JVM بین کد و سیستم عامل قرار می گیرد و به عنوان یک مفسر کار می کند.
بنابراین تا زمانی که برای سیستم عامل شما اعم از ویندوز 98، یونیکس یا حتی هر چیزی که خودتان نوشته باشید یک JVM وجود داشته باشد کد جاوای یکسانی بر روی سیستم اجرا خواهد شد. بدین ترتیب شعار «یکبار نوشتن، در هر جایی اجرا شدن» برقرار می باشد.
توجه: کسانی که دقت بیشتری دارند توجه خواهند داشت که در آخرین سالهای دهة 90، بین تولید کنندگان اصلی بر سر نگارشهای بهینة جاوا برای سیستم عاملهای خاص عدم هماهنگی و اختلاف پیش آمد. این مساله به برنامه های Java Compatible , 100% Pure Java, SUN منتهی شد. فقط بر نرم افزار Pure Java تکیه خواهیم کرد.
انتخاب عباراتی برای توصیف نوع JVM به عنوان یک مفسر، لازم بود. برنامه نویسانی که در زبانهایی مثل C++ حرفه ای هستند، متوجه خواهند شد که دو نوع زبان وجود دارد: زبانهای کامپایل شدنی و زبانهای تفسیر شدنی یک زبان کامپایل شدنی (مثل C یا C++) ابتدا نوشته می شود و بعد به زبان محلی سیستمی که روی آن اجرا خواهد شد. ترجمه می شود. این روش عملیات را سریع می کند. نقطه ضعف این روش آن است که چون برنامه ای به زبان محلی خاص آن سیستم ترجمه شده است. به طور کلی نمی تواند در یک محیط دیگر به کار رود، از طرف دیگر، یک زبان تفسیر شدنی مثل بیسیک یا هر زبان اسکریپت دیگر، تا هنگام به اجرا به زبان محلی ترجمه نمی شود که این ویژگی، قابلیت حمل برنامه را بالاتر می برد.
در این صورت جاوا در کدام دسته قرار می گیرد؟
در واقع، در جایی بین هر دو یک برنامة جاوا به «بایت کد» کامپایل، سپس در هنگام اجرا شدن توسط JVM تفسیر می شود. در دورانی که جاوا معرفی می شد، شرکت سان یک کامپایلر JIT را هم اضافه کرد که کد را درست قبل از اجرا شدن کامپایل می کرد و سبب بهبود کارایی سیستم می شد. به هر حال به منظور افزایش قابلیت حمل، در حال حاضر تصور می کنیم که جاوا یک زبان تفسیر شدنی است.
پس، کل این مباحث به چه معنا است؟
به این معنا است که چون جاوا به هیچ سیستم عامل خاصی مربوط نمی شود، یک انتخاب مناسب، برای توسعة برنامه های کاربردیی است که به هیچ محیط خاصی مربوط نمی شوند. اکثریت ابزارها و برنامه های کاربردی توسعة برنامه های کاربردی XML در جاوا تولید می شوند و ما هم از این شیوه پیروی خواهیم کرد.
نصب Java 2 SDK
قبل از اینکه حتی بتوان در مورد اجرای برنامه های کاربردی و نوشتن هر برنامه ای در جاوا فکر کرد، باید چند نرم افزار نصب کرد. ابتدا به یک JVM نیاز داریم. همچنین کلاس های اصلی یا برنامه هایی که ساختار زیر بنایی زبان را شکل می دهند لازم هستند، در نهایت، به کامپایلری احتیاج داریم که برنامة ما را به بایت کدی که JVM را می فهمد برگرداند.
محل گرفتن Java 2 SDK
جایی که می خواهید از آن کامپایلری بگیرید به اینکه چه سیستم عاملی را اجرا می کنید بستگی دارد. SUN Microsystems از نگارشهایی برای مایکروسافت ویندوز، لینوکس و همین طور سولاریس پشتیبانی می کند. JVM های قابل دسترسی دیگری هم از شرکتهای دیگری مثل اپل، مایکروسافت و آی بی ام وجود دارند. برای دریافت کردن از شرکت سان، آدرس روبه رو را به مرورگر خود بدهید:
http:// java . sun .com/ j2se/
اگر نام سیستم عامل شما روی آن صفحه نبود به این آدرس بروید تا لیستی از نگارشهای موجود در را دریافت کنید:
http:// java . sun .com/cgi-bin/java-ports.cgi
مطمئن شوید که SDK را بگیرند نه اینکه فقط یک محیط زمان اجرا بگیرید. به عنوان مثال MacOS را پیدا می کنید و لینک مقابل آن را دنبال می کنید. صفحه ای را پیدا خواهید کرد که مراحل ضروری برای رسیدن به MRJ 2.2.2 را توضیح می دهد
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 37 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید
دات نت محیطی جدید بمنظور طراحی، پیاده سازی و اجرای برنامه های کامپیوتری را در اختیار طراحان و پیاده کنندگان نرم افزار قرار می دهد. با استفاده از پلات فرم فوق ، می توان بسرعت اقدام به پیاده سازی نرم افزار نمود.
برنامه های تولیده شده ، امکان استفاده از پتانسیل های محیط
( Common Language Runtime CLR ) را خواهند داشت . آشنائی با مفاهیم اولیه برنامه نویسی در محیط فوق ، دارای اهمیت خاص خود بوده و سرعت در استفاده مطلوب از محیط فوق ، را بدنبال خواهد داشت . در مقالاتی که در این زمینه ارائه خواهد شد به بررسی مفاهیم اولیه برنامه نویسی محیط فوق ، خواهیم پرداخت . در این راستا ، در ابتدا با نحوه نوشتن یک برنامه آشنا و در ادامه به تشریح برخی از مفاهیم مهم در این زمینه ، خواهیم پرداخت .
نوشتن یک برنامه در فریمورک دات نت
تمامی زبانهای حمایت شده در دات نت ، از سیستم نوع یکسان ، کتابخانه کلا س فریمورک مشابه و CLR استفاده خواهند کرد . بدین ترتیب، تمامی برنامه های نوشته شده با یکی از زبانهای حمایت شده ، خصایص مشابهی را به اشتراک می گذارند. شاید مهمترین تفاوت قابل توجه در رابطه با زبان های برنامه نویسی حمایت شده در دات نت ، به گرامر هر یک از آنها برگردد . ( در مثال هائی که در این مقاله ذکر می گردد ، از ویرایشگر Notepad ،در مقابل ویژوال استودیو دات نت، استفاده شده است . مثال های ارائه شده به اندازه کافی ساده بوده تا بتوان بکمک آنان با فرآیندهای ترجمه و اجراء ، بسرعت آشنا گردید ).
نوشتن یک برنامه
برای نوشتن یک برنامه ساده در دات نت ، مراحل زیر را دنبال می نمائیم :
• فاز اول : ایجاد برنامه
برنامه Notepad را فعال و پس از درج کدهای زیر آن را با نام Hello.vb ، ذخیره نمائید .
یک برنامه نمونه نوشته شده به زبان VB.NET
Imports System
Public Class MainApp
Public Shared Sub Main( )
Console.WriteLine( "Welcome to .NET Programming " )
End Sub
End Class
• فاز دوم : ترجمه و ایجاد یک فایل اجرائی
برای اجراء برنامه ایجاد شده در مرحله قبل ، در ابتدا کمپایلر VB.NET را از طریق خط دستور و بصورت زیر فعال می نمائیم : ( دستور فوق را می توان از طریق خط دستور ویندوز و یا خط دستور موجود در ویژوال استودیو ، فعال کرد )
vbc Hello.vb
در ادامه و پس از ایجاد فایل اجرائی (hello.exe ) ، امکان اجرای برنامه فراهم می گردد.
استفاده از Namespace
با استفاده از VB.NET ، می توان به کلاس ها مراجعه و از آنان استفاده کرد . در مثال زیر ، یک نمونه از کلاس System.Io.FileStream ، ایجاد شده است .
Dim aFileStream As System.IO.Filestream
مراجعه به Namespace های مورد نیاز در یک برنامه روشی مناسبتر در این زمینه است . با استفاده از namespace ، ضرورتی به توصیف تمامی مراجعات به کتابخاته کلاس ، وجود نخواهد داشت .
Imports System.IO
.....
Dim aFileStream As Filestream
مثلا" برای دستیابی به اشیاء System ، می بایست از Namespace با نام System در برنامه استفاده گردد. ( Imports) .
تعریف namespace و کلاس
VB.NET ، امکانات حمایتی لازم در خصوص ایجاد Namespace های خاص و کلاس های مربوط به آن را ارائه می نماید. (نکته : مدل زیر یک روش عمومی برای نامگذاری namespace است ) :
CompanyName.TechnologyName
.For Example:
Microsoft.Office
namespace در VB.NET
در VB.NET با استفاده از عبارت namespace می توان یک namespace را تعریف کرد . با استفاده از namespace تعریف شده ، امکان کپسوله نمودن کلاس های ایجاد شده ، فراهم خواهد شد.
Namespace CompVB
Public Class StringComponent
....
End Class
End Namespace
برخی از ویژگی های namespace عبارتند از :
• namespace می تواند درون سایر namespace ها ، مستقر گردند .
• یک namespace می تواند در چندین فایل تعریف گردد .
• یک فایل حاوی کد مبداء می تواند چندین namespace را تعریف نماید.
نقاط ورود ، حوزه ، تعاریف
هر برنامه اجرائی می بایست شامل یک نقطه ورود خارجی باشد . مکان فوق ، محلی را که برنامه اجرای خود را از آنجا آغاز می نماید ، مشخص می نماید..در VB.NET تمامی کد می بایست در متدهای یک کلاس قرار بگیرد.
نقاط ورود در VB.NET
بمنظور ارائه کد نقطه ورود در VB.NET ، در ابتدا می بایست یک ماژول و یا یک کلاس مشخص گردد .
Public Module modMain
Public Class clsMain
در ادامه می بایست نقطه ورود برای برنامه ، مشخص گردد. نقطه ورود ، می بایست بعنوان یک متد عمومی که main نامیده می شود ، در نظر گرفته شود.( کمپایلر به دانش فوق نیاز خواهد داشت ) . در یک کلاس ، متد فوق می بایست بصورت اشتراکی تعریف گردد .امکان تعریف متد فوق در یک ماژول بصورت اشتراکی ، وجود نخواهد داشت . نحوه تعریف ( مشخص نمودن ) نقاط ورود برای یک ماژول و یا یک کلاس ، بصورت زیر است :
Public Module modMain
Public Sub Main( )
...
End Sub
End Module
Public Class clsMain
Public Shared Sub Main( )
...
End Sub
End Class
حوزه
VB.NET ، از نقطه بعنوان یک عملگر resolution حوزه ، استفاده می نماید . مثلا" در صورت استفاده از متد WriteLine مربوط به کلاس Console ، از گرامر Console.WriteLine ، استفاده می شود.
تعاریف
در VB.NET ، الزامی به تعریف یک متغیر قبل از استفاده از آن نمی باشد . پیشنهاد می گردد که در چنین مواردی متغیرها با صراحت تعریف گردند. در این راستا می توان از عبارت options ، استفاده کرد. بمنظور ایجاد نمونه ای از یک شی ، از New استفاده می گردد. مثال زیر ، نحوه تعریف یک شی از نوع Comp در namespace با نام Lib و با نام MyComp را نشان می دهد .
Dim myComp As New Lib.Comp( )
کنسول ورودی و خروجی
می توان از کلاس Console ، مربوط به CLR وابسته به System Namespace ، برای ورودی و خروجی هر نوع رشته و مقادیر عددی توسط متدهای Read , ReadLine و Write,WriteLine استفاده کرد . برنامه زیر، نحوه نمایش یک رشته در خروجی را نشان می دهد .
برنامه نمونه :
Imports System
Public Class MainApp
Public Shared Sub Main( )
Console.WriteLine( "Welcome to .NET Programming " )
End Sub
End Class
ترجمه و اجراء یک برنامه فریمورک دات نت
اکثر جنبه های برنامه نویسی در دات نت برای تمامی زبانهای سازگار ، یکسان است . هر کمپایلر حمایت شده باعث تولید کدهای "خود تشریح " MSIL)Microsoft Intermediate Language) ، می گردد . تمامی کدهای مدیریت یافته ( Managed code ) با استفاده از CLR(Common Language runtime) ، اجراء خواهند شد . CLR ، امکان یکپارچگی بین برنامه ها ، مدیریت اتوماتیک حافظه ، برخورد یکدست با موارد خاص و استثناء ، امنیت پیشرفته و در نهایت یک مدل برنامه نویسی ساده و همگن را ارائه می نماید.
گزینه های کمپایلر
فریمورک دات نت، دارای یک کمپایلر خط دستوری برای VB.NET است ( vbc.exe ) . برای ترجمه برنامه Hello.vb ، بکمک کمپایلر فوق ، از دستور زیر استفاده می شود :
vbc Hello.vb
گرامر فوق، باعث فراخوانی کمپایلر VB.NET می گردد. در این مثال خاص، صرفا" نام فایل مورد نظر برای کمپایلر مشخص شده و در ادامه ، کمپایلر فایل اجرائی را تولید خواهد کرد ( Hello.exe )
گزینه های خط دستور
در VB.NET ، می توان لیست کاملی از گزینه های همراه کمپایلر را با استفاده از ?/ ، مشاهده نمود ( ?/ Vbc ) . از گزینه های مفید در این زمینه، می توان به سوئیچ out/ ، ( نام فایل خروجی را مشخص می نماید) و سوئیچ target/ ، ( نوع کد مقصد را مشخص می نماید") ، اشاره کرد. بصورت پیش فرض ، نام فایل خروجی مشابه نام فایل ورودی و با انشعاب exe . ، خواهد بود. مقدار پیش فرض برای تعیین نوع کد مقصد ، یک برنامه اجرائی است ( سوئیچ t/ ، دارای عملکردی معادل با سوئیچ target/ است ). دستور زیر نحوه استفاده از سوئیچ های فوق را نشان می دهد :
vbc /out :hello.exe /t:exe hello.vb
استفاده از گزینه کمپایل reference/
در زمان مراجعه به سایر اسمبلی ها ، می بایست از سوئیچ reference/ ، استفاده گردد . گزینه فوق این امکان را برای کمپایلر فراهم می آورد که اطلاعاتی را ایجاد و در کتابخانه های مشخص شده استقرار تا زمینه استفاده از آنان برای کد مورد نظر ( در حال ترجمه ) ، فراهم گردد. مثال زیر نحوه ایجاد یک برنامه اجرائی از طریق خط دستور و با استفاده از reference / ، را نشان می دهد .
( عملکرد سوئیچ r / مشابه reference / است ).
Vbc / r:assembll.dll , assemb2.dll / out :output.exe input.vb
در بخش دوم این مقاله به بررسی فرآیند اجراء مدیریت یافته ( اداره شده ) ، خواهیم پرداخت .
مفاهیم اولیه برنامه نویسی در دات نت ( بخش دوم )
در بخش اول این مقاله به بررسی یک برنامه نمونه ساده دات نت پرداخته شد و از این رهگذر با برخی مفاهیم اولیه و در عین حال مهم برنامه نویسی در دات نت آشنا شدیم . در بخش دوم این مقاله به بررسی فرآیند اجراء پرداخته و بدنبال آن با برخی دیگر از مفاهیم اساسی برنامه نویسی در دات نت آشنا خواهیم شد .
در فریمورک دات نت ، CLR زیر ساخت لازم برای یک محیط اجراء مدیریت یافته ( اداره شده ) را فراهم می نماید . در زمان پیاده سازی یک برنامه در فریمورک دات نت ، برنامه مورد نظر می تواند با استفاده از هر یک از زبان های سازگار با CLR ، نوشته گردد. کمپایلر استفاده شده ، کدها را به مقصد CLR ، ترجمه می نماید . پس از فرآیند ترجمه کد نوشته شده ، یک ماژول مدیریت یافته( اداره شده ) ایجاد خواهد شد. ماژول فوق، در فایلی که PE)Portable Executable) ، نامیده می شود، قرار گرفته و شامل اطلاعات زیر خواهد بود :
• MSIL)Microsoft Intermediate Language) ، کمپایلر کد نوشته شده را به MSIL ترجمه می نماید . کد فوق ، مجموعه ای از دستورالعمل های مستقل از نوع پردازنده بوده و در ادامه با توجه به نوع پردازشگر به کدهای مختص ماشین تبدیل می گردند.
• Type metadata .اطلاعات فوق ، نوع ها ، اعضاء و سایر مراجع استفاده شده توسط CLR در زمان اجراء را بطور کامل تشریح خواهد کرد.
• مجموعه ای از سایر منابع . منابع فوق ، شامل موارد متععدی نظیر فایل های Jpg . و یا Bmp . ، می باشند .
اگر در زمان استفاده از کمپایلر ویژوال بیسیک از سوئیچ target / ، استفاده و مقدار آن Exe و یا Library در نظر گرفته شود ، کمپایلر یک ماژول اجرائی را تولید که یک اسمبلی (Assembly ) خواهد بود. اسمبلی ها بخش ضروری و اساسی برنامه نویسی در فریمورک دات نت بوده و CLR از آنان بعنوان واحدهای پایه و بمنظور اشتراک ، بکارگیری امنیت و ورژن های متفاوت، استفاده می نماید. CLR دات نت ، صرفا" کدهای MSIL را که در یک اسمبلی موجود می باشند ، اجراء خواهد کرد . در صورتیکه بهمراه سوئیچ target / (در کمپایلر ویژوال بیسیک ) ، از Module استفاده شود ، کمپایلر یک ماژول مدیریت یافته را تولید که یک اسمبلی نخواهد بود .ماژول تولیده شده ، شامل یک مانیفست نبوده و نمی تواند توسط CLR ، اجراء گردد. یک ماژول مدیریت یافته را می توان به یک اسمبلی و از طریق استفاده از کمپایلر ویژوال بیسیک و یا با استفاده از Assembly Linker) Al.exe) اضافه نمود. در ادامه به تشریح MSIL ، متادیتا و اسمبلی خواهیم پرداخت .
کد اجرائی
در زمان اجرای یک برنامه مدیریت یافته ، لودر سیستم عامل ، CLR را در حافظه مستقر و در ادامه زمینه اجرای کد MSIL ماژول های مدیریت یافته ، فراهم می گردد. با توجه به اینکه پردازنده میزبان در مقطع کنونی ، قادر به اجرای مستقیم دستورالعمل های MSIL نخواهد بود، CLR ، می بایست در ابتدا دستورالعمل های MSIL را به کد مختص ماشین و با توجه به نوع پردازنده ، تبدیل نماید .
CLR ، تمام کدهای MSIL را به دستورالعمل های مستقل از پردازنده در زمان لود ، ترجمه نخواهد کرد . در مقابل، CLR در زمان فراخوانی هر یک از توابع ، دستورالعمل های مربوطه را به کد مختص پردازنده تبدیل خواهد کرد.MSIL ، صرفا" در زمان مورد نیاز، ترجمه خواهد شد . عناصر CLR که مسئولیت انجام عملیات فوق را برعهده دارند، کمپایلر JIT)Just in Time) ، نامیده می شود . ترجمه JIT ، باعث صرفه جوئی حافظه و زمان در حین مقداردهی اولیه برنامه می گردد .
Appliaction Domain
سیستم عامل و محیط های اجراء نوع های خاصی از ایزولاسیون ( تمایز) بین برنامه ها را ارائه می نمایند . با ارائه سرویس فوق ، این اطمینان بوجود خواهد آمد که یک برنامه در حال اجراء قادر به تاثیر منفی بر سایر برنامه ها ی غیر مرتبط ، نخواهد بود . ویژگی فوق ، یک واحد ایمن و چندکاره پردازش را ارائه نموده و CLR بر اساس آن قادر به ایزولاسیون بین برنامه ها خواهد بود. حوزه های برنامه ، عموما" توسط میزبانان زمان اجراء که مسئولیت فعال نمودن CLR قبل از اجرای برنامه ها را برعهده دارند ، فراهم می گردد.
متادیتا
هر کمپایلر که مقصد آن CLR است ، نیازمند توزیع ( انتشار) کامل متادیتا در هر یک از ماژول های مدیریت یافته است .متا دیتا ، مجموعه ای از جداول داده بوده که بصورت کامل هر یک از عناصر تعریف شده در یک ماژول را تشریح می نماید .اطلاعات فوق ، شامل نوع داده ، اعضاء بهمراه تعاریف مربوطه ، پیاده سازی و مراجعه به سایر نوع ها و اعضاء باشد . متادیتا ، تمامی اطلاعات موردنیازبرای ارتباط عناصر نرم افزاری تولیده شده را در اختیار CLR قرار خواهد داد .رویکرد فوق ، جایگزینی مناسب برای تمامی تکنولوژی های قدیمی نظیر: IDL)Interface Defination Language) ، کتابخانه های نوع و ثبت خارجی ( External registration ) ، می باشد. متا دیتا همواره در یک فایل exe . و یا dll . ، حضور داشته و شامل کد MSIL است . بنابراین ، امکان تفکیک متادیتا از کد MSIL وجود نخواهد داشت .با توجه به اینکه متادیتا در یک مستقل از یک زبان برنامه نویسی خاص بوده و در یک محل مرکزی نظیر ریجستری ویندوز ذخیره نمی شوند ، امکان تشریح اتوماتیک برنامه های دات نت ، فراهم می گردد.
متادیتا دارای کاربردهای متعددی است که مهمترین آنها عبارتند از :
• مکان یابی و لود کلاس ها . با توجه به اینکه متا دیتا و MSIL در یک فایل مشابه قرار دارند ، تمام اطلاعات موجود در این فایل برای CLR ، در زمان ترجمه قابل استفاده بوده و ضرورتی به استفاده از فایل های هدر(header) وجود نخواهد داشت ( تمام نوع ها در هر اسمبلی توسط مانیفست مربوطه اسمبلی ، تشریح می گردند ).
• تاکید امنیت . متا دیتا ، می تواند شامل مجوزهای لازم بمنظور اجراء کد باشد ( البته عکس عبارت فوق نیز ممکن است وجود داشته باشد ، یعنی متا دیتا می تواند شامل مجوزهای لازم بمنظور اجراء کد نباشد ) . سیستم امنیتی از مجوزها استفاده تا باعث ممانعت کد از دستیابی به منابعی گردد که مجوز لازم برای دستیابی به آنان وجود ندارد
MSIL
MSIL مایکروسافت که در برخی حالات Managed code نامیده می شود ، دستورالعمل هایی می باشند کمپایلرآنها را در زمان ترجمه کد اولیه ، تولید می نماید. صرفنظر از سازماندهی منطقی آنان ، اکثر اسمبلی ها شامل کدهائی با فرمت MSIL می باشند . MSIL یک زبان ماشین مستقل از پردازنده بوده که توسط مایکروسافت و مشاوره با سایر تولیدکنندگان کمپایلر، ایجاد شده است . MSIL یک زبان بمراتب سطح بالاتر نسبت به اکثر زبان های ماشین است . MSIL شامل دستورالعمل های لازم برای عملیات متداولی نظیر : دستوراتی برای ایجاد ، مقداردهی و صدا زدن متدهای مربوط به یک شی ( اشیاء ) ، دستورات لازم برای عملیات منطقی جاری ، Control Flow ,DMA و Exception handling می باشد .
قبل از اینکه کد MSIL قادر به اجراء گردد ، می بایست به کد مختص یک پردازنده خاص توسط یک کمپایلر JIT ، تبدیل گردد. CLR ، یک کمپایلر JIT با معماری خاص برای هر نوع معماری پردازنده ، ارائه می نماید . کمپایلرهای JIT مبتنی بر یک معماری خاص ، امکان نوشتن کد مدیریت یافته را فراهم تا در ادامه و بکمک آن امکان ترجمه و تولید کد وابسته به یک معماری خاص فراهم و در نهایت زمینه اجراء کد نوشته شده ، فراهم گردد.(هر کد مدیریت یافته که API مختص یک سیستم عامل و یا کتابخانه ها را استفاده می نماید ، صرفا" قادر به اجراء بر روی سیستم های عامل خاصی خواهد بود ) .
اسمبلی ها
یکی دیگر از عملیاتی که CLR ، انجام می دهد لود و اجرای برنامه های دات نت است . برنامه های دات نت بعنوان اسمبلی بکار گرفته می شوند . اسمبلی شامل یک و یا چندین فایل EXE و یا DLL بهمراه اطلاعات متا دیتا است . متا دیتا مربوط به تمام اسمبلی در مانیفست اسمبلی ذخیره می گردد . CLR ، از اسمبلی بعنوان واحدهای عملیاتی جهت اشتراک و استفاده مجدد استفاده می نماید. یک اسمبلی ، واحد بکارگیری کلاس است ( در مقایسه با یک Dll منطقی ) هر اسمبلی شامل تمامی فایل های فیزیکی است که واحد اجرائی ( عملیاتی ) را تشکیل خواهد داد ( ماژول مدیریت یافته ، منابع ، فایل های داده ) . از لحاظ مفهومی ، اسمبلی ، روشی را بمنظور مشاهده مجموعه ای از فایل ها بعنوان یک موجودیت ، فراهم می نماید. استفاده از اسمبلی ها بمنظور ایجاد یک برنامه ، یک باید است . در این راستا می توان ، نحوه بسته بندی اسمبلی ها بمنظور استفاده را انتخاب کرد.
مانیفیست اسمبلی ( Assembly Manifest )
یک اسمبلی شامل بلاکی از داده ها است که "مانیفست " ، نامیده می شود . مانیفست ، جدولی است که هر entry آن نام یک فایل بوده و بعنوان بخشی از اسمبلی در نظر گرفته خواهد شد.مانیفست شامل متا دیتا ئی است که بمنظور مشخص نمودن ملزومات ورژن ، یکسان سازی امنیت ، و سایر اطلاعاتی مورد نیازی است که از آنان بمنظور تعریف حوزه اسمبلی و مراجع لازم بمنظور دستیابی و استفاده از منابع ها و کلاس ها ، استفاده می گردد. با توجه به اینکه متادیتا باعث می شود که یک اسمبلی دارای ویژگی خود تشریحی گردد ، CLR همواره دارای اطلاعات مورد نیاز در رابطه با اسمبلی بمنظور اجراء آن خواهد بود . تمامی برنامه ها که توسط CLR اجراء می گردند ، می بایست ترکیبی از یک و یا چندین اسمبلی باشند . تمام فایل هائی که یک اسمبلی را ایجاد می نمایند در مانیفست اسمبلی لیست می گردند . مانیفست ، قادر به ذخیره شدن در یک و یا چندین فایل است:
• اسمبلی های تک فایل ( Single-file) . اگر اسمبلی صرفا" دارای یک فایل مرتبط باشد ، مانیفست همرا ه و مرتبط با فایل PE ، خواهد بود .
• اسمبلی های چند فایل ( Multi-file ) ، اگر اسمبلی دارای بیش از یک فایل مرتبط باشد ، مانیفست می تواند بصورت یک فایل stand alone بوده و یا در یکی از فایل های PE در اسمبلی مستقر گردد.
ابزارهای CLR
CLR ، در رابطه با تست و اشکال زدائی کد MSIL دو ابزار را ارائه می نماید:
• اسمبلر MSIL . اسمبلر MSIL ( فایل ILasm.exe ) کد MSIL را بعنوان ورودی اخذ و یک فایل PE شامل نمایش باینری کد MSIL بهمراه متا دیتا مورد نیاز را تولید می نماید . گرامر استفاده بصورت زیر است:
ILasm [options] filename [options]
• برنامه MSIL Disassembler . با استفاده از برنامه فوق ( فایل ILdasm.exe ) می توان بررسی لازم در خصوص متدیتا و کد disassembled هر یک از ماژول های مدیریت یافته را انجام داد .
استفاده از برنامه ILdasm.exe
برنامه ILDASM ، قادر به نمایش متادیتا و دستورالعمل های MSIL مرتبط با کد دات نت است . ابزار فوق ، بمنظور اشکال زدائی و افزایش شناخت شما نسبت به زیر ساخت دات نت بسیار مفید است . برنامه زیر ، کد نوشته شده به زبان ویژوال بیسیک را بمنظور نمایش یک عبارت ساده در خروجی نشان می دهد .
یک برنامه نمونه نوشته شده به زبان VB.NET
Imports System
Public Class MainApp
Public Shared Sub Main( )
Console.WriteLine( "Welcome to .NET Programming " )
End Sub
End Class
برای ترجمه برنامه فوق و با استفاده از کمپایلر ویژوال بیسیک ، دستور زیر را وارد می نمائیم :
> VBC Welcome.VB
پس از اجرای دستور فوق ، فایل Welcome.exe تولید می گردد .
• مرحله اول : در برنامه ویژوال استودیو دات نت و از طریق خط دستور برنامه Welcome.exe را فعال می نمائیم :( ildasm Welcome.exe ) . پس از باز نمودن آیکون MainApp ، رابط کاربر گرافیکی Disassembler اطلاعاتی را در رابطه با فایل Welcome.exe نمایش خواهد داد.
• مرحله دوم : نمایش محتویات مانیفست . بر روی MANIFEST کلیک نموده و در ادامه شاهد نمایش پنجره MANIFEST خواهیم بود.
در بخش سوم این مقاله به بررسی کمپایلر JIT و سایر موارد در ارتباط با برنامه نویسی دات نت ، خواهیم پرداخت .
مبانی دا ت نت ( بخش اول )
دات نت ، پلات فرم جدید ماکروسافت بمنظور تحقق نظریه : " نرم افزار بعنوان سرویس " ، است . دات نت یک محیط پیاده سازی است که بکمک آن می توان اقدام به ایجاد و بکارگیری نرم افزار و نسل جدیدی از عناصر موسوم به " سرویس های وب " ، نمود. تمامی محصولات اصلی ماکروسافت از ویژوال استودیو دات نت تا ویندوز و نهایتا" مجموعه آفیس ، متاثر از پلات فرم فوق شده و خواهند شد . دات نت به پیاده کنندگان این امکان را خواهد داد که با زبان برنامه نویسی مورد علاقه خود ، اقدام به پیاده سازی برنامه ها نمایند. ویژگی ( پتانسیل ) فوق از طریق معرفی CLR)Common Language Runtime )، میسر شده است . در این مقاله قصد داریم به بررسی دات نت پرداخته و پتانسیل ها و قابلیت های آن را تشریح نمائیم .
در جولای سال 2000 ، شرکت ماکروسافت در کنفرانس پیاده کنندگان حرفه ای (PDC ) ، در شهر Orlando ایالت کالیفرنیا ، جزئیات بیشتری از نسل جدید پلات فرم خود ( دات نت ) بمنظور پیاده سازی برنامه های ویندوز و اینترنت را در اختیار علاقه مندان خصوصا" پیاده کنندگان نرم افزار قرار داد . محوریت ابتکار فوق ، بر فریمورک دات نت استواربوده ونشاندهنده یک پلات فرم مناسب بهمراه کتابخانه های کلاس گسترده ای است که پتانسیل های متعددی را در اختیار قرار می دهد. یکی از نکات قابل توجه در پلات فرم فوق،استفاده از XML و SOAP بمنظور ارتباط بین نرم افزارها ی موجود در اینترنت ( نرم افزارهای مبتنی بر وب ) ، است . در این راستا مجموعه ای از محصولات مبتنی بر سرویس دهنده با نام سرویس دهندگان Enterprise دات نت، مطرح که بمنزله نسل جدیدی از محصولات Backoffice ماکروسافت ، می باشند.
فریمورک دات نت ، مدلی کاملا" جدید بمنظور برنامه نویسی و بکارگیری نرم افزار را ارائه نموده است. "بیل گیتس "، در سخنرانی خود در PDC ، بدین نکته اشاره داشتند که در هر پنج تا شش سال ما شاهد یک تحول عمده در رابطه با پیاده سازی نرم افزار بوده ایم . آخرین موارد در این زمینه به سوئیچ از DOS به ویندوز در سال 1990 و گذر از پیاده سازی شانزده بیتی به سی و دو بیتی ( از ویندوز widows 3.x به ویندوز NT/95 ) در اواسط دهه 90 میلادی ، است.
با معرفی دات نت در PDC ، پیاده کنندگان آن را معماری مناسبی برای پیاده سازی نرم افزار ( برنامه های Desktop و برنامه های وب ) مشاهده نمودند . ویژوال استودیو دات نت ، اولین محصول مبتنی بر دات نت ماکروسافت بوده که در سال 2001 در اختیار علاقه مندان قرار گرفت . اهمیـت دات نت برای ماکروسافت تا بدین حد است که در سال 2001 ، بیش از هشتاد درصد منابع بخش تحقیق و توسعه این شرکت در رابطه با آن صرف شده است . زبان سی شارپ ، که زبانی جدید برای برنامه نویسی در دات نت است بعنوان زبان استاندارد برای پیاده سازی داخلی در شرکت ماکروسافت پذیرفته شده است .
یک پلات فرم مناسب برای آینده
دات نت، اولین پلات فرم طراحی شده از صدر تا ذیل با در نظر گرفتن واقعیتی با نام اینترنت است . دات نت از یک ماشین مجازی خاص در این زمینه استفاده می نماید . ماهیت ماشین مجازی فوق ، بگونه ای است که از API ویندوز فاصله و در این رابطه از یک کتابخانه کلاس استفاده می نماید که می توان به جرات این ادعا را داشت که تاکنون نظیر آن ، ایجاد نشده است . امکان استفاده از زبانهای متعدد برنامه نویسی ، وجود خواهد داشت .معماری دات نت ، امکان ارتباط بین زبانها را بسادگی فراهم خواهد کرد .دات نت ، یک رویکرد جدید در رابطه با پیاده سازی نر م افزار را مطرح نموده است . نگاه به دات نت ، عمدتا" بصورت سیستم های توزیع شده است. با استفاده از XML ،امکان اجرای توابع بر روی کامپیوترهای متفاوت یک سازمان ویا جهان فراهم و جلوه ای زیبا در همیاری بمنظور اجرای یک برنامه ، به نمایش در خواهد آمد. از این منظر ، سیستم ها از سرویس دهندگان تا سیستم های بدون کابل ، قادر به اشتراک پلات فرم عمومی یکسانی خواهند بود . با استفاده از نسخه های دات نت که برای تمام آنها در دسترس خواهد بود، امکان ارتباط مناسب آنها با یکدیگر فراهم خواهد شد. دات نت ، بمنظور طراحی و پیاده سازی برنامه های سنتی نیز راهکارها و امکانات مناسبی را ارائه تا از این طریق امکان پیاده سازی و بکارگیری این نوع از نرم افزارها ، بسادگی انجام گیرد . برخی از تکنولوژی ها ی ارائه شده در دات نت نظیر فرم های ویندوز، تلاشی در این راستا است .
ایده های اولیه
از اواخر سال 1995 ، شرکت ماکروسافت توجهی خاص و قابل توجه نسبت به اینترنت نمود . هدف ماکروسافت در این زمینه پیوند بین پلات فرم ویندوز و اینترنت بود. ماحصل تلاش ماکروسافت در این زمینه ارائه مدل برنامه نویسی Windiws DNA ، بود . در این راستا مجموعه ای از ابزارها و تکنولوژی های مبتنی بر اینترنت ، طراحی و ارائه گردید . ASP ، از اولین تلا ش های ماکروسافت در این زمینه است . عملا" در این زمینه ( مطرح شدن اسکریپت ها ی مفسری ) یک برگشت به عقب نسبت به پیاده سازی ساختیافته و شی گراء را شاهد بوده ایم . طراحی ، اشکال زدائی و نگهداری چنین کدهای غیر ساختیافته ای مسائل خاص خود را خواهد داشت . سایر زبانها نظیر ویژوال بیسیک بصورت موفقیت آمیز در رابطه با برنامه نویسی بر روی اینترنت و پلات فرم ماکروسافت استفاده می گردید ولی اغلب از آن بمنظور ایجاد عناصری که از طریق ASP ، بخدمت گرفته می شدند ، استفاده می گردید .در این رابطه تلاش های اندکی نیز در جهت ایجاد یک اینترفیس مبتنی بر وب بر روی زبان های سنتی نظیر webclasses در VB ، نیز انجام شد ولی هیچکدام از تلاش های فوق ، در سطح گسترده ای مورد استقبال و پذیرش قرار نگرفت . ماکروسافت در صدد حل آشفتگی های همراه برنامه های ویندوز DNA بود . ویندوز DNA ، تصویری مناسب از یک معماری Three-Tire و مبتنی بر COM بود که تکنولوژی ASP در لایه Presentation ، اشیاء Bussiness در لایه میانی و یک engine بانک اطلاعاتی رابطه ای در لایه Data ، قرار می گرفت . مفاهیم همراه DNA ،کامل و بی عیب بود اما در زمان استفاده عملیاتی چالش های خاص خود را بدنبال داشت . پیاده سازی عناصر COM ، مستلزم یک سطح مناسب از دانش و مهارت است و می بایست زمان زیادی در این رابطه صرف گردد . بکارگیری نرم افزارهای DNA ، نیز مسائل خاص خود را داشت ( مسائل مربوط به ورژن ، نصب عناصر و عناصری که با آن مرتبط می باشند ) .
بموازات تلاش سایر شرکت ها در رابطه با ارائه راهکارهائی خاص بمنظور پیاده سازی برنامه ها ی وب ، شرکت ماکروسافت در صدد برطرف نمودن محدودیت های مدل برنامه نویسی DNA گردید.
تولد دات نت
در اوایل سال 1998 ، گروهی از پیاده کنندگان نرم افزار در ماکروسافت ، کار خود را بر روی نسخه ای جدید از IIS ( نسخه چهار) ، به اتمام رساندند که دارای چندین ویژگی جدید در رابطه با ASP بود .در این راستا ، قابلیت های جدیدی بمنظور پیاده سازی برنامه های وب در ویندوز NT ، فراهم گردید.گروه پیاده کننده دارای ایده های متعددی برای اعمال اصلاحات جدید بودند . گروه فوق ، کار خود را بر روی یک معماری جدید برای پیاده سازی ایده های مطرح شده ، آغاز نمود . این پروژه ، NGWS)Netx Generation Window Services) ، نامیده گردید. پس از ارائه ویژوال استودیو شش ، در اواخر سال 1998 ، تلاش برای ایجاد نسخه ای جدید از ویژوال استودیو در دستور NGWS ، قرار گرفت . گروه COM+/MTS در مدل پیشنهادی خود از یک Runtime ، عمومی برای تمامی زبانهای استفاده شده در ویژوال استودیو ، استفاده نمودند . تلاش افراد درگیر در پروژه NGWS ادامه تا در نهایـت ، شرکت ماکروسافت در کنفرانس پیاده کنندگان حرفه ای (PDC) ، دات نت را معرفی نمود.
مروری بر فریمورک دات نت
فریمورک دات نت ، تمامی لایه های پیاده سازی نرم افزار را از سطح سیستم عامل به بالا ، تحت پوشش قرار می دهد. فریمورک فوق، سطحی مناسب وقدرتمند از ارتباط و همبستگی بین تکنولوژی Presentation ، تکنولوژی های Component و تکنولوژی های Data را ارائه می نماید ( نظیر این ارتباط و همبستگی تاکنون در پلات فرم ویندوز مشاهده نشده است) . معماری فوق ، امکان طراحی و پیاده سازی برنامه های مبتنی بر اینترنت و محیط های Desktop ، را بسادگی فراهم و نیازهای هر گروه از نرم افزارهای فوق را بخوبی جواب می دهد . اجزای اصلی فریمورک دات نت در شکل زیر نشان داده شده است .
فریمورک دات نت از لایه پائین با عملیاتی نظیر مدیریت حافظه آغاز و بسمت بالا بمنظور ارائه اینترفیس های برنامه ها و کاربران ، دنبال می شود . در بین لایه ها ، لایه های سیستمی دیگر که هر یک دارای پتانسیل های خاصی برای پیاده کنندگان می باشند ، وجود دارد.
CLR) Common Language Runtime) ، بمنزله قلب فریمورک دات نت محسوب و engine لازم بمنظور ارائه قابلیت های کلیدی را ارائه می نماید . CLR ، شامل عناصر اساسی دیگری نظیر: (Common Type System (CTS ، است. علاوه بر مدیریت حافظه ، CLR ، مراجعات به اشیاء و عملیات Garbage Collection را نیز انجام می دهد .
در لایه میانی ، ما شاهد نسل جدیدی از سرویس های استاندارد نظیر ADO.NET و XML می باشیم .سرویس های فوق ، تحت کنترل فریمورک بوده و امکان بکارگیری آنها بصورت جامع و استاندارد در بین تمامی زبانها ، فراهم می گردد . بالاترین لایه ، شامل اینترفیس های برنامه و کاربر است . فرم های ویندوز ، روشی جدید بمنظور ایجاد برنامه های Desktop مبتنی بر win32 می باشند. فرم های وب ، یک رابط کاربر مناسب برای برنامه های مبتنی بر وب را ارائه می نمایند. سرویس های وب ، مکانیزمی بمنظور ارتباط برنامه ها از طریق اینترنت و با استفاده از SOAP ، می باشد. سرویس های وب ، قابل مقایسه با عناصر COM و DCOM بوده با این تفاوت مهم که در این راستا از تکنولوژی های متعدد اینترنت ، استفاده می گردد. فرم های وب و سرویس های وب ، اینترفیس اینترنت دات نت را تشکیل و پیاد ه سازی آنان از طریق بخش دیگری در فریمورک دات نت که ASP.NET ، نامیده می شود ، محقق می گردد .
پتانسیل های موجود در هر لایه فریمورک دات نت ، توسط هر یک از زبان های سازگار با دات نت ، قابل استفاده خواهد بود. در پایان لازم است به این نکته اشاره گردد که در این رابطه ( فریمورک دات نت ) می توان از اینترفیس های مبتنی بر متن ( کاراکتری) نیز استفاده کرد . این نوع برنامه ها اصطلاحا" Console Application ، نامیده می شوند .
دربخش دوم این مقاله به بررسی CLR و جایگاه آن در فریمورک دات نت، خواهیم پرداخت .
مبانی دا ت نت ( بخش دوم )
در بخش اول این مقاله به بررسی و معرفی فریمورک دانت پرداخته گردید. در این بخش به بررسی CLR ، یکی از مهمترین عناصر موجود در فریمورک دات نت خواهیم پرداخت .
درابتدا لازم است تعریفی از CLR را داشته باشیم. CLR ، محیطی است که برنامه های دات نت بکمک آن اجراء می گردند . برنامه های نوشته شده توسط هر یک از زبان های سازگار با دات نت پس از ترجمه توسط کمپایلر مربوطه به MSIL)Microsoft Intermediate language) ، ترجمه می گردند ( به زبان فوق ، IL نیز گفته می شود ) .
CLR از نمای نزدیک
Common Type System(CTS)
( Data Types ,...)
Intermediate Language(IL) to native code compilers Execution Support (traditional runtime functions) Security
Garbage Collection,Stack Walk ,Code manager
Class Loader and memory layout
هدف از طراحی CLR ، نیل به اهداف زیر بوده است :
• پیاده سازی سریع و آسان
• برخورد اتوماتیک با مقولاتی همچون مدیریت حافظه
• حمایت از ابزارهای متعدد
• قابلیت توسعه و گسترش متناسب با محیط بکارگیرنده
پیاده سازی سریع و آسان
یک فریمورک گسترده و یکپارچه، امکان نوشتن کد کمتر و با قابلیت استفاده مجدد را در اختیار پیاده کنندگان قرارخواهد داد . با توجه به اینکه سیستم ( CLR ) ، مجموعه ای از پتانسیل ها و قابلیت ها را ارائه می نماید ، حجم کد نوشته شده توسط برنامه نویسان ، کاهش پیدا خواهد کرد . برنامه ها در دات نت ، با استفاده از یک روش استاندارد و یکپارچه به پتانسیل های ارائه شده ، دستیابی پیدا می نمایند .
برخورد اتوماتیک با مقولاتی همچون مدیریت حافظه
در دات نت ، مجموعه ای گسترده از زیرساخت های برنامه نویسی بصورت اتوماتیک توسط CLR ارائه می گردد. مدیریت حافظه ، نمونه ای مناسب در این زمینه است . پیاده کنندگان نرم افزار بکمک ویژوال بیسیک در زمانی نه چندان دور همواره نگران مسئله مدیریت حافظه بودند . پیاده کنندگان ویژوال بیسیک اینک و با استفاده از CLR ، نگرانی خاصی در ارتباط با مدیریت حافظه ، نخواهند داشت. ( CLR ، دارای توابع متنوعی در رابطه با مدیریت حافظه است ) . برنامه نویسانی که از ++C در محیط دات نت استفاده می نمایند ، دیگر ضرورتی به استفاده از CoCreateInstance برای نمونه سازی یک کلاس و یا استفاده از malloc بمنظور اختصاص حافظه ، نخواهند بود. با بکارگیری امکانات CLR در ارتباط با مدیریت حافظه می توان با بخدمت گرفتن یک عبارت ساده خواسته خود را مشخص و CLR در زمان مورد نظر ، عملیات اختصاص حافظه را انجام خواهد داد . عملیاتی دیگر، نظیر جمع آوری اطلاعات زائد از حافظه ، از دیگر فرآیندهای ضروری و مهمی است که توسط CLR و در ارتباط با مدیریت حافظه انجام می گردد.
حمایت از ابزارها ی متعدد
همانگونه که احتمالا" حدس زده اید ، اغلب عملیاتی که CLR انجام می دهد، مشابه سیستم عامل است ،موضوع فوق هرگز بعنوان مهمترین رسالت CLR ذکر نمی گردد و می بایست با صراحت به این نکته ظریف اشاره گردد که هدف از طراحی CLR ، حمایت از پیاده سازی نرم افزار با استفاده از زبان های برنامه نویسی متفاوت است . CLR مجموعه قدرتمندی از مدل های اشیاء را ارائه که برای طراحان ، دیباگرها مفید و قابل استفاده ، خواهد بود. با توجه به اینکه مدل های شی ارائه شده ، مربوط به زمان اجراء می باشند ، امکان بکارگیری ابزارهای طراحی شده مبتنی بر مدل های ارائه شده ، در بین تمام زبانهائی که از CLR استفاده می نمایند .، میسر خواهد بود.
لازم است به این نکته نیز اشاره گردد که مایکروسافت محدودیتی را در ارتباط با CLR بمنظور استفاده از زبان های مایکروسافت ایجاد ننموده است . تولیدکنندگان زبان های برنامه نویسی دیگر با تغییر درمعماری زبان های خود ، امکان استفاده از CLR بهمراه مزایای متعدد آن را بدست خواهند آورد.در چنین مواردی ، علاوه بر بهره جستن از تمای قابلیت های CLR ، امکان ارتباط بین زبان ها نیز فراهم می گردد. CLR ، قادر به کار با چندین زبان برنامه نویسی متفاوت است . ویژگی فوق ، دارای مزایای مهم و گسترده ای برای پیاده کنندگان خواهد بود. اشکال زدائی یک برنامه ، نمونه ای مناسب در این زمینه است . CLR ، این امکان را فراهم می نماید که بتوان دیباگری را پیاده سازی و آن را در زبانهای مختلف بخدمت گرفت . رفتار و عملکرد دیباگر در تمامی زبانها مشابه و معادل خواهد بود ( پرش از یک زبان به زبان دیگر ) .
متا دیتا
متادیتا ، " داده ئی در رابطه با داده " بوده و می توان آن را بعنوان سطحی عمیق تر از داده نسبت به خصلت های سطح سیستم در نظر گرفت. متادیتا ، عنصر اساسی برای تحقق اصل برنامه نویسی ساده ( تسهیل در امر برنامه نویسی ) مورد حمایت CLR است. متادیتا توسط یک کمپایلر تولید و بصورت اتوماتیک در یک فایل EXE و یا DLL ذخیره می گردد.فرمت آن بصورت باینری است ولی فریمورک یک API بمنظور صدور متادیتا به / از یک XML Schema و یا یک کتابخانه نوع COM ارائه می دهد . از Schema XML ، می توان در بازیابی ورژن و سایر اطلاعات مرتبط با یک عنصر ترجمه شده ، استفاده کرد. اطلاعات ارائه شده توسط متادیتا ، مجموعه گسترده ای را شامل می شود :
• تشریح یک واحد بکارگیری ( اسمبلی نامیده می شود ) : نام ، ورژن ، فرهنگ ( که می تواند اطلاعاتی نظیر زبان پیش فرض کاربر را مشخص نماید) ، یک کلید عمومی برای بررسی، نوع های صادر شده توسط اسمبلی ، وابستگی ها به سایر اسمبلی ها ، مجوزهای امنیتی مورد نیاز بمنظور اجراء
• کلاس های پایه و اینرفیس های استفاده شده توسط اسمبلی
• خصلت های سفارشی : تعریف شده توسط کاربرو یا کمپایلر
برخی از موارد فوق نظیر خصلت های سفارشی ، انتخابی می باشند .کمپایلرها یکی از کاربران و استفاده کنندگان متا دیتا می باشند . مثلا" یک کمپایلر می تواند یک ماژول تولید شده نوسط یک کمپایلر متفاوت دیگر را بررسی و از متا دیتا بمنظور استفاده و درج ( Import ) ، نوع های cross-language استفاده نمایند. کمپایلرها می توانند متاد یتا هائی را در ارتباط با ماژول های ترجمه شده خود نیز تولید نمایند.
متا دیتا یکی از روش هائی است که CLR را قادر به حمایت از مجموعه گشترده ای از ابزارها می نماید . برخی از استفاده کنندگان متادیتا ، عبارتند از :
• طراحان
• دیباگرها
• تولید کنندگان پروکسی
• سایر کمپایلرها
• مرورگرها نوع / شی
حمایت و ارتباط چندین زبان
مهمترین ویژگی و بنوعی هدف CLR ، حمایت از زبانهای برنامه نویسی متفاوت و امکان ارتباط ( همبستگی ) بین زبانهای مختلف است .با بهره گیری از یک سیتم نوع ( CTS ) و با اعمال تمامی کنترل های لازم در ارتباط با فراخوانی اینترفیس، CLR امکان ارتباط مناسب و شفاف بین زبان های برنامه نویسی را فراهم می نماید.
درگذشته یک زبان برنامه نویسی بکمک عناصر COM ، قادر به نمونه سازی و استفاده از عناصر نوشته شده توسط یک زبان برنامه نویسی دیگر بود .در برخی موارد، فراخوانی اینگونه عناصر، مشکلاتی را از بعد مدیریتی ایجاد می کرد. بهرحال Subclassing یک عنصر نوشته شده به زبان دیگر، مستلزم وجود پتانسیلی خاص بودکه صرفا" پیاده کنندگان حرفه ای قادر به انجام و استفاده از آن بودند. در فریمورک دات نت، می توان از یک زبان بمنظور subclass ( کلاس زیرمجموعه که از یک کلاس پایه دیگر مشتق شده باشد ) یک کلاس نوشته شده به زبان دیگر استفاده نمود. کلاس نوشته شده به زبان ویژوال بیسیک می تواند از یک کلاس پایه نوشته شده با ++C و یا کوبال به ارث رسیده می باشد. برنامه VB ، ضرورتی به آگاهی از زبان استفاده شده بمنظور نوشته کلاس پایه ، نخواهد داشت .بدین ترتیب ، زمینه بهره گیری و استفاده از تمامی مزایای توارث در پیاده سازی فراهم و در صورتیکه کلاس پایه تغییر نماید ، ضرورتی به ترجمه مجدد کلاس زیر مجموعه نخواهد بود.چگونه این کار انجام می شود ؟ اطلاعات ارائه شده توسط متادیتا ، این امر را امکان پذیر می سازند . در این رابطه هیچگونه IDL(Interface Definition Language در دات نت وجود نداشته و یک اینترفیس کلاس صرفنظر از زبان استفاده شده برای تولید آن ، همواره یکسان مشاهده خواهد شد. CLR از متایتا بمنظور مدیریت تمامی اینترفیس ها و فراخوانی بین زبان ها استفاده می نماید توارث بین زبانها ، زمینه تحقق یک معماری باز را فراهم خواهد کرد .
سیتم نوع
یکی از اجزاء مهم CLR که حضور و عملکرد آن تاثیر مستقیمی بر حمایت از چندین زبان را بدنبال دارد ، CTS(Common Type System) است .در سیستم فوق ، تمامی نوع های داده (حتی نوع هائی نظیر : Long و Boolean )، بعنوان شی پیاده سازی شده اند . بدین ترتیب هماهنگی بین نوع ها در یک سطح پائین تر و بمنظور سازگاری بیشتر بین زبان ها ، صورت می پذیرد. با توجه به اینکه تمامی زبانها از نوع های کتابخانه ای یکسانی استفاده می نمایند ، فراخوانی یک زبان از زبان دیگر نیازمند تبدیل نوع، نخواهد بود.
یکی از مهمترین ویژگی های دات نت ، namespace است .namespace ، امکان سازماندهی کتابخانه های شی را بصورت سلسله مراتبی فراهم می نماید.بدین ترتیب امکان مراجعه به آنان بسادگی و به دور از هرگونه نا همخوانی و یا تضادی ، محقق خواهد شد .بمنظور استفاده از امکانات موجود در کتابخانه های کلاس ، می بایست در ابتدا برای آنان یک مرجع ایجاد نمود.مرجع فوق ،امکان استفاده از نوع ها را بصورت خلاصه در کد نوشته شده ،فراهم خواهد آورد. در ویژوال بیسیک با استفاده از یک عبارت Import ، این امر محقق خواهد شد. یک ماژول فرم ویژوال بیسیک در دات نت می تواند بصورت زیر ، آغاز گردد :
Imports System.WinForms
Imports MyDebug = System.Diagnostics.Debug
در اولین خط ، امکان استفاده از تمامی خصلت ها و متدها ی استاندارد مرتبط با فرم ها ، برای کد موجود درماژول ، فراهم خواهد شد.دومین خط ، از یک نام مستعار استفاده می نماید. یک شاخه از ساختار سلسله مراتب شی ( یک مسیر مشخص بر روی ساختار درختی ) ، می تواند شناسه خاص خود را داشته باشد که صرفا" در ماژول مربوط معتبر خواهد بود. در ماژول مورد نظر می توان بمنظور مراجعه به شی System.Diagnostics.Debug ، از MyDebug استفاده گردد.
بکارگیری و اجراء
واحد بکارگیری همانگونه که قبلا" اشاره گردید ، یک اسمبلی است. اسمبلی، می تواند شامل یک و یا چندین فایل بهمراه ویژگی خود تشریحی باشد . اسمبلی شامل یک "مانیفست" بوده که تمامی متادیتا صادر شده توسط اسمبلی و سایر اطلاعات لازم بمنظور بمنظور بکارگیری و اجراء را مشخص می نماید. یک اسمبلی دارای ورژن خاص خود است . اسمبلی ها با یکدیگر ترکیب و برنامه ها را بوجود می آورند . یک برنامه دارای یک و یا چندین اسمبلی بوده و ممکن است شامل فایل ها و داده های اختصاصی برنامه نیز باشد .
کد مبداء ماژول ها ی یک اسمبلی به IL)Intermediate Language) ترجمه می گردند . در ادامه و قبل از اجراء ، IL به کد مختص یک ماشین ترحمه خواهد شد. ترجمه با استفاده از روش های متفاوت و بدفعات ممکن است محقق گردد. معمولا" ترجمه به کد مختص یک ماشین ، صرفا" یک مرتبه انجام و نتیجه برای استفاده در موارد بعد و آتی Cache خواهد شد. CLR ، شامل مجموعه ای از کمپایلرهای JIT)Just-In-Time) است که مسئولیت تبدیل IL به کد مختص یک ماشین را برعهده دارند . بدین ترتیب ، می توان برنامه ها ی نوشته شده در دات نت را بصورت کد IL ترجمه شده ، توزیع نمود. در ادامه با استفاده ازکمپایلرهای دات نت بر روی یک ماشین خاص ، کدهای بهینه و مختص آن ماشین تولید خواهد شد.در سناریوی فوق امکان استفاده از اسکریپت ها بهمراه ماژول نیز وجود دارد ، درچنین مواردی آنان قبل از استفاده ترجمه خواهند شد. در سیستم های موجود ، اسکریپت های تفسیر شده ( در ASP و یا Windows Scriptiong Host ) ، هرگز ترجمه نمی شوند. در دات نت ، اینچنین اسکریپت هائی در اولین مرتبه دستیابی به IL تبدیل و در ادامه به کد مختص ماشین مربوطه تبدیل و برای استفاده مجدد cache ، خواهند شد.
در بخش سوم این مقاله ، به بررسی کلاس های پایه فریمورک دات نت خواهیم پرداخت .
مبانی دا ت نت ( بخش سوم )
آنچه تاکنون گفته شده است :
بخش اول : معرفی فریمورک دانت
بخش دوم : بررسی CLR
در این بخش به بررسی کلاس های پایه فریمورک دات نت و اینترفیس های کاربر و برنامه خواهیم پرداخت .
در بخش دوم این مقاله با اولین لایه فریمورک دات نت ( CLR ) آشنا شدیم . در ادامه بر روی لایه بعد متمرکز و به بررسی امکانات ارائه شده خواهیم پرداخت . این لایه ، کلاس های پایه فریمورک دات نت نامیده شده و مسئولیت ارائه سرویس ها و مدل های اشیاء برای داده ، عملیات ورودی و خروجی ، امنیت و موارد دیگر را بر عهده دارد . نسل بعدی ADO که ADO.NET نامیده می شود در این لایه قرار دارد . در لایه فوق ، امکانات و پتانسیل های لازم بمنظور انجام عملیات مرتبط با XML نیز ارائه شده است . پارسر و تبدیل کننده XSL ، نمونه هائی از پتانسیل های موجود در این لایه بمنظور کار با اسناد XML می باشند.
اکثر امکانات و پتانسیل های مورد نیازی که ضرورت فراگیری آنان برای هر برنامه نویس در رابطه با یک زبان برنامه نویسی وجود دارد ، به کلاس های فریمورک منتقل شده است . مثلا" تابع Sqr که در ویژوال بیسیک از آن بمنظور محاسبه جذر یک عدد استفاده می گردد در دات نت وجود نداشته و این تابع با متد System.Math.Sqrt موجود در کلاس های فریمورک جایگزین شده است .
تمامی زبانهای سازگار با دات نت قادر به استفاده از کلاس های فریمورک می باشند . بدین ترتیب در یک زبان برنامه نویسی نظیر کوبال و یا ویژوال بیسیک دات نت ، برای محاسبه جذر یک عدد از تابع مشابهی استفاده خواهد شد .رویکرد فوق ، پیوستگی و ارتباط مناسب بین زبان های متفاوت برنامه نویسی را بدنبال خواهد داشت . تمامی زبان ها به روشی مشابه از متد System.Math.Sqrt استفاده و به کد یکسانی دستیابی خواهند داشت ( اختلاف موجود صرفا" به گرامر استفاده از متد مورد نظر در زبان مربوطه ، برمی گردد) .
اکثر قابلیت ها و پتانسیل موجود در کلاس های پایه فریمورک در یک namespace عظیم و با نام System ارائه شده است . namespace فوق ، شامل چندین namespace زیرمجموعه دیگر است . مثلا" Microsoft.VisualBasic شامل Runtime ویژوال بیسیک و کلاس ها ئی بمنظور ترجمه و تولید کد مورد نظر برای برنامه های نوشته شده به زبان ویژوال بیسیک دات نت است .
اینترفیس های کاربر و برنامه
در بالاترین لایه ، دات نت روش هائی را بمنظور تفسیر و مدیریت رابط های کاربر ( فرم های ویندوز ، فرم های وب ، برنامه های کنسول ) و اینترفیس مورد نیازعناصر از راه دور ( سرویس های وب ) ، ارائه می نماید .
اینترفیس کاربر : فرم های ویندوز
فرم ها
از اوایل دههی 1990، با پیشرفت و گسترش شبکهها و بزرگراههای اطلاعاتی جدید الکترونی و افزایش کاربرد تکنولوژیهای نوین ارتباطی در سراسر جهان، مسائل بینالمللی ناشی از آنها، اهمیت خاصی پیدا کردهاند. به همین جهت، در سالهای اخیر، به موازات توسعهی استفاده از شبکههای اطلاعاتی و به ویژه شبکهی «اینترنت» ، توجه به این مسائل بیشتر شده است. به طوری که علاوه بر تصمیمها و اقدامهای تازهای که در بعضی از کشورهای پیشرفتهی صنعتی دربارهی چگونگی کاربرد ارتباطات و اطلاعات الکترونی و ایجاد جامعهی اطلاعاتی صورت گرفتهاند، برخی سازمانهای بینالمللی و منطقهای، مانند «سازمان همکاری و توسعهی اقتصادی»، «شورای اروپا»، «اتحادیهی اروپایی» و گروه «8 کشور بزرگ صنعتی» نیز به ارزیابی و تصمیمگیری در زمینههای مختلف کاربرد این گونه ارتباطات و اطلاعات و مسائل جامعهی اطلاعاتی آینده، پرداختهاند. برای شناخت عوامل و شرایط زمینهساز فعالیتها و برنامههای جدید کشورها، سازمانها و نهادهای مذکور، یادآوری چگونگی پیدائی و پیشرفت تکنولوژی شبکهی اطلاعاتی «اینترنت» در ایالات متحدهی آمریکا و سیاستها و برنامههای مهم این کشور و سایر کشورهای بزرگ غربی دربارهی بزرگراهها و زیرساختهای اطلاعاتی و جامعهی اطلاعاتی طرف توجه آنها، ضروری است. 1- «اینترنت» و «جامعهی اطلاعاتی» پیدائی و پیشرفت «اینترنت»، در ایجاد شرایط گذر از «جامعهی صنعتی»، به «جامعهی اطلاعاتی» جایگاه برجستهای پیدا کرده است. شبکهی «اینترنت»، که اکنون به قول برخی از محققان ارتباطی ، ستون فقرات ارتباطات اطلاعاتی سراسری کرهی زمین و به عبارت دیگر، «شبکه شبکههای اطلاعرسانی» جهان شناخته میشود، معرف ساختار تحول یافتهی یک شبکهی اطلاعاتی نظامی است. این شبکه، در اوایل دههی 1960 به دنبال پرتاب نخستین قمرهای مصنوعی اتحاد جماهیر شوروی به فضای ماوراء جو زمین و افزایش نگرانی ایالات متحدهی آمریکا از خطرات حملات هستهای آن کشور، به منظور حفظ و حراست اسرار نظامی ارتش آمریکا در شرایط بسیار مخوف جنگ هستهای، از طرف «آژانس طرحهای پژوهشی پیشرفته» (آرپا)1، در وزارت دفاع ایالات متحده، پایهگذاری شد. شبکهی یاد شده، که بر اساس سیستم تکنولوژی کلیدهای ارتباطی مستقل و مرتبط به بستههای اطلاعاتی جداگانه، استوار گردیده بود، به منظور جلوگیری از هدف قرار گرفتن آنها در یک جنگ هستهای احتمالی، از دسترسی مراکز فرماندهی و کنترل نظامی برکنار گذاشته شده بود. به گونهای که هر مجموعهی اطلاعاتی، مسیر خاص خود را در میان مدارهای ارتباطی مختلف شبکهی موردنظر، به صورت افقی طرح میکرد و در عین حال، امکان گردآوری تمام آنها، از هر واحد خاص نیز وجود داشت. مدتی بعد، تحت تأثیر پیشرفت تکنولوژی دیجیتال، امکان جمعآوری و بستهبندی هرگونه پیام و از جمله اصوات، تصویرها و دادهها و ایجاد شبکههای اطلاعاتی منتقلکنندهی انواع نمادها، بدون نیاز به هرگونه مزکر کنترل، پدید آمد و به این ترتیب، با استفاده از فراگیری بسیار گستردهی زبان دیجیتال و شبکهبندی نظام ارتباطی، شالودهی تکنولوژیک ارتباطات افقی جهانی، فراهم شد. نخستین شبکهی اطلاعاتی از این نوع، که به عنوان قدردانی از مؤسسهی بنیانگذار آن، «آرپانت»2 نامگذاری گردید، در سال 1969، به روی مراکز تحقیقاتی همکاری کننده با وزارت دفاع ایالات متحدهی آمریکا و از جمله دانشگاه کالیفرنیا و دانشگاه هاروارد، گشوده شد و در پی آن، پژوهشگران برای برقراری ارتباط علمی متقابل با یکدیگر، از این شبکه به بهرهبرداری پرداختند. در سال 1983، برای جدا ساختن کامل کاربردهای نظامی و غیرنظامی شبکهی مذکور، در کنار «آرپانت»، که از آن پس منحصراً به وسیلهی محققان دانشگاهی و مراکز علمی مورد استفاده قرار میگرفت، شبکهی مستقلی موسوم به «میلنت»3، برای پژوهشگران نظامی، تأسیس گردید. در طول سالهای بعد دههی 1980، «بنیاد ملّی علوم» ایالات متحده نیز به تقـویت و توسعهی شبکهی «آرپانت» کمک کرد و علاوه بر ایجاد یک شبکهی خاص علمی4، شبکهی دیگری با همکاری کمپانی مشهور «ای. بی. ام»5 ، به نام «بیت نت»6 ، برای استفادهی محققان زمینههای غیرعلمی، تأسیس نمود. با توجه به آن که تمام شبکههای مذکور، در فعالیتها و تماسهای ارتباطی خود، از سیستم اطلاعات «آرپانت» بهرهمند میشدند، مدتی نام این شبکهی میان شبکهای، ( آرپا ـ اینترنت)7 گفته میشد و سرانجام، به «اینترنت» 8، موسوم گردید. به موازات این تحولات و برای پاسخگوئی به رشد فعالیتهای ارتباطی از طریق شبکههای اطلاعاتی و به ویژه «اینترنت»، تکنولوژی کامپیوتری نیز رو به تکامل و توسعه گذاشت. به این معنا، که از یک طرف، دستگاههای «کامپیوتر شخصی»9 ، به بازار آمدند و امکان گسترش شبکهها را افرایش دادند و از طرف دیگر، توانائیهای فنی کامپیوتری نیز بالا رفتند. شبکهی «آرپانت» در سالهای دههی 1970 ، از ارتباطهای دارای 56 هزار بیت10 در ثانیه استفاده میکرد. در سال 1987، خطوط ارتباطی این شبکه، از توانائی انتقال، 5/1 میلیون بیت در ثانیه برخوردار شدند. سرعت انتقال پیامهای «اینترنت»، در سال 1992، به 45 میلیون بیت در ثانیه ـ معادل 5 هزار صفحه در ثانیه ـ افزایش یافت و درسال 1995، تکنولوژی کامپیوتری مورد استفادهی «اینترنت»، به حد بسیار فوقالعادهای از پیشرفت رسید. به طوری که برای آن، امکان انتقال اطلاعاتی معادل مجموعهی دهها میلیون کتابها و نشریات کتابخانهی کنگرهی ایالات متحدهی آمریکا در هر دقیقه، فراهم گردید. درعین حال، افزایش توانائی فنی انتقال پیامهای ارتباطی از طریق «اینترنت»، به تنهائی برای گسترش شبکههای اطلاعرسانی در سطح جهانی کافی نبود و به این منظور، ارتباط متقابل رایانهها نیز ضرورت داشت. به همین لحاظ، برای از میان بردن این مانع، از سیستم ارتباطی ویژهای معروف به «یونیکس»11، که در سال 1969در آزمایشگاههای کمپانی معروف «بل»12 اختراع گردیده بود، کمک گرفته شد. کاربرد سیستم «یونیکس»، از سال 1983، که کوششهای محققان دانشگاه کالیفرنیا در «برکلی»، با مساعدت مالی «آژانس طرحهای پژوهشی پیشرفته» وزارت دفاع آمریکا، برای انطباق مجموعهای از پروتکلهای علمی، موسوم به «پروتکل کنترل انتقال بر پروتکل ارتباط متقابل»13 با این سیستم، به موفقیت رسیدند، رو به گسترش گذاشت و به این ترتیب، رایانهها امکان یافتند که علاوه برایجاد ارتباط متقابل با یکدیگر، به رمزگذاری و رمزگشائی مجموعههای دادههای مورد انتقال بسیار سریع در شبکهی «اینترنت» نیز اقدام کنند. از آن زمان، شبکههای اطلاعاتی محلی و منطقهای، توانائی پیدا کردند با هم ارتباط متقابل برقرار سازند و دادهها و پیامهای خود را به هر کجا که خطوط تلفنی و رایانههای مجهز به دستگاه «مودم»14 ـ برای اتصال رایانه به تلفن ـ وجود دارند، انتقال دهند. به این گونه، شبکهسازیهای اطلاعاتی در سراسر جهان توسعه یافتند و مقدمات استفاده از «بزرگراههای اطلاعاتی» نیز فراهم گردیدند. باید یادآور شد که از اوایل دههی 1990، همراه با پیشرفت و گسترش تکنولوژی رایانهای «اینترنت»، کاربرد آن بیشتر به سه زمینهی خاص، شامل «پست الکترونی»15، سرویسهای اطلاعات درخواستی و بر روی خط16، مانند سرویس «تار عنکبوت گستردهی جهانی»17 و «گروههای مباحثهای و خبری»18 معطوف گردیده است. توسعهی استفاده از شبکهی «اینترنت»، در دورهی کوتاه فعالیت آن، بسیار چشمگیر بوده است. در سال 1973، شبکهی مذکور تنها 25 رایانه را در برمیگرفت و تا پایان دههی 1970 نیز نمیتوانست سالانه بیش از 256 رایانه را در کنار خود داشته باشد. در اوایل دههی 1980 و به دنبال تحولات فنی مختلف، هنوز بیش از 25 شبکه، با حدود چند صد رایانهی اصلی و چند هزار نفر کاربران آنها، امکان استفاده از آن را دارا نبودند. در حالی که در اواسط دههی 1990، در سراسر جهان 44 هزار شبکهی اطلاعاتی، شامل 2/3 میلیون دستگاه رایانه و 25 میلیون نفر کاربران آنها، از طریق «اینترنت»، امکان ارتباط متقابل پیدا کرده بودند. در این میان، بر مبنای تحقیقی که در اوت 1995 صورت گرفته بود، مشخص میشد که 24 میلیون نفر آمریکائی از «اینترنت» استفاده میکنند و 36 میلیون نفر هم امکان دسترسی به آن را دارا هستند. تحقیقات بعدی هم نشان دادهاند که استفادهکنندگان این شبکه در آمریکا، هر سال نسبت به سال پیش، دو برابر میشوند، از لحاظ عدهی کاربران «اینترنت» در سطح جهانی هم، اکنون با توجه به توانائیهای بالقوهی این شبکه، پیشبینی میگردد که در اواسط دههی اول قرن بیست و یکم، صدها میلیون نفر در سراسر دنیا، از آن بهرهمند خواهند شد. همچنین به نظر کارشناسان، «اینترنت» زمانی خواهد توانست 600 میلیون شبکهی رایانهای را به هم متصل سازد. در مورد عوامل پیشرفت و گسترش شبکهی «اینترنت»، میتوان از دو گونه عناصر متضاد، نام برد. باید خاطر نشان ساخت که در این زمینه، از یک سو برنامههای امنیتاندیشی وزارت دفاع ایالات متحده و همکاریهای علمی برخی از دانشگاههای مشهور آمریکا در ایجاد شرایط فنی کاربردی کردن یک انقلاب جدید در تکنولوژیهای ارتباطی، تأثیر گذاشتند و از سوی دیگر، مظاهر فرهنگ آزاداندیشی و اعتراضگری مراکز دانشگاهی آمریکائی، که در دهههای 1960 و 1970 در جنبش دانشجوئی آرمانخواهانهی آن کشور به خودنمائی پرداخته بودند، نیز به سبب کوششهای علمی دانشجویان در جهت مردمی کردن این گونه شبکهها، در توسعهی آن سهم عمدهای ایفاء نمودند. در واقع، اختراع دستگاه «مودم»، که اکنون از لوازم اساسی استفاده از «اینترنت» به شمار میرود، در سال1978،به وسیلهی دو تن از پیشگامان جنبش مذکور، با نامهای «وارد کریستنسن»19 و «راندی سیوس»20، که در دانشگاه شیکاگو تحصیل میکردند، صورت گرفت. آن دو دانشجو، در فاصلههای دور از یکدیگر زندگی مینمودند و برای خودداری از رفت و آمد متقابل در زمستان سرد و یخبندان شیکاگو و ایجاد امکان مبادلهی مستقیم برنامههای میکرورایانهای خویش از طریق تلفن، به تهیهی دستگاه «مودم» دست زدند. یک سال بعد، دانشجویان یاد شده، شیوهی استفاده از این دستگاه، موسوم به «ایکس مودم پروتکل»21 را، که به رایانههای شخصی امکان میداد تا پروندههای طرحها و برنامههای اطلاعاتی خود را بدون استفاده از یک سرویس دیگر، به طور مستقیم انتقال دهند، اعلان کردند. آن دو به لحاظ علاقه و توجه ویژهای که به گسترش هر چه بیشتر توانائیهای ارتباطی رایانهای و مردمی کردن این گونه ارتباطات داشتند، از دریافت هرگونه حق اختراع خودداری نمودند و کاربرد این دستگاه را مجانی شناختند. به این طریق، کاربران شبکههای رایانهای خارج از شبکهی «آرپانت» نیز امکان مبادلهی اطلاعات خویش را پیدا کردند. در همان سال، سه دانشجوی دانشگاه «دیوک»22 در کارولینای شمالی هم به شیوهی جدیدی برای اتصال مستقیم و متقابل رایانههای شخصی از طریق یک خط تلفن، دست یافتند و به کمک آن، شبکهی تازهای موسوم به «یوزنت»23 پدید آوردند، که مهمترین ابتکار آن، ایجاد گروههای مباحثه و گفت و شنود و تبادل اخبار خاص بود. مخترعان این شبکهی اطلاعاتی نیز نرم افزار مخصوص استفاده از آن را مجاناً در اختیار علاقهمندان قرار دادند. در سالهای بعد، به موازات کاهش بهای رایانههای شخصی و افزایش قدرت ارتباطی آنها، شبکههای اطلاعرسانی گوناگونی، که بیشتر به انتشار اخبار رویدادهای انعکاس نیافته از طریق خبرگزاریها و شبکههای خبری متعارف، دست میزدند و به شبکههای «بولتین بورد سیستم»24 معروف شدند، پدید آمدند. این شبکهها که ابتداد در ایالات متحدهی آمریکا و سپس در سراسر دنیا مورد استفاده قرار گرفتند، به زودی کاربردهای سیاسی بسیار مهمی پیدا کردند. به طوری که به دنبال جنبش آزادیخواهانهی دانشجویان چینی و حوادث خونین میدان «تیانانمن» پکن درسال 1989، دانشجویان چینی مقیم خارج آن کشور، با اعتراضهای منتشر شده از طریق اینگونه شبکهها، تواناتی بالقوهی امکانات ارتباطی نوین رایانهای در دنیای امروز را آشکار ساختند، بهرهبرداری سیاسی فرمانده مارکوس، رهبر زاپاتیستهای انقلابی مکزیک، از امکانات ارتباطی شبکهی «اینترنت» برای انتشار پیامهای حاوی هدفها و برنامههای این جنبش، در فوریهی 1995، به هنگام عقبنشینی به عمق جنگلهای انبوه این کشور، در جهت آگاهیدهی به مردم جهان و وسایل ارتباط جمعی و مقابله با سیاستهای دولت مکزیک، نیز در این زمینه اهمیت خاص داشته است. 2- سیاستها و برنامههای ایالات متحدهی آمریکا و سایر کشورهای بزرگ غربی در مورد جامعهی اطلاعاتی از اوائل دههی 1990، همراه با پیشرفت و گسترش کاربرد شبکهی اطلاعرسانی «اینترنت»، تحت تأثیر دگرگونیهای سریع تکنولوژیهای نوین ارتباطات و اطلاعات و به ویژه، امکانات جدید توسعهی خطوط فیبرنوری و رمزگذاری و رمزگشائی دیجیتال، پیامها و اطلاعات موردانتقال از طریق شیوههای سهگانهی ارتباطی ( ارتباطات جمعی رادیو ـ تلویزیونی، ارتباطات دور و ارتباطات کامپیوتری
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 23 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید

به طور کلی، غده پاراتیروئید، عمل آزاد شدن کلسیم از استخوان ها را کنترل می کند. با کمبود کلسیم در خوراک دام، این غده تحریک شده با ترشح هورمون خود، باعث آزاد شدن کلسیم می شود، به نحوی که غلظت کلسیم را در خون تقریباً ثابت نگه می دارد. البته در این حالت چون کلسیم و فسفر به صورت ترکیب با یکدیگر در استخوان ها وجود دارند، فسفر نیز آزاد می شود ولی به علت عدم نیاز به آن، این ماده از بدن دفع خواهد شد. در جذب کلسیم و جایگزینی آن در استخوان ها، ویتامین D نقش اساسی دارد.
بعضی از اسیدهای آلی، با کلسیم ترکیبات پایدار تولید می کنند، به صورتی که این عنصر از دسترس جذب خارج می شود. به عنوان مثال اسیدهای اُگزالیک و فایتیک با کلسیم تولید اُگزالات کلسیم و کلسیم فایتیت می کنند که برای دامها قابل جذب نیست.
کلسیم این ترکیبات، زمانی امکان جذب دارد که شکسته شده و به صورت یون آزاد شود. در غیر این صورت کلسیم به همان صورت کمپلکس بدون آن که جذب شود، از دستگاه گوارش خارج می شود. در دستگاه گوارش نشخوارکنندگان تجزیه بعضی از این ترکیبات پیچیده تا حدودی امکان پذیر است. بخش عمده ای از کلسیم خوراک های دام به صورت این ترکیبات پایدار و پیچیده است، مثل کلسیم موجود در چغندر قند و فرآورده ها و ضایعات آن، کمبود کلسیم در بدن باعث ایجاد عوارض متعدد می گردد. در دام های جوان و در حال رشد، استخوان ها به طور طبیعی رشد نکرده، استقامت لازم را ندارند و از نظر ظاهری نیز غیر طبیعی به نظر می رسند و به همین علت حیوان در هنگام راه رفتن دچار اشکال می شود. به این عارضه ریکتز یا راشیتیسم می گویند که از علائم مشخصه آن لنگیدن است.
کمبود کلسیم در دام های بالغ، باعث عارضة پوکی استخوان می شود، زیرا کلسیم خارج شده از استخوان ها جایگزین نشده است، به این عارضه استئومالیشیا می گویند و از علائم مشخصه آن شکنندگی استخوان ها و ایجاد کجی یا انحنا در پاها است.
ظهور ریکتز و استئومالیشیا، تنها مربوط به کمبود کلسیم نیست. زیرا کمبود فسفر، نسبت نامناسب بین کلسیم و فسفر و همچنین کمبود ویتامین D نیز باعث بروز نشانه های این عارضه می شود. این عوامل همچنین باعث بروز عارضة تب شیر در گاوهای شیرده می شود. کاهش کلسیم سرم خون، تشنج عضلانی، و در نهایت فلجی و بی حسی کامل، همه از علائم این عارضه است.
شامل 20 صفحه word