Tools and Libraries for an ASP.Net developer in 2018

Tools

Resharper

One of the most popular productivity tool for Visual Studio users. As Visual Studio keep adding the same functions introduced by Resharper, it’s getting pretty OK just use Visual Studio without Resharper. Still, I love using Resharper as it helps me focus on problem-solving.   In particular, I like its continuous testing feature. Bad performance is a single drawback though.

Another good thing for me is ReSharper Ultimate provide code coverage which isn’t provided in VS professional.

SQLite/SQL Server Compact Toolbox

As I use SQLite/SQLCE a lot in my small projects, I rely on this tool. I would like to thank you ErikEJ for building this tool. when it comes to SQLCE, it seems that there are no other better tools than this, but when working on SQLite I found that SQLite Manager Firefox add-on is the best because it’s faster and richer in functions like DB column edit.

EntityFramework Reverse POCO Generator

When started using EF, MS built-in EF generator is the one I used. After using it a while, I found that it’s a bit heavy and not flexible enough and EF Reverse POCO Generator is lighter and flexible. Even having a dummy object for unit test, it started using this than MS one. It is working perfectly for a big database containing hundreds of tables.

SlowCheetah

SlowCheetah is so popular. I use this for almost all of my VS projects. Set up config versions for Dev, UAT, Prod, etc and call it on Jenkins when deploying through CI/CD pipeline. Definitely a must-have item for .Net developers.

Library

Unit Testing

Moq

A mocking library that I’ve chosen. Easy to use, flexible enough. I also work with Autofac.

FluentAssertions

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.

SpecFlow

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

Log4net

It has been on the market very long time and still reliable and feature rich. When I saw some people create their own logging service, I have been wondered why they reinvent the wheels.

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.

ELMAH

Known as the best error logging and exception handler for an ASP.Net application.

Debug

Glimpse

Arguably the best ASP.Net debugging tool. I’ll just refer to the well known Scott Hanselman’s blog, If you’re not using Glimpse with ASP.NET for debugging and profiling, you’re missing out

Compression

ICSharpCode.SharpZipLib

De facto standard compression library for C#

CSV file

LumenWorks.Framework.IO

There are many libraries for CSV handling and some made it by themselves. As far as I know, this is the best library to read CSV file. This library parse CSV format pretty fast too.

JSON

Newtonsoft.Json

Probably no need to say anything on this one. Another de facto JSON library for C#.

Email

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

Autofac

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

Optional

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

Swashbuckle

So cool and easy to set up. Swachbuckle “seamlessly adds a Swagger to WebApi projects”. Love to see MS solutions seamlessly integrated into industry standards.

Scheduler

Hangfire

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.

Etc

Automapper

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.

MoreLinq

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.

Backend Framework

ASP.Net MVC

Who’s not using ASP.Net MVC if they are .Net developers.

WebAPI

I’ve switched to Angular + Web API architecture when building a web app in .Net stack, as I assume many others have done.

Front-End

Angular

Started using AngularJs and soon after Angular2 release, I found it’s much cleaner and moved to Angualr2. Now I’m on Angular 4. The problem is that I can’t catch 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.

Bootstrap

No need to add a word in here. I’m still using BS3.0. Not sure when to move on to 4.0

ngx-bootstrap

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.

NPM

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.

Gulp

Using Gulp to package Angular programs in VS environment. For the next Anguar project, I would definitely use Angular CLI so I guess Gulp will not survive on my list next time.

CI/CD

Jenkins

Even though my most development is .Net/C# based, I use Jenkins for CI/CD tool. More than anything, it’s open source and keeps improving itself and there are lots of plug-ins that help automate the workflow. There is a bit of learning curve and sometimes buggy, once getting used to it, it’s not too bad.

New blue ocean UI and pipeline approach that makes Jenkins as a CI/CD pipeline as a code looks promising to me.

Powershell

Jenkins is the tool orchestrating CI/CD, but the most of actual work is done by Powershell script saved on each step in Jenkins job.

Powershell is very useful and powerful in regards to backend side management. However, I found its syntax is very weird to me like I felt on Javascript. It seems like, basically, I don’t like script language which can’t be compiled and can’t check any problems at compile time.

 

You might like these articles too.