Start the countdown. 2020 is almost done, and we finally see the light at the end of this year-long tunnel. What a ride this has been! As we all scrambled for alcogel, face masks, and toilet paper, one definitive truth stands out in the world of software development.
There will always be bugs.
I can’t help but make this association. Look at what the mother of all “bugs,” COVID-19, has done to the mother of all Production systems, humanity. How different would the lives of so many people be right now if we had the right debugging tools (i.e., a vaccine) way back at the beginning of this year? It’s no different for software and all the Production systems that are at the very core of our lives. From essential utilities like electrical power and the internet to online gaming and entertainment systems, bugs will happen, bugs are destructive, and once bugs hit us where it hurts, it’s paramount to resolve them as quickly as possible.
Humanity is finally starting to debug itself from COVID-19, but here at Ozcode, debugging has always been at the core of our activity. Throughout this year, we have published dozens of blog posts that can help us all become better developers and better at debugging our software. Here is a pick of our top 10 posts published during 2020.
ASP.NET Framework has been around since 2002, living through Web Forms, MVC, and Web API. It has matured to the point that it offers proven methodologies that work well. In this blog post, we go through some of the most popular NuGet packages used in ASP.NET Core applications that will give you a running start on your projects.
Serverless architectures continue to take hold of the software industry. However, with the benefits of scalability, robustness, and decoupled functionality come debugging challenges similar to those we see with microservices. And these stem from the ephemeral nature of these short-lived units of execution. How do you debug code that throws an exception and then disappears? This is the challenge of debugging Azure Functions, but it can be just like debugging an error in your local IDE if you have the right tools. This post is based on a webinar we hosted earlier this year showing how to use Ozcode Production Debugger to debug serverless code in Azure Functions.
Two of the biggest yearly software development surveys show C# and .NET in the top 10 picks of the software community. Whether you’re a C# master and .NET maven or a newbie to this branch of software development, there’s always a lot to learn. This blog will point you to some of the top resources you can use, whether you’re just getting started or are looking to delve deeply into the finer points of C# and .NET.
Tools, tools, and more tools. We have many tools for debugging in Development, but Production systems pose many challenges for debugging. We usually turn to logs, but log files don’t cut it. You never have the right logs available, so you have to add more logs, rebuild, redeploy, and try again – usually several times until you solve an issue. This post highlights some of the top tools you can use for .NET debugging in Production.
Debugging Production systems is critical for business. Estimates for the cost of Production downtime go as high as $5600 per minute, so clearly, when things go sideways on an eCommerce site, a stock trading system, or a lunar lander, fixing that bug is top of mind for everyone. Many of the tools and methods in use today are not effective in debugging Production systems. This post describes why these tools are insufficient and then goes on to describe the four pillars of Production debugging that an effective debugger stands on.
NuGet Gallery is the most popular repository on the web for open-source NuGet packages, delivering about a billion downloads every week. But, like many public open-source resources on the web, NuGet periodically suffers from outages. That’s when your builds begin to break. JFrog Artifactory is a DevOps solution for end-to-end management of binary artifacts, including NuGet packages. It can protect you from outages in NuGet Gallery and offers a host of other benefits for your .NET development with NuGet.
Production debugging with logs offers several advantages. Logs show you a sequence of events, they’re easy to filter to weed out errors, and they’re very reliable. But debugging with logs also presents challenges. You have to dig through mountains of distributed log files to find the log entries you want, and in practice, you never have enough logs. Consequently, debugging with logs is very tedious and ineffective. Dynamic logging with tracepoints offers a new paradigm for log-based debugging in which you can get the right logs, in the right place, at the right time – without having to rebuild and redeploy your application.
Observability has become a hot topic when it comes to monitoring Production and troubleshooting Production errors. But the truth is that today’s typical observability tools can only go so far in resolving Production errors. They might point you in the right direction, but they don’t provide enough information to really get to the root cause of an error. For that, you need code-level observability.
Infrastructure as Code has brought great advances to DevOps, making application deployment much more robust. Infrastructure can now be defined in structured file formats so deployments can be version controlled and run repeatably as a one-click process. This blog shows how you can deploy Ozcode Production Debugger as part of an IaC specification using C#. This post is based on a webinar we hosted earlier this year, which you can view at the end of the post.
2021, here we come!