How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk. 0201633612B07092001
Features the best practices in the art and science of constructing software--topics include design, applying good techniques to construction, eliminating errors, planning, managing construction activities, and relating personal character to superior software. Original. (Intermediate)
Martin Fowler, Kent Beck
Users can dramatically improve the design, performance, and manageability of object-oriented code without altering its interfaces or behavior. "Refactoring" shows users exactly how to spot the best opportunities for refactoring and exactly how to do it, step by step.
Gregor Hohpe, Bobby Woolf
Would you like to use a consistent visual notation for drawing integration solutions? "Look inside the front cover." Do you want to harness the power of asynchronous systems without getting caught in the pitfalls? "See "Thinking Asynchronously" in the Introduction." Do you want to know which style of application integration is best for your purposes? "See Chapter 2, Integration Styles." Do you want to learn techniques for processing messages concurrently? "See Chapter 10, Competing Consumers and Message Dispatcher." Do you want to learn how you can track asynchronous messages as they flow across distributed systems? "See Chapter 11, Message History and Message Store." Do you want to understand how a system designed using integration patterns can be implemented using Java Web services, .NET message queuing, and a TIBCO-based publish-subscribe architecture? "See Chapter 9, Interlude: Composed Messaging." Utilizing years of practical experience, seasoned experts Gregor Hohpe and Bobby Woolf show how asynchronous messaging has proven to be the best strategy for enterprise integration success. However, building and deploying messaging solutions presents a number of problems for developers. " Enterprise Integration Patterns " provides an invaluable catalog of sixty-five patterns, with real-world solutions that demonstrate the formidable of messaging and help you to design effective messaging solutions for your enterprise. The authors also include examples covering a variety of different integration technologies, such as JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP, and XSL. A case study describing a bond trading system illustrates the patterns in practice, and the book offers a look at emerging standards, as well as insights into what the future of enterprise integration might hold. This book provides a consistent vocabulary and visual notation framework to describe large-scale integration solutions across many technologies. It also explores in detail the advantages and limitations of asynchronous messaging architectures. The authors present practical advice on designing code that connects an application to a messaging system, and provide extensive information to help you determine when to send a message, how to route it to the proper destination, and how to monitor the health of a messaging system. If you want to know how to manage, monitor, and maintain a messaging system once it is in use, get this book. 0321200683B09122003
Stephen D. Huston, James C. E. Johnson, Umar Syyid
* *An intro guide for ACE beginners, and an authoritative reference for all ACE users. *Foreword by Dr. Douglas C. Schmidt--the original developer of ACE. *ACE is an excellent example of how to design object-oriented software and use C++ to design and write high-performance, easily maintained software systems.
Visual Studio is a development IDE created by Microsoft to enable easier development for Microsoft programming languages as well as development technologies. It has been the most popular IDE for working with Microsoft development products for the past 10 years. Extensibility is a key feature of Visual Studio. There have not been many books written on this aspect of Visual Studio. Visual Studio Extensibility (VSX) can be considered a hard topic to learn for many developers in comparison with most .NET related topics. Also, its APIs are very complex and not very well written. Some may refer to these APIs as dirty because they do not have good structure, naming convention, or consistency. Visual Studio is now 10 years old. It was created during the COM days for COM programming but later migrated to .NET. However, Visual Studio still relies heavily on COM programming. It was revamped when moving to the .NET platform but still contains its COM nature; this fact is what makes it harder for .NET developers to work with VSX. Because it is an older product built on two technologies, it has produced inconsistency in code. Although there are problems with the current version of VSX, the future looks bright for it. The many different teams working on the software have been moved into one umbrella group known as the Visual Studio Ecosystem team. Throughout the past 10 years Visual Studio has continued to grow and new extensibility features have been added. Learning all of the options with their different purposes and implementations is not easy. Many extensibility features are broad topics such as add–ins, macros, and the new domain–specific language tools in Visual Studio. Learning these topics can be difficult because they are not closely related to general .NET programming topics. This book is for .NET developers who are interested in extending Visual Studio as their development tool. In order to understand the book you must know the following material well: Object–oriented programming (OOP), the .NET Framework and .NET programming, C# or Visual Basic languages, some familiarity with C++, some familiarity with XML and its related topics, and Visual Studio structure and usage. A familiarity with COM programming and different .NET technologies is helpful. The aims of this book are to: Provide an overview of all aspects of VSX Enable readers to know where/when to use extensibility Familiarize readers with VS Extensibility in detail Show readers the first steps and let them learn through their own experiences Use examples, sample code, and case studies to demonstrate things in such a way that helps readers understand the concepts Avoid bothering readers with long discussions and useless code samples In order to use this book, and get the most out of it, there are some technical requirements. You must have the following two packages installed on your machine to be able to read/understand the chapters and test code samples: Visual Studio 2008 Team System Edition (or other commercial editions) Visual Studio 2008 SDK 1.0 (or its newer versions) You will need to buy Visual Studio 2008 to register for an evaluation version. The Free Express editions of Visual Studio do not support the extensibility options. The Visual Studio SDK is needed in order to read some of the chapters in the book and can be downloaded as a free package. The operating system doesn t matter for the content of the book, but all code was written with Visual Studio 2008 Team System Edition in Windows Vista x86. Chapters 1, 2, and 3 will give you an introduction to the basic concepts you need to understand before you can move on to the rest of the book. Chapter 4 discusses the automation model, which is an important prerequisite for many of the chapters in the book that focus on add–ins, macros, and VSPackages. Chapters 5–14 will utilize add–ins in a case study to learn about the main responsibilities of the automation model and some of the more common techniques used in VSX development. Each of the following chapters is dedicated to a specific extensibility option; they are independent of one another and you can read them in any order. It is important to read chapters 4–14 before you begin reading about the specific extensibility options. Chapter 5 contains a walk–through of the Add–in Wizard and describes its steps. Chapter 6 will show you the anatomy of add–ins and explain how to create add–ins and how they work. Chapter 7 discusses how to manipulate solutions, projects, and project items via your code to build add–ins. Chapter 8 shows you how to deal with documents and code editors in your add–ins. Chapter 9 explains how to work with programming codes and how to manipulate their elements. Chapter 10 describes some ways to work with user interface elements, Windows Forms, and controls via code in your add–ins. Chapter 11 discusses the Tools Options page and uses add–ins as the case study to show you how to create your own Tools Options pages. Chapter 12 teaches you how to debug and test your add–ins. Chapter 13 shows you how to deploy your add–ins. Chapter 14 completes the discussion about add–ins by talk about resources and localization of add–ins. Chapter 15 discusses a new feature in VS 2008: the Visual Studio Shell. Chapter 16 talks about domain–specific language tools; you will learn how to build them and see a quick overview of DSL tools. Chapter 17 discusses debugging and how to extend debugging features. Chapter 18 talks about VSPackages as a way to extend VS functionality and add something new to its existing packages. Chapter 19 teaches you what a code snippet is and how to write and manage code snippets in Visual Studio to make your coding process easier. Chapter 20 talks about VS project templates and starter kits and how to write your own project templates. Chapter 21 focuses on MSBuild and writing custom builds for Visual Studio and .NET applications. Chapter 22 discusses Visual Studio macros in detail and explains how to build a Visual Studio macro. Keyvan Nayyeri is a software architect and developer. He has a Bachelor of Science degree in applied mathematics. His main focus is on Microsoft development technologies and their related markup languages. Nayyeri is also a team leader and developer for several .NET open–source projects; this includes writing code for special purposes. He holds an MVP award for Comunnity Server. He recently co–authored Wrox Professional Community Server (2007).
Authored by Roberto Ierusalimschy, the chief architect of the language, this volume covers all aspects of Lua 5---from the basics to its API with C---explaining how to make good use of its features and giving numerous code examples. (Computer Books)
Raffaele Piemonte, Scott Jamison
""This is the 'must have' book for programming with Outlook and CDO. This book provides the details, tips, and cautions that can save you time and frustration when building collaborative applications. So if you like 'the best' in your technical library, get this book." --Deborah Kurata, InStep Technologies, Inc. " Written for IT developers who build collaborative and workflow applications, this book provides a comprehensive reference to working with Microsoft's powerful collaborative development environment, including Outlook 2000, Exchange Server, Visual Basic, and the Collaboration Data Objects (CDO) Library. It demonstrates ways in which these technologies can be tied together into effective business solutions--from small-scale groupware to large-scale enterprise-wide systems. "Developing Applications using Outlook 2000, CDO, Exchange, and Visual Basic" offers an overview of the Microsoft collaborative landscape, and then examines each element of that environment in detail. Numerous examples showcase the applications made possible with these technologies and demonstrate VBScript coding techniques. You will find in-depth information on such important topics as: properties, methods, and events available in Outlook 97, 98, and 2000 the Outlook 2000 object model working with Outlook 2000 mail, calendar, task, and address book capabilities VBA and COM add-ins using Outlook Forms and VBScript Outlook web access the Forms 2.0 to HTML converter tool the CDO rendering object model Exchange agents and routing objects In addition, this book shows how a number of outside technologies can extend the capabilities of the Outlook/Exchange development environment, including Active Directory (ADSI) services, SQL Server, and ActiveX Data Objects (ADO). The examples include approving purchase order reports using Exchange, maintaining a corporate directory using Outlook and SQL Server, and building an eCommerce application with Exchange and SQL Server. A comprehensive supporting Web site, including sample code and Visual Basic project files, can be found at http: //www.MMAnet.com/OutlookExchange. 0201615754B04062001
Focuses on the little-touched but critical parts of the Java programming language that the expert programmers use. Learn about extremely powerful and useful programming techniques such as reflection, advanced data modeling, advanced GUI design, and advanced aspects of JDO, EJB, and XML-based web clients. This unique book reveals the true wizardry behind the complex and often mysterious Java environment--O'Reilly web site.