Author: Fanie Reynders
Length: 124 minutes
Audience: ASP .NET/MVC developers
Reviewer: Nikos Vaggalis
Not a book but a downloadable video course. Is this a good way to acquire new programming skills?
I’ve been wondering if video is a good medium for learning to program. So I was pleased by the opportunity to find out for myself by reviewing a video based course about Microsoft's framework for building RESTful HTTP services.
Although targeted at devs who are familiar with ASP .NET/MVC looking to explore the offerings that the Web API provides, I also found that it can relate to programmers looking to jump start their writing of web services on the .NET platform.
It begins with a really good overview of the basics and architecture of what makes REST, how the Web API is related to it, as well as the Web API's advantages over WCF such as being more lightweight, less complex and more in sync with the modern Web's requirements of being able to run on a variety of devices. It's all presented using simple diagrams and animation accompanied by the author's clearly spoken narration.
The author starts slowly, presenting code when he touches REST's verbs (GET,PUT,POST,DELETE) and the Controller API, showcasing their functionality by capturing and disassembling requests through Fiddler and making it easy to identify the parts of the code and their correlation to the HTTP request-response cycle
Chapter 3 is where the bulk of the coding begins when we start building the 'Book Store' web service from scratch. The code displayed is pre-made and pre-loaded, and the truth is that there is no other choice; watching a video of code getting typed would take a heavy toll on the course's limited time. Instead, the code is split into logical blocks, with each block being highlighted and explained in turn. Despite the author’s meticulous work, the video as a medium for teaching to code shows its shortcomings. It moves too fast, can’t devote enough time to detail and does not give the chance to reflect and absorb the material. It can, however, be useful if you're willing to work with the source code (available for downloading) by testing it for yourself or by placing break-points inside Visual Studio and running it through the debugger so that you can watch the flow, wiring, structure and purpose of the code. This, coupled with watching the relevant video section, will make much more sense and squeeze the maximum potential out of the course. I think that relying on just the video itself would quickly lead to losing the plot.
Click on image to go to Packt's site for product details
Chapter 4 looks into authorization and authentication and gets practical by implementing HTTP Basic Authorization in combination with activating SSL support.
Chapter 5 excellently demonstrates the use of message handlers and filters, how to trigger them and what actions follow. It also takes a peek at loose coupling and removing redundant code with the use of Dependency Injection.
After taking care of the Server part, we tackle the Client side of things, consuming the service from within an application emulating a mobile app, which is included in the code distribution.
Chapter 7 is about an important but largely overlooked subject, that of documenting the service. This is done without writing a single line of code courtesy of the ASP.NET Help Pages NuGet package, which scans the source code and annotates the service's functions according to its findings.
Lastly, Chapter 8 looks into the deployment options available such as self hosting or publishing the project on the cloud with Azure, concluding the experience the whole development cycle, starting from scratch and getting at a mature end product.
All in all, the end of the course finds me more than satisfied. The author has put a lot of effort into it and the result is well worth your attention. The video medium proved a great way for quickly familiarizing me with the environment, concept, the order and flow of operations, thus saving hours of reading through books. It's also a way to evaluate options, such as deciding whether it’s worth pursuing building web services with the Web API or looking at an alternative.
The weak point, however, is when actual coding is required. If you are experienced with ASP.NET/MVC then you might not find it too difficult to follow the lessons as it is, as it would be the natural step forward. The beginner, however, has to be willing to put in a lot of effort going through the code while watching the videos.
The course's promotional picture, which suggests relaxing on a chair by the sea , cleverly pertaining to REST, starkly contradicts the reality of the effort, detail and energy put in by the author.