In his book “Development of HTML5 Web applications – with Visual Studio 2015 and TFS”, Philippe Didiergeorges offers us a complete and pragmatic panorama of the development of modern Web applications in a .Net environment.
The book addresses all the components of web application development intending to give an overview of all the technologies involved, but also to provide advice and benchmarks to understand the issues and answer the questions that arise during implementation in a professional context: choice of architecture, conventions, tooling and development cycle, from tests to deployments and life in production, through the organization of teams and project management.
A concrete use case is used as a common thread: it is the implementation of a database of book reviews. Note that while some code snippets are based on versions of Frameworks still in beta at the time of writing, including Entity Framework 7 and ASP.Net 5 (and they are still in beta at the time of writing this article), all the examples can be downloaded from the publisher’s website and will be updated over the versions.
InfoQ FR spoke with the author.
InfoQ FR: Among the technologies you talk about in your book, we find NPM, grunt and gulp, AngularJS, Git. It seems that the .NET ecosystem has decidedly turned to open solutions and widely used by the web development community and that it finds its new sources of inspiration there. Can you tell us a few words about this?
InfoQ FR: The development environment is also becoming more affordable. What are the possibilities for teams who want to get started quickly and cheaply? Philippe: Microsoft has started to make its tools available free of charge a few months ago. The first of all was Visual Studio Online: a TFS server hosted on Azure that can be used free of charge for up to 5 users. This includes the hosting of project sources on Git or Team Foundation Version Control, but also project planning and monitoring tools,
the Build and Automated Tests system Secondly, the developer’s tools went to free with the appearance of a Community version of Visual Studio which allows free use of the latest version of the IDE for small businesses, open-source projects as well as personal projects. Finally, when the new version of ASP.Net was announced, which can run on Windows, Linux, or macOS, a brand new free editor called Code was made available to developers. Based on a fork of Atom, it is very light, runs on all three environments, and offers an excellent development experience on Web and .Net languages.
The big advantage of Microsoft’s solution over its competitors is that it covers all the tools necessary for the realization of an IT project and that it arrives in a turnkey form. All tools are immediately available and made to work together, and there is no need to go through many phases of tool configuration. With all these tools now free, it is possible for small structures that are starting to have the same tools as large companies at no additional cost.
InfoQ FR: One of the obstacles to the adoption of HTML 5 has long been the lack of tools, especially profiling or debugging. Where are we on this? Philippe: With the explosion of single-page web applications (or Single Page Applications), paradigms have changed and web developers have had to start dealing with issues of CPU performance and memory management. The first tools to have evolved are the development tools integrated into web browsers which provided increasingly advanced tools for analyzing and finding problems.
The problem arises on the other hand for debugging on the many models of tablets and mobile devices. It is possible to connect the device to a computer for remote debugging, but this greatly complicates the operation. Besides, the solution is not viable on all platforms and all mobile browsers. Presented a few months ago, VorlonJS is an Open Source project created by (French!) Microsoft employees which offer a real solution to this problem. It is a remote version, based on NodeJS and socket.io of the development tools offered in web browsers, working with all devices accessing the Internet. The plugin system and the progress of development make it an essential tool very quickly.
InfoQ FR: You give interesting advice on the tools revolving around Visual Studio, on its extensions. What are your favorite tools, or the essentials according to you? Philippe: Since the 2010 version of Visual Studio, the very first extension that I install as a web developer is Web Essentials. Developed by Mads Kristensen, a member of the Visual Studio team, this extension offers since it’s very first version advanced tools for web development that quickly become essential. The new features provided by this extension are also regularly integrated into Visual Studio as standard thereafter. Visual Studio 2015 is indeed much more advanced than the previous versions for web development, but it is still an essential complement in my opinion.
The GitHub for Visual Studio extension is a must if you have to work with GitHub, which is almost inevitable these days. This adds a deeper integration of GitHub within Team Explorer, in the same way as with Team Foundation Server Finally, my favorite tool for working with Visual Studio is without question… NodeJS. With the integration of Grunt and Gulp into Visual Studio, we very quickly find ourselves setting up a whole bunch of small tools that automate the small repetitive tasks of everyday life. Modifying a file automatically starts the compilation of the app and the execution of the unit tests. We find ourselves coding “live” with immediate feedback on our actions.
InfoQ FR: You are referring to new or lesser-known bricks related to TFS such as Release Manager and Application Insight. Can you talk about it?
Philippe: Throughout its versions, TFS has constantly been enriched with new tools to equip more and more aspects of the life cycle of a development project. After managing sources, tasks, Build, and Tests, all that was missing was the last phase of the lifecycle: deployment and monitoring in production. Release Management Studio is Microsoft’s tool for setting up an automated production deployment strategy. This includes managing a complete validation process and managing multiple environments. The tool is very complete and allows the implementation of continuous deployment in production, adopted by the largest IT industries. Applications Insights is the combination of programming APIs and service hosted on Azure to monitor the availability and usage of your applications in production. With these new tools, Microsoft’s solution allows end-to-end management of a development project, while ensuring code quality and optimal agility of your team