{"id":1837,"date":"2021-01-05T15:12:32","date_gmt":"2021-01-05T15:12:32","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?p=1837"},"modified":"2021-05-19T06:14:42","modified_gmt":"2021-05-19T06:14:42","slug":"wcf-alternativen-teil-1","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/","title":{"rendered":"WCF-Alternativen (Teil 1) \u2013 Eine Einf\u00fchrung"},"content":{"rendered":"\n<p>Die Windows Communication Foundation (WCF) ist eine von Microsoft f\u00fcr das .NET Framework entwickelte Kommunikationsplattform zur Erstellung von verteilten Anwendungen. Sie wurde im Jahr 2006 mit dem .NET Framework 3.0 vorgestellt und l\u00f6ste damals .NET Remoting ab. Durch WCF werden die verschiedenen Aspekte einer verteilten Kommunikation logisch getrennt und dabei unterschiedliche Kommunikationstechnologien zu einer einheitlichen Programmierschnittstelle zusammengefasst. Dadurch ist es m\u00f6glich, sich auf die Business-Logik zu fokussieren und sich nicht um die Anbindung der verschiedenen Kommunikationstechnologien k\u00fcmmern zu m\u00fcssen.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Der Aufbau von WCF<\/strong><\/h2>\n\n\n\n<p>Mit der Ver\u00f6ffentlichung von WCF wurden die folgenden Kommunikationstechnologien vereinheitlicht.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"338\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies-600x338.png\" alt=\"\" class=\"wp-image-1980\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies-600x338.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies-1024x577.png 1024w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies-768x433.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies-640x361.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies-1200x676.png 1200w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies.png 1404w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 1: Vereinheitlichung von Kommunikationstechnologien<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Der Aufbau einer WCF Anwendung folgt dabei den 3-W\u2018s (Wo, Wie, Was).<\/p>\n\n\n\n<p>Das erste W \u2013 <strong>\u201eWo\u201c<\/strong> beschreibt, unter welcher Adresse die Anwendung erreicht werden kann, um mit dieser zu kommunizieren, z. B.:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>http:\/\/localhost:81\/DataInputService<\/li><li>net.tcp:\/\/localhost:82\/TcpDataInputService<\/li><li>net.pipe:\/\/localhost\/PipeDataInputService<\/li><li>net.msmq:\/\/localhost\/MsMqDataInputService<\/li><\/ul>\n\n\n\n<p>Das zweite W \u2013<strong> \u201eWie\u201c <\/strong>beschreibt, mit welchen Protokollen und welchem Encoding, den sogenannten Bindings, die Kommunikation erfolgen soll. Diese werden in der *.config der Anwendung definiert und k\u00f6nnen somit jederzeit, ohne die Anwendung neu erstellen zu m\u00fcssen, ge\u00e4ndert werden. Von WCF werden neun verschiedene Bindings unterst\u00fctzt:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Basic Binding (BasicHttpBinding)<\/li><li>TCP Binding (NetTcpBinding)<\/li><li>Peer Network Binding (NetPeerTcpBinding)<\/li><li>IPC Binding (NetNamedPipeBinding)<\/li><li>Web Service Binding (WSHttpBinding)<\/li><li>Federated WS Binding (WSFederationHttpBinding)<\/li><li>Duplex WS Binding (WSDualHttpBinding)<\/li><li>MSMQ Binding (NetMsmqBinding)<\/li><li>MSMQ Integration Binding (MsmqIntegrationBinding) <strong>&nbsp;<\/strong><\/li><\/ul>\n\n\n\n<p>Mit dem letzten W \u2013 <strong>\u201eWas\u201c<\/strong> wird durch verschiedene Contracts definiert, welche Endpunkte und Datentypen bereitgestellt werden. Dabei werden durch ServiceContracts die Endpunkte und in DataContracts die Datentypen definiert.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><em>Beispiel eines WCF ServiceContract und DataContract<\/em>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[ServiceContract]\npublic interface IDataInputService\n{\n    [OperationContract]\n    int CreateUser(User user);\n \n    [OperationContract]\n    int Login(User user);\n \n    [OperationContract]\n    List&lt;Time> GetTimes(int userId);\n \n    [OperationContract]\n    void AddTime(Time time, int userId);\n \n    [OperationContract]\n    List&lt;string> Projects();\n}\n \n[DataContract]\npublic class User\n{\n    [DataMember]\n    public string Name { get; set; }\n \n    [DataMember]\n    public string Passwort { get; set; }\n}\n \n[DataContract]\npublic class Time\n{\n    [DataMember]\n    public DateTime Start { get; set; }\n \n    [DataMember]\n    public DateTime End { get; set; }\n \n    [DataMember]\n    public string Project { get; set; }\n \n    [DataMember]\n    public int uId { get; set; }\n \n    [DataMember]\n    public int Id { get; set; }\n}<\/pre>\n\n\n\n<p>Die durch die Aufteilung geschaffene Flexibilit\u00e4t und auch Vielseitigkeit machen WCF sehr beliebt, wodurch die Plattform in vielen Projekten gern eingesetzt wird.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Warum wird eine Migration notwendig?<\/h2>\n\n\n\n<p>Schon bei der ersten Ank\u00fcndigung von .NET Core im Jahr 2016 war WCF nicht mehr enthalten. Auch in den folgenden .NET Core Releases sowie dem zuletzt vorgestellten .NET 5.0 ist WCF kein Bestandteil mehr.<\/p>\n\n\n\n<p>F\u00fcr Microsoft w\u00e4re sicher das \u201eW\u201c aus WCF, welches f\u00fcr Windows steht, die gr\u00f6\u00dfte Herausforderung bei einer Portierung. Hier m\u00fcsste, um .NET Core gerecht zu werden, eine plattform\u00fcbergreifende L\u00f6sung gefunden werden. Ein Problem dabei sind die aktuell genutzten Windows-spezifischen Betriebssystembibliotheken f\u00fcr z. B. Socket Layer oder Kryptographie.<\/p>\n\n\n\n<p>Auch wenn sich die Entwickler-Community eine Integration von WCF in .NET Core w\u00fcnscht, so wird diese von Microsoft wohl in absehbarer Zeit nicht erfolgen.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Die Zukunft mit gRPC und Web API<\/h2>\n\n\n\n<p>Um ein Bestandsprojekt zukunftssicher zu machen oder generell die Vorteile von .NET Core zu nutzen, sollte eine Portierung auf .NET Core angestrebt werden. Besonders sinnvoll ist dies bei Projekten, welche sich in einer aktiven und kontinuierlichen Weiterentwicklung befinden. Kommt bei einem Projekt WCF zum Einsatz, stellt dies die Portierung vor eine zus\u00e4tzliche Herausforderung. Hier muss zun\u00e4chst eine Alternative gefunden und eine vorbereitende Umstellung von WCF erfolgen. Microsoft empfiehlt zur Abl\u00f6sung von WCF haupts\u00e4chlich zwei Alternativen, gRPC und Web API.<\/p>\n\n\n\n<p>In einer Blogpostreihe zu diesem Thema wollen wir die beiden Alternativen vorstellen und dabei auf die Besonderheiten und Herausforderungen der Migration eingehen. Weitere Artikel folgen in K\u00fcrze.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WCF ist eine von Microsoft f\u00fcr das .NET Framework entwickelte Kommunikationsplattform zur Erstellung von verteilten Anwendungen. Microsoft empfiehlt zur Abl\u00f6sung von WCF haupts\u00e4chlich zwei Alternativen, gRPC und Web API. In dieser Blogreihe werden beide Alternativen vorgestellt sowie die Besonderheiten und Herausforderungen der Migration besprochen.<\/p>\n","protected":false},"author":104,"featured_media":1980,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[11,16],"tags":[337,398,521,522,523,524,525,526,527],"topics":[560],"class_list":["post-1837","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web","category-dot-net","tag-editorschoice","tag-microsoft","tag-wcf","tag-windows-communication-foundation","tag-kommunikationsplattform","tag-verteilte-anwendungen","tag-net-framework-3-0","tag-net-remoting","tag-verteilte-kommunikation","topics-wcf-alternativen"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WCF-Alternativen (Teil 1) - ZEISS Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"WCF ist eine von Microsoft f\u00fcr das .NET Framework entwickelte Kommunikationsplattform zur Erstellung von verteilten Anwendungen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WCF-Alternativen (Teil 1) - ZEISS Digital Innovation Blog\" \/>\n<meta property=\"og:description\" content=\"WCF ist eine von Microsoft f\u00fcr das .NET Framework entwickelte Kommunikationsplattform zur Erstellung von verteilten Anwendungen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-05T15:12:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-19T06:14:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1404\" \/>\n\t<meta property=\"og:image:height\" content=\"791\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"David Siebert\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:site\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Siebert\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/\",\"name\":\"WCF-Alternativen (Teil 1) - ZEISS Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies.png\",\"datePublished\":\"2021-01-05T15:12:32+00:00\",\"dateModified\":\"2021-05-19T06:14:42+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/25b5da9fd04d962532d448cb581c1912\"},\"description\":\"WCF ist eine von Microsoft f\u00fcr das .NET Framework entwickelte Kommunikationsplattform zur Erstellung von verteilten Anwendungen.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies.png\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies.png\",\"width\":1404,\"height\":791},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WCF-Alternativen (Teil 1) \u2013 Eine Einf\u00fchrung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/25b5da9fd04d962532d448cb581c1912\",\"name\":\"David Siebert\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/12\/siebert_david-e1607418301577-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/12\/siebert_david-e1607418301577-150x150.jpg\",\"caption\":\"David Siebert\"},\"description\":\"David Siebert ist Senior Consultant Softwareentwicklung bei der ZEISS Digital Innovation. Sein Schwerpunkt liegt vor allem in der .NET-Entwicklung. Dar\u00fcber hinaus besch\u00e4ftigt er sich besonders mit Webtechnologien und Clean Code.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/davidsiebert\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WCF-Alternativen (Teil 1) - ZEISS Digital Innovation Blog","description":"WCF ist eine von Microsoft f\u00fcr das .NET Framework entwickelte Kommunikationsplattform zur Erstellung von verteilten Anwendungen.","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:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/","og_locale":"de_DE","og_type":"article","og_title":"WCF-Alternativen (Teil 1) - ZEISS Digital Innovation Blog","og_description":"WCF ist eine von Microsoft f\u00fcr das .NET Framework entwickelte Kommunikationsplattform zur Erstellung von verteilten Anwendungen.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/","og_site_name":"Digital Innovation Blog","article_publisher":"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/","article_published_time":"2021-01-05T15:12:32+00:00","article_modified_time":"2021-05-19T06:14:42+00:00","og_image":[{"width":1404,"height":791,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies.png","type":"image\/png"}],"author":"David Siebert","twitter_card":"summary_large_image","twitter_creator":"@ZEISS_di","twitter_site":"@ZEISS_di","twitter_misc":{"Verfasst von":"David Siebert","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/","name":"WCF-Alternativen (Teil 1) - ZEISS Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies.png","datePublished":"2021-01-05T15:12:32+00:00","dateModified":"2021-05-19T06:14:42+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/25b5da9fd04d962532d448cb581c1912"},"description":"WCF ist eine von Microsoft f\u00fcr das .NET Framework entwickelte Kommunikationsplattform zur Erstellung von verteilten Anwendungen.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies.png","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies.png","width":1404,"height":791},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wcf-alternativen-teil-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/"},{"@type":"ListItem","position":2,"name":"WCF-Alternativen (Teil 1) \u2013 Eine Einf\u00fchrung"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/25b5da9fd04d962532d448cb581c1912","name":"David Siebert","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/12\/siebert_david-e1607418301577-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/12\/siebert_david-e1607418301577-150x150.jpg","caption":"David Siebert"},"description":"David Siebert ist Senior Consultant Softwareentwicklung bei der ZEISS Digital Innovation. Sein Schwerpunkt liegt vor allem in der .NET-Entwicklung. Dar\u00fcber hinaus besch\u00e4ftigt er sich besonders mit Webtechnologien und Clean Code.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/davidsiebert\/"}]}},"author_meta":{"display_name":"David Siebert","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/davidsiebert\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF_communication_technologies-600x338.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/web\/\" class=\"advgb-post-tax-term\">Web<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">.NET<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Web<\/span>","<span class=\"advgb-post-tax-term\">.NET<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Editor&#039;s Choice<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Microsoft<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">WCF<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Windows Communication Foundation<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Kommunikationsplattform<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">verteilte Anwendungen<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">.NET Framework 3.0<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">.NET Remoting<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">verteilte Kommunikation<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Editor&#039;s Choice<\/span>","<span class=\"advgb-post-tax-term\">Microsoft<\/span>","<span class=\"advgb-post-tax-term\">WCF<\/span>","<span class=\"advgb-post-tax-term\">Windows Communication Foundation<\/span>","<span class=\"advgb-post-tax-term\">Kommunikationsplattform<\/span>","<span class=\"advgb-post-tax-term\">verteilte Anwendungen<\/span>","<span class=\"advgb-post-tax-term\">.NET Framework 3.0<\/span>","<span class=\"advgb-post-tax-term\">.NET Remoting<\/span>","<span class=\"advgb-post-tax-term\">verteilte Kommunikation<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 5\u00a0Jahren ago","modified":"Updated 5\u00a0Jahren ago"},"absolute_dates":{"created":"Posted on Januar 5, 2021","modified":"Updated on Mai 19, 2021"},"absolute_dates_time":{"created":"Posted on Januar 5, 2021 3:12 p.m.","modified":"Updated on Mai 19, 2021 6:14 a.m."},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/1837","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/users\/104"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/comments?post=1837"}],"version-history":[{"count":7,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/1837\/revisions"}],"predecessor-version":[{"id":1985,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/1837\/revisions\/1985"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media\/1980"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media?parent=1837"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/categories?post=1837"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/tags?post=1837"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/topics?post=1837"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}