Best Tools and Technologies for .NET Based Web Application Development

Tools

This is the second in a series of blog posts we are doing on Building Enterprise Framework for .NET based Web Application.

Imagine Picasso trying to create his famous paintings without brushes and colors OR Michelangelo working on his famous sculptures without his chisels. In the same way no web developer can expect to build an enterprise level web application unless you have the right tools by your side. Here is a list of the Tools & Technologies you can use to build web applications based on Microsoft Technologies (.NET).

Tools

Microsoft Visual Studio

http://www.visualstudio.com/products/visual-studio-ultimate-with-MSDN-vs

The Visual Studio is a core piece of software / web development these days and is the one tool developer’s uses on a daily basis. It includes almost everything needed to develop, test, and debug web applications. Visual Studio 2013 is the current release and we are currently using Visual Studio 2013 Ultimate for development.

Visual Studio Extensions

NuGet Package Manager

http://www.nuget.org/

NuGet is a free, open source developer focused package management system for the .NET platform intent on simplifying the process of incorporating third party libraries into a .NET application during development.

Web Essentials for Visual Studio

http://vswebessentials.com/

As the name says it is the absolutely essential plug-in for visual studio, it is productivity enhancer which helps us to write css, html, less and js faster. The best features of this tools are merged into the next version of Visual Studio.

Resharper

http://www.jetbrains.com/resharper/

It’s not free, but it is the best productivity and code refactoring plugin for Visual Studio. It brings absolute productivity boost in your coding style and help you save time and efforts by highlighting your mistakes well in advance.

Version Control

–  From Wikipedia

version control system (also known as a Revision Control System or source control) is the management of changes to documents, computer programs, large web sites, and other collections of information. Changes are usually identified by a number or letter code, termed the “revision number”, “revision level”, or simply “revision”.

Version control provide ability to track each change as it was made, and to reverse changes when necessary. Version tools are not just important for maintaining a history of a project, they are also the foundation for a team to collaborate. We utilize version control on all of our projects regardless of their size.

There are many different types of version control, but we mostly use two type of version control system – SVN or Git. We use TortoiseGit for Git and TortoiseSVN for SVN.

GitHub, which is web-based hosting service for software development projects that use the Git revision control system have their own Git Client for Windows. http://windows.github.com/.

Browser based Development/Debug Tools

We prefer to use Chrome with Developer Tools or Firefox with Firebug, which allows you to examine every aspect of a web page. Internet Explorer and other browsers offer their own development/debug tools.

Technologies / Framework

ASP.NET MVC

http://www.asp.net/mvc

The ASP.NET MVC Framework is an open source web application framework that implements the model–view–controller (MVC) pattern that helps you create applications that separate the different aspects of the application  (input logic, business logic, and UI logic), while providing a loose coupling between these elements.

Microsoft ASP.NET MVC 5 is the current version, you can download using nuget (http://www.nuget.org/packages/Microsoft.AspNet.Mvc).

ASP.NET Web API

It is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.

Microsoft ASP.NET Web API 2 5.0.0 is the current version, you can download using nuget(http://www.nuget.org/packages/Microsoft.AspNet.WebApi).

ASP.NET SignalR

ASP.NET SignalR is a new library for ASP.NET developers that makes developing real-time web functionality easy. SignalR allows bi-directional communication between server and client. Servers can now push content to connected clients instantly as it becomes available. SignalR supports Web Sockets, and falls back to other compatible techniques for older browsers. SignalR includes APIs for connection management (for instance, connect and disconnect events), grouping connections, and authorization.

Microsoft ASP.NET SignalR 2.0.1 is the current version, you can download using nuget(http://www.nuget.org/packages/microsoft.aspnet.signalr).

Entity Framework

Entity Framework (EF) is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the data-access code that developers usually need to write.

EntityFramework 6.0.2 is the current version, you can download using nuget ( http://www.nuget.org/packages/EntityFramework/6.0.2).

Knockout

Knockout is a standalone JavaScript implementation of the Model-View-ViewModel pattern with templates.

Knockoutjs 3.0.0 is the current version, you can download using nuget (http://www.nuget.org/packages/knockoutjs).

Angularjs

AngularJS is an open-source JavaScript framework, maintained by Google, that assists with running single-page applications. Its goal is to augment browser-based applications with model–view–controller (MVC) capability, in an effort to make both development and testing easier.

AngularJS 1.2.2 is the current version, you can download using nuget (http://www.nuget.org/packages/angularjs).

jQuery

jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.

jQuery 2.0.3 is the current version, you can download using nuget(http://www.nuget.org/packages/jQuery/).

Underscore.js

Underscore is a utility helper library for JavaScript that provides a lot of the functional programming support.

underscore.js 1.5.2 is the current version, you can download using nuget(http://www.nuget.org/packages/underscore.js/).

In Summary

We all can agree that having the right tools and technologies with you is crucial to successfully creating an enterprise web application irrespective of which development platform or programming language you choose. That’s why selecting the right tools at the beginning of a project will help a great deal in successfully creating your web application.

Don’t forget to tell us what tools you use while developing web application using .NET Framework. Please leave your comments, feedback and suggestions in the comments section below.

That’s all for now. We’ll be posting part 3 of this series soon, so stay tuned. You can freely subscribe to this blog for weekly updates on new articles.

Anwar Javed

Lead Software Architect at Luce & Morker
Responsible for early application architecture design, approval at points during development, and approval before production launch. Provide leadership and subject matter expertise in the development of the solution and appropriate components to meet the customer’s needs, and will include recognition of end to end components, from the appropriate hardware needed to support the solution, the database solution design, data management and reporting
solutions as well as security and performance optimizations. Maintains knowledge of current and emerging trends in the industry, including all relevant areas of information systems that might be incorporated as new technologies into future systems.