Thursday, March 21, 2013

Patterns of Enterprise Application Architecture



The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned. Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology--from Smalltalk to CORBA to Java to .NET--the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform. This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts. Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them.  The topics covered include  Dividing an enterprise application into layers  The major approaches to organizing business logic  An in-depth treatment of mapping between objects and relational databases  Using Model-View-Controller to organize a Web presentation  Handling concurrency for data that spans multiple transactions  Designing distributed object interfaces 

Download Link

Refactoring to Patterns

In 1994, Design Patterns changed the landscape of object-oriented development by introducing classic solutions to recurring design problems. In 1999, Refactoring revolutionized design by introducing an effective process for improving code. With the highly anticipated Refactoring to Patterns, Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutionary process of refactoring. This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern implementations. Using code from real-world projects, Kerievsky documents the thinking and steps underlying over two dozen pattern-based design transformations. Along the way he offers insights into pattern differences and how to implement patterns in the simplest possible ways. Coverage includes: A catalog of twenty-seven pattern-directed refactorings, featuring real-world code examples Descriptions of twelve design smells that indicate the need for this books refactorings General information and new insights about patterns and refactoring Detailed implementation mechanics: how low-level refactorings are combined to implement high-level patterns Multiple ways to implement the same pattern?and when to use each Practical ways to get started even if you have little experience with patterns or refactoring Refactoring to Patterns reflects three years of refinement and the insights of more than sixty software engineering thought leaders in the global patterns, refactoring, and agile development communities. Whether you're focused on legacy or greenfield development, this book will make you a better software designer by helping you learn how to make important design changes safely and effectively.

Download Link

Refactoring Workbook


Refactoring has gained widespread acceptance in the software engineering community as a proven means of improving software. Martin Fowler's seminal book on this topic, Refactoring, has been used in the classroom to explain that existing code could be improved and enhanced without significantly altering the fundamental structure of an application. But many find that this concept has a steep learning curve that inhibits its use. In this new book, William Wake offers a more introductory look at this important topic. The author outlines a proven workbook approach to learning and applying refactoring to "everyday" projects. This approach relies on examples that force the student to apply the main concepts of refactoring. As a result, readers gain thorough knowledge of how refactoring can help improve their software.

Download Link

Refactoring




Your class library works, but could it be better? Refactoring: Improving the Design of Existing Code shows how refactoring can make object-oriented code simpler and easier to maintain. Today refactoring requires considerable design know-how, but once tools become available, all programmers should be able to improve their code using refactoring techniques. Besides an introduction to refactoring, this handbook provides a catalog of dozens of tips for improving code. The best thing about Refactoring is its remarkably clear presentation, along with excellent nuts-and-bolts advice, from object expert Martin Fowler. The author is also an authority on software patterns and UML, and this experience helps make this a better book, one that should be immediately accessible to any intermediate or advanced object-oriented developer. (Just like patterns, each refactoring tip is presented with a simple name, a "motivation," and examples using Java and UML.) Early chapters stress the importance of testing in successful refactoring. (When you improve code, you have to test to verify that it still works.) After the discussion on how to detect the "smell" of bad code, readers get to the heart of the book, its catalog of over 70 "refactorings"--tips for better and simpler class design. Each tip is illustrated with "before" and "after" code, along with an explanation. Later chapters provide a quick look at refactoring research. Like software patterns, refactoring may be an idea whose time has come. This groundbreaking title will surely help bring refactoring to the programming mainstream. With its clear advice on a hot new topic, Refactoring is sure to be essential reading for anyone who writes or maintains object-oriented software. --Richard DraganTopics Covered: Refactoring, improving software code, redesign, design tips, patterns, unit testing, refactoring research, and tools.

Download Link

Wednesday, March 20, 2013

Interconnecting Cisco Network Devices, Part 2


Authorized Self-Study Guide Interconnecting Cisco Network Devices, Part 2 (ICND2) Third Edition Foundation learning for CCNA ICND2 Exam 640-816 Steve McQuerry, CCIE No. 6108  Interconnecting Cisco Network Devices, Part 2 (ICND2), is a Cisco-authorized, self-paced learning tool for CCNA? foundation learning. This book provides you with the knowledge needed to install, operate, and troubleshoot a small to medium-size branch office enterprise network, including configuring several switches and routers, connecting to a WAN, and implementing network security. In Interconnecting Cisco Network Devices, Part 2 (ICND2), you will study actual router and switch output to aid your understanding of how to configure these devices. Many notes, tips, and cautions are also spread throughout the book. Specific topics include constructing medium-size routed and switched networks, OSPF and EIGRP implementation, access control lists (ACL), address space management, and LAN extensions into a WAN. Chapter-ending review questions illustrate and help solidify the concepts presented in the book. Whether you are preparing for CCNA certification or simply want to gain a better understanding of how to build medium-size Cisco networks, you will benefit from the foundation information presented in this book. Interconnecting Cisco Network Devices, Part 2 (ICND2), is part of a recommended learning path from Cisco that includes simulation and hands-on training from authorized Cisco Learning Partners and self-study products from Cisco Press. To find out more about instructor-led training, e-learning, and hands-on instruction offered by authorized Cisco Learning Partners worldwide, please visit www.cisco.com/go/authorizedtraining. Steve McQuerry, CCIE No. 6108, is a consulting systems engineer with Cisco focused on data center architecture. Steve works with enterprise customers in the Midwestern United States to help them plan their data center architectures. He has been an active member of the internetworking community since 1991 and has held multiple certifications from Novell, Microsoft, and Cisco. Before joining Cisco Steve worked as an independent contractor with Global Knowledge, where he taught and developed coursework around Cisco technologies and certifications. Review the Cisco IOS? Software command structure for routers and switches Build LANs and understand how to overcome problems associated with Layer 2 switching Evaluate the differences between link-state and distance vector routing protocols Configure and troubleshoot OSPF in a single area Configure and troubleshoot EIGRP Identify and filter traffic with ACLs Use Network Address Translation (NAT) and Port Address Translation (PAT) to conserve IPv4 address space and implement IPv6 Connect different sites over WANs or the Internet using IPsec VPN, SSL VPN, leased line, and Frame Relay connections. This volume is in the Certification Self-Study Series offered by Cisco Press. Books in this series provide officially developed self-study solutions to help networking professionals understand technology implementations and prepare for the Cisco Career Certifications examinations.

Download Link