فرمت:word(قابل ویرایش)
تعداد صفحات:106
فهرست مطالب:
عنوانمه صفحه
پیش گفتار 1
بخش اول: .NET Framework
مقدمه ای درباره .NET 3
-زبان میانه (IL) 7
-مقدمه ای برای مدیریت حافظه .NET 8
-سیستم نوع چارچوب .NET 10
موضوعات سیستم چارچوب.NET 11
-چگونه موضوعات، خود را تعریف می کنند 11
-عمل پذیری متقابل الگوی موضوع مولفه (Com) 12
فرمهای ویندوز، کنترل های وب و GDT+ 12
-ابزارها 15
اسمبلیها، سیستم بسته بندی .NET 15
برنامه نویسی با صفات (Attributes) 16
امنیت (Security) 17
بخش دوم: زمان اجرای زبان عمومی (CLR)
-مرور کلی 17
-ساده سازی توسعه 18
پشتیبانی ابزار 19
پشتیبانی زبان چندگانه 19
– آماده سازی آسان تر می شود. 20
– جداسازی نرم افزار 21
– وارسی و امنیت نوع. 22
– رابطه CLR با NET. 23
– جزئیات CLR 23
– CLR درزمان اجرا 24
– انواع داده های پشتیبانی شده توسط CLR 26
– کد و داده های اداره شده 29
– رمز اداره نشده و دستیابی به داده ها 30
– COM Interop از طریق CLR 31
– الحاقات اداره شده به C++ 36
– پشتیبانی از اشکال زدایی 37
– خلاصه 37
-بخش سوم : معرفی Visual Studio . NET
– محیط توسعه مجتمع (IDE) 38
– بخش A: ناحیه اصلی ویرایش 39
– بخش B: راه حل ها Help , Items , Classes , (Solutions) 39
– راه حل ها و جستجو گر راه حل 40
– پروژه ها 41
– وابستگی های پروژه 43
نمای کلاسی (Class View) 44
نمای منبع (Resource View) 44
جستجوگرماکرو (Macro Explorer) 45
-راهنمای دستی 45
-بخش C: جعبه ابزار و Server Explorer 47
بخشD: تکالیف (Tasks)، خروجی (Output)، نتایج جستجو و مشاهدات 49
بخش E: خصوصیات (Properties) راهنمای پویا (Dynamic Help) و برگزیدگان (Favorites) 53
-برنامههای اشکال زدایی 58
-الفبای تصویری نقطه توقف 60
تنظیمات نقطه توقف پیشرفته 61
-نقطههای توقف شرطی 62
-شمارش دفعات (Hit Counts) 62
-هنگام مکث رمز چه باید کرد؟ 63
-ضمیمه شدن اشکال زدا به یک فرآیند 64
-اشکال زدایی JIT 64
بخش چهارم : برنامه کاربردی نمونه فرمهای ویندوز (Scribble.NET) 66
–منابع در .NET 66
-پیج و مهرههای محلی سازی 67
-کلاسهای مدیریت منابع .NET 68
-بدست آوردن فرهنگ مورد نظر 69
– ایجاد منابع متنی 70
-استفاده از Visual Studio .NET برای بین المللی کردن 72
-منابع تصویری 73
-استفاده از لیستهای تصویری 73
-دسترسی برنامه ای به منابع 77
-خلاصه 78
بخش پنجم: ASP.NET
-وب جدید 79
– اساس ASP.NET 80
-افزودن موارد اصلی 83
-امتحان ایدهها 85
-خلاصه 89
بخش ششم : خدمات وب (Web Services)
-تعریف 89
-Echo Server 91
-ایجاد یک Proxy 93
-مشتری فرمهای ویندوز 96
-برگرداندن نوع های تعریف شده توسط کاربر 99
-ایجاد خدمات رسان 100
-ایجاد مقید سازیClient 101
-صفت های XML 102
-خلاصه 105
بخش هفتم: اطلاعات تفصیلی در مورد تکنولوژی .NET به زبان انگلیسی
فهرست منابع 106
مقدمه ای درباره NET.
یقیناً، میکروسافت برجسته ترین تحولات را در صنعت رایانه به وجو آورده است. موفقیت های DOS ، حاصل تلاش بی وقفه بیل گیتس و استیوبالمر بود، وقتی آنها به IBM اطلاع دادند که سیستم عاملی برای فروش دارند حرکت قابل توجهی در دنیای رایانه ایجاد شد. میکروسافت با الهام گرفتن از جذابیت اپل مکینتاش سیستم عاملی ایجاد کرد که به طور گسترده در جهان مورد استفاده قرار گرفت و تحولی دوباره در دنیای رایانه بوجود آورد.
اکنون، میکروسافت با ابداع مجدد روشی برای استفاده و برنامه ریزی رایانه ها تحول دیگری در جهان ایجاد کرده است. اگر شما یک برنامه نویس C++ هستید یا اگر با سیستم عامل ویندوز یا کلاس (رده) خیت بنیادین میکروسافت (MFC) کار می کنید، بدون شک کاملاً تحت تأثیر الزامات NET، خواهید بود.
اخیراً اینترنت به رسانه ای تبدیل شده است که ما از طریق آن میتوانیم تجارت کنیم، دوستان خود را ملاقات کنیم، حساب جاری خود را انجام دهیم، بازی کنیم، گپ بزنیم و با اشخاصی که دوست داریم در تماس باشیم . انجام همه کارها از طریق یک نرم افزار نوشته شده، عملی و امکان پذیر شده اند تا ارتباطات ضابطه اینترنت (IP) برای وب جهانی برقرار می شوند. از آن جا که وب پیشرفت نموده و پیچیده تر شده است نرم افزار لازم است برای اجرای آن نیز باید میلیون ها داده IP را به رایانه ما انتقال دهد تا از آن دریافت کند. با استفاده از پست الکترونیکی مرور صفحات وب تعامل (فعل و انفعال) با پایگاه دادهع ها و اجرای برنامه های کاربردی توزیع شده بسیار پیچیده تر شده است و در نتیجه مهارت ها و تکنیک های برنامه نویسی نیز به ایجاد و حفظ نرم افزاری نیاز دارد که پیچیده تر باشد. یک برنامه نویس، اغلب مواقع (و به طور روزانه) با XML , SOAP , ASP , DCOM . CoM+ COM، و XSL و یک آرایه رو به افزایش از SDK های کامل و نیز راهنماییهایی در رابطه با آنها مواجه می گردد.
میکروسافت، بنابر اصل نیازهای فناوری جاری همانند بسیاری از صنعتکاران به طور روزافزون، برنامه های کاربردی، مجموعه ابزارهای و سیستم های عامل و کتابخانه ها قابل حمل نیستند، زیرا بسیار گسترده تر می باشند و همچنین حاوی افزودنی ها، الحاقات (extensions) و توافق ها (compromisers) هستند. چارچوب NET، در اصل آن را تغییر می دهد. این تغییر نه نمونه ی است و نه برای تحکیم کار، بلکه این یک حرکت بسیار بزرگ، برجسته و قابل تأمل است که همه مطالب مربوط به برنامه نویسی رایانه های شخصی شما (در هر شکل و اندازه ای) را دوباره تعریف می کند و شامل خود زبان ها نیز می باشد.
یکی از مهمترین حقایق موجود در مورد چارچوب NET. (و شاید این نظر از جهانی درست نباشد) آنست که این زبان، همانند جاوا از فناوری ماشین مجازی استفاده نمی کند. نرم افزار قابل اجرا در NET کاملاً کامپایل (همگردانی) می شود و همانند کد (رمز) کامپایل شده از یک برنامه C در سطح ماشین اجرا خواهد شد. این تصور غلط رایج از آن ناشی می شود که NET از یک زبان میانه که گاهی اوقات به عنوان “P – code” تعریف می شود، استفاده می کند. NET در واقع روش کامپایل (همگردانی) چند مرحله ای را به کار می برد. یک کامپایل اولیه به یک فرمت (قالب) میانه قابل حمل و یک کامپایل درجا (JIT) برای یک برگه نهایی قابل اجرا در زمان اجرا.
این سیستم (در حالی که نسبتاً پیچیده است) برای انجمن برنامه نویسی فواید زیادی دارد. یعنی در همه زبان ها دارای یک سطح عمومی هستند که در شکل میانه خود آن را به اشتراک می گذارند. بنابر این ترکیبی از ماجول(پیمانه) های نوشته شده در زبان های COBOL . FORTRAN , Eiffel , Visual Basic , C# یا هر زبانی که در آینده پشتیبانی خواهد شد میتواند برای زبان میانه (IL) کامپایل (همگانی) می شود و همراه با شرح کاملی از خود بسته بندی می گردد. رابط ها،خصوصیات (Prroperties) روش ها و کلاس (رده) های آن (همانند فوق داده ها) برای سایر ماجول (پیمانه) ها با محیط های توسعه برنامه کاربردی که سریعاً مجتمع شده اند (نظیر Visual Studio. NET) در دسترس می باشند.
هنگامی که زمان اجرای NET برای اجرای یک برنامه تبدیل شده به IL استفاده می شود، NET از یک JITer برای کامپایل (همگردانی) IL به یک کد ماشین اصلی (درتبدیل کامل) که در ریز پردازنده دستگاه اجرا می شود، استفاده می کند. JITer ها حتی برای برخی از بخشهای بی استفاده کامپایل نشده از کد (رمز) میانه نیز بسیار سریع و مؤثر هستند. بدیهی است که این فرایند کامپایل وقت گیر است، بنابر این وقتی زمان های بارگذاری مهم هستند یا مسأله قابلیت حمل ضروی نیست، این سیستم یک کامپایلر pre – JIT را ارائه می دهد که آن رمز مبتنی بر IL را به یک قالب پایدار و اصلی تبدیل می کند.
چهارچوب NET چهار زبان اصلی را ارائه می دهد: C#، ویژوال بیسیک، C++ (همراه با الحاقات اداره شده) و Jscript. شرکت های دیگری نیز در حال ایجاد چند زبان دیگر هستند. مثلاً شرکت فوجیستو، نگارشی از COBOL را ارائه داده است.
مجموعه های اصلی از همگردان ها وجود دارند که زبان های تحت NET را می گیرند و ماجول (پیمانه) های زبان های میانه را ایجاد می کنند. در آنسوی این مجموعه ها، Jiter های IL به رمز ماشین هستند. یک Jiter استاندارد وجود دارد که عمدتاً توسط سیستم های دارای قدرت و حافظه زیاد استفاده می شود. این نوع Jiter یک شکل استاندارد IL را به شکل استاندارد IL را به یک شکل بهینه شده در ماشین کامپایل (همگردانی) می کند. در نتیجه یک کامپایلر JIT مقرون به صرفه به دست می آید که سرعت زیادی دارد ولی کمی بهینه سازی شده است و وابسته به زیرمجموعه ای از IL از پیش بهینه می باشد. در نهایت per – JIT موجود یک کد (رمز) اصلی قابل اجرا ایجاد می کند که میتواند در شکل آماده برای کامپایل خود توزیع شود. این روشها تنها زمانی استفاده می شود که برنامه مورد نظر نتواند برای سکوی (دستگاه) سخت افزاری دیگری توزیع گردد.
سرانجام زمانی نسبی سخت افزار و سیستم عامل موجود در ماشین همان زمان اجرای زبان عمومی NET(CLR)، می باشد. این بلوک مؤثر خدماتی را ارائه می دهد که مؤلفه ها بتوانند از آنها استفاده کنند تا به رایانه شما یا OS اصلی ماشین تعامل داشته باشد. این نکته، جالب توجه است که میزبان ماشین CLR به عنوان یک PC شناخته نمی شود و سیستم عامل مورد نظر لزوماً نباید DOS یا ویندوز باشد. میکروسافت برای گسترش چارچوب، NET در بسیاری از سکوها (از کوچک ترین وسایل دستی ها، تلفن ها، PDA ها تاسیستم های لینوکس و یونیسک) یک راهکار (استرانژی) کاملی دارد. با وجود این که این راهکار در سیستم هایی غیر از سیستم 1386Windose 2000 سریعاً در دسترس قرار نمی گیرند، ولی قابلیت حمل آن باعث شد توسعه گران یک محیط برنامه نویسی قابل اجرا در همه جا و یکبار نوشته شده را ایجاد کنند.
زبان میانه (IL) میکروسافت
یک نکته قابل توجه در مورد زبان میانه (IL) میکروسافت این است که این زبان در ماشین مزبور پنهان نشده است. IL، یک زبان کاملاً جدید و مبتنی بر stake (پشته) است و شباهت کمی با کد اسمبلی (همگذاری) دارد که در صورت لزوم می توانید آن را با دست بنویسید. همچنین ابزارهایی وجود دارند که شما را قادر می سازد تا IL را از اسامبلی (همگذاری) خارج نموده و محتوای موضوعات سیستم رمز مختص به خود را مشاهده کنید. در فص 3-1 زبان میانه IL جزئیات بیشتری از IL را بررسی خواهیم کرد و حتی می توانیم مستقیماً آن را برای نوشتن برخی از برنامه ها مورد استفاده قرار دهیم.
مقدمه ای برای مدیریت حافظه .NET
یکی از واقعیت های NET که افراد بسیاری را هیجان زده نگران و یا فقط مات و مبهوت می کند این است که مدیریت حافظه زمان اجرای NET همانند یک سیستم GC (جمع آوری آشغال) می باشد. برنامه نویسان قدیمی در روزهای اوج زبان Lisp دچار کابوس می شدند، روزهایی وجود داشت که انتظار برای رسیدن به جمع کننده آشغال (garbage – collector) یک تجربه سخت بود زیرا این کار فقط در روزهای سه شنبه انجام می شد. برنامه نویسان C++، مدیریت حافظه ای داشتند که به آنها یادآوری می کرد که از دست دادن نظارت بر تخصیص حافظه ها و حذف ها کار درستی نیست.
سیستم مدیریت حافظه NET، تخصیص منابع حافظه را به شکل دیگری انجام می دهد. یک بلوک حافظه، به آشغال های جمع آوری شده یا کپه (heap) اداره شد، اختصاص دارد که سابقه (رکورد) همه موضوعات ارجاع داده شده به آن را حفظ می کند. فقط زمانی که آن مرجع ها ترخیص می شوند، موضوع از بین می رود. بدین وسیله، برنامه نویس از مسئولیت مدیریت حافظه خلاص می شود. شما دیگر مجبور نیستید که پاکسازی حافظه را به خاطر بسپارید، بلکه فقط باید استفاده از آن را متوقف نمایید. همچنین یک کلاس (رده) دیگر نباید از شمارش های مرجع آگاه باشد بلکه فقط زمان حذف خود را می داند. برای تکه تکه شدن کمتر کپه، GC موضوعات را جابجا می کند تا فضاهای خالی و استفاده شده ای که در ذخیره گاه حافظه اداره شده قرار دارند را یکپارچه نماید.
این امر مانع از نشست های (leaks) حافظه می شود و باعث پیشرفت کارآیی سیستم های خادمی که به شدت فشرده شده اند، می گردد. همچنین کپه اداره شده باید اطمینان یابد که دستیابی های ناامن ]نظیر سرریزش ها و صدمات بافر (میانگاه) [ نمی توانند داده های مربوط به سایر اجرای برنامه های روی همان سیستم را اصلاح کنند. این امر کل سیستم عامل را ایمن تر و مطمئن تر خواهد کرد. سیستم های جمع آوری کننده آشغال، به نامؤثر و کند بودن معروف هستند. ولی میکروسافت به مرحله ای رسیده است که کارکرد واقعی جمع آوری آشغال در NET را تضمین می کند. این برنامه دارای سرعت بسیار زیادی است و تأثیر عمیقی در بارگذاری مهم CPU نخواهد داشت. معمولاً در یک برنامه ویندوز 2000 (مبتنی بر ماشین)، GC (جمع کننده آشغال) فقط به حدود 1000/1 از کل زمان پردازنده نیاز دارد.
در نهایت برای برنامه نویسانی که به استفاده از اشاره گرهای موجود در بلوک های حافظه نیاز دارند وسیله ای در سیستم وجود دارد که کد (رمز) و حافظه نا امن یا اداره نشده ناامیده می شود می شود. این به صورتی است که شما می توانید ساختارهای قدیمی خود یا برنامه های کاربردی قبلی که مبتنی بر C++ هستند به موازات ویژگی های NET استفاده کنید.
سیستم های نوع چارچوب NET
برنامه نویسان C++ خصوصاً، با تغییرات ایجاد شده در نوع های (types) اصلی ذخیره گاه در چارچوب NET، استفاده شدند، شگفت زده خواهند شد. یک عدد صحیح دیگر چندبایتی از بلوک حافظه نیست. البته داده ها در حافظه ذخیره می شوند، ولی حالا می توانید آن عدد صحیح را به عنوان یک موضوع در نظر بگیرید و بر طبق روش های نمایش داده شده آن عمل کنید.
در اینجا دو خانواده کاملاً متفاوت از انواع وجود دارند. نوع های مقدار (vatue types)، شامل نویسه ها (chars)، اعداد صحیح (ints) و مضاعف ها (doubles) هستند که با نوع های مرجع (نظیر آرایه ها، رابط ها، کلاس (رده) ها و یک نوع رشته ای اصلی) همراه می شوند.
از آنجا که چهارچوب NET، خود نوع ها را تعریف می کند، در نتیجه زبان هایی نظیر ویژوال بیسیک، C# و سایر زبان ها می توانند این نوع داده ها را به همان صورت استفاده نمایند. این بدان معناست که عدد صحیح استفاده شده در VB (ویژوال بیسیک) درست همانند عدد صحیحی است که در C# به کار می رود و دیگر تبدیل پر دردسر بین نوع های واقعی و نوع هایی نظیر متغیرها، ضروری نیستند.
موضوعات سیستم چهارچوبNET
بخش های فعال چهارچوب NET، در مجموعه های از DLL ها قرار دارند که الگوی موضوع سیستم را حفظ می کند. نامکده (فضای نام) این سیستم مراتب های کلاس (رده) که مختص مجموعه ها، امنیت، I/O پرونده، گرافیک ها (نگاره ها) و دستیابی Win32 API ، چند بخشی کردن XML و بسیاری از تابع های مهم دیگر می باشند را در خود نگه می دارد. کل سیستم NET.