{"id":1261,"date":"2021-03-04T09:31:22","date_gmt":"2021-03-04T09:31:22","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?p=1261"},"modified":"2021-03-04T09:31:24","modified_gmt":"2021-03-04T09:31:24","slug":"wcf-alternatives-part-4","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/","title":{"rendered":"WCF Alternatives (Part 4) \u2013 Summary"},"content":{"rendered":"\n<p>In the last blog post of the <a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/topic\/wcf-alternatives\/\">series on alternatives for the Windows Communication Foundation (WCF)<\/a>, we are going to recapitulate and compare them once again.&nbsp;<\/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>Decision matrix<\/strong>&nbsp;<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table><thead><tr><th><strong>Characteristic<\/strong><\/th><th>Web API<\/th><th>gRPC<\/th><\/tr><\/thead><tbody><tr><td>Bidirectional communication&nbsp;<\/td><td>Possible with restrictions&nbsp;<br><em>Has to be realized with&nbsp;SignalR.<\/em>&nbsp;<\/td><td>Possible with restrictions&nbsp;<br><em>Only stream response is supported.<\/em>&nbsp;<\/td><\/tr><tr><td>Scope of changes to existing code<\/td><td>Small&nbsp;<br><em>Due to the adoption of the service methods into the controllers and the generation of the client, few adjustments are required.<\/em>&nbsp;<\/td><td>Large&nbsp;<br><em>Mapping is required because specific data types are prescribed in some instances:&nbsp;An input parameter and a return value are required.<\/em><\/td><\/tr><tr><td>Necessary prior knowledge&nbsp;<\/td><td>Technology-specific&nbsp;<br><em>Web API knowledge about the use of controllers and actions, HTTP verbs<\/em>&nbsp;<\/td><td>Technology-specific&nbsp;<br><em>Particularities of&nbsp;gRPC, creation of the *.proto&nbsp;file<\/em>&nbsp;<\/td><\/tr><tr><td>Platform independence&nbsp;<\/td><td>Yes&nbsp;<br><em>When you use .NET Core, client and server can run on different platforms.<\/em>&nbsp;<\/td><td>Yes&nbsp;<br><em>When you use .NET Core, client and server can run on different platforms.<\/em>&nbsp;<\/td><\/tr><tr><td>Interoperability<\/td><td>Yes&nbsp;<br><em>Client and server can be created using different programming languages.<\/em>&nbsp;<\/td><td>Yes&nbsp;<br><em>Client and server can be created using different programming languages.<\/em>&nbsp;<br><\/td><\/tr><tr><td>Browser support&nbsp;<\/td><td>Yes<\/td><td>Optional&nbsp;<br><em>Currently possible only with&nbsp;third-party libraries<\/em>&nbsp;<\/td><\/tr><tr><td>Self-describing interfaces&nbsp;<\/td><td>Optional&nbsp;<br><em>OpenAPI&nbsp;is possible by integrating&nbsp;third-party libraries.<\/em>&nbsp;<br><\/td><td>No&nbsp;<br><em>You have to create the *.proto&nbsp;file for the description of the interface yourself.<\/em>&nbsp;<\/td><\/tr><tr><td>Payload size<\/td><td>Higher&nbsp;<br><em>JSON, human-readable<\/em>&nbsp;<\/td><td>Lower&nbsp;<br><em>Binary format<\/em>&nbsp;<\/td><\/tr><tr><td>Speed<\/td><td>Lower<\/td><td>Higher<\/td><\/tr><tr><td>Sustainability<\/td><td>Yes&nbsp;<br><em>Microsoft currently recommends Web API as a sustainable alternative.<\/em>&nbsp;<\/td><td>Yes&nbsp;<br><em>Microsoft currently recommends&nbsp;gRPC&nbsp;as a sustainable alternative.<\/em>&nbsp;<br><\/td><\/tr><tr><td>Debugging<\/td><td>Easily possible&nbsp;<\/td><td>Possible with restrictions&nbsp;<br><em>The transferred data cannot be examined due to the compression.<\/em>&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\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>Advantages and disadvantages<\/strong>&nbsp;<\/h2>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>Web API<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>gRPC<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong><strong>Advantages<\/strong><\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\"><li>Transmission data are readable&nbsp;<\/li><li>Fewer code adjustments required for the migration&nbsp;<\/li><li>More flexible design of the endpoints and calls with respect to input parameters and return values&nbsp;<\/li><\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\"><li>Faster transmission&nbsp;<\/li><li>Typed by means of Protocol Buffers interface description&nbsp;<\/li><li>Simple generation of client classes&nbsp;<\/li><\/ul>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong><strong>Disadvantages<\/strong><\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\"><li>Slower transmission compared to&nbsp;gRPC&nbsp;<\/li><li>Generation of client classes only by means of&nbsp;third-party libraries&nbsp;<\/li><li>Typing of the interface not possible&nbsp;<\/li><\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\"><li>Transmission data not readable&nbsp;<\/li><li>Mapping code required because no standard .NET types are used&nbsp;<\/li><li>Greater effort involved in the migration due to more necessary code adjustments&nbsp;<\/li><\/ul>\n<\/div>\n<\/div>\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>Conclusion<\/strong><\/h2>\n\n\n\n<p>In our blog post series on WCF, we have presented both ASP.NET Core Web API and&nbsp;gRPC. We have seen that both options have advantages and disadvantages.&nbsp;<\/p>\n\n\n\n<p>With Web API, the interfaces can easily be used by anybody due to the content-first approach and the use of HTTP. The transmitted data are accessible and can&nbsp;be&nbsp;read at any time.&nbsp;<\/p>\n\n\n\n<p>gRPC&nbsp;abstracts the interface calls using the contract-first approach, making them faster and very easy to address by developers. However, the transmitted data cannot be accessed.&nbsp;<\/p>\n\n\n\n<p>In principle, migration to both options is possible, and&nbsp;both are recommended by Microsoft. Still, we cannot definitively recommend one of the alternatives. The decision should always be project-specific and based on various criteria such as the project scope, experience with the respective technology or the existing architecture.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the last blog post of the series on alternatives for the Windows Communication Foundation (WCF), we are going to recapitulate and compare them once again.<\/p>\n","protected":false},"author":105,"featured_media":1260,"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":[8,13],"tags":[24,492,629,630,633,634,636,637,638,675],"topics":[642],"class_list":["post-1261","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web","category-dot-net","tag-microsoft","tag-distributed-collaboration","tag-wcf","tag-windows-communication-foundation","tag-net-framework-3-0","tag-net-remoting","tag-distributed-communication","tag-distributed-application","tag-communication-platform","tag-zeiss-digital-innovation","topics-wcf-alternatives"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WCF Alternatives (Part 4) - Summary - ZEISS Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"In the last blog post of the series on WCF alternatives, we are going to recapitulate and compare them once again.\" \/>\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\/en\/wcf-alternatives-part-4\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WCF Alternatives (Part 4) \u2013 Summary\" \/>\n<meta property=\"og:description\" content=\"In the last blog post of the series on alternatives for the Windows Communication Foundation (WCF), we are going to recapitulate and compare them once again.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-04T09:31:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-04T09:31:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF.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:title\" content=\"WCF Alternatives (Part 4) \u2013 Summary\" \/>\n<meta name=\"twitter:description\" content=\"In the last blog post of the series on alternatives for the Windows Communication Foundation (WCF), we are going to recapitulate and compare them once again.\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Siebert\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/\",\"name\":\"WCF Alternatives (Part 4) - Summary - ZEISS Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF.png\",\"datePublished\":\"2021-03-04T09:31:22+00:00\",\"dateModified\":\"2021-03-04T09:31:24+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/6b51a72db3cce2762c3e7ba935cf25bf\"},\"description\":\"In the last blog post of the series on WCF alternatives, we are going to recapitulate and compare them once again.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF.png\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF.png\",\"width\":1404,\"height\":791},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WCF Alternatives (Part 4) \u2013 Summary\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/6b51a72db3cce2762c3e7ba935cf25bf\",\"name\":\"David Siebert\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/12\/siebert_david-e1607418544482-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/12\/siebert_david-e1607418544482-150x150.jpg\",\"caption\":\"David Siebert\"},\"description\":\"David Siebert is Senior Consultant Software Development at ZEISS Digital Innovation. His focus is primarily on .NET development. In addition, he is particularly involved with web technologies and clean code.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/endavidsiebert\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WCF Alternatives (Part 4) - Summary - ZEISS Digital Innovation Blog","description":"In the last blog post of the series on WCF alternatives, we are going to recapitulate and compare them once again.","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\/en\/wcf-alternatives-part-4\/","og_locale":"en_US","og_type":"article","og_title":"WCF Alternatives (Part 4) \u2013 Summary","og_description":"In the last blog post of the series on alternatives for the Windows Communication Foundation (WCF), we are going to recapitulate and compare them once again.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/","og_site_name":"Digital Innovation Blog","article_published_time":"2021-03-04T09:31:22+00:00","article_modified_time":"2021-03-04T09:31:24+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.png","type":"image\/png"}],"author":"David Siebert","twitter_card":"summary_large_image","twitter_title":"WCF Alternatives (Part 4) \u2013 Summary","twitter_description":"In the last blog post of the series on alternatives for the Windows Communication Foundation (WCF), we are going to recapitulate and compare them once again.","twitter_misc":{"Written by":"David Siebert","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/","name":"WCF Alternatives (Part 4) - Summary - ZEISS Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF.png","datePublished":"2021-03-04T09:31:22+00:00","dateModified":"2021-03-04T09:31:24+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/6b51a72db3cce2762c3e7ba935cf25bf"},"description":"In the last blog post of the series on WCF alternatives, we are going to recapitulate and compare them once again.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF.png","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF.png","width":1404,"height":791},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wcf-alternatives-part-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/"},{"@type":"ListItem","position":2,"name":"WCF Alternatives (Part 4) \u2013 Summary"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/6b51a72db3cce2762c3e7ba935cf25bf","name":"David Siebert","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/12\/siebert_david-e1607418544482-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/12\/siebert_david-e1607418544482-150x150.jpg","caption":"David Siebert"},"description":"David Siebert is Senior Consultant Software Development at ZEISS Digital Innovation. His focus is primarily on .NET development. In addition, he is particularly involved with web technologies and clean code.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/endavidsiebert\/"}]}},"author_meta":{"display_name":"David Siebert","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/endavidsiebert\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/01\/202101_WCF-600x338.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/web\/\" class=\"advgb-post-tax-term\">Web<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/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\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Microsoft<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">distributed collaboration<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">WCF<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Windows Communication Foundation<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">.NET Framework 3.0<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">.NET Remoting<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">distributed communication<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">distributed application<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">communication platform<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">ZEISS Digital Innovation<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Microsoft<\/span>","<span class=\"advgb-post-tax-term\">distributed collaboration<\/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\">.NET Framework 3.0<\/span>","<span class=\"advgb-post-tax-term\">.NET Remoting<\/span>","<span class=\"advgb-post-tax-term\">distributed communication<\/span>","<span class=\"advgb-post-tax-term\">distributed application<\/span>","<span class=\"advgb-post-tax-term\">communication platform<\/span>","<span class=\"advgb-post-tax-term\">ZEISS Digital Innovation<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 5 years ago","modified":"Updated 5 years ago"},"absolute_dates":{"created":"Posted on March 4, 2021","modified":"Updated on March 4, 2021"},"absolute_dates_time":{"created":"Posted on March 4, 2021 9:31 am","modified":"Updated on March 4, 2021 9:31 am"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/1261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/users\/105"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/comments?post=1261"}],"version-history":[{"count":11,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/1261\/revisions"}],"predecessor-version":[{"id":1383,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/1261\/revisions\/1383"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/media\/1260"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/media?parent=1261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/categories?post=1261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/tags?post=1261"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/topics?post=1261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}