سلام براي يادگيري C# تا حدي که گليم خودتون رو از آب بتونيد بکشيد بيرون با اين 20 جلسه آموزش همراه باشيد. منبع رو هم آخر جلسه ي بيستم مي گم.
آشنايي با زبان 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 خود صرفا داراي ۷۷ کلمه کليدي يا Keyword بوده که براي اکثر برنامه نويسان غريب نخواهند بود. در مقابل BCL، داراي ۴۵۰۰ کلاس و تعداد بيشماري متد و Property است که برنامه نويسان #C، مي توانند از آنها براي انجام عمليات دلخواه خود استفاده نمايند. شايد يکي از مسائل قابل توجه جهت يادگيري اين زبان براي برخي از برنامه نويسان حرفه اي عدم وجود برخي از ويژگي ها و امکاناتي باشد که در گذشته و از طريق ساير زبانهاي استفاده شده، بخدمت گرفته می شدند. مثلا عدم وجود امکاناتی جهت توارث چندگانه (MI) سلسله مراتبی يک شئ.
خلاصه بدون شک فراگيری و تسلط بر زبان #C بمنزله کسب يک پتانسيل با ارزش بوده که ثمرات آن برای برنامه نويسان در حال و آينده ای نه چندان دور بيشتر هويدا خواهد شد. استاندارد بودن و وجود کتابخانه ای مملو از کلاس اين اطمينان را بوجود خواهد آورد که با فراگيری زبان فوق و کسب، مهارت های لازم، به يک توانائی فرا محيطی جديد دست پيدا خواهيم کرد که امکان استفاده از آن بر روی محيط های متفاوت وجود خواهد داشت. ويژگی ها و قابليت های بيشمار اين زبان از جمله دلايل قانع کننده ديگری است که فراگيری آن را توجيه پذير و منطقی می کند.
|