Occasionally I come across a really useful tool, or some sort of feature/framework/idea that I think hey, that would be great to remember for future Web site development.
So, here is a list of some of these that I would like to share:
Nuget: A must if if you are developing in .NET. Nuget ensures that you can access the streams of modules and packages that are being written and distributed around the world. If you are still
adding references to projects then you are potentially doing it all wrong (not necessarily of course). Nuget is a mainstream of Visual Studio and Microsoft tool development now.
- Build servers (Continuous integration / CI): If you are deploying any kind of production application then a simple, person agnostic method of deployment is essential for ensuring a smooth and essential deployment. Whether this be script based, or application based, the ability to deploy without too much knowledge of the various steps can save both time and increase product perception. I have mostly used Inedo Buildmaster
- Mapping frameworks – (AutoMapper, ValueInjector). Just to name a couple, but being able to automatically map entire objects to another can save both time and help maintainability. for example mapping Models to ViewModels and vice versa.
- Dependency Injection – (Autofac, Ninject, Unity and more ….) – Dependency injection can be crucial if you are looking to write abstractions and unit testable code. Microsoft MVC .NET especially has many frameworks that easily plug into the MVC pipeline and allow you to inject classes into your controllers as easy as magic.
- JSON.NET NewtonSoft – A great JSON serializer
- Moq – There are times when you just don’t have a test dummy implementation of a class, or you simply can’t abstract a class away. Moq is great for Mocking classes so that you can ensure just about any class you are using in your code can be unit testable.
- Logging (log4net, ELMAH, Common.Logging, NLog) – For web applications logging can be an essential for helping to identify issues during development as well as when introduced into the wild
- CSS write plugin
- Less – CSS
- Cheetah for desktop apps – app.config transforms
- CodeContracts for pre-condition etc validation
- Unit testing modules (xUnit, NUnit)
- FluentAssertions – – Great library for writing really nice and expressive unit test Asserts
- T4MVC – Replace string literals in controller actions
- AntiXSS – Use the Microsoft Anti-Cross Site Scripting Library (AntiXSS) and set it as your default HTML encode
- Real time communication (XSockets vs SignalR vs Nodejs)
- Scheduled task manager for MVC (HangFire)
- Profiling tool MVC (MiniProfiler.Mvc4, Glimpse)
however ones I have heard of include Team City and I’m sure there are much more.