{"schema_version":"bf_book_companion_v1","release_id":"20261010T034321Z-reviewed-full-unique-works","book":{"amazon_purchase_url":"https://www.amazon.com/dp/0672337886?tag=bookfrontie00-20","asin":"0672337886","authors":["Bill Wagner"],"book_id":"9780672337888","canonical_url":"https://bookfrontier.com/books/more-effective-c-9780672337888","cover_image_url":"https://img.bookfrontier.com/9780672337888.jpg?v=b77189b75e089d3b","description":"In More Effective C#, Second Edition, world-renowned .NET expert Bill Wagner identifies and illuminates 50 intermediate-to-advanced techniques for writing exceptionally robust and well-performing C# 7.0 code. Reflecting the growing sophistication of the C# language and its development community, Wagner presents powerful new solutions to problems you’re likely to encounter every day. Through three editions of Effective C#, Wagner’s clear explanations, expert tips, and realistic code examples have proven invaluable to hundreds of thousands of developers. With the publication of this title, Effective C#, Third Edition, and More Effective C#, Second Edition, have been completely reorganized to provide clear explanations, expert tips, and realistic code examples in a cohesive package for modern C#. More Effective C#, Second Edition, brings the same proven approach to the new features in C# 7.0, helping you perform familiar tasks more efficiently and effectively. Drawing on his unsurpassed C# experience and key role on global C# standards committees, Wagner addresses object-oriented, functional, and service-oriented approaches to managing data with C#; better ways to express your intent to users and other programmers; and new opportunities to leverage powerful asynchronous and dynamic programming techniques. - Use properties instead of accessible data members (Item 1) - Distinguish between value and reference types (Item 4) - Understand relationships among multiple concepts of equality (Item 9) - Avoid conversion operators in your APIs (Item 11) - Understand how interface and virtual methods differ (Item 15) - Avoid overloading methods defined in base classes (Item 19) - Create method groups that are clear, minimal, and complete (Item 22) - Enable immediate error reporting in iterators and async methods (Item 26) - Use async methods for async work (Item 27) - Avoid thread allocations and context switches (Item 30) - Construct PLINQ parallel algorithms with exceptions in mind (Item 36) - Use the thread pool instead of creating threads (Item 37) - Use BackgroundWorker for cross-thread communication (Item 38) - Use the smallest possible scope for lock handles (Item 41) - Understand the pros and cons of dynamic programming (Item 43) - Make full use of the expression API (Item 46) - Minimize dynamic objects in public APIs (Item 47) You’re already a successful C# programmer: this book will make you an outstanding one. Content Update Program: This title is no longer part of the Content Update Program. The content is final, and no further updates will be released.","forthcoming":false,"isbn13":"9780672337888","publication_date":"20170815","publisher":"Pearson Education","slug":"more-effective-c","subtitle":"50 Specific Ways to Improve Your C#","title":"More Effective C#"},"discovery":{"categories":{"all":[{"bisac_code":"COM051310","confidence_band":"high","label":"C# Programming","score":0.8343,"source":"bisac_hint_model"},{"bisac_code":"COM051060","confidence_band":"medium","label":"C Programming","score":0.8016,"source":"bisac_hint_model"},{"bisac_code":"COM051380","confidence_band":"medium","label":"Windows Programming","score":0.7909,"source":"bisac_hint_model"}],"hint":[{"bisac_code":"COM051310","confidence_band":"high","label":"C# Programming","score":0.8343,"source":"bisac_hint_model"},{"bisac_code":"COM051060","confidence_band":"medium","label":"C Programming","score":0.8016,"source":"bisac_hint_model"},{"bisac_code":"COM051380","confidence_band":"medium","label":"Windows Programming","score":0.7909,"source":"bisac_hint_model"}],"publisher":[{"bisac_code":"COM051310","confidence_band":"high","label":"C# Programming","score":1,"source":"onix_publisher_code"},{"bisac_code":"COM051380","confidence_band":"high","label":"Windows Programming","score":1,"source":"onix_publisher_code"}]},"genres":[{"label":"C# Programming","score":0.8343,"slug":"c-programming"},{"label":"Windows Programming","score":0.7909,"slug":"windows-programming"}],"reader_fit":["For intermediate-to-advanced C# developers seeking practical techniques."],"related_lists":[],"series":null,"similar_books":[{"authors":["Robert C. Seacord"],"book_id":"9781718501041","cover_image_url":"https://img.bookfrontier.com/9781718501041.jpg?v=6a36f544b5c69cbb","score":0.7645,"title":"Effective C","url":"https://bookfrontier.com/books/9781718501041"},{"authors":["Scott Meyers"],"book_id":"9781491903995","cover_image_url":"https://img.bookfrontier.com/9781491903995.jpg?v=12b8efe449c10c8d","score":0.7543,"title":"Effective Modern C++","url":"https://bookfrontier.com/books/9781491903995"},{"authors":["Jon Skeet"],"book_id":"9781617294532","cover_image_url":"https://img.bookfrontier.com/9781617294532.jpg?v=b3be4c934080ea6a","score":0.7364,"title":"C# in Depth","url":"https://bookfrontier.com/books/9781617294532"},{"authors":["David Drysdale"],"book_id":"9781098151409","cover_image_url":"https://img.bookfrontier.com/9781098151409.jpg?v=5cdaf6069be5bd4e","score":0.7296,"title":"Effective Rust","url":"https://bookfrontier.com/books/9781098151409"},{"authors":["John Sharp"],"book_id":"9781509307760","cover_image_url":"https://img.bookfrontier.com/9781509307760.jpg?v=7afe5a84a9124d4d","score":0.7293,"title":"Microsoft Visual C# Step by Step","url":"https://bookfrontier.com/books/9781509307760"},{"authors":["Joshua Bloch"],"book_id":"9780134685991","cover_image_url":"https://img.bookfrontier.com/9780134685991.jpg?v=5735bc9d90fb1576","score":0.7272,"title":"Effective Java","url":"https://bookfrontier.com/books/9780134685991"},{"authors":["Jeffrey Richter"],"book_id":"9780735667457","cover_image_url":"https://img.bookfrontier.com/9780735667457.jpg?v=7e13dc149a7f47b5","score":0.726,"title":"CLR Via C#","url":"https://bookfrontier.com/books/9780735667457"},{"authors":["Steve McConnell"],"book_id":"9780735619678","cover_image_url":"https://img.bookfrontier.com/9780735619678.jpg?v=25635fc8f283334a","score":0.7148,"title":"Code Complete","url":"https://bookfrontier.com/books/9780735619678"}],"topics":[],"what_you_get":["Themes: C# programming, Robust, high-performing code, Asynchronous and parallel programming.","Reading lane: C# Programming and C Programming.","Publisher: Pearson Education."]},"llm_signals":{"confidence":0.95,"pacing":"unknown","reader_fit":["For intermediate-to-advanced C# developers seeking practical techniques."],"themes":["C# programming","Robust, high-performing code","Asynchronous and parallel programming"],"tropes":[]},"source_presence":{"amazon":true,"book_detail":true,"goodreads":true,"llm_signals":true,"similarity_seed":true},"stats":{"amazon_ratings_count":0,"goodreads_ratings_count":150,"goodreads_reviews_count":15,"quality_score":0.8688}}