<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>.NET &#8211; Best DevOps</title>
	<atom:link href="https://www.bestdevops.com/tag/net/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bestdevops.com</link>
	<description>Lets Learn, Do it &#38; Share! Thats a Best DevOps!!!</description>
	<lastBuildDate>Wed, 14 Oct 2026 13:15:19 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>GitHub to Replace &#8220;master&#8221; with a Neutral Term to Remove Slavery References</title>
		<link>https://www.bestdevops.com/github-to-replace-master-with-alternative-term-to-avoid-slavery-references/</link>
					<comments>https://www.bestdevops.com/github-to-replace-master-with-alternative-term-to-avoid-slavery-references/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Mon, 15 Jun 2020 06:36:43 +0000</pubDate>
				<category><![CDATA[GitHub]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[programming language]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Software-Market]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=12926</guid>

					<description><![CDATA[GitHub announced plans to replace the default branch name "master" with a neutral alternative such as "main," joining a broader industry movement to remove racially charged language from software.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>This article is based on reporting originally published by ZDNet (zdnet.com) in June 2020.</em></p>



<h2 class="wp-block-heading">GitHub Commits to Replacing &#8220;master&#8221; with a Neutral Default Branch Name</h2>



<p class="wp-block-paragraph">GitHub announced in June 2020 that it was actively working to replace the term &#8220;master&#8221; — historically used as the name of a repository&#8217;s default branch — with a neutral alternative such as &#8220;main.&#8221; The announcement came from GitHub CEO Nat Friedman, who confirmed the effort publicly on Twitter after being prompted by Google Chrome developer Una Kravets.</p>



<p class="wp-block-paragraph">The move placed GitHub among a growing number of technology companies and open source projects revisiting terminology that critics argue carries racially charged connotations — a discussion that accelerated significantly during the Black Lives Matter protests of mid-2020.</p>



<h2 class="wp-block-heading">Why This Terminology Is Contested</h2>



<p class="wp-block-paragraph">The concern centers on terms such as &#8220;master/slave&#8221; and &#8220;blacklist/whitelist&#8221; that are widely used in computing to describe technical relationships, but which some researchers and practitioners argue reflect and reinforce racial stereotypes. A 2018 academic paper cited in ZDNet&#8217;s reporting stated: <em>&#8220;Such terminology not only reflects racist culture, but also serves to reinforce, legitimize, and perpetuate it.&#8221;</em></p>



<p class="wp-block-paragraph">Proponents of change argue that replacing these terms carries a low technical cost while sending a meaningful signal of inclusion to developers from underrepresented communities. Common proposed replacements include:</p>



<ul class="wp-block-list">
<li><strong>master</strong> → <code>main</code>, <code>default</code>, <code>primary</code>, or <code>root</code></li>
<li><strong>slave</strong> → <code>secondary</code>, <code>replica</code>, or <code>worker</code></li>
<li><strong>blacklist</strong> → <code>deny list</code> or <code>exclude list</code></li>
<li><strong>whitelist</strong> → <code>allow list</code></li>
</ul>



<h2 class="wp-block-heading">How Git and GitHub Use &#8220;master&#8221;</h2>



<p class="wp-block-paragraph">In Git, the version control system that underpins most modern software development workflows, a repository is initialized with a default branch historically named <code>master</code>. Developers create feature branches from this default branch, commit their changes, and merge them back in via pull requests. GitHub, which hosts tens of millions of Git repositories, surfaces the <code>master</code> branch prominently throughout its interface.</p>



<p class="wp-block-paragraph">Because the default branch name is set at the Git level and inherited by GitHub, a change of this magnitude requires coordination across tooling, documentation, CI/CD pipelines, and existing repository histories — making it a non-trivial infrastructure decision for both the platform and its users.</p>



<h2 class="wp-block-heading">A Movement With Roots Before 2020</h2>



<p class="wp-block-paragraph">Although the 2020 protests gave the effort fresh momentum, the push to remove racially charged language from software predates that moment by several years:</p>



<ul class="wp-block-list">
<li><strong>2014:</strong> The Drupal project replaced &#8220;master/slave&#8221; with &#8220;primary/replica&#8221; in its database configuration terminology.</li>
<li><strong>Subsequently:</strong> The Python programming language, the Chromium browser project, Microsoft&#8217;s Roslyn .NET compiler, and the PostgreSQL and Redis database systems made similar changes.</li>
</ul>



<p class="wp-block-paragraph">Despite those precedents, adoption remained uneven across the industry until 2020, when several high-profile projects committed to change in quick succession.</p>



<h2 class="wp-block-heading">Other Projects Moving in the Same Direction</h2>



<p class="wp-block-paragraph">Around the same time as GitHub&#8217;s announcement, a number of other prominent projects and organizations announced similar intentions:</p>



<ul class="wp-block-list">
<li><strong>Android</strong> — committed to replacing blacklist/whitelist with neutral alternatives.</li>
<li><strong>Go programming language</strong> — indicated plans to update its terminology.</li>
<li><strong>PHPUnit</strong> and <strong>Curl</strong> — stated intentions to adopt inclusive language.</li>
<li><strong>OpenZFS</strong> — replaced master/slave terminology used to describe storage relationships.</li>
<li><strong>OpenSSL</strong>, <strong>Ansible</strong>, <strong>Microsoft PowerShell</strong>, and <strong>P5.js</strong> — were reported to be evaluating or initiating changes to their default branch names.</li>
<li><strong>LinkedIn</strong> — engineer Gabriel Csapo publicly stated he was filing requests to update Microsoft&#8217;s internal libraries.</li>
</ul>



<p class="wp-block-paragraph">The Git project itself also opened discussion threads on its mailing list and GitHub Issues tracker about officially changing the default branch name, though those discussions attracted significant debate and pushback at the time.</p>



<h2 class="wp-block-heading">The Counter-Arguments</h2>



<p class="wp-block-paragraph">Not everyone in the technical community supports the changes. Common objections include:</p>



<ul class="wp-block-list">
<li>The terms &#8220;master&#8221; and &#8220;slave&#8221; are now used in a purely technical sense to describe hierarchical system relationships, divorced from their historical origins.</li>
<li>Renaming default branches introduces friction for existing repositories, tooling, scripts, and documentation.</li>
<li>The word &#8220;blacklist,&#8221; some argue, derives from the historical practice of keeping &#8220;black books&#8221; listing problematic individuals, rather than from any racial reference — though this etymology is itself disputed by linguists.</li>
</ul>



<p class="wp-block-paragraph">Supporters counter that the technical cost of migration is manageable, that etymology does not negate real-world impact on affected communities, and that the industry regularly updates its vocabulary as understanding evolves.</p>



<h2 class="wp-block-heading">What Happened Next</h2>



<p class="wp-block-paragraph">GitHub subsequently rolled out tooling to allow repository owners to rename their default branch and, eventually, set <code>main</code> as the default for all newly created repositories. Git itself, as of version 2.28 (released July 2020), introduced the <code>init.defaultBranch</code> configuration option, enabling users and organizations to set their preferred default branch name globally.</p>



<p class="wp-block-paragraph">GitHub&#8217;s participation — given the scale of its platform — was widely seen as a turning point that both legitimized and accelerated adoption of inclusive naming conventions across the open source ecosystem.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/github-to-replace-master-with-alternative-term-to-avoid-slavery-references/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kubernetes Container Management Is Not Application Management</title>
		<link>https://www.bestdevops.com/kubernetes-container-management-is-not-application-management/</link>
					<comments>https://www.bestdevops.com/kubernetes-container-management-is-not-application-management/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Fri, 14 Feb 2020 06:58:10 +0000</pubDate>
				<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[microservice]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Red Hat]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=10588</guid>

					<description><![CDATA[Source:-containerjournal.com Application performance management is different than container management in myriad ways. Don’t confuse the two. It’s scary how quickly [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Source:-containerjournal.com</p>
<p>Application performance management is different than container management in myriad ways. Don’t confuse the two.</p>
<p>It’s scary how quickly widespread adoption was achieved for container technology in the world’s mission-critical business applications. Consider that it took about 10 years after the introduction of Java for the programming language to become a near-ubiquitous standard (followed shortly by C#/.Net). In stark contrast, enterprise-ready Docker just turned 5 years old, and it’s been pretty much everywhere for a while.</p>
<p>Why so relatively quick? Are containers that much easier to deploy, control and manage than traditional Java app servers were? Uh, no! In fact, containers create a whole mess of control and management issues (especially performance management) that even the well-established application performance management (APM) companies struggled to create any visibility from inside containerized applications.</p>
<p>But when DevOps teams considered how useful and powerful containers were for deploying and operating microservice applications, collectively they figured it was worth the pain. To achieve the efficiencies of deployment, they were willing to put up with the management headaches associated with operating them, from over-committing infrastructure to application hangs and a lack of visibility, even with (or especially with) APM solutions.</p>
<p><strong>Enter Kubernetes</strong><br />
And then came orchestration; more specifically, along came Kubernetes. While not the first or only system designed to manage containerized systems, Kubernetes simply rolled over the alternatives. How quickly did that occur? Quicker than you can spell Kubernetes—and I mean spelling it “K – 8 – S.” In what seemed to be one announcement on top of another, every cloud service provider announced its own enterprise version of Kubernetes. These enterprise distributions were announced by IBM, Microsoft, Red Hat, Amazon, Google and others; VMware announced it even before its cloud was available. Other orchestration tools simply didn’t know what hit them, and really didn’t stand a chance.</p>
<p><strong>Kubernetes Becomes King of the Hill</strong><br />
Having a standard, especially when it comes to managing infrastructure (and especially application infrastructure), makes everybody happy. Thus, Kubernetes continued to win over the community—or to be more specific, communities—of developers and operations. K8S provided some semblance of control in the wild, wild west of containers and microservices. As a bonus, the multitude of distribution choices satisfied another requirement of modern application delivery teams—the desire to avoid vendor lock-in—pretty much for any part of their environment.</p>
<p>But even with the enterprise versions of K8s (which now includes newer distributions Pivotal PKS and Rancher in its ranks), container “management” is missing two major aspects of delivering applications that meet service requirements. The first gap is performance management; specifically, performance monitoring of the services running in Kubernetes. The second is a lack of understanding how a specific set of services, hosts, deployments and pods contribute toward the overall composition of a specific application. There’s a little chicken-and-egg problem there, but the salient point is that the orchestration system manages resources across containers—not applications and not application performance.</p>
<p>Orchestration certainly makes containers more malleable and enterprise-ready, but without visibility into application performance, service owners can’t prove (or even know) how well the application is actually servicing customer needs. To answer that question, the operations, DevOps, and/or development teams must have a way to tie application performance directly to Kubernetes (and Kubernetes orchestrated applications).</p>
<p>Ignoring Application Performance is Asking for Trouble<br />
One could choose to simply ignore questions of how the application is performing: Is the app meeting its promised service levels (SLAs)? Does it scale appropriately? Is the response time fast enough? After all, if your applications are running properly, wouldn’t you be able to tell through the overall infrastructure usage and container status? (Hint: That’s a trick question—the answer is, “Not on your life!”)</p>
<p>Think of the last time you were in a meeting with the CIO (or maybe you’re the CIO meeting with the application owner). When she asked how the apps were doing, I’m guessing the answer, “Well, our resource usage is normal,” somehow would not be a satisfactory answer.</p>
<p>The onus for application performance management has shifted over the years. When the first APM tools appeared, it was simply a matter of survival to keep the apps running, getting visibility into production code running on Java application servers. Only the largest of organizations could afford (or even consider) to purchase APM solutions.</p>
<p>Today, even the tiniest startups rely on their business applications to conduct their business. Application performance and availability, troubleshooting and optimization are not nice-to-have luxuries of the Fortune 50—every ops team and development team has the need to see the performance of services and applications.</p>
<p><strong>A Lesson to Learn From Capacity Management (and Capacity Planning)</strong><br />
One of the interesting anecdotes I like to use when discussing the evolution of IT operations is to talk about the difference between the “old school” practice of capacity planning and the ITIL/ITSM practice of capacity management.</p>
<p>Capacity planning was the exercise of figuring out the configuration, number and size of servers (physical servers, no less) needed to execute the application being delivered to operations. The answer was static—CPU/core counts, I/O bandwidth, storage size, memory size—and a count. The planner was (mayyyyybe) thinking about the concept of providing resources for the application to run properly, but all they had to go on was an estimate of compute resources needed by the programmer.</p>
<p>Then along came the concept of capacity management. First of all, capacity management was not an exercise with a hard beginning and end. Capacity management was fluid, always in play. Why? Sure, the capacity manager determines the exact same resource configuration—CPUs, memory, hard drive, network. The difference is the phrase that follows the answer, “In order to meet our scalability targets (1,000 concurrent users) and performance targets (all transactions less than half a second) …”</p>
<p>Capacity management is an always-active, always-questioning and always-reporting discipline. It requires adjustments to “the answer” depending on what’s happening with the applications.</p>
<p><strong>Kubernetes and Application Performance Management</strong><br />
To ensure that orchestrated microservice applications from single mobile apps to complex financial suites are running at optimal performance levels, it’s critical to include application performance to the Kubernetes mix. Analogous to capacity management, K8s with APM provide resource allocation and management to meet your application scalability and performance targets. You can’t meet them if you’re not measuring them.</p>
<p>The final piece of the puzzle is picking an APM tool that can handle the three most difficult aspects of orchestrated container applications:</p>
<p>Visibility into containers, their stack and the performance characteristics of the services running on them (throughput, error rate and latency).<br />
Observability in Kubernetes, understanding how the orchestration system is related to the services running on it.<br />
Dealing with the complexity and constant change in microservice environments, being able to filter out the noise and show stakeholders everything they need to see about components and services they’re responsible for.<br />
Conclusion<br />
If you’re going to run microservices, you’re probably running them in containers. And if your application is critical to your business, you should be orchestrating your containers. Kubernetes is a good choice since enterprise versions are included with almost any cloud provider. Always keep an eye on your application’s performance with a modern application monitoring solution that supports the observability of your Kubernetes-orchestrated environments.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/kubernetes-container-management-is-not-application-management/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DevOps in 2019: A Deeper Commitment to GitHub, Java, and .NET</title>
		<link>https://www.bestdevops.com/devops-in-2019-a-deeper-commitment-to-github-java-and-net/</link>
					<comments>https://www.bestdevops.com/devops-in-2019-a-deeper-commitment-to-github-java-and-net/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Tue, 24 Dec 2019 05:55:58 +0000</pubDate>
				<category><![CDATA[IT Training]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[DevOps skills]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[IT Framework]]></category>
		<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=9734</guid>

					<description><![CDATA[2019 was a landmark year for DevOps: Jakarta EE 8 moved enterprise Java to open governance, .NET Core 3.0 gained C# 8 and self-contained apps, and GitHub surpassed 40 million developers under Microsoft ownership.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>This article is based on reporting originally published at ITPro Today (tprotoday.com) in December 2019.</em></p>



<h2 class="wp-block-heading">DevOps in 2019: Stability, Open Source, and Platform Growth</h2>



<p class="wp-block-paragraph">Change is constant in software development, yet some tools and platforms demonstrate remarkable staying power. Looking back at 2019, two facts stand out: Java and .NET — both dominant a decade earlier — remained the backbone of enterprise development, and GitHub continued to grow as the central hub of the DevOps ecosystem, even after being acquired by Microsoft.</p>



<p class="wp-block-paragraph">Each of these three pillars went through significant evolution in 2019 — evolution that shaped how teams build, share, and ship software. Here is a breakdown of the developments that defined DevOps that year.</p>



<h2 class="wp-block-heading">Java Redefined Itself with Jakarta EE 8</h2>



<p class="wp-block-paragraph">2019 was arguably the most consequential year for enterprise Java in two decades. The release of <strong>Jakarta EE 8</strong> in September 2019 marked the first time enterprise Java was governed entirely under an open source model, free from single-vendor control.</p>



<p class="wp-block-paragraph">The transition had been in motion since September 2017, when Oracle announced it would hand Java EE over to the <strong>Eclipse Foundation</strong>. The Foundation renamed the project Jakarta EE and spent two years establishing a new governance process, intellectual property regime, and release pipeline before shipping the first official release.</p>



<p class="wp-block-paragraph">Mike Milinkovich, executive director of the Eclipse Foundation, described the significance to ITPro Today:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>&#8220;With Jakarta EE, we are able to deliver a set of specifications that are free for implementation and are available under an entirely new licensing regime that&#8217;s far more open and cost-effective than what was available under Oracle and the JCP. The thing to keep in mind is that Java, as the language and as a platform, is still one of the largest and most widely used programming languages in enterprise computing on the planet.&#8221;</p><cite>— Mike Milinkovich, Executive Director, Eclipse Foundation</cite></blockquote>



<p class="wp-block-paragraph">For DevOps teams running Java-based workloads, the shift to open governance matters in practical terms: specifications are now free to implement, vendor lock-in risk is reduced, and the community — rather than a single corporation — drives the roadmap.</p>



<h2 class="wp-block-heading">.NET Core 3.0: Open Source Gets Desktop and Self-Contained Apps</h2>



<p class="wp-block-paragraph">Microsoft&#8217;s .NET has been Java&#8217;s historical counterpart in enterprise development. In September 2019, <strong>.NET Core 3.0</strong> shipped with several changes relevant to DevOps engineers and application developers alike.</p>



<h3 class="wp-block-heading">Key Features in .NET Core 3.0</h3>



<ul class="wp-block-list">
<li><strong>C# 8 support:</strong> .NET Core 3.0 added support for C# version 8, bringing nullable reference types, async streams, and other language improvements.</li>
<li><strong>Windows desktop frameworks:</strong> Windows Presentation Foundation (WPF) and Windows Forms gained support, allowing legacy Windows desktop applications to be built and run on .NET Core.</li>
<li><strong>Self-contained executables:</strong> Applications can now ship as a single executable that does not require a separate .NET runtime installation on the target machine — a meaningful step for simplified deployment and containerisation.</li>
</ul>



<p class="wp-block-paragraph">Microsoft reported at the time that more than one million developers were actively using .NET Core. Much like Jakarta EE, .NET Core is fully open source, reinforcing an industry-wide trend of major runtimes and frameworks moving away from proprietary licensing.</p>



<h2 class="wp-block-heading">GitHub&#8217;s Dominance Continued Under Microsoft</h2>



<p class="wp-block-paragraph">2019 was GitHub&#8217;s first full calendar year operating as a Microsoft business unit, led by CEO <strong>Nat Friedman</strong>. Many in the developer community had expressed concern at the time of the 2018 acquisition that Microsoft&#8217;s ownership might drive users toward alternatives. Those concerns did not materialise in measurable numbers.</p>



<p class="wp-block-paragraph">At the <strong>GitHub Universe</strong> conference in November 2019, Friedman reported that the platform had surpassed <strong>40 million developers</strong>, with more than 10 million joining in the previous year alone.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>&#8220;More developers are choosing GitHub every day than ever before. Just in the last year, over 10 million new developers joined GitHub and started contributing to projects on GitHub.&#8221;</p><cite>— Nat Friedman, CEO, GitHub (GitHub Universe, November 2019)</cite></blockquote>



<h3 class="wp-block-heading">GitHub Actions and GitHub Packages</h3>



<p class="wp-block-paragraph">The most significant platform additions announced at GitHub Universe 2019 were <strong>GitHub Actions</strong> and <strong>GitHub Packages</strong>, both of which became generally available in November 2019.</p>



<ul class="wp-block-list">
<li><strong>GitHub Actions:</strong> A workflow automation system built directly into GitHub. Teams can define CI/CD pipelines, automate testing, releases, and other repository events using YAML-based workflow files stored alongside their code.</li>
<li><strong>GitHub Packages:</strong> A package registry integrated with GitHub that supports Docker images, npm, Maven, NuGet, and RubyGems packages. It works alongside GitHub Actions and existing CI systems to provide a unified build-and-publish workflow.</li>
</ul>



<p class="wp-block-paragraph">Together, these features positioned GitHub as more than a code hosting service — they made it a first-class component of modern DevOps pipelines, combining source control, CI/CD, and package distribution under one platform.</p>



<h2 class="wp-block-heading">What These Trends Meant for DevOps Teams</h2>



<p class="wp-block-paragraph">Looking at 2019 in aggregate, several clear themes emerge for DevOps practitioners:</p>



<ul class="wp-block-list">
<li><strong>Open source governance is now the expected norm</strong> for major runtimes. Both Jakarta EE and .NET Core moved control away from single vendors, giving enterprises more confidence in long-term platform stability.</li>
<li><strong>Platform consolidation around GitHub accelerated.</strong> The addition of Actions and Packages reduced the need for separate CI and package registry tools, simplifying toolchain decisions for smaller teams.</li>
<li><strong>Java and .NET are not legacy concerns.</strong> Both platforms received substantial investment in 2019 and continue to underpin a large share of enterprise workloads. DevOps tooling and pipelines built around these languages remained as relevant as ever.</li>
</ul>



<p class="wp-block-paragraph">For teams evaluating their DevOps strategy, the lessons of 2019 reinforce that choosing well-supported, community-governed platforms and consolidating toolchains around mature ecosystems reduces operational risk over time.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/devops-in-2019-a-deeper-commitment-to-github-java-and-net/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AWS Adds .NET Core Support to CodeStar and CodeBuild</title>
		<link>https://www.bestdevops.com/aws-cloud-adds-net-core-support-to-coding-tools/</link>
					<comments>https://www.bestdevops.com/aws-cloud-adds-net-core-support-to-coding-tools/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Thu, 13 Jul 2017 08:21:32 +0000</pubDate>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[.NET Core]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[AWS Code]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Coding Tools]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=2102</guid>

					<description><![CDATA[AWS CodeStar and AWS CodeBuild gained .NET Core support in July 2017, enabling developers to build, test, and deploy .NET Core applications to Amazon EC2 and AWS Lambda using a fully managed CI/CD pipeline.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>Originally reported by ADTmag (adtmag.com), July 2017.</em></p>



<h2 class="wp-block-heading">AWS Extends .NET Core Support to CodeStar and CodeBuild</h2>



<p class="wp-block-paragraph">In July 2017, Amazon Web Services announced that two of its core developer tools — <strong>AWS CodeStar</strong> and <strong>AWS CodeBuild</strong> — would add support for <strong>.NET Core</strong>. The move came in direct response to developer demand for first-class .NET Core tooling on the AWS platform.</p>



<p class="wp-block-paragraph">.NET Core is a lightweight, open-source, cross-platform runtime that enables developers to build web applications and services targeting Windows, Linux, and macOS. Its cross-platform nature made it a natural fit for AWS&#8217;s Linux-based infrastructure, and the addition of .NET Core templates brought parity with the JavaScript, Java, Python, Ruby, and PHP project types already supported.</p>



<h2 class="wp-block-heading">What Is AWS CodeStar?</h2>



<p class="wp-block-paragraph">Launched in April 2017, AWS CodeStar is a unified service designed to simplify setting up a complete software development toolchain on AWS. Rather than manually wiring together individual services, CodeStar provides a pre-configured project environment that includes:</p>



<ul class="wp-block-list">
<li>A <strong>project management dashboard</strong> for tracking team activity and project status</li>
<li>An <strong>automated continuous delivery (CD) pipeline</strong> built on AWS CodePipeline</li>
<li>A <strong>Git code repository</strong> powered by AWS CodeCommit</li>
<li>Automated <strong>build</strong> (AWS CodeBuild) and <strong>deployment</strong> (AWS CodeDeploy) stages</li>
<li>Out-of-the-box integration with <strong>Atlassian JIRA Software</strong> for issue tracking and project management</li>
</ul>



<p class="wp-block-paragraph">CodeStar is also designed to integrate with existing IDEs, reducing friction for developers who want to use their existing local tooling while deploying to the AWS cloud.</p>



<h2 class="wp-block-heading">What Is AWS CodeBuild?</h2>



<p class="wp-block-paragraph">AWS CodeBuild is a fully managed build service that compiles source code, runs tests, and produces deployment-ready software packages. Because it is fully managed, developers do not need to provision, configure, or scale their own build servers — AWS handles capacity automatically based on the workload.</p>



<p class="wp-block-paragraph">With the July 2017 update, CodeBuild gained the ability to build and deploy <strong>.NET Core applications targeting both Amazon EC2 and AWS Lambda</strong>, expanding its supported runtime ecosystem significantly.</p>



<h2 class="wp-block-heading">New .NET Core Project Templates in CodeStar</h2>



<p class="wp-block-paragraph">The CodeBuild .NET Core capability directly enabled the addition of new <strong>project templates in CodeStar</strong>. AWS engineer Tara Walker described the scope of the templates in an AWS blog post at the time:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>&#8220;Each template provisions the underlying AWS Code Services and configures an end-to-end continuous delivery pipeline for the targeted application using AWS CodeCommit, AWS CodeBuild, AWS CodePipeline, and AWS CodeDeploy.&#8221;</p><cite>— Tara Walker, AWS</cite></blockquote>



<p class="wp-block-paragraph">The new .NET Core templates specifically support:</p>



<ul class="wp-block-list">
<li>Deploying <strong>.NET Core applications to Amazon EC2 Linux instances</strong></li>
<li>Deploying <strong>.NET Core applications to AWS Lambda</strong></li>
<li>Sample .NET Core starter code included out of the box</li>
<li>A complete, pre-wired software development toolchain ready to use immediately</li>
</ul>



<p class="wp-block-paragraph">Walker also noted that the templates join the existing set targeting Amazon EC2, AWS Elastic Beanstalk, and AWS Lambda for JavaScript, Java, Python, Ruby, and PHP — making .NET Core a first-class citizen in the CodeStar ecosystem.</p>



<figure class="wp-block-image"><img decoding="async" src="https://adtmag.com/articles/2017/07/12/~/media/ECG/adtmag/Images/2017/07/aws_net_core_s.png" alt="Targeting the AWS Cloud with Visual Studio 2017" /><figcaption>Targeting the AWS Cloud with Visual Studio 2017 — Image credit: ADTmag</figcaption></figure>



<h2 class="wp-block-heading">Why This Mattered for .NET Developers</h2>



<p class="wp-block-paragraph">Prior to this update, .NET developers working on AWS either had to rely on Windows-centric tooling or manually configure build pipelines without native CodeStar templates. The addition of .NET Core support meant that teams could:</p>



<ul class="wp-block-list">
<li>Use <strong>Visual Studio 2017</strong> as their local IDE while targeting AWS cloud infrastructure</li>
<li>Run .NET Core workloads on <strong>Linux-based EC2 instances</strong>, reducing OS licensing costs compared to Windows Server</li>
<li>Deploy lightweight, cross-platform microservices to <strong>AWS Lambda</strong> using the same CI/CD pipeline workflow available to other language runtimes</li>
<li>Onboard new projects in minutes rather than manually configuring build infrastructure</li>
</ul>



<p class="wp-block-paragraph">This announcement reflected a broader industry trend: Microsoft&#8217;s embrace of open-source and cross-platform development with .NET Core, combined with cloud providers like AWS integrating that ecosystem into their managed tooling. For DevOps teams managing mixed-language environments on AWS, the update simplified governance by consolidating .NET workloads into the same CodeStar/CodeBuild/CodePipeline workflow used for other runtimes.</p>



<h2 class="wp-block-heading">Key Takeaways</h2>



<ul class="wp-block-list">
<li>AWS CodeStar and CodeBuild added .NET Core support in July 2017</li>
<li>New CodeStar project templates cover EC2 Linux and Lambda deployment targets</li>
<li>CodeBuild provides fully managed build infrastructure — no server provisioning required</li>
<li>CodeStar integrates CodeCommit, CodeBuild, CodePipeline, CodeDeploy, and JIRA in a single dashboard</li>
<li>The update brought .NET Core to parity with existing supported runtimes (JavaScript, Java, Python, Ruby, PHP)</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/aws-cloud-adds-net-core-support-to-coding-tools/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>10 Reasons to Use Docker with .NET</title>
		<link>https://www.bestdevops.com/10-reasons-to-use-docker-with-net/</link>
					<comments>https://www.bestdevops.com/10-reasons-to-use-docker-with-net/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Sat, 25 Feb 2017 06:11:37 +0000</pubDate>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[DevOps Tools]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker With .NET]]></category>
		<category><![CDATA[Software Development]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=779</guid>

					<description><![CDATA[Docker and .NET are a more natural pairing than many developers expect. Here are ten concrete reasons why containerising your .NET applications with Docker pays dividends in development, deployment, and operations.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">When most developers picture Docker, they picture Linux microservices. But Docker has become a first-class citizen in the .NET ecosystem, and Microsoft&#8217;s ongoing investment in container tooling makes this combination genuinely compelling. Whether you are running legacy .NET Framework workloads or modern .NET (formerly .NET Core) services, here are ten reasons to consider Docker as part of your workflow.</p>



<h2 class="wp-block-heading">1. Pre-Made, Reproducible Runtime Environments</h2>



<p class="wp-block-paragraph">Provisioning a traditional server means installing the OS, the .NET SDK or runtime, a web server, and configuring environment variables — every single time. With Docker, you encode all of that in a <code>Dockerfile</code> or <code>docker-compose.yml</code>. Every time the container starts, it is guaranteed to have exactly the software it needs.</p>



<p class="wp-block-paragraph">When a dependency needs upgrading, you update the container definition and redeploy. The change is atomic, auditable, and reversible — reducing server maintenance toil and making rollbacks straightforward.</p>



<h2 class="wp-block-heading">2. Version-Controlled Infrastructure</h2>



<p class="wp-block-paragraph">Because your <code>Dockerfile</code> and <code>docker-compose.yml</code> live alongside your application code in source control, your infrastructure is versioned with your code. When you check out an old commit to reproduce a bug, you also get the exact environment that was running at that time. Spin up the container, attach a debugger, and investigate — no guessing about what SDK version or configuration was live at the time.</p>



<h2 class="wp-block-heading">3. Runtime Consistency — Eliminating &#8220;Works on My Machine&#8221;</h2>



<p class="wp-block-paragraph">If a developer runs their application inside the same Docker container that will be used in production, then development, staging, and production are, by definition, the same environment. Differences in OS patch level, framework version, or environment variable configuration — the usual culprits behind environment-specific bugs — are eliminated because every environment is derived from the same image.</p>



<h2 class="wp-block-heading">4. Security Isolation Comparable to Virtual Machines</h2>



<p class="wp-block-paragraph">Containers share the host kernel but run in their own isolated user space. By default, one container cannot access the file system or network of another container, nor of the host machine, without explicit configuration. Docker uses Linux namespaces and cgroups (or the Windows equivalent) to enforce this boundary. The result is a security posture similar to running separate VMs, but with significantly less overhead.</p>



<p class="wp-block-paragraph">Container images typically use a minimal base OS layer, reducing the attack surface compared with a fully provisioned virtual machine.</p>



<h2 class="wp-block-heading">5. Lighter Than Virtual Machines</h2>



<p class="wp-block-paragraph">A virtual machine pre-allocates CPU and RAM at creation time, whether or not the workload needs those resources. A container uses only the host resources it actually consumes, and you can apply soft and hard limits using Docker&#8217;s <code>--memory</code> and <code>--cpus</code> flags (or equivalent Compose settings). This makes it practical to run many containers on a single host without one misbehaving container starving the others — for example, during a denial-of-service event or a memory leak.</p>



<h2 class="wp-block-heading">6. Native Cloud Provider Support</h2>



<p class="wp-block-paragraph">Both Microsoft Azure and Amazon Web Services offer managed container services that deploy Docker images directly. Azure supports single-container deployments via Azure App Service for Containers, and orchestrated workloads via Azure Kubernetes Service (AKS) and the now-retired Azure Container Service. AWS provides Amazon Elastic Container Service (ECS) and Amazon Elastic Kubernetes Service (EKS). This breadth of support means your containerised .NET application can be deployed to managed infrastructure with minimal additional configuration.</p>



<h2 class="wp-block-heading">7. Cleaner CI/CD Pipelines</h2>



<p class="wp-block-paragraph">Many CI/CD platforms — including Azure DevOps, GitHub Actions, GitLab CI, and Jenkins — can build, test, and push Docker images as first-class pipeline steps. When your unit and integration tests run inside the same container image that will be promoted to production, you eliminate a whole class of pipeline-specific environment discrepancies. A test failure on the build server is far more likely to be a genuine code problem, not an environmental quirk.</p>



<h2 class="wp-block-heading">8. Deep Visual Studio Integration for .NET</h2>



<p class="wp-block-paragraph">Microsoft has invested heavily in making Docker a first-class part of the Visual Studio developer experience. The Visual Studio Tools for Docker generate a base <code>Dockerfile</code> and Compose files for new projects. Pressing <strong>F5</strong> builds the image and attaches the Visual Studio debugger to the running container — meaning you are debugging inside the container, not against a locally installed runtime that may differ from production. This workflow is also integrated into Visual Studio Code via the Docker extension.</p>



<h2 class="wp-block-heading">9. Standardised Container Format and Portability</h2>



<p class="wp-block-paragraph">Docker popularised and, together with the Open Container Initiative (OCI), helped standardise the container image and runtime format. A Docker image built on a developer laptop can run on a cloud VM, a Kubernetes cluster, or an on-premises server without modification. This portability removes friction at every handoff point — from developer to tester, from tester to ops, from on-premises to cloud.</p>



<h2 class="wp-block-heading">10. Straightforward Horizontal Scalability</h2>



<p class="wp-block-paragraph">Scaling a containerised .NET application horizontally is largely a matter of configuration. Docker Compose lets you declare the desired replica count for a service. Docker Swarm or Kubernetes can enforce that replica count — automatically replacing containers that crash and distributing load across healthy instances.</p>



<p class="wp-block-paragraph">For .NET web applications running on Kestrel, Microsoft already recommends placing a reverse proxy in front of Kestrel in production. Adding an NGINX or Traefik reverse-proxy container to your Compose file satisfies that recommendation and gives you load balancing across replicas. You can define this topology from the outset rather than retrofitting it later.</p>



<h2 class="wp-block-heading">Getting Started</h2>



<p class="wp-block-paragraph">The combination of Microsoft&#8217;s .NET container images on Docker Hub, Visual Studio&#8217;s built-in Docker tooling, and mature cloud deployment targets makes adopting Docker for .NET projects more accessible than ever. Start by adding Docker support to an existing ASP.NET Core project in Visual Studio, review the generated <code>Dockerfile</code> to understand the multi-stage build pattern, and work outward from there to Compose-based local orchestration and then to a managed cloud service.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/10-reasons-to-use-docker-with-net/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
