Tools
One of the most popular productivity tool for Visual Studio users. The need for Resharper is reduced for the recent few years though. I’m simply so familiar with it and it’s muscle memory now.
ChatGPT and GitHub Copilot
A LLM based support is key productivity tool for developer since it’s introduced. The more knowing how to get most of of it, the more productive a software engineer can be.
VS Code
This becomes the one of the best IDE across widows/linux worlds. Various extensions make this editor much more useful. The being light weight is the one big advantage over Visual Studio, which is still my main IDE though.
Library
Unit Testing
A mocking library that I’ve chosen. Easy to use, flexible enough. I also work with Autofac.
A while after unit testing in the C# world, it didn’t take long before I realize that I need more tools to fill in the gap. FluentAssertions help asserts like speaking. It flows naturally. and much more to help do a proper unit test. This is another must have if you do unit test.
This is very interesting one. This help does BDD. If you don’t do a TDD or BDD, this tool is just too much. I’ve applied this partially on a small project and found that the problem is it’s not fully integrated with existing Unit Testing tools in VS. So, it’s about using SpecFlow on the entire project or don’t use it.
Log/Exception Handling
NLog
Newer one. would be good for .Net project. seems like supporting more modern functions. It seems like accepted as a better library than log4net on .Net project, but if you don’t use it extensively, it’s would be no big difference from Log4Net.
A cloud hosted application monitoring application. All my companies exceptions are sent to Sentry and monitored there. Sentry becomes a central place to monitor any application exceptions of entire application of the company.
Easy to use APM, application performance monitoring solution. By just installing an agent in the server, it is possible to monitor performance all dotnet applications without extra configuration. As we move apps to the cloud, Azure, I now started rely more on application insights. However, monitoring entire applications in one place may require another solution than just application insights, which is very useful to investigate a single application.
Debug
Compression
ICSharpCode.SharpZipLib
De facto standard compression library for C#
CSV file
Replacing LumenWorks.Framework.IO.
JSON
Newtonsoft.Json
Probably no need to say anything on this one. Another de facto JSON library for C#.
OpenPop.NET
Used as a .Net POP3 client.
FTP
WinSCP.net
I know there are lots of commercial version FTP libraries, but as an open source library WinSCP.net looks to be the best one.
Excel file creation
EPPlus
Also when it comes to Excel library in .Net world, EPPlus is an easy-to-use library. I used this for a couple projects and was happy about it.
Dependency Injection
I haven’t used other IoC container much though, Autofac seems to be the most widely used one. and I’m happy with this so far.
Functional Programming Pattern
Once start using functional programming principle in C#, the first library I’m trying to utilize is this one. It seems to me that there isn’t a big community in this area yet and couldn’t find some de facto standard library here. At least for far, I’m working on getting best out of the Optional library.
API
The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript. In particular, we use NSwag client code generator to create Type Script API client code automatically, which save time and reduce potential errors. Highly recommend it.
Scheduler
Getting to like it. Hangfire, which is “an easy way to perform background processing in .NET and .NET Core applications”. I have been using Windows Task Scheduler for back-end automation applications for quite a long time, and it’s good enough, however, if to have an control of scheduling inside ASP.Net, Hangfire is a good one. Hangfire works on various kinds of databases including MS SQL, SQLite, etc.
Windows Task Scheduler
Some may think it is boring. But as far as I can see, Windows Task Scheduler works fine for most of back end scheduled task. Unless an app should run more frequently than 1 minute, I prefer to use Task Scheduler with console application for simplicity.
Etc
Just started using this a while ago. Not yet fully convinced about using it as my projects doesn’t require massive mapping across the solution. Once the solution gets to the point where it’s complex enough in terms of using model and DB tables, Automapper looks to be very useful.
To do a LINQ query better, I searched libraries to get some help. and found this one. Looks really promising and handy. We could just create a few LINQ extension methods, but why reinvent the wheel and using the existing one can be a way of quick learning.
Others
Backend Framework
WebAPI
I’ve switched to SPA+ Web API architecture when building a web app in .Net stack, as I assume many others have done.
Front-End
Vue
React with Next.js may be the most popular front-end framework. However, our company choose to use Vue.js (as TypeScript) and it is working just well and could not find a reason for a different front-end framework.
Started using AngularJs and soon after Angular2 release, I found it’s much cleaner and moved to Angular. The problem is that I can’t follow the speed of Angular version up. The fact that Angular is based on Typescript is a great merit for the developer like me who started from strongly typed language like C# and still feeling weird in many things in how Javascript works.
No need to add a word in here. I’m still using BS3.0. Not sure when to move on to 4.0
I’m happy about the fact that there is a library like this that works perfectly with Angular. However, These front-end libraries are changing so quickly and still many to improve.
Quickly it became that we can’t develop front-end web things without NPM. Glad I can rely on one technology. Hope NPM live long.
CI/CD
My go-to DevOps tools. It is free for small team of up to 5.
Database
SQL Server
Microsoft SQL Server is the easy chose for .net developers for the most of needs for relational database behind most of the applications.
Cosmos DB
As a key-value paired document DB, for the massive volume and for the less structured document, this looks to be very useful. Especially, it is cheap to use in Azure cloud compare to SQL server.
Elastic Search
The most well known and proven quick search solution. This solution is great to provide a quick search or text search. However, you will experience a bit of learning curve.
Chrome Extension
JsonView
This helps to view json file pretty in Chrome, which is useful to work for API project.
PC Tools
ZoomIt
No Code/Low Code
Nintex K2 workflow
I’ve been using this low code solution about 2 years in the company. The biggest benefit from the low code solution is quick to create a simple application that includes forms / workflow / approval / task tracking. However, there seems to be cheaper option out there.
Power App, Power Automate
This Microsoft no code platform looks to be a great another no code solution if you are a Microsoft tech embedded company.
Task Management
Jira / Confluence
Content Management
iManage
Good solution, but not cheap.
Reporting
SQL Server Reporting Services (SSRS)
We have been using SSRS for various reports. However, various report requirement from various people can quickly make an report hell. Standardization and management of reports are key.
Power BI
Great for multidimension report. Potential to provide dynamic reports to user who can customize and drill down to analyze the data.
Email Service
SendGrid
postmark
sparkpost