Full description not available
N**E
Extremely well written guide to learning ASP.NET Core MVC
I am still reading this book but am extremely impressed. The author writes with clarity and is methodically covering this huge topic in an easily digestible manner. Even the sequencing of topics is highly tailored towards incremental learning. For instance he often writes mini-tutorials in a chapter for a related topic (like the Razor engine) just to give you enough acquaintance with it to understand the topic currently in focus. And he will note to expect a much deeper dive later in the book.In this way, the reader is following a virtuous "spiral" of learning, circulating around the breadth of ASP.Net Core MVC but with each turn going to a deeper level of detail, bolstered with concise and relevant examples. This is exactly how I learn best.He also comments on best practices, like how to separate the tasks that your controller versus model versus view should contain; or where your unit tests should live. He's pragmatic though, and where appropriate notes there may be other/different ways that are valid too (like unit testing approaches).I am a long time ASP.NET Web Forms / C# developer and I am eager to start coding new projects with this approach and anticipate referring back to this book for months to come.
F**X
Excellent book for both new and experienced developers
This book serves two audiences - developers new to C#/ASP.NET/MVC and developers new to CORE. I think it is very difficult to serve two audiences equally with one book - but this book is as close to perfection as it gets. Every chapter has a synopsis that highlights the differences with ASP.NET 4 / MVC 5. So, experienced reader will pay more attention to Dependency Injection and ViewComponents.There are some areas that I wish were covered deeper (for example, Identity and Memory-based database for unit testing). But it's a 1000-page book already, so I realize that some things will be limited.Given that API Controllers are now no different from regular controller, I think the chapter on API Controllers could be shorter. It goes into details of REST patterns that, while important, isn't specific to ASP.NET. Maybe a link to good resources would be sufficient. Or maybe I am just nitpicking. One nugget is the discussion how [FromBody] and similar attributes are required in API controllers and *why*!I am looking forward to Freeman's upcoming Angular2 book that I hope will go into more details of using ASP.NET in SPA context (less Razor, less JQuery, more API Controllers).
K**N
A great edition to this series. Many thanks Adam. Best edition yet.
Adam Freeman is my all time favorite author in the asp.net arena. This is his latest book in the series and perhaps his best effort as well. In addition to updating all of the examples and framework coverage that has become a hallmark of this series, Adam also included some basic coverage of some of the c# features that can be confusing even for seasoned programmers that are either approaching c# for the first time or have not programmed in asp.net. I personally feel that Adam went out of his way to make his coverage easy to understand and follow. If someone is new to C# or AspNetCore and approaching this topic with a good background in programming but not necessarily in the subject matter, this is the best book that I could think to recommend.
A**R
Advanced Book a Beginner can Understand
I knew nothing about ASP.NET, C#, or really web applications in general before reading this book. I learned alot and I was able to follow it very well despite the lack of knowledge on my part and the fairly advanced subject matter. I would however say that if you are in my position and you have completed the first part of the book and are still confused about some of what was done in the building of the Sports Store application, just keep on reading things are explained thoroughly enough in the rest of the book that you will come to understand the application much better.
P**L
Arcane software system, good book
good book covering an arcane software development system. .net is lots more complex and a lot less consistent than it should be, but the book makes the best of it.
P**V
Great on ASP and MVC, but do not copy the database access patterns
Overall the book is a great reference on MVC and ASP.NET Core, starting with some high-level explanations, walking through the process of building a demo application over several chapters, and then going into a deep dive of all the various pieces. I learned a lot about ASP and the book is easy to follow.However, the book has one gaping flaw around how it structures database access. Adam uses a strategy of defining an interface for data access and then implementing it with Entity Framework, which is all fine. However, he makes the terrible decision to expose the Entity Framework DbSets using IEnumerable<T> properties in his data access interface, and he does all filtering in the controller classes, which only access the database using this IEnumerable.While this will compile and function, there is a huge, huge difference between the following statements:DBSet<Product> products = ...;var p1 = (products as IQueryable<Product>).Where(p => p.Category == "Sporting Goods").OrderBy(p => p.Id).Skip(20).Take(10);var p2 = (products as IEnumerable<Product>).Where(p => p.Category == "Sporting Goods").OrderBy(p => p.Id).Skip(20).Take(10);Both return a product collection of 10 products in the sporting goods category. However, the first one (using IQueryable) is a LINQ to Entities query that will bake the filter, ordering, skip, and take criteria right into the T-SQL query that is sent down to the database. The query to the database will return 10 rows, which will be materialized into 10 Product objects.The second statement of these (using IEnumerable), while it eventually gives you the same 10 objects, is not using LINQ to Entities, it's a LINQ to Objects statement. It will select the entire Product table from the database, materialize every row to an object, and then sort, filter and discard all but 10 of those objects in memory. If you had 100,000 products in your SQL table, you would create and immediately discard 99,990 objects just to get the 10 you wanted, as well as reading every single row in your table for every operation.Adam is upfront that this isn't a book on Entity Framework - but I do have to dock him some points for repeatedly erring in how he implemented the database access.
Trustpilot
2 days ago
1 month ago