{"id":7097,"date":"2017-07-13T12:00:27","date_gmt":"2017-07-13T11:00:27","guid":{"rendered":"http:\/\/www.markwilson.co.uk\/blog\/?p=7097"},"modified":"2017-07-13T08:18:18","modified_gmt":"2017-07-13T07:18:18","slug":"introduction-microsoft-net-core","status":"publish","type":"post","link":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-core.htm","title":{"rendered":"Introduction to Microsoft .NET Core"},"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 1 of a 2-part series, looking <\/em>at .<em>NET versions and the <\/em>Microsoft .<em>NET Core SDK. Tomorrow&#8217;s post moves on to look at <\/em>Microsoft .<em>NET Standard.<\/em><\/p>\n<h3>.NET versions<\/h3>\n<p>The first thing to understand is that <a href=\"https:\/\/www.markwilson.co.uk\/blog\/2009\/10\/a-quick-guide-to-microsoft-net-framework-versions.htm\">.NET versioning is a mess<\/a> [my words, not Scott&#8217;s]:<\/p>\n<p>On a Windows machine with Visual Studio installed, open a command prompt and type <code>clrver -all<\/code>. Chances are you&#8217;ll see versions 2.0 and 4.0. <code>cd C:\\Windows\\Microsoft.NET\\Framework<\/code> and on my Windows 10\/Office 2016 machine I can see versions 1.0.3705, 1.1.4322, 2.0.50727 and 4.0.30319.<\/p>\n<p>So where is .NET 3.0? Well, 3.0 and 3.5 were the Windows Presentation Framework (WPF) and Windows Communication Framework (WCF), running on v2.0 of the Common Language Runtime (CLR). They are actually part of Windows!<\/p>\n<p>All of this makes developing for the .NET framework tricky. Side by side running for .NET 4.x is at the CLR level &#8211; if your app is developed for 4.6 and others are for 4.0, you may have a hard time convincing IT operations people to update and chances are you&#8217;ll need to drop down to 4.0.<\/p>\n<p>That (together with cross-platform capabilities) is where .NET Core comes in.<\/p>\n<h3>Creating simple applications with the .NET Core SDK<\/h3>\n<p>.NET Core is in C:\\Program Files\\DotNet and is implemented as a driver (dotnet.dll). With a few simple commands we can create and run a console application:<\/p>\n<p><code>dotnet new console<\/code><\/p>\n<p><code>dotnet restore<\/code><\/p>\n<p><code>dotnet run<\/code><\/p>\n<p>That&#8217;s three steps to Hello World!<\/p>\n<p>It&#8217;s just as simple for a web application:<\/p>\n<p><code>dotnet new web<\/code><\/p>\n<p><code>dotnet restore<\/code><\/p>\n<p><code>dotnet run<\/code><\/p>\n<p>Then browse to http:\/\/localhost:5000.<\/p>\n<p>One difference in the web app is the presence of the<\/p>\n<p><code>&lt;Project Sdk=\"Microsoft.NET.Sdk.Web\"&gt;<\/code><\/p>\n<p>line in the .csproj file. This signifies a &#8220;meta package&#8221; &#8211; a package of packages that avoids explicitly listing multiple package references (for cleaner code).<\/p>\n<p>Unlike in the (full) .NET Framework, we can specify the version of .NET Core to use in the .csproj file, meaning that multiple versions of the SDK can be used with whatever variety of libraries are needed:<\/p>\n<p><code>&lt;TargetFramework&gt;netcoreapp1.1&lt;\/TargetFramework&gt;<\/code><\/p>\n<p>We can also add references to libraries with <code>dotnet add reference libraryname<\/code>.\u00a0Adding a package with <code>dotnet add package packagename<\/code> not only adds it but restores, downloads and checks compatibility. Meanwhile <code>dotnet new solution<\/code> creates a solution file &#8211; something that would be complex to do manually.<\/p>\n<h3>Why revert to a CLI?<\/h3>\n<p>So we&#8217;ve seen that you can be a successful .NET programmer without a visual editor. We can build an entire project system from the command line. .NET Core is not just about involving the Linux community with a cross-platform version of .NET but also about speed and Scott used an analogy of thinking of the CLI as creating a &#8220;2D&#8221; version to validate before working on the full &#8220;3D&#8221; GUI version.<\/p>\n<p>In the background (under the covers), the .NET Core SDK uses the <a href=\"https:\/\/www.nuget.org\/\">NuGet package manager<\/a> (<code>dotnet add package<\/code>), MSBuild (<code>dotnet build<\/code>) and VSTest (<code>dotnet new xunit<\/code> and <code>dotnet test<\/code>).<\/p>\n<p>Visual Studio gives a better user interface but we can develop the basics very quickly using a command line and then get the best of both worlds &#8211; both CLI and GUI. What .NET Core does is lower the barrier to entry &#8211; getting up and running writing Microsoft.NET code in just a few minutes, for Windows, MacOS or Linux.<\/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><a href=\"https:\/\/www.microsoft.com\/net\/tutorials\/csharp\/getting-started\">Getting Started with C#<\/a>\u00a0(includes interactive, in-browser code compilation)<\/li>\n<li><a href=\"http:\/\/www.tryfsharp.org\/Learn\">Welcome to F#<\/a><\/li>\n<li><a href=\"http:\/\/continuous.codes\/\">Continuous Codes<\/a> &#8211; C# and F# Editor for the iPad<\/li>\n<li><a href=\"https:\/\/getmimo.com\/\">GetMimo<\/a> &#8211; learn C# (and others) in browser (kind of like DuoLingo for coding!)<\/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-core.htm\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Introduction to Microsoft .NET Core<\/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-7097","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 Core - markwilson.it<\/title>\n<meta name=\"description\" content=\"Part 1 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-core.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 Core - markwilson.it\" \/>\n<meta property=\"og:description\" content=\"Part 1 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-core.htm\" \/>\n<meta property=\"og:site_name\" content=\"markwilson.it\" \/>\n<meta property=\"article:published_time\" content=\"2017-07-13T11:00:27+00:00\" \/>\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-core.htm#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-core.htm\"},\"author\":{\"name\":\"Mark Wilson\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"headline\":\"Introduction to Microsoft .NET Core\",\"datePublished\":\"2017-07-13T11:00:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-core.htm\"},\"wordCount\":628,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"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-core.htm#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-core.htm\",\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-core.htm\",\"name\":\"Introduction to Microsoft .NET Core - markwilson.it\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#website\"},\"datePublished\":\"2017-07-13T11:00:27+00:00\",\"description\":\"Part 1 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-core.htm#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-core.htm\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2017\\\/07\\\/introduction-microsoft-net-core.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 Core\"}]},{\"@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 Core - markwilson.it","description":"Part 1 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-core.htm","og_locale":"en_GB","og_type":"article","og_title":"Introduction to Microsoft .NET Core - markwilson.it","og_description":"Part 1 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-core.htm","og_site_name":"markwilson.it","article_published_time":"2017-07-13T11:00:27+00:00","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-core.htm#article","isPartOf":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-core.htm"},"author":{"name":"Mark Wilson","@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"headline":"Introduction to Microsoft .NET Core","datePublished":"2017-07-13T11:00:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-core.htm"},"wordCount":628,"commentCount":0,"publisher":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"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-core.htm#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-core.htm","url":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-core.htm","name":"Introduction to Microsoft .NET Core - markwilson.it","isPartOf":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#website"},"datePublished":"2017-07-13T11:00:27+00:00","description":"Part 1 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-core.htm#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-core.htm"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-core.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 Core"}]},{"@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":7110,"url":"https:\/\/www.markwilson.co.uk\/blog\/2017\/07\/introduction-microsoft-net-standard.htm","url_meta":{"origin":7097,"position":0},"title":"Introduction to Microsoft .NET Standard","author":"Mark Wilson","date":"Friday 14 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":".NET Platforms Support table","src":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/images\/dotnet-platforms-support.png?resize=1400%2C800&ssl=1 4x"},"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":7097,"position":1},"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":1046,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/04\/powershell-running-on-server-core.htm","url_meta":{"origin":7097,"position":2},"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":1540,"url":"https:\/\/www.markwilson.co.uk\/blog\/2009\/10\/a-quick-guide-to-microsoft-net-framework-versions.htm","url_meta":{"origin":7097,"position":3},"title":"A quick guide to Microsoft .NET Framework versions","author":"Mark Wilson","date":"Monday 12 October 2009","format":false,"excerpt":"I've never really understood why certain applications require installation of the Microsoft .NET Framework, even though there's already a version included within the operating system. Surely each version of the framework includes previous versions? Well, it seems not - as David Allen from the Microsoft UK ISV Developer Evangelism Team\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":7097,"position":4},"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":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":7097,"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\/7097","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=7097"}],"version-history":[{"count":4,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/7097\/revisions"}],"predecessor-version":[{"id":7111,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/7097\/revisions\/7111"}],"wp:attachment":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=7097"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=7097"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=7097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}