{"id":389,"date":"2010-02-14T17:05:22","date_gmt":"2010-02-14T15:05:22","guid":{"rendered":"\/post\/dynamic-statik-ve-dinamik-diller-arasc4b1-kopru.aspx"},"modified":"2021-06-14T17:35:27","modified_gmt":"2021-06-14T14:35:27","slug":"dynamic-statik-ve-dinamik-diller-arasi-kopru","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/","title":{"rendered":"dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc"},"content":{"rendered":"<p><a href=\"\/en\/?p=57\">Bir \u00f6nceki makaleme<\/a> gelen g\u00fczel yorumlar sonras\u0131 dynamic hakk\u0131nda ikinci bir makale ile konuyu detayland\u0131rman\u0131n faydal\u0131 olaca\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnd\u00fcm.<\/p>\n\n\n\n<p>C# 4.0\u2019la birlikte gelen \u00f6zellikleri inceleyenlerin dynamic hakk\u0131nda d\u00fc\u015ft\u00fc\u011f\u00fc ortak bir yan\u0131l\u011f\u0131, dynamic\u2019in CLR seviyesinde desteklendi\u011fidir. Her ne kadar dynamic hayat\u0131m\u0131zda \u00f6nemli bir de\u011fi\u015fikli\u011fe neden olsa da, bu yan\u0131lg\u0131ya d\u00fc\u015fenler i\u00e7in basit kullan\u0131mlarda beklediklerinin aksine uygulamalar\u0131nda performans kay\u0131plar\u0131na neden olacakt\u0131r.<\/p>\n\n\n\n<p>dynamic, CLR a\u00e7\u0131s\u0131ndan bak\u0131ld\u0131\u011f\u0131nda, herhangi bir C# k\u00fct\u00fcphanesinden farkl\u0131 de\u011fildir. Tabi ki microsoft bu k\u00fct\u00fcphanenin bizler taraf\u0131ndan daha kolay kullan\u0131labilmesi amac\u0131yla C# diline ekleme yapm\u0131\u015f, derleyici deste\u011fi sa\u011flam\u0131\u015ft\u0131r.<\/p>\n\n\n\n<p>Konuyu daha netle\u015ftirebilmek i\u00e7in bir \u00f6nceki makalemde verdi\u011fim a\u015fa\u011f\u0131daki dynamic kod \u00f6rne\u011fini hat\u0131rlayal\u0131m:<\/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=\"\">class Program {\n   static void Main(string[] args) {\n      dynamic nesne = 1;\n\n      if (nesne.GetType() == typeof(int)){\n         Console.WriteLine(\"Tabi ki t\u00fcr\u00fc int\");\n      }  else {\n         Console.WriteLine(\"T\u00fcm makale hatal\u0131ym\u0131\u015f :P\");\n      }\n\n      nesne = nesne + 1;\n   }\n}<\/pre>\n\n\n\n<p>Bu \u00f6rne\u011fin derlenmesi sonras\u0131 olu\u015fan kodu <a href=\"http:\/\/www.red-gate.com\/products\/reflector\/\" target=\"_blank\" rel=\"noopener noreferrer\">reflector<\/a> ile incelersek kar\u015f\u0131m\u0131za a\u015fa\u011f\u0131daki gibi bir kod \u00e7\u0131kacakt\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=\"\">internal class Program {\n    private static void Main(string[] args) {\n        object nesne = 1;\n        if (o__SiteContainer0.&lt;>p__Site1 == null) {\n            o__SiteContainer0.&lt;>p__Site1 = CallSite>.Create(Binder.UnaryOperation(CSharpBinderFlags.None, ExpressionType.IsTrue, typeof(Program), new CSharpArgumentInfo[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }));\n        }\n        if (o__SiteContainer0.&lt;>p__Site2 == null) {\n            o__SiteContainer0.&lt;>p__Site2 = CallSite>.Create(Binder.BinaryOperation(CSharpBinderFlags.None, ExpressionType.Equal, typeof(Program), new CSharpArgumentInfo[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null) }));\n        }\n        if (o__SiteContainer0.&lt;>p__Site3 == null) {\n            o__SiteContainer0.&lt;>p__Site3 = CallSite>.Create(Binder.InvokeMember(CSharpBinderFlags.None, \"GetType\", null, typeof(Program), new CSharpArgumentInfo[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }));\n        }\n        if (o__SiteContainer0.&lt;>p__Site1.Target.Invoke(o__SiteContainer0.&lt;>p__Site1, o__SiteContainer0.&lt;>p__Site2.Target.Invoke(o__SiteContainer0.&lt;>p__Site2, o__SiteContainer0.&lt;>p__Site3.Target.Invoke(o__SiteContainer0.&lt;>p__Site3, nesne), typeof(int)))) {\n            Console.WriteLine(\"Tabi ki t\\x00fcr\\x00fc int\");\n        }\n        else {\n            Console.WriteLine(\"T\\x00fcm makale hatal\u0131ym\u0131\u015f :P\");\n        }\n\n        if (o__SiteContainer0.&lt;>p__Site4 == null) {\n            o__SiteContainer0.&lt;>p__Site4 = CallSite>.Create(Binder.BinaryOperation(CSharpBinderFlags.None, ExpressionType.Add, typeof(Program), new CSharpArgumentInfo[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.Constant | CSharpArgumentInfoFlags.UseCompileTimeType, null) }));\n        }\n        nesne = o__SiteContainer0.&lt;>p__Site4.Target.Invoke(o__SiteContainer0.&lt;>p__Site4, nesne, 1);\n    }\n\n    [CompilerGenerated]\n    private static class o__SiteContainer0 {\n        public static CallSite> &lt;>p__Site1;\n        public static CallSite> &lt;>p__Site2;\n        public static CallSite> &lt;>p__Site3;\n        public static CallSite> &lt;>p__Site4;\n    }\n}<\/pre>\n\n\n\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc gibi yazm\u0131\u015f oldu\u011fumuz kod i\u00e7erisine derleyici taraf\u0131nda olduk\u00e7a fazla m\u00fcdahale edilmi\u015f. Yap\u0131lan bu m\u00fcdahale ile birlikte ortaya \u00e7\u0131kan bu kodu, basit bir t\u00fcr d\u00f6n\u00fc\u015f\u00fcm\u00fc ile h\u0131zl\u0131ca ilerleyece\u011fimiz a\u015fa\u011f\u0131daki gibi bir kod ile kar\u015f\u0131la\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda hangisinin daha performansl\u0131 olaca\u011f\u0131 a\u015fikar;<\/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=\"\">class Program {\n   static void Main(string[] args) {\n      object nesne = 1;\n\n      if (nesne.GetType() == typeof(int)){\n         Console.WriteLine(\"Tabi ki t\u00fcr\u00fc int\");\n      }  else {\n         Console.WriteLine(\"T\u00fcm makale hatal\u0131ym\u0131\u015f :P\");\n      }\n\n      nesne = (int)nesne + 1;\n   }\n}<\/pre>\n\n\n\n<p>Tabi ki bu kar\u015f\u0131la\u015ft\u0131rma hi\u00e7 bir zaman dynamic kullanmay\u0131n demek de\u011fil; fakat do\u011fru yerde kullan\u0131n demek \ud83d\ude09<\/p>\n\n\n\n<p><strong>\u201c<em>Peki dynamic kullan\u0131m\u0131 i\u00e7in do\u011fru yer neresidir?<\/em>\u201d<\/strong><\/p>\n\n\n\n<p>.Net 4.0 DLR (Dynamic Language Runtime, Dinamik Dil \u00c7al\u0131\u015fma-Zaman\u0131) ve birlikte gelen dynamic anahtar kelimesi, statik diller (C#, Visual Basic v.b.) ile dinamik diller (Python, Ruby v.b.) aras\u0131nda bir k\u00f6pr\u00fc olmaktad\u0131r.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_1.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.png\" alt=\"CLR-DLR etkile\u015fimi\"\/><\/a><\/figure>\n\n\n\n<p>\u00dcstelik bu k\u00f6pr\u00fc sadece Python ve Ruby dilleriyle de s\u0131n\u0131rl\u0131 olmay\u0131p; Javascript, Silverlight, Ofis\/COM ve di\u011fer pek \u00e7oklar\u0131n\u0131 da kapsamaktad\u0131r.<\/p>\n\n\n\n<p>.Net 4.0 \u00f6ncesinde dinamik diller ve COM ile ileti\u015fim kurmakta ya\u015fad\u0131\u011f\u0131m\u0131z pek \u00e7ok zorluk DLR ile birlikte tarih olacak gibi g\u00f6r\u00fcn\u00fcyor. Bu noktalardaki dynamic kullan\u0131m\u0131 gerek geli\u015ftirme s\u00fcresini h\u0131zland\u0131rmada, gerekse de kod okunurlu\u011funu artt\u0131rmada \u00f6nemli bir katma de\u011fer sa\u011flayacakt\u0131r.<\/p>\n\n\n\n<p><strong>\u201c<em>Dinamil Dil \u00c7al\u0131\u015fma-Zaman\u0131 (DLR) nas\u0131l \u00e7al\u0131\u015f\u0131r?<\/em>\u201d<\/strong><\/p>\n\n\n\n<p>Yaz\u0131m\u0131n ba\u015f\u0131nda da belirtti\u011fim gibi CLR bak\u0131\u015f a\u00e7\u0131s\u0131yla DLR sadece bir k\u00fct\u00fcphanedir; fakat hayat\u0131m\u0131zdan \u00f6nemli bir yer tutacak bir k\u00fct\u00fcphane \ud83d\ude42<\/p>\n\n\n\n<p>Dinamik dil \u00e7al\u0131\u015fma-zaman\u0131 hakk\u0131nda daha \u00f6nce de ara\u015ft\u0131rma yapt\u0131ysan\u0131z a\u015fa\u011f\u0131daki grafik size tan\u0131d\u0131k gelecektir.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/dlr2_1.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/dlr2_thumb_1.png\" alt=\"dlr2\"\/><\/a><\/figure>\n\n\n\n<p>Statik dillerle dinamik diller aras\u0131nda bir k\u00f6pr\u00fc olan DLR bu grafikte de g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi 4 ana par\u00e7adan olu\u015fur:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>\u0130fade a\u011faclar\u0131 (<em>Expression Trees<\/em>) :<\/strong> \u0130fade a\u011fa\u00e7lar\u0131, Linq ile derinlemesine u\u011fra\u015fanlar\u0131n\u0131za tan\u0131d\u0131k gelecektir. Yazd\u0131\u011f\u0131n\u0131z ifade, derleyici taraf\u0131ndan MSIL\u2019e d\u00f6n\u00fc\u015ft\u00fcr\u00fclmek yerine programsal olarak i\u015flenebilmesi amac\u0131yla ifadeyi anlatan a\u011fa\u00e7 yap\u0131s\u0131nda nesnelere d\u00f6n\u00fc\u015ft\u00fcr\u00fclecektir. Bu d\u00f6n\u00fc\u015f\u00fcm sayesinde, \u00e7al\u0131\u015facak kodun derlenme-zaman\u0131 olu\u015fmas\u0131 nedeniyle statik dillerde sahip olamad\u0131\u011f\u0131m\u0131z esnekli\u011fi kazanmaktay\u0131z.<\/li><li><strong>Dinamik Da\u011f\u0131t\u0131c\u0131 (<em>Dynamic Dispatch<\/em>) :<\/strong>&nbsp; En basit ifadeyle dinamik da\u011f\u0131t\u0131c\u0131, \u00e7al\u0131\u015fma-zaman\u0131 metot ve \u00f6zellik \u00e7a\u011fr\u0131lar\u0131na izin veren yap\u0131d\u0131r. Dinamik bir t\u00fcr \u00fczerinde yap\u0131lan i\u015flemler dinamik da\u011f\u0131t\u0131c\u0131ya y\u00f6nlendirilmekte, burada yap\u0131lm\u0131\u015f olan i\u015fleme ait ifade a\u011fac\u0131 yorumlanmaktad\u0131r. Dinamik da\u011f\u0131t\u0131c\u0131 sayesinde C# i\u00e7erisinden dinamik dillere \u00e7a\u011fr\u0131 yap\u0131labilmesi sa\u011fland\u0131\u011f\u0131 gibi, ayn\u0131 zamanda dinamik dillerden C# s\u0131n\u0131flar\u0131na \u00e7a\u011fr\u0131 yap\u0131labilmesine olanak sa\u011flanm\u0131\u015ft\u0131r. Bu sayede, \u00e7ift y\u00f6nl\u00fc olarak, her iki yakla\u015f\u0131m\u0131n g\u00fc\u00e7l\u00fc y\u00f6nleri ayn\u0131 anda kullan\u0131labilmektedir. Bir C# s\u0131n\u0131f\u0131nda dinamik da\u011f\u0131t\u0131c\u0131 \u00f6zelli\u011fine sahip olabilmek i\u00e7in s\u0131n\u0131f\u0131 IDynamicMetaObjectProvider, DynamicMetaObject, DynamicObject ve ExpandoObject gibi aray\u00fcz ve s\u0131n\u0131flardan t\u00fcretmek yeterli olacakt\u0131r.<\/li><li><strong>Call Site \u00d6nbelle\u011fi (<em>Call Site Caching<\/em>)&nbsp; :<\/strong> Call Site, dinamik t\u00fcrler \u00fczerinden aritmetik i\u015flemler, metot \u00e7a\u011fr\u0131lar\u0131 gibi \u00e7e\u015fitli i\u015flemleri yapabilmenizi sa\u011flayan yerdir. Dinamik dil \u00e7al\u0131\u015fma-zaman\u0131 \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131 s\u0131n\u0131flar ve i\u015flemler hakk\u0131ndaki bilgileri \u00f6nbelle\u011fe alarak ard\u0131l \u00e7a\u011fr\u0131larda bu bilgileri yeniden elde etmek yerine \u00f6nbellekteki bilgilerden yararlan\u0131r. Bu y\u00f6ntem sayesinde dynamic i\u015flemler reflection y\u00f6ntemiyle yap\u0131lanlarla k\u0131yasland\u0131\u011f\u0131nda daha h\u0131zl\u0131 ger\u00e7ekle\u015fir.<\/li><li><strong>Ba\u015flay\u0131c\u0131lar (<em>Binders<\/em>) :<\/strong> Call site\u2019lar i\u00e7erisinde yer alan ve dinamik dil \u00e7al\u0131\u015fma-zaman\u0131nca kullan\u0131lan ba\u011flay\u0131c\u0131lar i\u015flemin ger\u00e7ekle\u015ftirilece\u011fi .Net framework\u2019\u00fc, COM, silverlight, dinamik diller gibi ortamlarla ileti\u015fimi sa\u011flarlar.<\/li><\/ol>\n\n\n\n<p>Yukar\u0131daki bilgiler \u0131\u015f\u0131\u011f\u0131nda, yazd\u0131\u011f\u0131n\u0131z bir dinamik kod DLR taraf\u0131ndan \u00f6ncelikle daha \u00f6nceden i\u015flenip i\u015flenmedi\u011finin anla\u015f\u0131lmas\u0131 amac\u0131yla \u00f6nbellekte kontrol edilir. E\u011fer ayn\u0131 i\u015flem daha \u00f6nce \u00e7a\u011fr\u0131ld\u0131ysa \u00f6nbellekte yer alan temsilci (delegate) \u00fczerinden haz\u0131rda bulunan ad\u0131mlarla i\u015flevini yerine getirir. E\u011fer dinamik kod ilk defa i\u015fleniyorsa ifade a\u011fac\u0131 ilgili call site\u2019a iletilerek arkaplanda yer alan ba\u011flay\u0131c\u0131 yard\u0131m\u0131yla \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r ve sonraki kullan\u0131mlarda kullan\u0131lmak \u00fczere bir temsilci atanarak \u00f6nbelle\u011fe al\u0131n\u0131r.<\/p>\n\n\n\n<p>Yukar\u0131da anlatt\u0131klar\u0131mdan sonra heyecanlanmamak m\u00fcmk\u00fcn de\u011fil bence. \u015eimdiye kadar i\u015flemlerimizi statik olarak ger\u00e7ekle\u015ftirdi\u011fimiz C#, Visual Basic gibi dillere dinamik olarak \u00e7al\u0131\u015fma-zaman\u0131nda i\u015flem yapabilme yetene\u011fi eklenmesi kayda de\u011fer bir yenilik.<\/p>","protected":false},"excerpt":{"rendered":"<p>Bir \u00f6nceki makaleme gelen g\u00fczel yorumlar sonras\u0131 dynamic hakk\u0131nda ikinci bir makale ile konuyu detayland\u0131rman\u0131n faydal\u0131 olaca\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnd\u00fcm. C# 4.0\u2019la birlikte gelen \u00f6zellikleri inceleyenlerin dynamic hakk\u0131nda d\u00fc\u015ft\u00fc\u011f\u00fc ortak bir yan\u0131l\u011f\u0131, dynamic\u2019in CLR seviyesinde desteklendi\u011fidir. Her ne kadar dynamic hayat\u0131m\u0131zda \u00f6nemli bir de\u011fi\u015fikli\u011fe neden olsa da, bu yan\u0131lg\u0131ya d\u00fc\u015fenler i\u00e7in basit kullan\u0131mlarda beklediklerinin aksine uygulamalar\u0131nda performans&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77,28],"tags":[41,85],"class_list":["post-389","post","type-post","status-publish","format-standard","hentry","category-csharp","category-turkce","tag-c","tag-dynamic"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc - 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\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"Bir \u00f6nceki makaleme gelen g\u00fczel yorumlar sonras\u0131 dynamic hakk\u0131nda ikinci bir makale ile konuyu detayland\u0131rman\u0131n faydal\u0131 olaca\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnd\u00fcm. C# 4.0\u2019la birlikte gelen \u00f6zellikleri inceleyenlerin dynamic hakk\u0131nda d\u00fc\u015ft\u00fc\u011f\u00fc ortak bir yan\u0131l\u011f\u0131, dynamic\u2019in CLR seviyesinde desteklendi\u011fidir. Her ne kadar dynamic hayat\u0131m\u0131zda \u00f6nemli bir de\u011fi\u015fikli\u011fe neden olsa da, bu yan\u0131lg\u0131ya d\u00fc\u015fenler i\u00e7in basit kullan\u0131mlarda beklediklerinin aksine uygulamalar\u0131nda performans...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2010-02-14T15:05:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-14T14:35:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.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\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc\",\"datePublished\":\"2010-02-14T15:05:22+00:00\",\"dateModified\":\"2021-06-14T14:35:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/\"},\"wordCount\":974,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.png\",\"keywords\":[\"C#\",\"Dynamic\"],\"articleSection\":[\"C#\",\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/\",\"url\":\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/\",\"name\":\"dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.png\",\"datePublished\":\"2010-02-14T15:05:22+00:00\",\"dateModified\":\"2021-06-14T14:35:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.png\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc\"}]},{\"@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":"dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc - 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\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/","og_locale":"en_US","og_type":"article","og_title":"dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc - Fatih Boy","og_description":"Bir \u00f6nceki makaleme gelen g\u00fczel yorumlar sonras\u0131 dynamic hakk\u0131nda ikinci bir makale ile konuyu detayland\u0131rman\u0131n faydal\u0131 olaca\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnd\u00fcm. C# 4.0\u2019la birlikte gelen \u00f6zellikleri inceleyenlerin dynamic hakk\u0131nda d\u00fc\u015ft\u00fc\u011f\u00fc ortak bir yan\u0131l\u011f\u0131, dynamic\u2019in CLR seviyesinde desteklendi\u011fidir. Her ne kadar dynamic hayat\u0131m\u0131zda \u00f6nemli bir de\u011fi\u015fikli\u011fe neden olsa da, bu yan\u0131lg\u0131ya d\u00fc\u015fenler i\u00e7in basit kullan\u0131mlarda beklediklerinin aksine uygulamalar\u0131nda performans...Read More","og_url":"https:\/\/fatihboy.com\/en\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/","og_site_name":"Fatih Boy","article_published_time":"2010-02-14T15:05:22+00:00","article_modified_time":"2021-06-14T14:35:27+00:00","og_image":[{"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.png","type":"","width":"","height":""}],"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\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc","datePublished":"2010-02-14T15:05:22+00:00","dateModified":"2021-06-14T14:35:27+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/"},"wordCount":974,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.png","keywords":["C#","Dynamic"],"articleSection":["C#","T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/","url":"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/","name":"dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.png","datePublished":"2010-02-14T15:05:22+00:00","dateModified":"2021-06-14T14:35:27+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.png","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2010\/02\/DLR_thumb_1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/dynamic-statik-ve-dinamik-diller-arasi-kopru\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"dynamic : statik ve dinamik diller aras\u0131 k\u00f6pr\u00fc"}]},{"@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\/389","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=389"}],"version-history":[{"count":1,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/389\/revisions"}],"predecessor-version":[{"id":33373,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/389\/revisions\/33373"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}