دانلود مقاله برنامه نویسی در دات نت

word قابل ویرایش
99 صفحه
16700 تومان
167,000 ریال – خرید و دانلود

برنامه نویسی در دات نت

دات نت محیطی جدید بمنظور طراحی، پیاده سازی و اجرای برنامه های کامپیوتری را در اختیار طراحان و پیاده کنندگان نرم افزار قرار می دهد. با استفاده از پلات فرم فوق ، می توان بسرعت اقدام به پیاده سازی نرم افزار نمود.

برنامه های تولیده شده ، امکان استفاده از پتانسیل های محیط
( 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 هر یک از ماژول های مدیریت یافته را انجام داد .

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 16700 تومان در 99 صفحه
167,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد