<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bharat Dwarkani</title>
    <description>The latest articles on DEV Community by Bharat Dwarkani (@bharatdwarkani).</description>
    <link>https://dev.to/bharatdwarkani</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F206330%2F7d38d003-5051-43f3-ae61-6b046e3f2489.jpg</url>
      <title>DEV Community: Bharat Dwarkani</title>
      <link>https://dev.to/bharatdwarkani</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bharatdwarkani"/>
    <language>en</language>
    <item>
      <title>How to publish Angular App to Azure web app for Linux/ FTP using Azure DevOps Pipelines explained from scratch</title>
      <dc:creator>Bharat Dwarkani</dc:creator>
      <pubDate>Sun, 17 May 2020 13:56:29 +0000</pubDate>
      <link>https://dev.to/bharatdwarkani/how-to-publish-angular-app-to-azure-web-app-for-linux-ftp-using-azure-devops-pipelines-explained-from-scratch-o03</link>
      <guid>https://dev.to/bharatdwarkani/how-to-publish-angular-app-to-azure-web-app-for-linux-ftp-using-azure-devops-pipelines-explained-from-scratch-o03</guid>
      <description>&lt;p&gt;In this post, I will explain from scratch in 10 steps, how to build a Azure DevOps pipeline to publish Angular app in Azure Web app for Linux using FTP method. Using this method you can also publish app in any FTP location also.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Azure DevOps&lt;/strong&gt; — Is a continuous integration tool offered by Microsoft.&lt;/p&gt;

&lt;p&gt;For creating &lt;strong&gt;Azure Web app for Linux&lt;/strong&gt; checkout this&lt;br&gt;
&lt;a href="https://dev.to/bharatdwarkani/how-to-publish-an-angular-app-in-azure-linux-web-app-service-explained-from-scratch-4e9m"&gt;https://dev.to/bharatdwarkani/how-to-publish-an-angular-app-in-azure-linux-web-app-service-explained-from-scratch-4e9m&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Login in your &lt;strong&gt;Azure DevOps&lt;/strong&gt; account. &lt;a href="https://azure.microsoft.com/en-in/services/devops/"&gt;https://azure.microsoft.com/en-in/services/devops/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a new &lt;strong&gt;Pipeline&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ynvG7nVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3784/1%2A9nUm11GkTDRfSHEbziEieQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ynvG7nVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3784/1%2A9nUm11GkTDRfSHEbziEieQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select the source where your application source code is located.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Since my source is located in Gitlab, so I have selected Other Git , you can select based on your need&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m534iJTC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2918/1%2A37EWFF8Rre2XcfYcMdgyww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m534iJTC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2918/1%2A37EWFF8Rre2XcfYcMdgyww.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select new service connection&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q_NQ6ADL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3160/1%2Az78bqbRjskFLUmW7L8dHGQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q_NQ6ADL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3160/1%2Az78bqbRjskFLUmW7L8dHGQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fill the details related to your Source Git repository and click continue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4uiZekKl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2544/1%2A-rGXRjv8iI7kL-OUM5Xvaw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4uiZekKl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2544/1%2A-rGXRjv8iI7kL-OUM5Xvaw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select Empty Job in template.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bYrkV0_4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3104/1%2AWezeTCtDvgCV4QPHjH_Xaw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bYrkV0_4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3104/1%2AWezeTCtDvgCV4QPHjH_Xaw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now pipeline view will appear. There are various predefined tasks available in Azure DevOps. In next few steps I will explain which tasks to add to build and publish Angular app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;i) NPM Install&lt;br&gt;
ii) NPM Build&lt;br&gt;
iii) Publish Artifact&lt;br&gt;
iv) FTP Upload&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add task — &lt;strong&gt;NPM&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YsSIUO-P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3124/1%2Af12o332u4C8reBzYitv9wA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YsSIUO-P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3124/1%2Af12o332u4C8reBzYitv9wA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on npm install. In property select your app location.&lt;/p&gt;

&lt;p&gt;Here I have filled** $(Build.SourcesDirectory)/myapp**&lt;/p&gt;

&lt;p&gt;Since in repository, my source is located not directly in root folder instead inside myapp folder. Based on your source folder structure you can fill appropriate source path folder which contains package.json file&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g2gOzGSC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2092/1%2AvgebDzzwNd0o9rw0J_iSQg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g2gOzGSC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2092/1%2AvgebDzzwNd0o9rw0J_iSQg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Yje17BNr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3108/1%2AmzRgGSfsZzO92Hrl4zRMiA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Yje17BNr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3108/1%2AmzRgGSfsZzO92Hrl4zRMiA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Next, again search NPM and add npm task. This task is for build.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jEJgRM74--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3146/1%2A-8JIXJjTTkXBg12Lh_JaGQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jEJgRM74--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3146/1%2A-8JIXJjTTkXBg12Lh_JaGQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Change properties as shown in screenshot for Build task.&lt;/p&gt;

&lt;p&gt;i)** Command** to Custom&lt;/p&gt;

&lt;p&gt;ii) &lt;strong&gt;Working folder&lt;/strong&gt; — $(Build.SourcesDirectory)/myapp&lt;/p&gt;

&lt;p&gt;iii) *&lt;em&gt;Command and arguments *&lt;/em&gt;— run build-prod-agent&lt;/p&gt;

&lt;p&gt;build-prod-agent — depends on what you have set in package.json file of your app.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m0jd54y1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2A4Lj1vs_uuxiH7Qn-N3IIiQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m0jd54y1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2A4Lj1vs_uuxiH7Qn-N3IIiQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--knOcTWmV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3126/1%2A5TGXJ6tyWb6FFph1_9AJog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--knOcTWmV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3126/1%2A5TGXJ6tyWb6FFph1_9AJog.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Now add one more task &lt;strong&gt;Publish build artifacts.&lt;/strong&gt; Using this you can download published files after CI completes. If this is not added after build completes you wont be able to access published files.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QsroYmwc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3130/1%2ADh-j-9jgqQnRyZLrovxxyg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QsroYmwc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3130/1%2ADh-j-9jgqQnRyZLrovxxyg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Change artifacts properties&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Path to publish *&lt;/em&gt;→ Angular dist folder path&lt;br&gt;
*&lt;em&gt;Artifact name *&lt;/em&gt;— publish&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oa2jHQHn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3134/1%2A1_7DCLTvxQ4WDKO3W1eZWw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oa2jHQHn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3134/1%2A1_7DCLTvxQ4WDKO3W1eZWw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Final step is to Create a &lt;strong&gt;FTP upload task&lt;/strong&gt;. Select and add.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kOlOjIM_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3156/1%2Akogiax9hDq8wAeprdT1irw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kOlOjIM_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3156/1%2Akogiax9hDq8wAeprdT1irw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on manage FTP to add a FTP connection for your azure app service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KiLBsTzy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3084/1%2Aq2DrRGNy4w0pXJ9-cHwEFg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KiLBsTzy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3084/1%2Aq2DrRGNy4w0pXJ9-cHwEFg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On clicking manage a Service connection page will appear. Click new Service connection.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QKoIOqZG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3986/1%2AGc5XzlOzdxrEunfU1HWtVw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QKoIOqZG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3986/1%2AGc5XzlOzdxrEunfU1HWtVw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select type — Generic&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j_aLi68Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2778/1%2A0ujAu8BcxSQfgn-_1O6N9A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j_aLi68Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2778/1%2A0ujAu8BcxSQfgn-_1O6N9A.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now go to your Azure app, Click on Deployment center and get Endpoint, Username and password.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YOUvtioK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3880/1%2A8TJwFEYJhHq0agwLDH54lQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YOUvtioK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3880/1%2A8TJwFEYJhHq0agwLDH54lQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;File the details in FTP connection page and click OK.&lt;/p&gt;

&lt;p&gt;After that in FTP task properties select recently created FTP service connection name and fill root folder&lt;/p&gt;

&lt;p&gt;Root folder is your publish location where your app creates publish dist folder.&lt;br&gt;
$(Build.SourcesDirectory)/myapp/dist/publishfiles.&lt;/p&gt;

&lt;p&gt;If your app produces files directly in dist then can just give $(Build.SourcesDirectory)/myapp/dist&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B1mBxgac--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3262/1%2ArFcl9EMmQP4Ww9uEaNc3lg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B1mBxgac--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3262/1%2ArFcl9EMmQP4Ww9uEaNc3lg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Final step is to create a trigger. Here I am creating a trigger scheduled task. Every day at 2 AM Pipeline will run at 2.00 AM to build and publish development branch source to Azure app service for Linux.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LhyUmwt9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3146/1%2AdG9a0xZIK2y2OhV_Hb3qPw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LhyUmwt9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3146/1%2AdG9a0xZIK2y2OhV_Hb3qPw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can also run manually build from pipelines page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KehYYLp_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3890/1%2AJfmBpTgN2BphGD2QKkYdOw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KehYYLp_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3890/1%2AJfmBpTgN2BphGD2QKkYdOw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On clicking pipeline you can view details and also download publish files&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kf09iJWj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3666/1%2AKiS7zieYkaYPzoiaOLu1ng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kf09iJWj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3666/1%2AKiS7zieYkaYPzoiaOLu1ng.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope, you have found this post useful. Azure DevOps has several inbuilt tasks you can add to enhance your pipelines. Like adding Test, Security testing etc., There is one more way by using yaml file you can create pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For more such interesting technology related blogs, resources visit my site&lt;/strong&gt;&lt;br&gt;
(&lt;a href="https://sharetechlinks.com/"&gt;https://sharetechlinks.com/&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>angular</category>
      <category>devops</category>
      <category>azure</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to publish an Angular App in Azure Linux Web App Service explained from scratch
</title>
      <dc:creator>Bharat Dwarkani</dc:creator>
      <pubDate>Sun, 17 May 2020 13:43:09 +0000</pubDate>
      <link>https://dev.to/bharatdwarkani/how-to-publish-an-angular-app-in-azure-linux-web-app-service-explained-from-scratch-4e9m</link>
      <guid>https://dev.to/bharatdwarkani/how-to-publish-an-angular-app-in-azure-linux-web-app-service-explained-from-scratch-4e9m</guid>
      <description>&lt;p&gt;In this article, I will explain from scratch in just 5 steps, How to Setup Azure Web app for Linux and publish your Angular application. You can also setup Azure DevOps Pipeline to setup continuous integration for automatic deployment of your app.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new **App Service Plan. **If you have already created then skip this step. App service is like one container or a VM machine. In a single azure app service, you can host N no. of web apps. Based on the load you can split your apps to separate app services if required. To create a new app service. First, you need to set a resource group name if you already have created it, can use the same or else can create new. Next, fill the app service name, Select OS as Linux. and then select a pricing plan based on your needs and create.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Selecting Linux is not necessary you can use Windows also. But, if Linux supports it why not use it, Linux App services are cheaper than Windows-based app services.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--htps83IK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2344/1%2AdiQbE8lr9OKhIskuA8I7oA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--htps83IK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2344/1%2AdiQbE8lr9OKhIskuA8I7oA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0Qg5Iqzb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2156/1%2ABqy3n_ACvxX1c8Cw0UPXKw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0Qg5Iqzb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2156/1%2ABqy3n_ACvxX1c8Cw0UPXKw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In a few minutes app will be deployed&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fy2aSM5Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2952/1%2A9lQqHWVHBFzc4xoO-gKMgA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fy2aSM5Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2952/1%2A9lQqHWVHBFzc4xoO-gKMgA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There is a free app service plan available for both Windows and Linux Azure app services&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://azure.microsoft.com/en-in/pricing/details/app-service/windows/"&gt;https://azure.microsoft.com/en-in/pricing/details/app-service/windows/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jvB9vfXz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3704/1%2A3JgK4U-Ba7ghOID26tohNA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jvB9vfXz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3704/1%2A3JgK4U-Ba7ghOID26tohNA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_jZKVgd8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3396/1%2AejWhW6feW901o5G8MnYirg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_jZKVgd8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3396/1%2AejWhW6feW901o5G8MnYirg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In your app service. Select &lt;strong&gt;TLS/SSL Settings. Change some parameters&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ARPZTpco--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2594/1%2A1kOVcJX8b5t4nRgrPLe7Ig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ARPZTpco--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2594/1%2A1kOVcJX8b5t4nRgrPLe7Ig.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Configuration -&amp;gt; General Settings&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Include &lt;strong&gt;Startup Command **-&amp;gt; **node /home/site/wwwroot/server&lt;br&gt;
**Also change **HTTP Version — 2.0&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vYVoyguk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2398/1%2AMSRzIjYyemLUk5Sl94_7fg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vYVoyguk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2398/1%2AMSRzIjYyemLUk5Sl94_7fg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, your Azure app service is ready for deployment.&lt;/p&gt;

&lt;p&gt;Next, few steps are related to &lt;strong&gt;building your angular app in VS code&lt;/strong&gt; and publishing to App service using VS code App service extension.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Download VS Code&lt;/strong&gt; if you don’t have and install &lt;strong&gt;Azure App service extension&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Build your angular app&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---6IBiUew--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2606/1%2ASRT7VtnMTeo5a6iT9YqEIA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---6IBiUew--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2606/1%2ASRT7VtnMTeo5a6iT9YqEIA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on Azure App service Extension. Initially it will ask for subscription details and your Azure Ad Login. Fill those details. Once filled all apps will be listed. Select your app and click &lt;strong&gt;Deploy to Web app&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SUuy-kR_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AATLnAluRCxJNPsXfX2V7cw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SUuy-kR_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AATLnAluRCxJNPsXfX2V7cw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Browse the dist folder where your angular app was published.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eOuOJ1Hf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AlqBuSY8BEvreHZb4dlt0iw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eOuOJ1Hf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AlqBuSY8BEvreHZb4dlt0iw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zq-D90Z1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2ASOPq_05Kx2qWf3bsdBgWTQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zq-D90Z1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2ASOPq_05Kx2qWf3bsdBgWTQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;After selection click deploy — Deployment will start&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---nhv-bnp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2ApkAB2Wh6Q1jMIFzlCsF_KQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---nhv-bnp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2ApkAB2Wh6Q1jMIFzlCsF_KQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s all you can Browse the website. Your angular app is published to Azure Web app.&lt;/p&gt;

&lt;p&gt;Next time, your configuration will be saved you can just click on dist folder and click deploy. Within minutes your Angular app will be published.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ngKkEKMU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AYQgV8GM6RhslEEuDF9Lolw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ngKkEKMU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AYQgV8GM6RhslEEuDF9Lolw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also use &lt;strong&gt;Azure DevOps pipeline&lt;/strong&gt; to automate this process.&lt;br&gt;
&lt;a href="https://dev.to/bharatdwarkani/how-to-publish-angular-app-to-azure-web-app-for-linux-ftp-using-azure-devops-pipelines-explained-from-scratch-o03"&gt;https://dev.to/bharatdwarkani/how-to-publish-angular-app-to-azure-web-app-for-linux-ftp-using-azure-devops-pipelines-explained-from-scratch-o03&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hope you find this article short and crisp. If you are interested in more such technical resource please visit my site&lt;/strong&gt; &lt;a href="https://sharetechlinks.com/"&gt;https://sharetechlinks.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>azure</category>
      <category>devops</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to publish ASP.NET Core 3.0 Web App / API in Azure Linux App Service explained from scratch
</title>
      <dc:creator>Bharat Dwarkani</dc:creator>
      <pubDate>Sun, 13 Oct 2019 05:43:32 +0000</pubDate>
      <link>https://dev.to/bharatdwarkani/how-to-publish-asp-net-core-3-0-web-app-api-in-azure-linux-app-service-explained-from-scratch-429h</link>
      <guid>https://dev.to/bharatdwarkani/how-to-publish-asp-net-core-3-0-web-app-api-in-azure-linux-app-service-explained-from-scratch-429h</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Create a new &lt;strong&gt;App Service Plan&lt;/strong&gt;. If you have already created then skip this step. App service is like one container or a VM machine. In a single azure app service, you can host N no. of web apps. Based on load you can split your apps to separate app services if required. To create a new app service. First, you need to set a resource group name if you already have created it, can use the same or else can create new. Next, fill the app service name, Select OS as Linux. and then select a pricing plan based on your needs and create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Selecting Linux is not necessary you can use Windows also. But, if Linux supports it why not use it, Linux App services are cheaper than Windows-based app services.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IRGy_MOP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/nldgkct2kdvar764daf9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IRGy_MOP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/nldgkct2kdvar764daf9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the app service plan is created. Next, you need to create App Service. You can search and select app service. App service is nothing but your web app / API. Create a new app under your app service plan. Select run time .Net Core 2.2 at present .NET Core 3.3 is not listed Azure team is rolling out. But there is a workaround by which you can change to 3.0 later, explained below.
Note Select the same app service name created in the previous step, else you will end up creating a new app service plan and will be charged. It will appear in the list once you select a region.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Select the same app service name created in the previous step, else you will end up creating a new app service plan and will be charged. It will appear in the list once you select a region.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Aom-XqZv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/r61k0r6hltchvc1nzwen.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Aom-XqZv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/r61k0r6hltchvc1nzwen.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There is a free app service plan available for both Windows and Linux Azure app services&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://azure.microsoft.com/en-in/pricing/details/app-service/windows/"&gt;https://azure.microsoft.com/en-in/pricing/details/app-service/windows/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pkZGHz6M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/2kl4fjbbej4pywe2eeog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pkZGHz6M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/2kl4fjbbej4pywe2eeog.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d7clRQ1j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/sya1x3u3xj3sitbj4kgm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d7clRQ1j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/sya1x3u3xj3sitbj4kgm.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After filling details a next screen will be shown. Review and create app service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nBrCpnjT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/tho4iwvs82wl1xknjz7c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nBrCpnjT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/tho4iwvs82wl1xknjz7c.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In a few minutes, the app will be deployed. Click on Go to resource and you will be redirected to your newly created app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wm0KlBZW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/3jhf3ess46q2zuakllqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wm0KlBZW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/3jhf3ess46q2zuakllqu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In your app service. Select &lt;strong&gt;Configuration tab -&amp;gt; General settings&lt;/strong&gt;
Change Version to &lt;strong&gt;.Net Core 3.0&lt;/strong&gt; which was not available in the previous step and save it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NY52G3Pd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/dp24rl4l8vhqqo8jnypj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NY52G3Pd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/dp24rl4l8vhqqo8jnypj.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next, enable security by going to TLS/SSL Settings — Binding
Set &lt;strong&gt;HTTPS only — ON&lt;/strong&gt; and save it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p5Rxs7BU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/25bzv110pplkmxsuf2mx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p5Rxs7BU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/25bzv110pplkmxsuf2mx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next go to Configuration -&amp;gt; Application Settings
Add some setting as shown below
&lt;strong&gt;WEBSITE_DYNAMIC_CACHE — 0&lt;/strong&gt;
&lt;strong&gt;WEBSITE_LOCAL_CACHE_OPTION- Never&lt;/strong&gt; (For staging enable this else app will be cached and will not refresh on publishing)
&lt;strong&gt;WEBSITE_WEBDEPLOY_USE_SCM — false&lt;/strong&gt; (Set false else you will not able to use VS to publish directly)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xcWOVEE2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/w0i4rg8p8102q9wyru7k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xcWOVEE2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/w0i4rg8p8102q9wyru7k.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next, download the publish profile. Now the configuration is Azure is done we can now publish directly site from Visual Studio which is explained below.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--plM5tLJo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/wtgfoggoelj5mfb4o56l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--plM5tLJo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/wtgfoggoelj5mfb4o56l.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open your web app in Visual Studio — 2019. Select &lt;strong&gt;Build → Publish&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_zxM4BkS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/tu8gsbrg1uc77noc4jha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_zxM4BkS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/tu8gsbrg1uc77noc4jha.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next, the Publish screen will open. Click on import and browse the publish file which we download in step 8.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z3pAOWpO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/o4jxugkius8su2jiqzso.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z3pAOWpO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/o4jxugkius8su2jiqzso.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On importing file two settings will be generated one for web deploy and other for FTP. You can select &lt;strong&gt;Web deploy&lt;/strong&gt;. Finally, click &lt;strong&gt;Publish&lt;/strong&gt;, the site will be published to Azure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--agemtjtQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/2h3hui2e82iylexngr27.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--agemtjtQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/2h3hui2e82iylexngr27.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Before publishing Click on edit and check option — Remove additional files at the destination. Else default azure site will show up in azure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bJyRlBZ7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/9am350zc2vnaqmmkq3nk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bJyRlBZ7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/9am350zc2vnaqmmkq3nk.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Azure and restart the app service. Sometime it won't auto-refresh on publishing. So we need to manually restart.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_1rE-7rG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/t19n6uu0kikk53sxsdks.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_1rE-7rG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/t19n6uu0kikk53sxsdks.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next, Click on the Site URL. Now the site is hosted.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Giov1vmf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/pt9mcri7kv3p6p4svlf0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Giov1vmf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/pt9mcri7kv3p6p4svlf0.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional Note:&lt;/strong&gt; You can also configure FTP for publishing, Custom domain can also be mapped in case you don't need default Azure site URL. Firewall can be configured, logging can be enabled. Azure also provides application insights, performance testing, etc.,&lt;/p&gt;

&lt;p&gt;Azure also supports Staging and Production slots in the higher plan using that you can first publish in staging slot and can swap to production slot after testing within seconds with almost no downtime.&lt;/p&gt;

&lt;p&gt;There is a traffic manager inbuilt using which Azure can load balance your site.&lt;br&gt;
&lt;strong&gt;Detailed reference&lt;/strong&gt; can refer here —&lt;br&gt;
&lt;strong&gt;Pricing&lt;/strong&gt; — &lt;a href="https://azure.microsoft.com/en-in/pricing/details/app-service/windows/"&gt;https://azure.microsoft.com/en-in/pricing/details/app-service/windows/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Documentation&lt;/strong&gt; — &lt;a href="https://docs.microsoft.com/en-us/azure/app-service/"&gt;https://docs.microsoft.com/en-us/azure/app-service/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For more such interesting ASP.NET Core related blogs, resources visit my site &lt;a href="https://sharetechlinks.com/"&gt;https://sharetechlinks.com/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>dotnetcore</category>
      <category>azure</category>
      <category>webdev</category>
    </item>
    <item>
      <title>.NET Core 3.0 - What’s New and Upcoming</title>
      <dc:creator>Bharat Dwarkani</dc:creator>
      <pubDate>Tue, 24 Sep 2019 14:33:26 +0000</pubDate>
      <link>https://dev.to/bharatdwarkani/net-core-3-0-what-s-new-and-upcoming-next-4fpa</link>
      <guid>https://dev.to/bharatdwarkani/net-core-3-0-what-s-new-and-upcoming-next-4fpa</guid>
      <description>&lt;p&gt;.NET Core 3.0 released yesterday — Sep 23rd.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Announcing .NET Core 3.0&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0/" rel="noopener noreferrer"&gt;https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live virtual Conference on going — &lt;a href="https://www.dotnetconf.net/agenda" rel="noopener noreferrer"&gt;https://www.dotnetconf.net/agenda&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performance is greatly improved&lt;/li&gt;
&lt;li&gt;C# 8.0 support.&lt;/li&gt;
&lt;li&gt;WPF and WF support in .NET Core 3.0 but will not work in Linux yet.&lt;/li&gt;
&lt;li&gt;More improvements for IoT, Rasberry Pi.&lt;/li&gt;
&lt;li&gt;High-performance JSON APIs&lt;/li&gt;
&lt;li&gt;.NET Core apps now have executables&lt;/li&gt;
&lt;li&gt;Pack your application with all dependencies in single exe and trimming support.&lt;/li&gt;
&lt;li&gt;gRPC support for serverless programming use as an alternative to WCF services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;ASP.NET Core and Blazor updates in .NET Core 3.0&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0/" rel="noopener noreferrer"&gt;https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client-Side Blazor to get its stable release by May 2020&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Entity Framework Core 3.0 and Entity Framework 6.3&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://devblogs.microsoft.com/dotnet/announcing-ef-core-3-0-and-ef-6-3-general-availability" rel="noopener noreferrer"&gt;https://devblogs.microsoft.com/dotnet/announcing-ef-core-3-0-and-ef-6-3-general-availability&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Points:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restricted client evaluation — A much-needed feature.&lt;/li&gt;
&lt;li&gt;Single SQL statement per LINQ query&lt;/li&gt;
&lt;li&gt;Cosmos DB support&lt;/li&gt;
&lt;li&gt;Nullable reference types.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What’s new in ASP.NET Core 3.0&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-3.0?view=aspnetcore-3.0" rel="noopener noreferrer"&gt;https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-3.0?view=aspnetcore-3.0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Points:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performance improvement.&lt;/li&gt;
&lt;li&gt;Blazor support&lt;/li&gt;
&lt;li&gt;gRPC — is a popular, high-performance RPC (remote procedure call) framework.&lt;/li&gt;
&lt;li&gt;SignalR improvements — Auto-reconnect support.&lt;/li&gt;
&lt;li&gt;Awaitable for loops, async enumerables.&lt;/li&gt;
&lt;li&gt;Generic Host support&lt;/li&gt;
&lt;li&gt;Improvements in hosting app under reverse proxy.&lt;/li&gt;
&lt;li&gt;Identity server integrated templates.&lt;/li&gt;
&lt;li&gt;Project Templates for Separated frontend (Angular, React) and backend API under the same project.&lt;/li&gt;
&lt;li&gt;Project Templates for microservices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What’s new in Xamarin&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://devblogs.microsoft.com/xamarin/xamarin-dotnet-conf-2019/" rel="noopener noreferrer"&gt;https://devblogs.microsoft.com/xamarin/xamarin-dotnet-conf-2019/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Points:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;XAML Hot Reload for Xamarin.Forms&lt;/li&gt;
&lt;li&gt;Xamarin Hot Restart iOS 13 &amp;amp; Android 10&lt;/li&gt;
&lt;li&gt;iOS 13 &amp;amp; Android 10 Support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Visual Studio 2019–16.3&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://devblogs.microsoft.com/visualstudio/dot-net-core-support-in-visual-studio-2019-version-16-3/" rel="noopener noreferrer"&gt;https://devblogs.microsoft.com/visualstudio/dot-net-core-support-in-visual-studio-2019-version-16-3/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Migration from .NET core 2.2 to 3.0&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0" rel="noopener noreferrer"&gt;https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s Next?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;.NET Core 3.1&lt;/strong&gt; LTS will release by Nov 2019&lt;br&gt;
&lt;strong&gt;.NET 5&lt;/strong&gt; — Nov 2020 goal is to combine all platform under the same roof — .NET 5&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Feg4cqoekks04nr0nn6i0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Feg4cqoekks04nr0nn6i0.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwkmt2ert4qf8g4akc1wd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwkmt2ert4qf8g4akc1wd.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out my site for more blogs and resource links related to ASP.NET Core — &lt;a href="https://sharetechlinks.com" rel="noopener noreferrer"&gt;https://sharetechlinks.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>blazor</category>
      <category>aspnetcore</category>
      <category>wpf</category>
    </item>
    <item>
      <title>Checklist for Hosting ASP.NET Core Site in Linux VM
</title>
      <dc:creator>Bharat Dwarkani</dc:creator>
      <pubDate>Wed, 28 Aug 2019 15:10:52 +0000</pubDate>
      <link>https://dev.to/bharatdwarkani/checklist-for-hosting-asp-net-core-site-in-linux-vm-39le</link>
      <guid>https://dev.to/bharatdwarkani/checklist-for-hosting-asp-net-core-site-in-linux-vm-39le</guid>
      <description>&lt;p&gt;I have listed items with references which will help you in deploying your ASP.NET Core site from scratch in a fresh VM for a production environment.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install and Setup &lt;strong&gt;Supervisor&lt;/strong&gt; - It is a tool which will help in the auto-start of your site on server restart, otherwise, on server restart, you might need to manually start site.&lt;/li&gt;
&lt;li&gt;Install and Setup &lt;strong&gt;Nginx&lt;/strong&gt; - For Reverse Proxying to your .NET app&lt;/li&gt;
&lt;li&gt;Install DotNet Core
 &lt;a href="https://dotnet.microsoft.com/download/linux-package-manager/ubuntu16-04/sdk-current"&gt;https://dotnet.microsoft.com/download/linux-package-manager/ubuntu16-04/sdk-current&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Get a &lt;strong&gt;domain&lt;/strong&gt; - Can get from GoDaddy or any other vendor.&lt;/li&gt;
&lt;li&gt;Setup and Install &lt;strong&gt;Lets Encrypt&lt;/strong&gt; - To Obtain Free SSL Certification or if you have own certificate purchased you can also use it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable Firewall&lt;/strong&gt; to allow port 80, 443 - or any other port based on your requirement.&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;https redirect&lt;/strong&gt; in your Ngnix Configuration&lt;/li&gt;
&lt;li&gt;After Hosting ensure you have enabled basic &lt;strong&gt;Security Headers&lt;/strong&gt; for the site - Can test Using Security Headers site- &lt;a href="https://securityheaders.com/"&gt;https://securityheaders.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Can test your site for &lt;strong&gt;SEO&lt;/strong&gt; if your site needs it - &lt;a href="https://sharetechlinks.com/post/detail/101/free-seo-checker"&gt;https://sharetechlinks.com/post/detail/101/free-seo-checker&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Server Setup&lt;/strong&gt;&lt;br&gt;
You can get a cheap Digital Ocean Server for $5–$10 which is more than enough to run a simple site. &lt;br&gt;
This site runs on same - &lt;a href="https://sharetechlinks.com"&gt;https://sharetechlinks.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enabling Remote Desktop - XRDP&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://websiteforstudents.com/connect-to-ubuntu-16-04-17-10-18-04-desktop-via-remote-desktop-connection-rdp-with-xrdp/"&gt;https://websiteforstudents.com/connect-to-ubuntu-16-04-17-10-18-04-desktop-via-remote-desktop-connection-rdp-with-xrdp/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Installing Ubuntu Mate OS&lt;/strong&gt;&lt;br&gt;
Usually, when you purchase Linux VM from Digital Ocean or any other Vendor you won't get OS. To install a lightweight Ubuntu Mate Linux OS&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://jerrygamblin.com/2016/10/19/ubuntu-remote-desktop-on-digital-ocean/"&gt;https://jerrygamblin.com/2016/10/19/ubuntu-remote-desktop-on-digital-ocean/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Supervisor, Nginx Configuration&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.hanselman.com/blog/PublishingAnASPNETCoreWebsiteToACheapLinuxVMHost.aspx"&gt;https://www.hanselman.com/blog/PublishingAnASPNETCoreWebsiteToACheapLinuxVMHost.aspx&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Microsoft Official Docs&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1&amp;amp;tabs=aspnetcore2x"&gt;https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1&amp;amp;tabs=aspnetcore2x&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Nginx - In-Depth configurations&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://sharetechlinks.com/post/detail/173/nginx-everything-about-proxy-pass"&gt;https://sharetechlinks.com/post/detail/173/nginx-everything-about-proxy-pass&lt;/a&gt;&lt;br&gt;
&lt;a href="https://sharetechlinks.com/post/detail/204/nginx-with-modsecurity-and-brotli-production-setup-dockerized"&gt;https://sharetechlinks.com/post/detail/204/nginx-with-modsecurity-and-brotli-production-setup-dockerized&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Setting up Firewall&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-14-04"&gt;https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-14-04&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Installing Putty in Windows&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://medium.com/@bharatdwarkani/5-easy-steps-to-install-putty-and-connecting-to-linux-ubuntu-server-in-windows-adcdc9d755dc"&gt;https://medium.com/@bharatdwarkani/5-easy-steps-to-install-putty-and-connecting-to-linux-ubuntu-server-in-windows-adcdc9d755dc&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transferring file from windows to Linux using Putty&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://medium.com/@bharatdwarkani/copying-a-file-from-windows-to-linux-through-ssh-17f4f4c2eca8"&gt;https://medium.com/@bharatdwarkani/copying-a-file-from-windows-to-linux-through-ssh-17f4f4c2eca8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security Headers&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://sharetechlinks.com/post/detail/133/adding-http-headers-to-improve-security-in-an-asp-net-core-application"&gt;https://sharetechlinks.com/post/detail/133/adding-http-headers-to-improve-security-in-an-asp-net-core-application&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Refer this for Unzip file in Ubuntu&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.hostingadvice.com/how-to/unzip-file-linuxubuntu/"&gt;https://www.hostingadvice.com/how-to/unzip-file-linuxubuntu/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Installing My SQL In Linux&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04"&gt;https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.digitalocean.com/community/tutorials/how-to-secure-mysql-and-mariadb-databases-in-a-linux-vps"&gt;https://www.digitalocean.com/community/tutorials/how-to-secure-mysql-and-mariadb-databases-in-a-linux-vps&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.configserverfirewall.com/ubuntu-linux/enable-mysql-remote-access-ubuntu/"&gt;https://www.configserverfirewall.com/ubuntu-linux/enable-mysql-remote-access-ubuntu/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
The above-mentioned checklist is more than enough to host your ASP.NET Core site in a fresh Linux VM starting from Scratch.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>linux</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>Share Tech Links - A platform to share tech resources</title>
      <dc:creator>Bharat Dwarkani</dc:creator>
      <pubDate>Wed, 21 Aug 2019 15:52:57 +0000</pubDate>
      <link>https://dev.to/bharatdwarkani/share-tech-links-a-platform-to-share-tech-resources-2ob6</link>
      <guid>https://dev.to/bharatdwarkani/share-tech-links-a-platform-to-share-tech-resources-2ob6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Share Tech Links&lt;/strong&gt; — a platform to share links of articles, blogs, tutorials, and resource links of software technologies to the community.&lt;/p&gt;

&lt;p&gt;I've recently developed a web-based application conceptualized, designed and back-end entirely done by me. The concept is different from other Blogs/Q&amp;amp;A sites. Here only links can be shared with a short description.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;URL&lt;/strong&gt; — &lt;a href="https://sharetechlinks.com"&gt;https://sharetechlinks.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Following technology used&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ASP.NET Core MVC&lt;/li&gt;
&lt;li&gt;MySQL - Backend&lt;/li&gt;
&lt;li&gt;Material Design&lt;/li&gt;
&lt;li&gt;Hosted in Linux server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tagging Support&lt;/li&gt;
&lt;li&gt;Posts categorization under appropriate topics&lt;/li&gt;
&lt;li&gt;Dynamic - Each page runs using back end no static content&lt;/li&gt;
&lt;li&gt;Any one can share - Will be visible to the public after the moderator approved.&lt;/li&gt;
&lt;li&gt;Gamification - Credit to Contributors for each post&lt;/li&gt;
&lt;li&gt;Google Login&lt;/li&gt;
&lt;li&gt;SEO optimized&lt;/li&gt;
&lt;li&gt;Optimized for speed&lt;/li&gt;
&lt;li&gt;Progressive Web App&lt;/li&gt;
&lt;li&gt;Mobile friendly&lt;/li&gt;
&lt;li&gt;Bookmark feature&lt;/li&gt;
&lt;li&gt;Like/Unlike the post&lt;/li&gt;
&lt;li&gt;User Profiles&lt;/li&gt;
&lt;li&gt;Filters to sort by  - recent, popularity, most viewed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Home Page&lt;/strong&gt;&lt;br&gt;
In this site, tech resources are well categorized into Topics and Tags spanning several software technologies.&lt;/p&gt;

&lt;p&gt;Topics across various technologies are available&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;General&lt;/li&gt;
&lt;li&gt;GitHub — Projects links&lt;/li&gt;
&lt;li&gt;Software and Tools&lt;/li&gt;
&lt;li&gt;ASP.NET Core&lt;/li&gt;
&lt;li&gt;Angular&lt;/li&gt;
&lt;li&gt;Android&lt;/li&gt;
&lt;li&gt;Javascript&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;Xamarin&lt;/li&gt;
&lt;li&gt;Blazor&lt;/li&gt;
&lt;li&gt;Web Development&lt;/li&gt;
&lt;li&gt;UI/UX Design
and more to come&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ynW4wiB0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/wta1x8xb1d6yk5u7px90.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ynW4wiB0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/wta1x8xb1d6yk5u7px90.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tags&lt;/strong&gt;&lt;br&gt;
Each post contains tag support for quick access.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pjiHQJLp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/w8f5vso9e22s9ywvz8wp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pjiHQJLp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/w8f5vso9e22s9ywvz8wp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bookmark, Like, View Count&lt;/strong&gt;&lt;br&gt;
You have to sign to bookmark / like a post&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JCmk2UIK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/sepu6lie3qow6n5gqviz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JCmk2UIK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/sepu6lie3qow6n5gqviz.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filters&lt;/strong&gt;&lt;br&gt;
Several filters provided for quick access&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contributors&lt;/strong&gt;&lt;br&gt;
Top contributors are listed. you can also become a contributor by sharing links. You earn 5 points for each approved post.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6ug_OqGW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/62mluj4f5cfj4wsunfwi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6ug_OqGW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/62mluj4f5cfj4wsunfwi.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create Post&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anyone can submit a post, For submitting a post you need to log in using your Google account.&lt;/li&gt;
&lt;li&gt;You can share a link to Blog Post, Articles related to the category specified.&lt;/li&gt;
&lt;li&gt;Post created will be sent to Admin for approval. You will get 5 Points for each approved posts&lt;/li&gt;
&lt;li&gt;If you don't find the appropriate category you can include in Notes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Upcoming Enhancements&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Universal Search by content&lt;/li&gt;
&lt;li&gt;Email Subscription&lt;/li&gt;
&lt;li&gt;App Notifications&lt;/li&gt;
&lt;li&gt;Follow User / Category&lt;/li&gt;
&lt;li&gt;Auto fetch of meta tags from the link for quick posting.&lt;/li&gt;
&lt;li&gt;Android app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Share Tech Links provides a good platform to share valuable technical resources with the community.&lt;br&gt;
Your contributions and feedback are welcome.&lt;/p&gt;

&lt;p&gt;If any feedback please drop an email at — &lt;a href="mailto:sharetechlinks@gmail.com"&gt;sharetechlinks@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>angular</category>
      <category>javascript</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Top 10 Static Code Quality Analysers for ASP.NET Core</title>
      <dc:creator>Bharat Dwarkani</dc:creator>
      <pubDate>Thu, 08 Aug 2019 18:00:56 +0000</pubDate>
      <link>https://dev.to/bharatdwarkani/top-10-code-quality-static-analysers-for-asp-net-core-mp8</link>
      <guid>https://dev.to/bharatdwarkani/top-10-code-quality-static-analysers-for-asp-net-core-mp8</guid>
      <description>&lt;p&gt;&lt;strong&gt;FXCopAnalyzers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Created by Microsoft, a set of analyzers, called Microsoft.CodeAnalysis.FxCopAnalyzers, that contains the most important "FxCop" rules from static code analysis, converted to Roslyn analyzers. These analyzers check your code for security, performance, and design issues, among others.&lt;/p&gt;

&lt;p&gt;You can install these FxCop analyzers either as a NuGet package or as a VSIX extension to Visual Studio. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nuget.org/packages/Microsoft.CodeAnalysis.FxCopAnalyzers"&gt;https://www.nuget.org/packages/Microsoft.CodeAnalysis.FxCopAnalyzers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;StyleCopAnalyzers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An implementation of StyleCop rules using the .NET Compiler Platform. It helps in enforcing standard style for code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nuget.org/packages/StyleCop.Analyzers/"&gt;https://www.nuget.org/packages/StyleCop.Analyzers/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security Code Scan&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Detects various security vulnerability patterns: SQL Injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), XML eXternal Entity Injection (XXE), etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://security-code-scan.github.io/"&gt;https://security-code-scan.github.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web API analyzers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ASP.NET Core 2.2 and later includes the Microsoft.AspNetCore.Mvc.Api.Analyzers NuGet package containing analyzers for web APIs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nuget.org/packages/Microsoft.AspNetCore.Mvc.Api.Analyzers"&gt;https://www.nuget.org/packages/Microsoft.AspNetCore.Mvc.Api.Analyzers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SonarAnalyzer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Analyzers which spot bugs and code smells in your code. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.sonarqube.org/"&gt;https://www.sonarqube.org/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.nuget.org/packages/SonarAnalyzer.CSharp"&gt;https://www.nuget.org/packages/SonarAnalyzer.CSharp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lindhart.Analyser.MissingAwaitWarning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When using dependency injection and async-await pattern it is possible to end up with an interface with a method that returns a Task. If this interface method is used in a synchronous method there is a likelihood that it will erroneously be run like a fire and forget method. In this situation, this analyzer generates a warning.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nuget.org/packages/Lindhart.Analyser.MissingAwaitWarning"&gt;https://www.nuget.org/packages/Lindhart.Analyser.MissingAwaitWarning&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NSubstitute.Analyzers.CSharp&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Provides diagnostic analyzers to warn about incorrect usage of NSubstitute in C#.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nuget.org/packages/NSubstitute.Analyzers.CSharp"&gt;https://www.nuget.org/packages/NSubstitute.Analyzers.CSharp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;xUnit.net [Code Analyzers]&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Code Analyzers for projects using xUnit.net that help finds and fix frequent issues when writing tests.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nuget.org/packages/xunit.analyzers"&gt;https://www.nuget.org/packages/xunit.analyzers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Microsoft.CodeQuality.Analyzers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CodeQuality Analyzers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nuget.org/packages/Microsoft.CodeQuality.Analyzers"&gt;https://www.nuget.org/packages/Microsoft.CodeQuality.Analyzers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Microsoft.CodeAnalysis.VersionCheckAnalyzer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Microsoft.CodeAnalysis Version Check Analyzer&lt;br&gt;
&lt;a href="https://www.nuget.org/packages/Microsoft.CodeAnalysis.VersionCheckAnalyzer"&gt;https://www.nuget.org/packages/Microsoft.CodeAnalysis.VersionCheckAnalyzer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Few more analyzers - &lt;a href="https://github.com/dotnet/roslyn-analyzers"&gt;https://github.com/dotnet/roslyn-analyzers&lt;/a&gt;&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>aspdotnetcore</category>
      <category>analyzers</category>
    </item>
    <item>
      <title>Top 3 Open Source ASP.NET Core based e-commerce web applications</title>
      <dc:creator>Bharat Dwarkani</dc:creator>
      <pubDate>Sat, 03 Aug 2019 18:19:56 +0000</pubDate>
      <link>https://dev.to/bharatdwarkani/top-3-open-source-asp-net-core-based-e-commerce-web-applications-45f0</link>
      <guid>https://dev.to/bharatdwarkani/top-3-open-source-asp-net-core-based-e-commerce-web-applications-45f0</guid>
      <description>&lt;p&gt;Top 3 Open Source ASP.NET Core based e-commerce web applications&lt;br&gt;
Listed below are top 3 open sources, cross-platform ASP.NET Core based e-commerce web applications&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;nopCommerce&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;nopCommerce is the best open-source e-commerce shopping cart. nopCommerce is available for free. Today it’s the best and most popular ASP.NET e-commerce software. It has been downloaded more than 1.8 million times!&lt;br&gt;
nopCommerce is a fully customizable shopping cart. It’s stable and highly usable. nopCommerce is an open source e-commerce solution that is ASP.NET Core based with an MS SQL 2008 (or higher) backend database. There are several plugins also available.&lt;/p&gt;

&lt;p&gt;Site — &lt;a href="https://www.nopcommerce.com/"&gt;https://www.nopcommerce.com/&lt;/a&gt;&lt;br&gt;
GitHub Link — &lt;a href="https://github.com/nopSolutions/nopCommerce"&gt;https://github.com/nopSolutions/nopCommerce&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SimplCommerce&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A simple, cross-platform, scalable, modularized e-commerce system built on .NET Core. This application is based on Micro Service Architecture.&lt;/p&gt;

&lt;p&gt;Site — &lt;a href="http://www.simplcommerce.com/"&gt;http://www.simplcommerce.com/&lt;/a&gt;&lt;br&gt;
GitHub Link — &lt;a href="https://github.com/simplcommerce/SimplCommerce"&gt;https://github.com/simplcommerce/SimplCommerce&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;grandnode (Powered By nopCommerce)&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;It’s an open-source, free, cross-platform e-commerce software based on ASP.NET Core 2.2 and MongoDB — NoSQL database. You can run it on Linux, Windows, and macOS easily. GrandNode also supports Docker, so you are able to install it just in seconds with Docker.&lt;br&gt;
It can be used for any kind of online store. GrandNode is a perfect choice for people who want to sell simple products. It’s a solution dedicated to the most demanding users. You can also create auctions, booking/reservation products or product kits. GrandNode became a mature solution especially for developers who want to develop a modern, functional and high-performance e-commerce system.&lt;/p&gt;

&lt;p&gt;Site — &lt;a href="https://www.grandnode.com/"&gt;https://www.grandnode.com/&lt;/a&gt;&lt;br&gt;
GitHub Link — &lt;a href="https://github.com/grandnode/grandnode"&gt;https://github.com/grandnode/grandnode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This open-source e-commerce web applications are great to get started. You can also check out their source codes for a good reference of real-time scalable applications.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>ecommerce</category>
      <category>csharp</category>
    </item>
    <item>
      <title>ASP.NET Core starter templates for SasS MultiTenant application infrastructure</title>
      <dc:creator>Bharat Dwarkani</dc:creator>
      <pubDate>Sat, 03 Aug 2019 18:16:34 +0000</pubDate>
      <link>https://dev.to/bharatdwarkani/asp-net-core-starter-templates-for-sass-multitenant-application-infrastructure-1be8</link>
      <guid>https://dev.to/bharatdwarkani/asp-net-core-starter-templates-for-sass-multitenant-application-infrastructure-1be8</guid>
      <description>&lt;p&gt;Some of the top Open Source templates for setting a strong infrastructure base for your SasS application. This framework provides the base for getting started quickly doing all the infrastructure part needed to handle multitenancy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ASP.NET Boilerplate — Web Application Framework&lt;/strong&gt;&lt;br&gt;
ASP.NET Boilerplate is a general purpose application framework specially designed for new modern web applications. It uses already familiar tools and implements best practices around them to provide you a SOLID development experience.&lt;br&gt;
ASP.NET Boilerplate works with the latest ASP.NET Core &amp;amp; EF Core but also supports ASP.NET MVC 5.x &amp;amp; EF 6.x as well.&lt;br&gt;
&lt;a href="https://github.com/aspnetboilerplate/aspnetboilerplate"&gt;https://github.com/aspnetboilerplate/aspnetboilerplate&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aspnetboilerplate.com/"&gt;https://aspnetboilerplate.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aspnetboilerplate.com/Pages/Documents/Multi-Tenancy"&gt;https://aspnetboilerplate.com/Pages/Documents/Multi-Tenancy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;abp — Preview&lt;/strong&gt;&lt;br&gt;
It is also an open source web application framework for asp.net core. It is is an entire rewrite of ABP Boilerplate mentioned above&lt;br&gt;
&lt;a href="https://abp.io/"&gt;https://abp.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SasS kit&lt;/strong&gt;&lt;br&gt;
SaasKit is a .NET toolkit for building SaaS (Software As A Service) applications.&lt;br&gt;
The goal of the project is to help developers build SaaS products without getting in the way. It aims to be platform agnostic and as simple to use as possible.&lt;br&gt;
&lt;a href="https://github.com/saaskit/saaskit"&gt;https://github.com/saaskit/saaskit&lt;/a&gt;&lt;br&gt;
&lt;a href="https://benfoster.io/blog/tagged/saaskit"&gt;https://benfoster.io/blog/tagged/saaskit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Finbuckle.MultiTenant&lt;/strong&gt;&lt;br&gt;
Finbuckle.MultiTenant is a multitenancy library for ASP.NET Core 2.1+. It provides functionality for tenant resolution, per-tenant app configuration, and per-tenant data isolation&lt;br&gt;
&lt;a href="https://www.finbuckle.com/MultiTenant/Docs"&gt;https://www.finbuckle.com/MultiTenant/Docs&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Finbuckle/Finbuckle.MultiTenant"&gt;https://github.com/Finbuckle/Finbuckle.MultiTenant&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;cloudscribe&lt;/strong&gt;&lt;br&gt;
ASP.NET Core multi-tenant web application foundation with management for sites, users, roles, claims and more&lt;br&gt;
&lt;a href="https://github.com/cloudscribe/cloudscribe"&gt;https://github.com/cloudscribe/cloudscribe&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.cloudscribe.com/introduction"&gt;https://www.cloudscribe.com/introduction&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OrchardCore&lt;/strong&gt;&lt;br&gt;
Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that application framework.&lt;br&gt;
&lt;a href="https://github.com/OrchardCMS/OrchardCore"&gt;https://github.com/OrchardCMS/OrchardCore&lt;/a&gt;&lt;br&gt;
&lt;a href="https://orchardcore.readthedocs.io/en/dev/"&gt;https://orchardcore.readthedocs.io/en/dev/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>saas</category>
      <category>multitenant</category>
    </item>
    <item>
      <title>Copying a file from Windows to Linux through SSH</title>
      <dc:creator>Bharat Dwarkani</dc:creator>
      <pubDate>Sat, 03 Aug 2019 18:13:47 +0000</pubDate>
      <link>https://dev.to/bharatdwarkani/copying-a-file-from-windows-to-linux-through-ssh-5e8e</link>
      <guid>https://dev.to/bharatdwarkani/copying-a-file-from-windows-to-linux-through-ssh-5e8e</guid>
      <description>&lt;p&gt;If you are working on Windows and need to transfer a file from window to Ubuntu server follow these simple steps&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, Install and configure SSH on your Ubuntu server&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Execute the following commands :&lt;br&gt;
$ sudo apt update&lt;br&gt;
$ sudo apt install openssh-server&lt;/p&gt;

&lt;p&gt;Enable port 22 for SSH in firewall&lt;br&gt;
$ sudo ufw allow 22&lt;/p&gt;

&lt;p&gt;Check status whether SSH is running in a linux machine&lt;br&gt;
$ sudo systemctl status ssh&lt;/p&gt;

&lt;p&gt;You can start or stop SSH using the following commands&lt;br&gt;
$ sudo systemctl status ssh&lt;br&gt;
$ sudo systemctl status ssh&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copy file from Windows to Ubuntu server&lt;/strong&gt;&lt;br&gt;
Execute this command&lt;/p&gt;

&lt;p&gt;scp Filepathinwindows username@ubuntuserverip:linuxserverpath&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
scp D:/TxtFile.txt root@ipaddress:/home/usr/&lt;/p&gt;

&lt;p&gt;On transferring, cmd prompt will ask for password enter your ubuntu password corresponding to user&lt;/p&gt;

</description>
      <category>ubuntu</category>
      <category>windows</category>
      <category>filetransfer</category>
    </item>
  </channel>
</rss>
