آموزش C#
آشنائی با زبان برنامـه نویسی #C
مایکروسافت در مصاف با جاوا، بدنبال ارائه زبان کامل بود که سایه جاوا را در میادین پروگرام نویسی کم رنگ تر نماید. ممکن است بهمین دلیل باشد که #C را ایجاد کرد. شباهت های بین دو زبان خیلی چشم گیر است. مایکروسافت در رابطه با میزان استفاده گسترش زبان فوق بسیار زیاد خوشبین بوده و امیدوار است بسرعت زبان فوق گستردگی مقبولیتی به مراتب بیشتر از جاوا را نزد پیاده کنندگان پروگرام پیدا نماید .
با توجه به نقش محوری این زبان، از آن بعنوان مادر زبانهای برنامـه نویسی در دات نت نام برده می شود. مورد فوق به تنهائی، می تواند قانع کننده ای جهت یادگیری این زبان باشد، ولی دلایل زیاد دیگری نیز وجود دارد که در ادامه به گاهی از آنها اشاره می گردد.
بیان شدن بعنوان یک استاندارد صنعتی
انجمن تولیدکنندگان رایانه اروپا (ECMA) زبان #C را در سوم اکتبر سال 2001 بعنوان استاندارد پذیرفته (ECMA-334) بدنبال آن تلاش های وسیع ی جهت کسب گواهی ISO هم انجام شده است. زبان فوق در ابتدا بوسیله شرکت مایکروسافت و بعنوان بخشی از دات نت پیاده سازی و بلافاصله بعد از آن توسط کمپانی های اینتل، هیولیت پاکارد و مایکروسافت مشترکا، جهت استاندارسازی توصیه گردید.
زبان #C بگونه ای طراحی شده است که نه فقط وابستگی به Platform ویِژگزینشه را ندارد، بلکه در اکثرا ٌ موارد وابستگی RunTime نیز ندارد. کامپایلر #C می تواند بر روی هر نوع معماری سخت افزاری طراحی اجرا گردد. در برخی از ورژن های اولیه کامپایلر زبان فوق که بوسیله گاهی از مجموعه های جانبی ارائه شده است، کدهای #C را به بایت کدهای جاوا کمپایل می کنند. یکی از چنین کامپایلرهائی را می توان در وب سایت Halcyonsoft.com مشاهده نمود. پس کدهای #C براحتی قابلیت حمل بر روی محیط های مفرق را دارا خواهند بود.
معین ات تعریف شده زبان #C بابقیه استاندارهای تعریف شده ECMA شبیه (ECMA-335) CLI (Common Language Infrastructure) بخوب ی مطابقت می نمایند. CLI قلب و روح دات نت CLR(Common Language Runtime) است. اولین ورژن از کامپایلر زبان #C که از CLI استفاده می نماید ، NET Framwork. مایکروسافت است.
با توجه به موارد گفته شده، معین می گردد که این زبان بسرعت بسمت استاندارد شدن حرکت با تایید استانداردهای مربوطه از طرف انجمن های معتبر بین المللی و پشتیبانی فراگیر شرکت های معتبر رایانه ی در جهان مسیر را بسمت جهان ی شدن ببهتر ی طی می نماید.
#C چیست ؟
طراحان زبان #C با تاکید و الگوبرداری مناسب از ویژگی ها ی زبانهائی شبیه ++C، C جاوا نادیده گرفتن گاهی از امکانات تامل برانگیز کم مصرف شده در هر از زبانهای فوق، یک زبان برنامـه نویسی مدرن شی گراء را طراحی کرده اند. در موارد ی، برخی از خصوصیات ی استفاده نشده و درست درک نشده در هر یک از زبانهای گفته شده، حذف یا با اعمال کنترل های ضروری بر روی آنها، زمینه ایجاد یک زبان آسان و ایمن برای اکثرا ٌ پیاده کنندگان نرم افزار بوجود آمده است. برای مثال C و ++C می توانند مستقیما با مصرف از اشاره گرها عملیات دلخواه خود را در حافظه انجام دهند. وجود توانائی فوق جهت نوشتن برنامـه های رایانه ی با کارائی بالا ضرورت مهم دارد. ولی در صورتیکه عملیاتی اینچنین بدرستی کنترل هدایت نگردند، می تواند باعث ظهور موارد (Bugs) بیشماری گردد.
طراحان زبان #C، با درک ارزش موضوع فوق، این ویژگی را کماکان در آن گنجانده ولی بمنظور جلوگیری از مصرف نادرست و ایجاد اطمینان های ضروری مسئله حفاظت هم مورد توجه قرار گرفته است. جهت استفاده از ویژگی فوق، برنامـه نویسان می بایست با صراحت به روشنی خواسته را از طریق مصرف از Keyword های مربوطه اعلان نمایند( فراخوانی یک توانائی استفاده از آن).
#C بعنوان زبان شی گراء عالی است. این زبان First-Class را برای مفهوم Property (Data Member) بهمراهبقیه خصائص عمومی برنامـه نویسی شی گراء پشتیبانی می نماید . در C ++C جاوا یک متد get/set اکثرا جهت دستیابی به خصوصیات ی هر Property استفاده می گردد. CLI همچنان تعریف Property را به متدهای get/ser ترجمه کرده تا بدین طریق بتواند دارای حداکثر رابطه متقابل بابقیه زبانهای برنامـه نویسی باشد. #C بصورت فطری Events ، Declared Value، Reference Type Operator Overloading را هم پشتیبانی می نماید .
کد مدیریت یافته
با استفاده از نسخه پیاده سازی شده #C توسط مایکروسافت، می توان همیشه کد مدیریت یافته ای را تولید کرد. برنامـه #C بعد از کامپایل، بصورت پروگرام ای در خواهد آمد که حاوی دستورالعمل های تلفیق شده ( CIL (Common Intermediate Language است (درست بر خلاف دستورالعمل های مختص اتومبیل خاص). CIL (گاها با نام MSIL(Microsoft Intermediate Language) با به اختصار IL نیز نامیده می شود ) در مفهوم مشابه بایت کدهای جاوا بوده و حاوی مجموعه ای از دستورالعمل های سطح پایین قابل فهم بوسیله تکنولوژی مبتنی بر CLI مثل CLR مایکروسافت خواهد بود. این برنامـه ها بدین دلیل کد مدیریت یافته، نامیده می شوند که CLR مسئولیت تبدیل این دستورالعمل ها به کدهای قابل اجرا برروی اتومبیل و ارائه اکثرا ٌ سرویس های مهم برای کدینگ مثل : Garbage Collection، مدیریت Heap عمر مفید Object و یا Type Verification را فراهم می نماید .
روش یادگیری #C
یادگیری این زبان جهت افرادی که دارای سابقه آشنائی با یکی از زبانهای پروگرام نویسی ++C، C یا جاوا باشند کار مشکلی نخواهد بود، حتی افرادی که آشنائی اولیه با جاوااسکریپت و یا دیگر زبانهای برنامـه نویسی مثل ویژوال بیسک می باشند ، امکان پذیر آسان خواهد بود. گاهی از پروگرام نویسان پیشرفته بر این باور می باشند که #C نسبت به VB.NET با اقبال بیشتر و سریعتری مواجه خواهد شد، چراکه #C نسبت به ویژوال بیسک خلاصه تر است. حتی برنامـه های بزرگ و پیچیده ای که توسط #C نوشته می گردند خواناتر، کوتاه زیبا خواهند بود. برخی از خصوصیات ی ارائه شده در #C نظیر Unsigned Integer، Operator OverLoading امنیت بیشتر Type ها، در VB.NET وجود نداشته این امر می تواند دلیل ی بر فراگیرتر شدن #C نسبت به VB.NET نزد پروگرام نویسان با تجربه باشد.
برای یادگیری هر یک از زبانهای پشتیبانی شده در دات نت، می بایست از BCL (Basic Class Library) مربوط به NET Framework. شروع کرد. #C صرفا 77 کلمه کلیدی یا Keyword بوده که جهت اکثر پروگرام نویسان غریب نخواهند بود. در مقابل BCL، دارای 4500 کلاس و تعداد بیشماری متد Property است که برنامـه نویسان #C، می توانند از آنها برای انجام عملیات دلخواه استفاده نمایند. شاید یکی از موارد قابل توجه جهت یادگیری این زبان جهت گاهی از برنامـه نویسان پیشرفته عدم وجود گاهی از خصوصیات امکاناتی باشد که در قدیم و از طریقبقیه زبانهای مصرف شده، بخدمت گرفته می شدند. برای مثال عدم وجود امکاناتی جهت توارث چندگانه (MI) سلسله مراتبی شئ.
خلاصه :
شکی نیست فراگیری تسلط بر زبان #C بمنزله کسب یک پتانسیل ارزشمند بوده که ثمرات آن برای پروگرام نویسان در حال آینده ای نه چندان دور بیشتر هویدا خواهد شد. استاندارد بودن و وجود کتابخانه ای مملو از کلاس این اطمینان را بوجود خواهد آورد که با فراگیری زبان فوق کسب، مهارت های لازم ، به توانائی فرا محیطی دست پیدا خواهیم کرد که امکان مصرف از آن بر روی محیط های مفرق وجود خواهد داشت. خصوصیات امکانات بیشمار این زبان از عبارت دلایل قانع کننده دیگری است که فراگیری آن را توجیه پذیر و منطقی می نماید .
- ۹۵/۰۳/۰۱