{"id":7110,"date":"2017-07-14T12:00:08","date_gmt":"2017-07-14T11:00:08","guid":{"rendered":"http:\/\/www.markwilson.co.uk\/blog\/?p=7110"},"modified":"2017-07-13T08:18:30","modified_gmt":"2017-07-13T07:18:30","slug":"introduction-microsoft-net-standard","status":"publish","type":"post","link":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm","title":{"rendered":"Introduction to Microsoft .NET Standard"},"content":{"rendered":"<p>A few months ago, I was (along with about 70 other <a href=\"https:\/\/mvp.microsoft.com\/en-us\/Pages\/reconnect-whatis\">rMVPs<\/a>) privileged\u00a0to be on a Skype call with <a href=\"https:\/\/www.hanselman.com\/\">Scott Hanselman<\/a>\u00a0(<a href=\"https:\/\/twitter.com\/shanselman\">@shanselman<\/a>) as he gave an overview into Microsoft .NET Core. Some of what was discussed was confidential but the general overview of how .NET Core fits with the full .NET Framework and with Mono\/Xamarin was a great education for a non-developer like me and it seems fine to reproduce it here for the benefit of others.<\/p>\n<p><em>This is part 2 of a 2-part series. In part 1, I explained<\/em>\u00a0.<em>NET versions and the lightweight, cross-platform\u00a0<\/em>Microsoft .<em>NET Core SDK. This post moves on to look at standardising\u00a0<\/em>Microsoft .<em>NET.<\/em><\/p>\n<h3>Where does .NET Standard fit in?<\/h3>\n<p>Hopefully in part 1, I showed\u00a0how .NET Core is a fantastically quick to run set of development tools that can run across platforms but you might also have heard of <a href=\"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2016\/09\/26\/introducing-net-standard\/\">.NET Standard<\/a>.<\/p>\n<p>Over the years, the .NET landscape has become pretty complicated (the discussion on versions just scrapes the surface) and we should really think of &#8220;.NET&#8221; as a big umbrella for marketing purposes with three main instances:<\/p>\n<ol>\n<li>Microsoft .NET Framework is really the .NET (Full) Framework &#8211; it runs on Windows clients and servers.<\/li>\n<li>Microsoft .NET Core is for server applications with no UI and is ideally suited to microservices, Docker containers, web apps and more. It runs on Windows, MacOS and multiple Linux distributions.<\/li>\n<li><a href=\"http:\/\/www.mono-project.com\/download\/\">Mono<\/a> (led by Xamarin) is an open source cleanroom implementation of .NET &#8211; written without access to the code. Its developers looked at the interfaces\/shape and made new versions, which means it has the benefit of running anywhere (e.g. &#8220;exotic places&#8221; like a Sony Playstation, or on tiny devices).<\/li>\n<\/ol>\n<p>That means .NET code can, theoretically run anywhere. Except that the versioning gets in the way&#8230; and that&#8217;s where .NET Standard fits in.<\/p>\n<p>.NET Standard is a target. Not a platform. Not a runtime. It&#8217;s an &#8220;agreement&#8221;.<\/p>\n<p>If that&#8217;s difficult to understand, here&#8217;s the analogy that<a href=\"https:\/\/www.hanselman.com\/\">Scott Hanselman<\/a>\u00a0(<a href=\"https:\/\/twitter.com\/shanselman\">@shanselman<\/a>) used in a recent webcast: Android developers don&#8217;t\u00a0target an Android OS (e.g. v4.3), they target an API level (e.g. 15). If a new API is released that provides new capabilities, a developer can move to the new API level but it might not work on older devices.<\/p>\n<p>Microsoft has something like this in <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/standard\/cross-platform\/cross-platform-development-with-the-portable-class-library\">Portable Class Libraries<\/a>, except they are the lowest common denominator &#8211; the centre of a Venn diagram. .NET Standard is about running anywhere so that if a developer targets their application to a standard, they can be sure it will run wherever that standard is supported.<\/p>\n<p>The <a href=\"https:\/\/docs.microsoft.com\/en-gb\/dotnet\/standard\/net-standard\">.NET Platform Support table<\/a>\u00a0demonstrates this and indicates the\u00a0<em>minimum<\/em>\u00a0version of the platform that&#8217;s needed to implement that .NET Standard.<\/p>\n<figure style=\"width: 1530px\" class=\"wp-caption alignnone\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-medium\" src=\"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png?resize=700%2C544&#038;ssl=1\" alt=\".NET Platforms Support table\" width=\"700\" height=\"544\" \/><figcaption class=\"wp-caption-text\">.NET Platforms Support table as at July 2017<\/figcaption><\/figure>\n<p>For example, if you want to run on .NET Framework 4.5 and .NET Core 1.0, the highest .NET Standard version you can use is .NET Standard 1.1; if you want to run on Windows 8.1 you can&#8217;t go above .NET Standard 1.2; etc.\u00a0The higher the version, the more APIs are available and the lower the version, the more platforms implement the standard. Developers target a framework for specific Windows APIs and target a .NET standard for\u00a0portability and flexibility.<\/p>\n<h3>Resources<\/h3>\n<ul>\n<li><a href=\"https:\/\/www.microsoft.com\/net\">Microsoft .NET website<\/a> (crammed full of resources)<\/li>\n<li>David Fowl&#8217;s example in code that shows <a style=\"font-size: 16px;\" href=\"https:\/\/gist.github.com\/davidfowl\/8939f305567e1755412d6dc0b8baf1b7\">how .NET Standard relates to the various .NET Platforms<\/a><span style=\"font-size: 16px;\">.<\/span><\/li>\n<li><a href=\"http:\/\/packagesearch.azurewebsites.net\">Package search for .NET Core packages<\/a> &#8211; search for methods (find which package it&#8217;s in and which versions support a given function).<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A few months ago, I was (along with about 70 other rMVPs) privileged\u00a0to be on a Skype call with Scott Hanselman\u00a0(@shanselman) as he gave an overview into Microsoft .NET Core. Some of what was discussed was confidential but the general overview of how .NET Core fits with the full .NET Framework and with Mono\/Xamarin was &hellip; <a href=\"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Introduction to Microsoft .NET Standard<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[218],"tags":[198,121],"class_list":["post-7110","post","type-post","status-publish","format-standard","hentry","category-technology","tag-application-development","tag-dotnet"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Introduction to Microsoft .NET Standard - markwilson.it<\/title>\n<meta name=\"description\" content=\"Part 2 of a series of blog posts based on a webcast with Microsoft&#039;s Scott Hanselman, where he gave an overview of Microsoft .NET Core and .NET Standard\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introduction to Microsoft .NET Standard - markwilson.it\" \/>\n<meta property=\"og:description\" content=\"Part 2 of a series of blog posts based on a webcast with Microsoft&#039;s Scott Hanselman, where he gave an overview of Microsoft .NET Core and .NET Standard\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm\" \/>\n<meta property=\"og:site_name\" content=\"markwilson.it\" \/>\n<meta property=\"article:published_time\" content=\"2017-07-14T11:00:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png\" \/>\n<meta name=\"author\" content=\"Mark Wilson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@markwilsonit\" \/>\n<meta name=\"twitter:site\" content=\"@markwilsonit\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mark Wilson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated 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\":\"Article\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm\"},\"author\":{\"name\":\"Mark Wilson\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"headline\":\"Introduction to Microsoft .NET Standard\",\"datePublished\":\"2017-07-14T11:00:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm\"},\"wordCount\":601,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"image\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/images\\\/dotnet-platforms-support.png\",\"keywords\":[\"Application Development\",\"Microsoft.NET\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm\",\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm\",\"name\":\"Introduction to Microsoft .NET Standard - markwilson.it\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/images\\\/dotnet-platforms-support.png\",\"datePublished\":\"2017-07-14T11:00:08+00:00\",\"description\":\"Part 2 of a series of blog posts based on a webcast with Microsoft's Scott Hanselman, where he gave an overview of Microsoft .NET Core and .NET Standard\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm#primaryimage\",\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/images\\\/dotnet-platforms-support.png\",\"contentUrl\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/images\\\/dotnet-platforms-support.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-standard.htm#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introduction to Microsoft .NET Standard\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/\",\"name\":\"markwilson.it\",\"description\":\"get-info -class technology | write-output &gt; \\\/dev\\\/web\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\",\"name\":\"Mark Wilson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"width\":800,\"height\":800,\"caption\":\"Mark Wilson\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\"},\"description\":\"A Chartered IT Professional, with recent experience in technology leadership, IT strategy and practice management roles, Mark Wilson is an Enterprise Architect in the Advisory and Management Group at risual. During a career spanning more than two decades, Mark has gained widespread recognition as an expert in his field including both industry and national press exposure. In addition to certifications from Microsoft, VMware, Red Hat, The Open Group and Axelos, Mark held a Microsoft Most Valuable Professional (MVP) award for three years and is now part of the MVP Reconnect programme. Mark is also well-known on social media and maintains an award-winning blog.\",\"sameAs\":[\"http:\\\/\\\/www.markwilson.co.uk\\\/\",\"https:\\\/\\\/www.instagram.com\\\/markwilsonuk\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/markawilson\\\/\",\"https:\\\/\\\/x.com\\\/markwilsonit\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCWHlZCoHRTocdvtrOJ2IL4A\"],\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/author\\\/mark-wilson\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introduction to Microsoft .NET Standard - markwilson.it","description":"Part 2 of a series of blog posts based on a webcast with Microsoft's Scott Hanselman, where he gave an overview of Microsoft .NET Core and .NET Standard","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:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm","og_locale":"en_GB","og_type":"article","og_title":"Introduction to Microsoft .NET Standard - markwilson.it","og_description":"Part 2 of a series of blog posts based on a webcast with Microsoft's Scott Hanselman, where he gave an overview of Microsoft .NET Core and .NET Standard","og_url":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm","og_site_name":"markwilson.it","article_published_time":"2017-07-14T11:00:08+00:00","og_image":[{"url":"https:\/\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png","type":"","width":"","height":""}],"author":"Mark Wilson","twitter_card":"summary_large_image","twitter_creator":"@markwilsonit","twitter_site":"@markwilsonit","twitter_misc":{"Written by":"Mark Wilson","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm#article","isPartOf":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm"},"author":{"name":"Mark Wilson","@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"headline":"Introduction to Microsoft .NET Standard","datePublished":"2017-07-14T11:00:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm"},"wordCount":601,"commentCount":0,"publisher":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"image":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm#primaryimage"},"thumbnailUrl":"https:\/\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png","keywords":["Application Development","Microsoft.NET"],"articleSection":["Technology"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm","url":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm","name":"Introduction to Microsoft .NET Standard - markwilson.it","isPartOf":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm#primaryimage"},"image":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm#primaryimage"},"thumbnailUrl":"https:\/\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png","datePublished":"2017-07-14T11:00:08+00:00","description":"Part 2 of a series of blog posts based on a webcast with Microsoft's Scott Hanselman, where he gave an overview of Microsoft .NET Core and .NET Standard","breadcrumb":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm#primaryimage","url":"https:\/\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png","contentUrl":"https:\/\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.markwilson.co.uk\/blog"},{"@type":"ListItem","position":2,"name":"Introduction to Microsoft .NET Standard"}]},{"@type":"WebSite","@id":"https:\/\/www.markwilson.co.uk\/blog\/#website","url":"https:\/\/www.markwilson.co.uk\/blog\/","name":"markwilson.it","description":"get-info -class technology | write-output &gt; \/dev\/web","publisher":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.markwilson.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468","name":"Mark Wilson","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","url":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","width":800,"height":800,"caption":"Mark Wilson"},"logo":{"@id":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1"},"description":"A Chartered IT Professional, with recent experience in technology leadership, IT strategy and practice management roles, Mark Wilson is an Enterprise Architect in the Advisory and Management Group at risual. During a career spanning more than two decades, Mark has gained widespread recognition as an expert in his field including both industry and national press exposure. In addition to certifications from Microsoft, VMware, Red Hat, The Open Group and Axelos, Mark held a Microsoft Most Valuable Professional (MVP) award for three years and is now part of the MVP Reconnect programme. Mark is also well-known on social media and maintains an award-winning blog.","sameAs":["http:\/\/www.markwilson.co.uk\/","https:\/\/www.instagram.com\/markwilsonuk\/","https:\/\/www.linkedin.com\/in\/markawilson\/","https:\/\/x.com\/markwilsonit","https:\/\/www.youtube.com\/channel\/UCWHlZCoHRTocdvtrOJ2IL4A"],"url":"https:\/\/www.markwilson.co.uk\/blog\/author\/mark-wilson"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":7097,"url":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-core.htm","url_meta":{"origin":7110,"position":0},"title":"Introduction to Microsoft .NET Core","author":"Mark Wilson","date":"Thursday 13 July 2017","format":false,"excerpt":"A few months ago, I was (along with about 70 other rMVPs) privileged\u00a0to be on a Skype call with Scott Hanselman\u00a0(@shanselman) as he gave an overview into Microsoft .NET Core. Some of what was discussed was confidential but the general overview of how .NET Core fits with the full .NET\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.markwilson.co.uk\/blog\/topic\/technology"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1046,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/04\/powershell-running-on-server-core.htm","url_meta":{"origin":7110,"position":1},"title":"PowerShell running on server core","author":"Mark Wilson","date":"Thursday 10 April 2008","format":false,"excerpt":"Aaron Parker saw my presentation on Windows Server 2008 server core earlier this week and it got him thinking... I said that Microsoft don't see server core as an application platform but there's no real reason why not as long as the applications you want to run don't have dependencies\u2026","rel":"","context":"In \"Microsoft Application Virtualization (App-V\/SoftGrid)\"","block_context":{"text":"Microsoft Application Virtualization (App-V\/SoftGrid)","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/app-v"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7099,"url":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/dotnet-command-not-found-installing-microsoft-net-core-sdk-mac.htm","url_meta":{"origin":7110,"position":2},"title":"&#8220;dotnet: command not found&#8221; after installing the Microsoft .NET Core SDK on a Mac","author":"Mark Wilson","date":"Monday 17 July 2017","format":false,"excerpt":"Whilst installing the\u00a0Microsoft .NET Core SDK on my MacBook earlier last week, I found that the instructions on the Microsoft website were not quite complete. Microsoft tells us to run a few commands to install OpenSSL: Install Homebrew (it was already on my system) Then run: brew update brew install\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.markwilson.co.uk\/blog\/topic\/technology"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":143,"url":"https:\/\/www.markwilson.co.uk\/blog\/2005\/08\/microsoft-view-of-connected-systems.htm","url_meta":{"origin":7110,"position":3},"title":"The Microsoft view of connected systems","author":"Mark Wilson","date":"Monday 1 August 2005","format":false,"excerpt":"A few weeks back I was at a breakfast briefing on connected systems (Microsoft's view of web services and BizTalk Server), delivered by David Gristwood (one of Microsoft UK's Architect Evangelists). Even though I'm not a developer, I think I understood most of what David had to say (although many\u2026","rel":"","context":"In \"Microsoft\"","block_context":{"text":"Microsoft","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/microsoft"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1267,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/10\/pc-phone-and-web-how-microsoft-plans-to-build-the-next-generation-of-user-experiences.htm","url_meta":{"origin":7110,"position":4},"title":"PC, phone and web: How Microsoft plans to build the next generation of user experiences","author":"Mark Wilson","date":"Tuesday 28 October 2008","format":false,"excerpt":"I'm supposed to be taking a week off work, but the announcements coming out of Microsoft's PDC have the potential to make a huge impact on the way that we experience our IT. So, it's day 2 of PDC and I've spent the afternoon and evening watching the keynote and\u2026","rel":"","context":"In \"Microsoft\"","block_context":{"text":"Microsoft","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/microsoft"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1465,"url":"https:\/\/www.markwilson.co.uk\/blog\/2009\/06\/copying-files-tofrom-a-hyper-v-server-or-windows-server-server-core-computer-over-rdp.htm","url_meta":{"origin":7110,"position":5},"title":"Copying files to\/from a Hyper-V Server or Windows Server (server core) computer over RDP","author":"Mark Wilson","date":"Wednesday 24 June 2009","format":false,"excerpt":"It's reasonably well known that it's possible to expose local resources (including local drives) on a remote computer when connecting using the Microsoft Remote Desktop Connection client. Using this method, the local drives are exposed on the remote computer using Windows Explorer (e.g. drive on computername). Last week, I was\u2026","rel":"","context":"In \"Microsoft Virtual Server\/Hyper-V\"","block_context":{"text":"Microsoft Virtual Server\/Hyper-V","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/hyper-v"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/7110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=7110"}],"version-history":[{"count":1,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/7110\/revisions"}],"predecessor-version":[{"id":7112,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/7110\/revisions\/7112"}],"wp:attachment":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=7110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=7110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=7110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}