{"id":68,"date":"2026-03-23T04:53:19","date_gmt":"2026-03-23T04:53:19","guid":{"rendered":"https:\/\/blog.ocal.online\/?p=68"},"modified":"2026-03-23T04:53:19","modified_gmt":"2026-03-23T04:53:19","slug":"kodun-karanlik-labirenti-bolum-1-c-sharp-c-ve-microsoft-hegemonyasi","status":"publish","type":"post","link":"https:\/\/blog.ocal.online\/?p=68","title":{"rendered":"kodun karanlik labirenti &#8211; bolum 1: c sharp (c#) ve microsoft hegemonyasi"},"content":{"rendered":"<p>selam beyler, terminali biraz kenara birakin, bugun su meshur c sharp (c#) denilen nane ile kodlama dunyasina giris yapiyoruz. hani su microsoft&#8217;un &#8220;her sey benim olsun, her yer benim olsun&#8221; diyerek piyasaya surdugu, syntax olarak java&#8217;ya benzeyen ama ruhu biraz daha kurumsal kokan dil. madem bir yerden baslayacagiz, bari bu sistemin buglarini ogrenerek baslayalim.<\/p>\n<p>c sharp nedir: kurumsal bir yalan mi yoksa guclu bir compiler mi?<\/p>\n<p>simdi beyler, c# aslinda nesne yonelimli (oop) bir dil. yani her seyi bir &#8220;nesne&#8221; olarak goruyorsun. gercek hayatta da boyle degil mi zaten? sistem seni bir nesne, bir data paketi olarak goruyor, c# da ayni o hesap. arkada .net denilen devasa bir runtime (sanal makine gibi dusunun) calisiyor. yani sen kodu yaziyorsun, o once il (intermediate language) koduna donusuyor, sonra jit compiler bunu makine diline ceviriyor. yani oyle &#8220;direkt donanima hukmedeyim&#8221; fantezileriniz varsa assembly ya da c&#8217;ye gidin. burada microsoft&#8217;un cizdigi sinirlar icindesiniz.<\/p>\n<p>kurulum: visual studio hantalligi<\/p>\n<p>bu dili ogrenmek istiyorsan gidip o 30-40 gb&#8217;lik visual studio canavarini kurmani istiyorlar. bilgisayar resmen kernel panic verecek gibi oluyor kurarken. ayni su windows guncellemeleri gibi; bekletiyor da bekletiyor. ama biz ne yap\u0131yoruz? eger biraz sistem bilinciniz varsa vs code kurup hafiften yolumuza bakiyoruz. sistemi yormaya gerek yok, zaten dunya yeterince hantal.<\/p>\n<p>degiskenler ve veri tipleri: sistemdeki yerin ne?<\/p>\n<p>c#&#8217;ta her seyin bir yeri, bir tipi var. oyle python&#8217;daki gibi &#8220;ben takiliyorum abi&#8221; diyemezsin.<\/p>\n<p>int: tam sayilar. senin sistemdeki sicil numaran gibi.<\/p>\n<p>string: metinler. yandas medyanin attigi o bos mansetler gibi uzun ve anlamsiz olabilir.<\/p>\n<p>bool: ya dogru (true) ya yanlis (false). yani ya sisteme dahilsin ya da degilsin, ortasi yok.<\/p>\n<p>kodun ilk satiri: console.writeline(&#8220;merhaba dunya&#8221;);<\/p>\n<p>klasik&#8230; ama biz buna &#8220;sisteme ilk sizma denemesi&#8221; diyelim. ekrana bir sey yazdirmak kolay, asil mesele o yazdigin seyin arkasindaki mantigi oturtmak. compiler senin hatani aninda suratina carpar; &#8220;surada noktali virgul unutmussun hiyar&#8221; der gibi altini kirmiziyla cizer. ayni su &#8220;guven adasi&#8221; diyenlerin yalanlarini yakalayan log kayitlari gibi&#8230;<\/p>\n<p>sonuc: ilk derleme basarili (mi?)<\/p>\n<p>c# gucludur, arkasinda devasa bir destek var ama ayni zamanda seni microsoft&#8217;un ekosistemine hapseder. egitimin ilk bolumunde sadece kapiyi araladik. degiskenleri tanimladik, compiler&#8217;in nefesini ensemizde hissettik.<\/p>\n<p>sudo apt-get purge c-sharp-prejudice<\/p>\n<p>neyse, bu kadar &#8220;kurumsal&#8221; hava yeter. bir sonraki derste su if-else bloklarina girip, sistemin karar mekanizmalarini nasil manipule ederiz ona bakariz. terminalde kalin, compiler&#8217;i kizdirmayin.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>selam beyler, terminali biraz kenara birakin, bugun su meshur c sharp (c#) denilen nane ile kodlama dunyasina giris yapiyoruz. hani su microsoft&#8217;un &#8220;her sey benim olsun, her yer benim olsun&#8221; diyerek piyasaya surdugu, syntax olarak java&#8217;ya benzeyen ama ruhu biraz daha kurumsal kokan dil. madem bir yerden baslayacagiz, bari bu sistemin buglarini ogrenerek baslayalim. c<a class=\"more-link\" href=\"https:\/\/blog.ocal.online\/?p=68\"><span class=\"screen-reader-text\">&#8220;kodun karanlik labirenti &#8211; bolum 1: c sharp (c#) ve microsoft hegemonyasi&#8221;<\/span> yaz\u0131s\u0131n\u0131n devam\u0131n\u0131 oku<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-68","post","type-post","status-publish","format-standard","hentry","category-bloglar","entry"],"_links":{"self":[{"href":"https:\/\/blog.ocal.online\/index.php?rest_route=\/wp\/v2\/posts\/68","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ocal.online\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ocal.online\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ocal.online\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ocal.online\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=68"}],"version-history":[{"count":1,"href":"https:\/\/blog.ocal.online\/index.php?rest_route=\/wp\/v2\/posts\/68\/revisions"}],"predecessor-version":[{"id":69,"href":"https:\/\/blog.ocal.online\/index.php?rest_route=\/wp\/v2\/posts\/68\/revisions\/69"}],"wp:attachment":[{"href":"https:\/\/blog.ocal.online\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=68"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ocal.online\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=68"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ocal.online\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=68"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}