PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مطلبي كوتاه در باره #s !


GodMaster
23 Jan 2011, 16:10
مطلبي كوتاه در باره #S !


اس شارپ چيست ؟


در يك جمله #S زبان برنامه نويسي و قابليتهاي SmallTalk را به محيط دات نت اضافه ميكند . SmallTalk اولين محيط واقعي توليد و توسعه نرم افزارهاي شي گرا بود كه حتي عده اي وي را پدر جاوا ميخوانند . در محيط SmallTalk حتي Integer ها و String ها هم شي هستند !!! حالا بايد ديد اين زبان محبوب دهه 80 چگونه با قابليتهاي دات نت سازگاري پيدا كرده است .

اس شارپ نه تنها از لحاظ ساختار ظاهري زبان ( SyntaX ) با بقيه محيطهاي توسعه دات نت ( وي بي - سي شارپ و ... ) متفاوت است بلكه طراحي شي گرا و نحوه برخورد آن با كلاسهاي نرم افزار نيز بطور كل فرق ميكند .
اين مساله را حتي قبل از مشاهده اس شارپ با خواندن متن سخنراني مدير دپارتمان طراحي و گسترش SmallTalk اقاي سيمونز در همايشي كه سال 99 و به دعوت مايكروسافت از طراحان خبره نرم افزار براي ايده پروري حول دات نت برگزار شده بود ميتوان فهميد . او نميخواست اس شارپ چيزي مثل وي بي يا سي شارپ باشد و با پايه مشترك !

اس شارپ يك زبان اسكريپت نگاري است . حتما بلافاصله كلمه Jscript.Net به ذهنتان خطور ميكند ... عجله نكنيد !

اس شارپ ( مثل اغلب محيطهاي توليد اسكريپت چون PHP يا Perl ) نيازي به تعريف نوع متغير ندارد . ( dynamically typed language ) اس شارپ پشت صحنه تلاش زيادي خواهد كرد تا شما ( به عنوان يك توسعه دهنده نرم افزار ) درگير تخصيص حافظه مناسب - Type Casting هاي متعدد و مديريت فضاي مورد استفاده توسط اشيا نشويد !

( فرض كنيد تابعي داريد كه به عنوان يكي از پارامترهاي ورودي يك String دريافت ميكند و شما در پياده سازي تابع بناست از String.IndexOf استفاده كنيد . فرض كنيد استفاده كننده از تابع بجاي رشته يه Null به تابع شما هديه كند .
دات نت تابع را به اين اميد كه شما سيستم مديريت خطاي خود را راخل تابع پياده سازي كرده ايد اجرا ميكند اما ... اما در محيط اس شارپ حتي Null هم يك شي پذيرفته شده است ! كافيست يكبار متد null.indexof را تعريف كنيد و به همراه مجموعه كلاسهايتان عرضه كنيد ... ! )

اس شارپ ميتواند از هر آنچه كه دات نت به وي بي و سي شارپ اعطا كرده استفاده كند . اس شارپ توانائي برقراري ارتباط با Dll ها ( Activex Dlls - win32 API Dlls - other Dlls !!! ) را دارد همچنين توانائي برقراري ارتباط با دات نت اسمبلي و دات نت كامپوننتهائي كه با بقيه زبانها طراحي شده اند . اس شارپ حتي ميتواند اسملي هاي استاندارد دات نت را توليد كند !

هر چند محيط دات نت فعلا بطور صريح و مستقيم از وراثت چندگانه حمايت نميكند اما اين قابليت در عمق مترجم اس شارپ موجود است .

حالا برنامه نويسان اس شارپ ميتوانند سرويسهاي وب - صفحات ASP.NET و حتي برنامه هاي سرويس ويندوز و كنسول توليد كنند و اميدوار باشند با گسترش دات نت روي پلت فرمهاي ديگر اين آنها هستند كه با نگاه عاقل اندر سفيه به برنامه نويسان جاوا خواهند نگريست !!!