{"id":9487,"date":"2011-11-10T00:10:00","date_gmt":"2011-11-09T22:10:00","guid":{"rendered":"https:\/\/fatihboy.com\/post\/kodu-bir-uygulama-ile-bicimlendirmek"},"modified":"2011-11-10T00:10:00","modified_gmt":"2011-11-09T22:10:00","slug":"kodu-bir-uygulama-ile-bicimlendirmek","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/kodu-bir-uygulama-ile-bicimlendirmek\/","title":{"rendered":"Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika!"},"content":{"rendered":"<p>&nbsp;&nbsp; Microsoft &#8220;Roslyn&#8221; ile .net derleyicilerini managed hale d\u00f6n\u00fc\u015ft\u00fcrmek d\u0131\u015f\u0131nda bize derleyicinin dinamiklerini olduk\u00e7a tutarl\u0131 API\u2019ler ile sunmakta. <a href=\"\/en\/?p=9472\">Bir \u00f6nceki makalemi<\/a> hat\u0131rlayacak olursan\u0131z Roslyn ile kodumuzu analiz etmeye ba\u015flam\u0131\u015ft\u0131k. Kod analizlerinde ilk yap\u0131lmas\u0131 gereken \u015fey yaz\u0131lan kodun s\u00f6z dizim a\u011fac\u0131n\u0131 \u00e7\u0131kartmak olmal\u0131d\u0131r. Bu \u015fekilde yaz\u0131lan kodu her bir bile\u015feni programsal olarak temsil edilebilir ve i\u015flenebilir olacakt\u0131r. \u00d6nceki makalemde size bu i\u015flemin Roslyn s\u00f6z dizim API\u2019si ile ne kadar da kolay oldu\u011funu g\u00f6stermi\u015ftim. Bu makalemde bir ad\u0131m daha ileri giderek s\u00f6z dizim API\u2019si ile elde etti\u011fimiz veriyi nas\u0131l \u015fekillendirebilece\u011fimizi g\u00f6stermek istiyorum.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Makalemin ba\u015fl\u0131\u011f\u0131ndan da anlayaca\u011f\u0131n\u0131z gibi \u00f6rne\u011fim yazd\u0131\u011f\u0131m\u0131z bir kodu yeniden bi\u00e7imlendirmek \u00fczerine olacak (bknz.: <a href=\"http:\/\/en.wikipedia.org\/wiki\/Prettyprint\" target=\"_blank\" rel=\"noopener noreferrer\">prettyprint<\/a>). B\u00fcy\u00fck bir ekibin par\u00e7as\u0131 iseniz daha da \u00f6nemlisi benim gibi b\u00f6ylesi bir ekibi y\u00f6netme sorumlulu\u011funuz varsa, yaz\u0131lan kodun tek bir elden \u00e7\u0131km\u0131\u015f gibi olmas\u0131 sizin i\u00e7in \u00f6nemli olmal\u0131. Bu sayede ekibe yeni kat\u0131lan bir yaz\u0131l\u0131mc\u0131 standartlar\u0131n\u0131za al\u0131\u015fmas\u0131 sonras\u0131nda projenin her yerindeki kodlar\u0131 inceleyebilir\/kolayca anlayabilir. Eminim ki pek \u00e7o\u011funuz ya\u015fam\u0131\u015ft\u0131r; sizden \u00f6nceki yaz\u0131l\u0131m geli\u015ftiricinin yazd\u0131\u011f\u0131 kodlar sizin al\u0131\u015fk\u0131n oldu\u011funuz tarzdan farkl\u0131 yaz\u0131lm\u0131\u015ft\u0131r. De\u011fi\u015fken isimleri farkl\u0131 \u015fekilde verilmi\u015ftir, hatta parantezler bile al\u0131\u015fk\u0131n oldu\u011funuz yerde de\u011fildir ve bunlar sizin koda \u0131s\u0131nma s\u00fcrenizi olumsuz etkileyecektir. Bu durumun \u00f6n\u00fcne ge\u00e7ebilmek ve sirk\u00fclasyon ya\u015fanan ekiplerde kodun tek elden \u00e7\u0131km\u0131\u015f gibi g\u00f6r\u00fcnebilmesini sa\u011flamak i\u00e7in standartlara ihtiyac\u0131n\u0131z olacakt\u0131r. \u015eansl\u0131y\u0131z ki Visual Studio bu konuda bize yard\u0131mc\u0131 ve kodu yeniden bi\u00e7imlendiriyor; fakat bunun i\u00e7in yaz\u0131l\u0131m geli\u015ftiricinin men\u00fcden ya da klavyeden bu i\u015flemi tetiklemesi gerekli. Bu durumda da bazen bu basit i\u015flem g\u00f6zden ka\u00e7abilir. Bu durumda yap\u0131labilecek en mant\u0131kl\u0131 hareket kullan\u0131c\u0131n\u0131n kodunuz TFS v.b. kaynak kod sunucunuza girmeden hemen \u00f6nce bu i\u015flemi otomatik yapt\u0131rabilmek.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Roslyn ile birlikte kolayca ula\u015fabildi\u011fimiz s\u00f6z dizim a\u011fac\u0131 bize kodu yeniden d\u00fczenlemek ve ekibin standartlar\u0131na uygun hale getirmek i\u00e7in bir \u015fans vermekte. \u00d6nceki paragrafta \u00f6rnekledi\u011fim ve benzeri durumlar Roslyn geli\u015ftiricilerinin de ak\u0131llar\u0131na gelmi\u015f olacak ki bu konuda bize yard\u0131mc\u0131 olmak ad\u0131na <strong>CompilationUnitSyntax<\/strong> s\u0131n\u0131f\u0131 i\u00e7erisinde <strong>Format<\/strong> geni\u015fletme fonksiyonunu sunmaktalar. S\u00f6z dizim a\u011fac\u0131na ula\u015f\u0131lan bir kodun yeniden formatlanarak d\u00fczg\u00fcn hale gelmesi i\u00e7in tek yapman\u0131z gereken a\u015fa\u011f\u0131daki gibi format fonksiyonunu \u00e7a\u011f\u0131rmak oluyor;<\/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 sozDizimAgaci = SyntaxTree.ParseCompilationUnit(\n@\"using System;\n\nnamespace Com.Enterprisecoding.RoslynOrnegi {\n  public class MerhabaDunya {\n    public static void Mesaj() {\n      Console.WriteLine(\"\"Enterprisecoding'den Roslyn'e Merhaba\"\");\n    }\n  }\n}\");\n\nvar duzenlenmisKod = sozDizimAgaci.Root.Format().GetFullText();<\/pre>\n\n\n\n<p>&nbsp; Bu \u00f6rnekteki d\u00fczensiz koda ait s\u00f6z dizim a\u011fac\u0131na ula\u015f\u0131lmas\u0131 sonras\u0131nda Format fonksiyonu \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda verilen kod a\u015fa\u011f\u0131daki gibi yeniden d\u00fczenlenecektir;<\/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 System;\n\nnamespace Com.Enterprisecoding.RoslynOrnegi\n{\n    public class MerhabaDunya\n    {\n        public static void Mesaj()\n        {\n            Console.WriteLine(\"Enterprisecoding'den Roslyn'e Merhaba\");\n        }\n    }\n}<\/pre>\n\n\n\n<p>&nbsp; Harika de\u011fil mi!<\/p>\n\n\n\n<p>&nbsp; Bu noktada tabi ki ak\u0131llara \u015fu soru tak\u0131lacak; &#8220;benim ekibimde kullan\u0131lan standartlar bundan farkl\u0131, ben ne yapabilirim?&#8221; \u00d6rne\u011fin; ekibimin standartlar\u0131 gere\u011fi s\u00fcsl\u00fc parantezler bu \u00f6rnekte oldu\u011fu gibi bir alt sat\u0131rda de\u011fil de ayn\u0131 sat\u0131rda kalmal\u0131\u2026<\/p>\n\n\n\n<p>&nbsp;&nbsp; Bu noktada tahmin edebilece\u011finiz gibi haz\u0131rda kullan\u0131labilecek bir fonksiyon yok; fakat tabi ki \u00e7aresiz de de\u011filiz. Roslyn\u2019de s\u00f6z dizim a\u011fac\u0131 \u00e7\u0131kart\u0131lan bir kodun yeniden yaz\u0131labilmesi i\u00e7in <strong>SyntaxRewriter<\/strong> s\u0131n\u0131f\u0131 sunulmakta. <a href=\"http:\/\/en.wikipedia.org\/wiki\/Visitor_pattern\" target=\"_blank\" rel=\"noopener noreferrer\">Ziyaret\u00e7i tasar\u0131m deseni<\/a>nin uyguland\u0131\u011f\u0131 bu s\u0131n\u0131f, verdi\u011fimiz s\u00f6z dizin a\u011fac\u0131ndaki her bir simgeye u\u011frayarak d\u00fczenlenmi\u015f halini bizden isteyecektir. Bu durumda bizim yapmam\u0131z gereken verilen simgenin bir a\u00e7an s\u00fcsl\u00fc parantez olmas\u0131 ya da arkas\u0131ndan bir a\u00e7an s\u00fcsl\u00fc parantez gelmesi durumunda bo\u015fluklar\u0131 silmek olacak. Bu kadar basit\u2026<\/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=\"\">public class KodDuzenleyici : SyntaxRewriter {\n    protected override SyntaxToken VisitToken(SyntaxToken simge) {\n\n        if (simge.GetNextToken().Kind == SyntaxKind.OpenBraceToken) {\n            return simge.WithTrailingTrivia();\n        }\n        else if (simge.Kind == SyntaxKind.OpenBraceToken) {\n            return simge.WithLeadingTrivia();\n        }\n\n        return simge;\n    }\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Bu kod par\u00e7ac\u0131\u011f\u0131nda kulland\u0131\u011f\u0131m\u0131z <strong>WithTrailingTrivia<\/strong> ve <strong>WithLeadingTrivia<\/strong> fonksiyonlar\u0131 verilen simgenin sadece \u00f6n\u00fcndeki veya arkas\u0131ndaki bo\u015fluk v.b. karakterlerle kopyalanmas\u0131n\u0131 sa\u011flayacakt\u0131r. Bu durumda da \u00e7a\u011f\u0131r\u0131lan fonksiyona g\u00f6re simgenin \u00f6n\u00fcndeki ya da arkas\u0131ndaki bo\u015fluklar otomatik olarak silinecektir. Kodumuzu a\u015fa\u011f\u0131daki \u015fekilde kullanmam\u0131z m\u00fcmk\u00fcn;<\/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 duzenlenmisKod = new KodDuzenleyici().Visit(sozDizimAgaci.Root.Format()).GetFullText();<\/pre>\n\n\n\n<p>&nbsp; Bu kodun \u00e7al\u0131\u015fmas\u0131 sonras\u0131nda verdi\u011fimiz string ifade i\u00e7erisindeki kodumuz a\u015fa\u011f\u0131daki gibi yeniden formatlanm\u0131\u015f olacak;<\/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 System;\n\nnamespace Com.Enterprisecoding.RoslynOrnegi{\n    public class MerhabaDunya{\n        public static void Mesaj(){\n            Console.WriteLine(\"Enterprisecoding'den Roslyn'e Merhaba\");\n        }\n    }\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; \u00dcstelik isterseniz bu kullan\u0131m\u0131 a\u015fa\u011f\u0131daki gibi bir geni\u015fleme fonksiyonu yard\u0131m\u0131yla daha basit bir hale getirmeniz de m\u00fcmk\u00fcn;<\/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=\"\">public static class EnterprisecodingSyntaxExtensions {\n    public static SyntaxNode KoduBicimlendir(this SyntaxNode dugum) {\n        return new KodDuzenleyici().Visit(dugum.Format());\n    }\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Bu d\u00fczenleme sonras\u0131nda kodun kullan\u0131m\u0131 da \u015fu \u015fekilde 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=\"\">var duzenlenmisKod = sozDizimAgaci.Root.KoduBicimlendir().GetFullText();<\/pre>","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp; Microsoft &#8220;Roslyn&#8221; ile .net derleyicilerini managed hale d\u00f6n\u00fc\u015ft\u00fcrmek d\u0131\u015f\u0131nda bize derleyicinin dinamiklerini olduk\u00e7a tutarl\u0131 API\u2019ler ile sunmakta. Bir \u00f6nceki makalemi hat\u0131rlayacak olursan\u0131z Roslyn ile kodumuzu analiz etmeye ba\u015flam\u0131\u015ft\u0131k. Kod analizlerinde ilk yap\u0131lmas\u0131 gereken \u015fey yaz\u0131lan kodun s\u00f6z dizim a\u011fac\u0131n\u0131 \u00e7\u0131kartmak olmal\u0131d\u0131r. Bu \u015fekilde yaz\u0131lan kodu her bir bile\u015feni programsal olarak temsil edilebilir ve i\u015flenebilir&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/kodu-bir-uygulama-ile-bicimlendirmek\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":9491,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77,28],"tags":[137,140],"class_list":["post-9487","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csharp","category-turkce","tag-roslyn","tag-syntax-analysis"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika! - 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\/kodu-bir-uygulama-ile-bicimlendirmek\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika! - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"&nbsp;&nbsp; Microsoft &#8220;Roslyn&#8221; ile .net derleyicilerini managed hale d\u00f6n\u00fc\u015ft\u00fcrmek d\u0131\u015f\u0131nda bize derleyicinin dinamiklerini olduk\u00e7a tutarl\u0131 API\u2019ler ile sunmakta. Bir \u00f6nceki makalemi hat\u0131rlayacak olursan\u0131z Roslyn ile kodumuzu analiz etmeye ba\u015flam\u0131\u015ft\u0131k. Kod analizlerinde ilk yap\u0131lmas\u0131 gereken \u015fey yaz\u0131lan kodun s\u00f6z dizim a\u011fac\u0131n\u0131 \u00e7\u0131kartmak olmal\u0131d\u0131r. Bu \u015fekilde yaz\u0131lan kodu her bir bile\u015feni programsal olarak temsil edilebilir ve i\u015flenebilir...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/kodu-bir-uygulama-ile-bicimlendirmek\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2011-11-09T22:10:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/11\/temizlik_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\/kodu-bir-uygulama-ile-bicimlendirmek\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika!\",\"datePublished\":\"2011-11-09T22:10:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/\"},\"wordCount\":796,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/11\/temizlik_thumb.png\",\"keywords\":[\"Roslyn\",\"Syntax Analysis\"],\"articleSection\":[\"C#\",\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/\",\"url\":\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/\",\"name\":\"Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika! - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/11\/temizlik_thumb.png\",\"datePublished\":\"2011-11-09T22:10:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/11\/temizlik_thumb.png\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/11\/temizlik_thumb.png\",\"width\":209,\"height\":208},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika!\"}]},{\"@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":"Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika! - 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\/kodu-bir-uygulama-ile-bicimlendirmek\/","og_locale":"en_US","og_type":"article","og_title":"Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika! - Fatih Boy","og_description":"&nbsp;&nbsp; Microsoft &#8220;Roslyn&#8221; ile .net derleyicilerini managed hale d\u00f6n\u00fc\u015ft\u00fcrmek d\u0131\u015f\u0131nda bize derleyicinin dinamiklerini olduk\u00e7a tutarl\u0131 API\u2019ler ile sunmakta. Bir \u00f6nceki makalemi hat\u0131rlayacak olursan\u0131z Roslyn ile kodumuzu analiz etmeye ba\u015flam\u0131\u015ft\u0131k. Kod analizlerinde ilk yap\u0131lmas\u0131 gereken \u015fey yaz\u0131lan kodun s\u00f6z dizim a\u011fac\u0131n\u0131 \u00e7\u0131kartmak olmal\u0131d\u0131r. Bu \u015fekilde yaz\u0131lan kodu her bir bile\u015feni programsal olarak temsil edilebilir ve i\u015flenebilir...Read More","og_url":"https:\/\/fatihboy.com\/en\/kodu-bir-uygulama-ile-bicimlendirmek\/","og_site_name":"Fatih Boy","article_published_time":"2011-11-09T22:10:00+00:00","og_image":[{"width":209,"height":208,"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/11\/temizlik_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\/kodu-bir-uygulama-ile-bicimlendirmek\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika!","datePublished":"2011-11-09T22:10:00+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/"},"wordCount":796,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/11\/temizlik_thumb.png","keywords":["Roslyn","Syntax Analysis"],"articleSection":["C#","T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/","url":"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/","name":"Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika! - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/11\/temizlik_thumb.png","datePublished":"2011-11-09T22:10:00+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/11\/temizlik_thumb.png","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/11\/temizlik_thumb.png","width":209,"height":208},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/kodu-bir-uygulama-ile-bicimlendirmek\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"Kodu Bir Uygulama ile Bi\u00e7imlendirmek mi!? Harika!"}]},{"@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\/9487","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=9487"}],"version-history":[{"count":0,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/9487\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media\/9491"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=9487"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=9487"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=9487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}