{"id":9447,"date":"2011-10-29T20:44:00","date_gmt":"2011-10-29T18:44:00","guid":{"rendered":"https:\/\/fatihboy.com\/post\/calisma-zamaninda-kod-derlemeye-var-misiniz"},"modified":"2011-10-29T20:44:00","modified_gmt":"2011-10-29T18:44:00","slug":"calisma-zamaninda-kod-derlemeye-var-misiniz","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/calisma-zamaninda-kod-derlemeye-var-misiniz\/","title":{"rendered":"\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z?"},"content":{"rendered":"<p>&nbsp;&nbsp; Serinin \u00f6nceki makalelerinde Roslyn hakk\u0131nda giri\u015f d\u00fczeyi bilgi edinmi\u015f, hatta ilk kodlamalar\u0131m\u0131za ba\u015flayarak iki-\u00fc\u00e7 sat\u0131rla uygulamalar\u0131m\u0131zda nas\u0131l scripting deste\u011fi sunabilece\u011fimizi g\u00f6rm\u00fc\u015ft\u00fck. Bu makalemle yava\u015f yava\u015f daha e\u011flenceli kodlara ge\u00e7meyi planl\u0131yorum; san\u0131r\u0131m bir derleyici olarak Roslyn ile tan\u0131\u015fman\u0131n da zaman\u0131 geldi art\u0131k.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/RoslynDerleyiciAPIveBoruHatt.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/RoslynDerleyiciAPIveBoruHatt_thumb.png\" alt=\"RoslynDerleyiciAPIveBoruHatt\u0131\"\/><\/a><\/figure>\n\n\n\n<p>&nbsp;&nbsp; <a href=\"\/en\/?p=9438\">\u00d6nceki makalemden<\/a> yukar\u0131daki grafi\u011fi hat\u0131rlayacaks\u0131n\u0131zd\u0131r. <strong>Derleyici boru hatt\u0131<\/strong> (<em>pipeline<\/em>) mevcut derleyicilerin i\u00e7 yap\u0131s\u0131n\u0131 g\u00f6stermekteyken, <strong>Derleyici API<\/strong>\u2019si ise Roslyn projesinin bizlere a\u00e7m\u0131\u015f oldu\u011fu API\u2019leri ve derleyiciye m\u00fcdahale edebilece\u011fimiz noktalar\u0131 g\u00f6stermekte. Yazd\u0131\u011f\u0131m\u0131z kaynak kodlar\u0131 daha \u00f6nceden kara kutu olan derleyicilerde bu boru hatt\u0131nda i\u015flem g\u00f6rmekte ve bize derleyici API\u2019si sayesinde s\u00fcrece m\u00fcdahale edebilme\/g\u00f6rme \u015fans\u0131 verilmekte. Derleyici boru hatt\u0131n\u0131n di\u011fer taraf\u0131na geldi\u011fimizde ise art\u0131k elimizde IL kodlar\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fclm\u00fc\u015f assembly\u2019ler olacakt\u0131r.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/Roslyn.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/Roslyn_thumb.png\" alt=\"Roslyn\"\/><\/a><\/figure>\n\n\n\n<p>&nbsp;&nbsp; Yukar\u0131daki grafi\u011fin \u00fcst b\u00f6l\u00fcm\u00fcnde yer alan <strong>Dil Hizmeti<\/strong> bizlere Roslyn ile sunulan API\u2019lerden hangisinin hangi ama\u00e7 ile kullan\u0131labilece\u011fini\/kullan\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6stermektedir. Asl\u0131na bakarsan\u0131z Dil Hizmeti b\u00f6l\u00fcm\u00fcndeki her bir girdi ayn\u0131 zamanda Visual Studio i\u00e7erisindeki bir \u00f6zelliktir. Sizlere bu makalemde Derleyici API\u2019sini kullanarak \u00e7al\u0131\u015fma-zaman\u0131nda bir kaynak kodu nas\u0131l IL koduna d\u00f6n\u00fc\u015ft\u00fcrebilece\u011fimizi anlataca\u011f\u0131m. Bundan da \u00f6te, dinamik olu\u015fturulan bu assembly\u2019yi yine \u00e7al\u0131\u015fma-zaman\u0131nda nas\u0131l uygulaman\u0131z i\u00e7erisine y\u00fckleyerek kullanabilece\u011finizden bahsedece\u011fim.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Yaz\u0131l\u0131m d\u00fcnyas\u0131n\u0131 vazge\u00e7ilmez gelene\u011fidir \u201c<strong>Hello World<\/strong>\u201d (<em>Merhaba D\u00fcnya<\/em>) \u00f6rneklemesi, Roslyn ile birlikte gelen derleyici API\u2019sini anlat\u0131rken san\u0131r\u0131m verilebilecek en iyi giri\u015f \u00f6rne\u011fide bu olacakt\u0131r;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">using Roslyn.Compilers;\nusing Roslyn.Compilers.CSharp;\n\n\/\/\u2026\n\nvar kod = @\"class MerhabaDunya { public static void Mesaj() { System.Console.WriteLine(\"\"Enterprisecoding'den Roslyn'e Merhaba\"\"); } }\";\nvar assemblyAdi = \"Enterprisecoding-\" + Guid.NewGuid() + \".dll\";\n\nvar sozDizinAgaci = SyntaxTree.ParseCompilationUnit(kod);\nvar derleme = Compilation.Create(\n    assemblyAdi,\n    options: new CompilationOptions(assemblyKind: AssemblyKind.DynamicallyLinkedLibrary),\n    syntaxTrees: new[] { sozDizinAgaci },\n    references: new[] { new AssemblyFileReference(typeof(object).Assembly.Location) });\n\nAssembly derlenmisAssembly;\nusing (var akis = new MemoryStream()) {\n    var derlemeSonucu = derleme.Emit(akis);\n    derlenmisAssembly = Assembly.Load(akis.GetBuffer());\n}\n\nvar merhabaDunyaTuru = derlenmisAssembly.GetType(\"MerhabaDunya\");\nvar mesajMetodu = merhabaDunyaTuru.GetMethod(\"Mesaj\");\nmesajMetodu.Invoke(null, null);<\/pre>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/EnterprisecodingRoslynMerhaba.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/EnterprisecodingRoslynMerhaba_thumb.png\" alt=\"\u00d6rnek konsol uygulamam\u0131z\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda &quot;Enterprisecoding'den Roslyn'e Merhaba&quot; yaz\u0131s\u0131 g\u00f6r\u00fclecektir\"\/><\/a><\/figure>\n\n\n\n<p>&nbsp;&nbsp; \u00d6rnek kodumuzu bir konsol projesinin main fonksiyonu i\u00e7erisine koyacak olursan\u0131z \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda yukar\u0131daki \u00e7\u0131kt\u0131y\u0131 alacaks\u0131n\u0131z. String olarak derleyici API\u2019sine verdi\u011fimiz girdi derleyici taraf\u0131ndan yorumlanarak bize bir assembly ak\u0131\u015f\u0131 verilecektir. Assembly.Load fonksiyonu yard\u0131m\u0131yla bu ak\u0131\u015f\u0131 y\u00fckledi\u011fimizde art\u0131k i\u00e7erisindeki t\u00fcrleri kullanabilir duruma gelece\u011fiz.<\/p>\n\n\n\n<p>&nbsp;&nbsp; \u015eimdi isterseniz ad\u0131m ad\u0131m bu \u00f6rne\u011fimizi inceleyelim. Derlenecek kodu string olarak verip, olu\u015facak assembly ad\u0131n\u0131 belirledikten sonra \u00f6ncelikle a\u015fa\u011f\u0131daki sat\u0131rla kodumuza ait s\u00f6z dizim a\u011fac\u0131n\u0131 olu\u015fturuyoruz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">var sozDizinAgaci = SyntaxTree.ParseCompilationUnit(kod);<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Makalemin birincil hedefinin string bir kod par\u00e7ac\u0131\u011f\u0131n\u0131n derlenerek uygulama i\u00e7erisinde kullan\u0131lmas\u0131 oldu\u011fu i\u00e7in s\u00f6z dizim a\u011fac\u0131 API\u2019sinin detay\u0131na inmiyorum; bizlere \u00f6nemli bilgiler sundu\u011funu s\u00f6yleyebilirim. Bu API\u2019yi merak edenlerin serinin sonraki makalelerini takip etmelerini tavsiye ederim.<\/p>\n\n\n\n<p>&nbsp;&nbsp; S\u00f6z dizim a\u011fac\u0131 derleyici API\u2019sinin temel girdisi olacakt\u0131r. Kodun devam\u0131nda ise Compilation s\u0131n\u0131f\u0131 yard\u0131m\u0131yla bir derleme olu\u015fturmaktay\u0131z.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">var derleme = Compilation.Create(\n    assemblyAdi,\n    options: new CompilationOptions(assemblyKind: AssemblyKind.DynamicallyLinkedLibrary),\n    syntaxTrees: new[] { sozDizinAgaci },\n    references: new[] { new AssemblyFileReference(typeof(object).Assembly.Location) });<\/pre>\n\n\n\n<p>&nbsp;&nbsp; <strong>Compilation<\/strong> s\u0131n\u0131f\u0131; derleyicinin C# ya da Visual Basic uygulama kodlar\u0131n\u0131 derleyerek bir assembly olu\u015fturabilmesi i\u00e7in ihtiyac\u0131 olan referanslar, derlenecek kaynak kodlar\u0131, derleme se\u00e7enekleri gibi verileri bir arada tutmaktad\u0131r. Compilation i\u00e7erisinde tutulan bu bilgiler sayesinde kaynak kod derleyici taraf\u0131ndan anlamland\u0131r\u0131labilir ve IL kodlar\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilir. \u00d6rne\u011fimizde; verdi\u011fimiz s\u00f6z dizim a\u011fac\u0131 kullan\u0131larak bir dll olu\u015fturulmas\u0131n\u0131 ve bu dll olu\u015fturulurken sadece mscorlib dll\u2019ine referans verilmesini istedi\u011fimizi belirtmekteyiz.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Compilation s\u0131n\u0131f\u0131 yard\u0131m\u0131yla derleyicinin \u00e7al\u0131\u015fmas\u0131n\u0131 istedi\u011fimiz ba\u011flam\u0131 belirledikten sonra geriye sadece derleyiciye IL kodunu olu\u015fturmas\u0131n\u0131 s\u00f6ylemek kal\u0131yor. <strong>Emit<\/strong> fonksiyonu yard\u0131m\u0131yla yap\u0131lan bu i\u015flemde dikkat edecek olursan\u0131z derleyici bize dosya sistemi \u00fczerindeki bir dosyay\u0131 i\u015faret etmek yerine bir ak\u0131\u015f sunmakta. Bu ak\u0131\u015f dosya sistemine yaz\u0131larak bir assembly olu\u015fturulabilece\u011fi gibi \u00f6rne\u011fimizde oldu\u011fu gibi \u00e7al\u0131\u015fma zaman\u0131ndan hi\u00e7 dosya sistemine yaz\u0131lmadan uygulaman\u0131n appdomain\u2019ine y\u00fcklenebilir.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Assembly derlenmisAssembly;\nusing (var akis = new MemoryStream()) {\n    var derlemeSonucu = derleme.Emit(akis);\n    derlenmisAssembly = Assembly.Load(akis.GetBuffer());\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Bu i\u015flemler ard\u0131nda art\u0131k kaynak kodumuz \u00e7al\u0131\u015fma-zaman\u0131nda derlenerek haf\u0131zaya y\u00fcklenmi\u015f olacakt\u0131r. Bu noktadan sonra ayn\u0131 standart bir assembly i\u00e7erisinde i\u015flem yapar gibi i\u015flemlerimizi ger\u00e7ekle\u015ftirebiliriz. \u00d6rne\u011fimizde reflection yard\u0131m\u0131yla bu derlemede olu\u015fan t\u00fcrlere ula\u015fmakta ve <strong>MerhabaDunya<\/strong> s\u0131n\u0131f\u0131 i\u00e7erisindeki <strong>Mesaj<\/strong> fonksiyonunu \u00e7al\u0131\u015ft\u0131rmaktay\u0131z. Verilen bir kaynak kodun Derleyici API\u2019si ile bir assembly\u2019ye d\u00f6n\u00fc\u015ft\u00fcr\u00fclmesi ayn\u0131 bu kadar kolay.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Giri\u015f seviyesindeki bir \u00f6rnekle sizlere detaylar\u0131n\u0131 vermeye \u00e7al\u0131\u015ft\u0131\u011f\u0131m Derleyici API\u2019si bize yepyeni bir d\u00fcnyan\u0131n kap\u0131lar\u0131n\u0131 a\u00e7makta. \u00c7al\u0131\u015fma-Zaman\u0131nda bir kaynak kodu derleyebilmek ve uygulamaya y\u00fckleyip kullanabilmek bize kullan\u0131c\u0131 al\u0131\u015fkanl\u0131klar\u0131n\u0131 \u00f6\u011frenerek kendini bu do\u011frultuda yeniden d\u00fczenleyen, kendi kendine geli\u015fen uygulamalar yapabilme f\u0131rsat\u0131n\u0131 sunacakt\u0131r.<\/p>\n\n\n\n<p>&nbsp; Derleyici API\u2019sine giri\u015f yapabilmek ad\u0131na basit tutmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131m bu makalem sonras\u0131nda takip eden makalemde sizlerle Derleyici API\u2019si yard\u0131m\u0131yla uygulamalar\u0131n\u0131z\u0131 nas\u0131l daha iyi hale getirebilece\u011finiz dair g\u00fczel bir \u00f6rnek payla\u015fmay\u0131 planl\u0131yorum.<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp; Serinin \u00f6nceki makalelerinde Roslyn hakk\u0131nda giri\u015f d\u00fczeyi bilgi edinmi\u015f, hatta ilk kodlamalar\u0131m\u0131za ba\u015flayarak iki-\u00fc\u00e7 sat\u0131rla uygulamalar\u0131m\u0131zda nas\u0131l scripting deste\u011fi sunabilece\u011fimizi g\u00f6rm\u00fc\u015ft\u00fck. Bu makalemle yava\u015f yava\u015f daha e\u011flenceli kodlara ge\u00e7meyi planl\u0131yorum; san\u0131r\u0131m bir derleyici olarak Roslyn ile tan\u0131\u015fman\u0131n da zaman\u0131 geldi art\u0131k. &nbsp;&nbsp; \u00d6nceki makalemden yukar\u0131daki grafi\u011fi hat\u0131rlayacaks\u0131n\u0131zd\u0131r. Derleyici boru hatt\u0131 (pipeline) mevcut derleyicilerin i\u00e7&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/calisma-zamaninda-kod-derlemeye-var-misiniz\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":9462,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77,28],"tags":[139,137],"class_list":["post-9447","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csharp","category-turkce","tag-derleyici-api","tag-roslyn"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z? - Fatih Boy<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihboy.com\/en\/calisma-zamaninda-kod-derlemeye-var-misiniz\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z? - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"&nbsp;&nbsp; Serinin \u00f6nceki makalelerinde Roslyn hakk\u0131nda giri\u015f d\u00fczeyi bilgi edinmi\u015f, hatta ilk kodlamalar\u0131m\u0131za ba\u015flayarak iki-\u00fc\u00e7 sat\u0131rla uygulamalar\u0131m\u0131zda nas\u0131l scripting deste\u011fi sunabilece\u011fimizi g\u00f6rm\u00fc\u015ft\u00fck. Bu makalemle yava\u015f yava\u015f daha e\u011flenceli kodlara ge\u00e7meyi planl\u0131yorum; san\u0131r\u0131m bir derleyici olarak Roslyn ile tan\u0131\u015fman\u0131n da zaman\u0131 geldi art\u0131k. &nbsp;&nbsp; \u00d6nceki makalemden yukar\u0131daki grafi\u011fi hat\u0131rlayacaks\u0131n\u0131zd\u0131r. Derleyici boru hatt\u0131 (pipeline) mevcut derleyicilerin i\u00e7...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/calisma-zamaninda-kod-derlemeye-var-misiniz\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2011-10-29T18:44:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/compile_thumb.png\" \/>\n\t<meta property=\"og:image:width\" content=\"209\" \/>\n\t<meta property=\"og:image:height\" content=\"208\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fatih Boy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Boy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z?\",\"datePublished\":\"2011-10-29T18:44:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/\"},\"wordCount\":889,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/compile_thumb.png\",\"keywords\":[\"Derleyici API\",\"Roslyn\"],\"articleSection\":[\"C#\",\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/\",\"url\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/\",\"name\":\"\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z? - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/compile_thumb.png\",\"datePublished\":\"2011-10-29T18:44:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/compile_thumb.png\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/compile_thumb.png\",\"width\":209,\"height\":208},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihboy.com\/#website\",\"url\":\"https:\/\/fatihboy.com\/\",\"name\":\"Fatih Boy\",\"description\":\"Ki\u015fisel Web Sitesi\",\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihboy.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\",\"name\":\"Fatih Boy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"caption\":\"Fatih Boy\"},\"logo\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/fatihboy.com\"],\"url\":\"https:\/\/fatihboy.com\/en\/author\/fatih\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z? - Fatih Boy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihboy.com\/en\/calisma-zamaninda-kod-derlemeye-var-misiniz\/","og_locale":"en_US","og_type":"article","og_title":"\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z? - Fatih Boy","og_description":"&nbsp;&nbsp; Serinin \u00f6nceki makalelerinde Roslyn hakk\u0131nda giri\u015f d\u00fczeyi bilgi edinmi\u015f, hatta ilk kodlamalar\u0131m\u0131za ba\u015flayarak iki-\u00fc\u00e7 sat\u0131rla uygulamalar\u0131m\u0131zda nas\u0131l scripting deste\u011fi sunabilece\u011fimizi g\u00f6rm\u00fc\u015ft\u00fck. Bu makalemle yava\u015f yava\u015f daha e\u011flenceli kodlara ge\u00e7meyi planl\u0131yorum; san\u0131r\u0131m bir derleyici olarak Roslyn ile tan\u0131\u015fman\u0131n da zaman\u0131 geldi art\u0131k. &nbsp;&nbsp; \u00d6nceki makalemden yukar\u0131daki grafi\u011fi hat\u0131rlayacaks\u0131n\u0131zd\u0131r. Derleyici boru hatt\u0131 (pipeline) mevcut derleyicilerin i\u00e7...Read More","og_url":"https:\/\/fatihboy.com\/en\/calisma-zamaninda-kod-derlemeye-var-misiniz\/","og_site_name":"Fatih Boy","article_published_time":"2011-10-29T18:44:00+00:00","og_image":[{"width":209,"height":208,"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/compile_thumb.png","type":"image\/png"}],"author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z?","datePublished":"2011-10-29T18:44:00+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/"},"wordCount":889,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/compile_thumb.png","keywords":["Derleyici API","Roslyn"],"articleSection":["C#","T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/","url":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/","name":"\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z? - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/compile_thumb.png","datePublished":"2011-10-29T18:44:00+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/compile_thumb.png","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/10\/compile_thumb.png","width":209,"height":208},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/calisma-zamaninda-kod-derlemeye-var-misiniz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"\u00c7al\u0131\u015fma-Zaman\u0131nda Kod Derlemeye Var M\u0131s\u0131n\u0131z?"}]},{"@type":"WebSite","@id":"https:\/\/fatihboy.com\/#website","url":"https:\/\/fatihboy.com\/","name":"Fatih Boy","description":"Ki\u015fisel Web Sitesi","publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihboy.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158","name":"Fatih Boy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","caption":"Fatih Boy"},"logo":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/fatihboy.com"],"url":"https:\/\/fatihboy.com\/en\/author\/fatih\/"}]}},"brizy_media":[],"_links":{"self":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/9447","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/comments?post=9447"}],"version-history":[{"count":0,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/9447\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media\/9462"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=9447"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=9447"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=9447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}