{"id":123,"date":"2021-03-13T00:14:07","date_gmt":"2021-03-13T00:14:07","guid":{"rendered":"https:\/\/wshop.fi\/eng\/?p=123"},"modified":"2021-03-13T00:14:08","modified_gmt":"2021-03-13T00:14:08","slug":"the-capabilities-of-net","status":"publish","type":"post","link":"https:\/\/wshop.fi\/eng\/the-capabilities-of-net\/","title":{"rendered":"The Capabilities of .NET"},"content":{"rendered":"\n<p><strong>The Developers Dilemma usually takes two forms:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>If Only I could X<\/li><li>Or, How Do I X<\/li><\/ul>\n\n\n\n<p>Usually followed by a flurry of Google Searches and, depending on the platform\/language you are programming in, either success or failure.<\/p>\n\n\n\n<p>Often though, if the solution requires downloading something or setting up something new on your computer, the question usually follows:<\/p>\n\n\n\n<p><em>Why isn\u2019t this easier?<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Built-in<\/h2>\n\n\n\n<p>In a perfect world, these questions would be answered by, \u201cJust call this function\u201d or \u201cJust use this class\u201d.&nbsp; Thus, the functionality would be built-in and all you have to do is use it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">That\u2019s the goal anyway\u2026<\/h2>\n\n\n\n<p>Whether or not, Microsoft fully hit the mark with this in <a href=\"https:\/\/dotnet.microsoft.com\/\">.NET<\/a>, they certainly took a very good swing at it.\u00a0 There are a lot of built in capabilities in .Net, all exposed via API.\u00a0 Thus, all you have to do is know what to call and how to use it.<\/p>\n\n\n\n<p>Luckily, while releasing the functionality, they also released detailed documentation to assist with usage.&nbsp; That doesn\u2019t mean it\u2019s absolutely 100% complete, just that it\u2019s usually pretty good and answers a lot of questions about implementation.&nbsp; It\u2019s good to know that it\u2019s a priority for them and that there\u2019s someone paid to create and review documentation for things like this.<\/p>\n\n\n\n<p>One additional difference with built-in functionality is when it\u2019s time to deploy your application, you don\u2019t have to worry about deploying supporting applications and\/or libraries.&nbsp; They are already there.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Examples<\/h2>\n\n\n\n<p><strong>Windows Services<\/strong> are programs that run in the background on a windows machine.&nbsp; They perform a variety of functions and once in a while, it would be very useful for you to write one.&nbsp; They used to be an exercise in Black Magic followed by frustration.&nbsp; Nowadays (in .NET) they are pretty much implemented with a couple of API calls and a Visual Studio template that you use to create them.<\/p>\n\n\n\n<p><strong>Exposing and <a href=\"https:\/\/docs.microsoft.com\/en-us\/openspecs\/windows_protocols\/ms-netod\/4950065f-7a79-4021-85e6-33ee9b5e91ba#:~:text=3.1.,consumption%20of%20a%20Web%20service.\">Consuming Web Services<\/a><\/strong> also used to take a lot of patience.\u00a0 Remoting\/RPC (the non-web web services) was also a PITA to implement.\u00a0 Now with WCF, you make a couple of API calls, and use a couple of configuration files, largely maintained by Visual Studio for you, and most the the headache has been abstracted from you.<\/p>\n\n\n\n<p><strong>Creating an Installer<\/strong> used to involve third party products to get it right, and sometimes didn\u2019t work on certain target operating system versions.&nbsp; This as well is built in with .NET and the process of creating them is another Visual Studio Wizard.<\/p>\n\n\n\n<p><strong>Windowed Applications<\/strong> have been easy since the first days of VB, however they are much more robust and also built into the framework.&nbsp; Now accessible from third generation programming languages like C#.<\/p>\n\n\n\n<p><strong>Messaging\/Queuing<\/strong> for applications that process a large number of requests is also built into the framework.&nbsp; If you are looking for basic functionality, no need to install SQL Server or Service Broker.<\/p>\n\n\n\n<p><strong>Web Application functionality<\/strong>\u00a0 is built into the framework, so even though you can\u2019t serve up an application without IIS or the Standalone ASP.NET Development Server, 90% of the components you actually use in a web application are actually a part of the Base Framework.\u00a0 This includes for example, needing to <a href=\"https:\/\/emn178.github.io\/online-tools\/html_encode.html\">HTMLEncode<\/a> or URLEncode something in a non-web application.<\/p>\n\n\n\n<p><a href=\"https:\/\/visualstudiomagazine.com\/articles\/2015\/11\/01\/management-tools-for-visual-studio.aspx\"><strong>Data Handling\/ORM<\/strong>\u00a0<\/a> basically is the ability to make connecting to your database a whole lot easier and with a whole lot less code.\u00a0 This used to be a specialized, experimental idea that was not formally accepted in the development world.\u00a0 It\u2019s included now.<\/p>\n\n\n\n<p>A <strong>Workflow Server<\/strong> can be a PITA to create, let alone maintain.&nbsp; This functionality is one of the more impressive components that\u2026 you guessed it is included in .NET<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping it up<\/h2>\n\n\n\n<p>Built-in functionality wins over downloaded extra functionality hands down.&nbsp; Knowing this, MS has gone out of their way to provide more and more INSIDE the actual .NET Framework itself.&nbsp; It\u2019s Developer friendly by exposing API Calls and will usually save you time and\/or money if you get to know the components in .Net.<\/p>\n\n\n\n<p>Don\u2019t make the mistake and re-write any of these items yourself, make sure to first see if it\u2019s included.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Developers Dilemma usually takes two forms: If Only I could X Or, How Do I X Usually followed by a flurry of Google Searches and, depending on the platform\/language you are programming in, either success or failure. Often though, if the solution requires downloading something or setting up something new on your computer, the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":124,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,19],"tags":[],"class_list":{"0":"post-123","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-coding","8":"category-wordpress"},"_links":{"self":[{"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/posts\/123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/comments?post=123"}],"version-history":[{"count":1,"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/posts\/123\/revisions"}],"predecessor-version":[{"id":125,"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/posts\/123\/revisions\/125"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/media\/124"}],"wp:attachment":[{"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/media?parent=123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/categories?post=123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wshop.fi\/eng\/wp-json\/wp\/v2\/tags?post=123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}