{"product_id":"dependency-injection-pprinciples-practices-and-patterns-p","title":"Dependency Injection","description":"\u003cdiv aria-expanded=\"true\" class=\"a-expander-content a-expander-partial-collapse-content a-expander-content-expanded\" style=\"box-sizing: border-box; overflow: hidden; position: relative; padding-bottom: 20px;\"\u003e\n\u003cspan class=\"a-text-bold\" style=\"box-sizing: border-box; font-weight: 700 !important;\"\u003eSummary\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e\u003c\/span\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cspan class=\"a-text-italic\" style=\"box-sizing: border-box; font-style: italic !important;\"\u003eDependency Injection Principles, Practices, and Patterns\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e teaches you to use DI to reduce hard-coded dependencies between application components. You'll start by learning what DI is and what types of applications will benefit from it. Then, you'll work through concrete scenarios using C# and the .NET framework to implement DI in your own projects. As you dive into the thoroughly-explained examples, you'll develop a foundation you can apply to any of the many DI libraries for .NET and .NET Core.\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003ePurchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.\u003c\/span\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cspan class=\"a-text-bold\" style=\"box-sizing: border-box; font-weight: 700 !important;\"\u003eAbout the Technology\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003eDependency Injection (DI) is a great way to reduce tight coupling between software components. Instead of hard-coding dependencies, such as specifying a database driver, you make those connections through a third party. Central to application frameworks like ASP.NET Core, DI enables you to better manage changes and other complexity in your software.\u003c\/span\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cspan class=\"a-text-bold\" style=\"box-sizing: border-box; font-weight: 700 !important;\"\u003eAbout the Book\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e\u003c\/span\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cspan class=\"a-text-italic\" style=\"box-sizing: border-box; font-style: italic !important;\"\u003eDependency Injection Principles, Practices, and Patterns\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e is a revised and expanded edition of the bestselling classic \u003c\/span\u003e\u003cspan class=\"a-text-italic\" style=\"box-sizing: border-box; font-style: italic !important;\"\u003eDependency Injection in .NET\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e. It teaches you DI from the ground up, featuring relevant examples, patterns, and anti-patterns for creating loosely coupled, well-structured applications. The well-annotated code and diagrams use C# examples to illustrate principles that work flawlessly with modern object-oriented languages and DI libraries.\u003c\/span\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cspan class=\"a-text-bold\" style=\"box-sizing: border-box; font-weight: 700 !important;\"\u003eWhat's Inside\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e\u003c\/span\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e \u003cul class=\"a-unordered-list a-vertical\" style=\"box-sizing: border-box; margin: 0px 0px 0px 18px; color: rgb(15, 17, 17); padding-right: 0px; padding-left: 0px;\"\u003e\n\u003cli style=\"box-sizing: border-box; list-style: disc; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eRefactoring existing code into loosely coupled code\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: disc; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eDI techniques that work with statically typed OO languages\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: disc; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eIntegration with common .NET frameworks\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: disc; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eUpdated examples illustrating DI in .NET Core\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e\u003c\/span\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cspan class=\"a-text-bold\" style=\"box-sizing: border-box; font-weight: 700 !important;\"\u003eAbout the Reader\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003eFor intermediate OO developers.\u003c\/span\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cspan class=\"a-text-bold\" style=\"box-sizing: border-box; font-weight: 700 !important;\"\u003eAbout the Authors\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e\u003c\/span\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cbr style=\"box-sizing: border-box;\"\u003e\u003cspan class=\"a-text-bold\" style=\"box-sizing: border-box; font-weight: 700 !important;\"\u003eMark Seemann\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e is a programmer, software architect, and speaker who has been working with software since 1995, including six years with Microsoft. \u003c\/span\u003e\u003cspan class=\"a-text-bold\" style=\"box-sizing: border-box; font-weight: 700 !important;\"\u003eSteven van Deursen\u003c\/span\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e is a seasoned .NET developer and architect, and the author and maintainer of the Simple Injector DI library.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan style=\"box-sizing: border-box;\"\u003e\u003c\/span\u003e\u003cstrong\u003eTable of Contents\u003c\/strong\u003e\u003c\/p\u003e\n\u003col class=\"a-ordered-list a-vertical\" style=\"box-sizing: border-box; margin: 0px 0px 0px 28px; color: rgb(15, 17, 17); padding-right: 0px; padding-left: 0px;\"\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\n\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003e\u003c\/span\u003e\u003ch4 style=\"box-sizing: border-box; padding: 0px; margin: 0px; text-rendering: optimizelegibility; font-weight: 700; font-size: 18px; line-height: 24px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003e\u003cspan style=\"box-sizing: border-box;\"\u003ePART 1 Putting Dependency Injection on the map\u003c\/span\u003e\u003c\/span\u003e\u003c\/h4\u003e\n\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eThe basics of Dependency Injection: What, why, and how\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eWriting tightly coupled code\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eWriting loosely coupled code\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e \u003c\/p\u003e\n\u003col class=\"a-ordered-list a-vertical\" style=\"box-sizing: border-box; margin: 0px 0px 0px 28px; color: rgb(15, 17, 17); padding-right: 0px; padding-left: 0px;\"\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\n\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003e\u003c\/span\u003e\u003ch4 style=\"box-sizing: border-box; padding: 0px; margin: 0px; text-rendering: optimizelegibility; font-weight: 700; font-size: 18px; line-height: 24px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003e\u003cspan style=\"box-sizing: border-box;\"\u003ePART 2 Catalog\u003c\/span\u003e\u003c\/span\u003e\u003c\/h4\u003e\n\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eDI patterns\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eDI anti-patterns\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eCode smells\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e \u003c\/p\u003e\n\u003col class=\"a-ordered-list a-vertical\" style=\"box-sizing: border-box; margin: 0px 0px 0px 28px; color: rgb(15, 17, 17); padding-right: 0px; padding-left: 0px;\"\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\n\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003e\u003c\/span\u003e\u003ch4 style=\"box-sizing: border-box; padding: 0px; margin: 0px; text-rendering: optimizelegibility; font-weight: 700; font-size: 18px; line-height: 24px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003e\u003cspan style=\"box-sizing: border-box;\"\u003ePART 3 Pure DI\u003c\/span\u003e\u003c\/span\u003e\u003c\/h4\u003e\n\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eApplication composition\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eObject lifetime\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eInterception\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eAspect-Oriented Programming by design\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eTool-based Aspect-Oriented Programming\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e \u003c\/p\u003e\n\u003col class=\"a-ordered-list a-vertical\" style=\"box-sizing: border-box; margin: 0px 0px 0px 28px; color: rgb(15, 17, 17); padding-right: 0px; padding-left: 0px;\"\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\n\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003e\u003c\/span\u003e\u003ch4 style=\"box-sizing: border-box; padding: 0px; margin: 0px; text-rendering: optimizelegibility; font-weight: 700; font-size: 18px; line-height: 24px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003e\u003cspan style=\"box-sizing: border-box;\"\u003ePART 4 DI Containers\u003c\/span\u003e\u003c\/span\u003e\u003c\/h4\u003e\n\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eDI Container introduction\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eThe Autofac DI Container\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eThe Simple Injector DI Container\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\u003cspan class=\"a-list-item\" style=\"box-sizing: border-box;\"\u003eThe Microsoft.Extensions.DependencyInjection DI Container\u003c\/span\u003e\u003c\/li\u003e\n\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003col class=\"a-ordered-list a-vertical\" style=\"box-sizing: border-box; margin: 0px 0px 0px 28px; color: rgb(15, 17, 17); padding-right: 0px; padding-left: 0px;\"\u003e\u003cli style=\"box-sizing: border-box; list-style: decimal; overflow-wrap: break-word; margin: 0px;\"\u003e\n\u003cb\u003eEbook License\u003c\/b\u003e\u003cbr\u003eEnd-User Warranty And License Agreement1. Grant Of LicenseManning Has Authorized The Download By You Of An Unrestricted Number Of Copies Of The Electronic Book (Ebook) In Any Of The Available Formats. Manning Grants You A Nonexclusive, Nontransferable License To Use The Ebook According To The Terms And Conditions Herein. This License Agreement Permits You To Install The Ebook On Any And All Your Devices For Your Personal Use Only.2. RestrictionsYou Shall Not: (1) Share, Resell, Rent, Assign, Timeshare, Distribute, Or Transfer All Or Part Of The Ebook Or Any Rights Granted Hereunder To Any Other Person; (2) Duplicate The Ebook, Except For A Single Backup Or Archival Copy; (3) Remove Any Proprietary Notices, Labels, Or Marks From The Ebook; (4) Transfer Or Sublicense Title To The Ebook To Any Other Party.3. Intellectual Property ProtectionThe Ebook Is Owned By Manning And Is Protected By United States And International Copyright And Other Intellectual Property Laws. Manning Reserves All Rights In The Ebook Not Expressly Granted Herein. This License And Your Right To Use The Ebook Terminate Automatically If You Violate Any Part Of This Agreement. In The Event Of Termination, You Must Remove The Original And Any Copies Of The Ebook From All Your Devices.4. Source Code Supplementary MaterialAny Source Code Files Provided As A Supplement To The Book Are Freely Available To The Public For Download. Reuse Of The Code Is Permitted, In Whole Or In Part, Including The Creation Of Derivative Works, Provided That You Acknowledge That You Are Using It And Identify The Source: Title, Publisher And Year.5. Limited WarrantyManning Warrants That The Ebook Files, A Copy Of Which You Are Authorized To Download, Are Free From Defects In The Operational Sense That They Can Be Read By A Pdf Reader Or Epub Reader, Or Other. Except For This Express Limited Warranty, Manning Makes And You Receive No Warranties, Express, Implied, Statutory Or In Any Communication With You, And Manning Specifically Disclaims Any Other Warranty Including The Implied Warranty Of Merchantability Or Fitness Or A Particular Purpose. Manning Does Not Warrant That The Operation Of The Ebook Will Be Uninterrupted Or Error Free. If The Ebook Was Purchased In The United States, The Above Exclusions May Not Apply To You As Some States Do Not Allow The Exclusion Of Implied Warranties. In Addition To The Above Warranty Rights, You May Also Have Other Rights That Vary From State To State.6. Limitation Of LiabilityIn No Event Will Manning Be Liable For Any Damages, Whether Arising For Tort Or Contract, Including Loss Of Data, Lost Profits, Or Other Special, Incidental, Consequential, Or Indirect Damages Arising Out Of The Use Or Inability To Use The Ebook.7. GeneralThis Agreement Constitutes The Entire Agreement Between You And Manning And Supersedes Any Prior Agreement Concerning The Ebook. This Agreement Is Governed By The Laws Of The State Of New York. \u003c\/li\u003e\u003c\/ol\u003e\n\u003c\/div\u003e\u003cdiv class=\"a-expander-header a-expander-partial-collapse-header\" style=\"box-sizing: border-box; position: absolute; bottom: 0px; width: 683px; transition: opacity 0.4s ease-out 0s; outline: 0px; opacity: 1;\"\u003e\u003ca aria-expanded=\"true\" class=\"a-declarative\" data-a-expander-toggle=\"{\" allowlinkdefault more less data-action=\"a-expander-toggle\" data-csa-c-func-deps=\"aui-da-a-expander-toggle\" data-csa-c-id=\"tovbqt-478ca6-gcznes-skx4k9\" data-csa-c-type=\"widget\" data-csa-interaction-events=\"click\" role=\"button\" style=\"box-sizing: border-box; color: rgb(0, 113, 133);\"\u003e\u003ci class=\"a-icon a-icon-extender-collapse\" style=\"box-sizing: border-box; background-image: url(\" https: background-size: background-repeat: no-repeat display: inline-block vertical-align: baseline position: relative margin-right: width: height: background-position: font-family: ember arial sans-serif font-size:\u003e\u003c\/i\u003e\u003cspan class=\"a-expander-prompt\" style=\"box-sizing: border-box; overflow-wrap: break-word; font-family: \" amazon ember arial sans-serif font-size:\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e","brand":"Manning Publications","offers":[{"title":"Paperback","offer_id":50506264412230,"sku":"9781617294730","price":4432.0,"currency_code":"INR","in_stock":true},{"title":"E-Book","offer_id":50506264444998,"sku":"9781617294730-2","price":5121.0,"currency_code":"INR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0754\/2797\/1142\/files\/Dependency_Injection.jpg?v=1790324599","url":"https:\/\/cb-india.com\/products\/dependency-injection-pprinciples-practices-and-patterns-p","provider":"Computer Bookshop (India) Pvt Ltd","version":"1.0","type":"link"}