My Account Log in

1 option

Enterprise Architecture With . NET : Expert-Backed Advice for Information System Design, down to . NET and C# Implementation.

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Gouigoux, Jean-Philippe.
Contributor:
Tamzalit, Dalila.
Language:
English
Subjects (All):
Software architecture.
C# (Computer program language).
Physical Description:
1 online resource (772 pages)
Edition:
1st ed.
Place of Publication:
Birmingham : Packt Publishing, Limited, 2024.
Biography/History:
Gouigoux Jean-Philippe: Jean-Philippe Gouigoux started programming in 1985 and has never stopped since then, working as a developer, then an architect, an R&D manager, and today, the chief technical officer of a group of software editors. Coming from a mechanical engineering background, his main career goal is to apply a rigorous approach to information technology and try to make information systems as modular and standardized as mechanical systems. JP has written more than 10 technical books and has spoken at around 100 conferences and on university courses, teaching architecture, testing, service-oriented design, performance in. NET, Docker and Kubernetes, and so on. He has been a Microsoft MVP since 2011.
Summary:
The software development domain continues to grow exponentially, and information systems have become the backbone of most industries, including non-digital-native ones. However, technical debt, coupling, and a high level of maintenance - sometimes bringing IT systems to a complete halt – continue to present a problem. The software industry has to still apply standards-based, modular, and repeatable approaches that exist in other industries. This book demonstrates such methods in action, particularly business/IT alignment principles. As you progress, you’ll cover advanced concepts and theories currently researched in academia. Then, you’ll be guided toward a practical framework to transfer these approaches to actual software architecture. Finally, a dedicated section will help you apply the knowledge you gain to a sample application in .NET where API design, dependency management, and code writing will be explained in detail to relate to the business-alignment principles explained at the beginning. Throughout the book, you’ll get equipped with the skills to create modular, long-living applications that serve your users better. By the end of this .NET book, you’ll not only have learned new concepts but also gained the ability to apply them immediately to your upcoming software endeavors.
Contents:
Cover
Title Page
Copyright
Dedication
Foreword
Contributors
Table of Contents
Preface
Part 1: Business-Aligned Architecture and the Problems It Solves
Chapter 1: The Sad State of Information Systems
What is an information system?
A quick history of information systems
Software building - still craftsmanship
Craftsmanship as opposed to previous lack of quality
A word about "emerging architecture"
Craftsmanship as opposed to an industrialized approach
Concept of technical debt
The long-standing comparison of software to mechanical systems
The efficiency of an IS
The measure of efficiency of a system
The cost of maintenance
Examples of the prohibited evolution of IT systems
Classification of the causes
The classical symptoms of a blocked IS
Rate of renewal of large systems
Summary
Further reading
Chapter 2: Applying Industrial Principles to Software
What is an industry?
The two roots of industrialization - modularization and standardization
Modularity to reduce complexity
Standardization to ensure modularity is helpful
Management of complexity
Different types of complexity
Computer science as a way to deal with complexity
Information systems and complexity
The concept of "as a service"
Link to a minimum viable product
The benefits of standards and norms
Docker, containers, and OCI
Another example with IAM
The urbanism metaphor of information systems
Chapter 3: Reaching Business Alignment
Technical requirements
Software for business and the principle of alignment
The jungle of technical recommendations
An example with KISS, DRY, and WET
The particular case of internal toolboxes/frameworks
The only stable guide: aligning to your users' business.
Digression on the digital transformation of companies
Conway's law applied to application and systems
Introducing the CIGREF diagram
Process level
Functional level
Software layer
Hardware layer
Using the four-layer diagram
What should we map?
How to start drawing a four-layer diagram
A generic difficulty when aligning information systems
Evolving the information system in time
The four-layer diagram method for service providers
Patterns and antipatterns of alignment
The sad reality of alignment
What we can aim for
The main antipatterns in alignment
Some other antipatterns and a proposed classification
Chapter 4: Dealing with Time and Technical Debt
The impact of time on systems due to functional change
A bit of fun with ill-placed comparisons
Consequences in the software world
How the Agile approach aims at solving the time problem
A metaphor to explain Agile
Back to the concept of emerging architecture
Apparent opposition between architecture and Agile methods
The position of famous architects
Thinking ahead with function contracts
The concept of technical debt
The general definition of technical debt
Causes of technical debt and its relation to time
Technical debt's relation to time
Debt or usury?
Ways to balance technical debt
The Big Bang temptation
An experience-proven blueprint method for information systems
It all starts with... mapping!
Finding the atomic actions
A few last words on time, semantics, and alignment
Chapter 5: A Utopic Perfect IT System
The idea of an ideal IT system
The use for an ideal structure
The origin of the design
Using a vision to define a target
Data management in the ideal system
Data is the blood of information systems
Data as the 21st-century oil - really?.
A really "know it all" system
Relationship with CQRS
The need for data quality
Designing a generic "referential"
Choices of implementation for an MDM
Rules management in the ideal system
Rules as the nervous network of the information system
BRMS as a dedicated tool for business rule handling
Common implementations of business rules
Processes management in the ideal system
Processes as the brain of the information system
Implementations of a BPM
How close can we get to this utopic system?
Favoring contexts
Approaching the target, the Agile way
Part 2: Architecture Frameworks and Methods
Chapter 6: SOLID Principles, from Code to Systems
Describing the sample information system requirements
The company and its business
The users and actors of the information system
Data manipulation
The stakes of the information system for the company
The situation as seen by the person put in charge of improving the system
SOLID principles and application to systems of whatever scale
Single responsibility principle
Open/closed principle
Liskov substitution principle
Interface segregation principle
Dependency inversion approach
Critical analysis of SOLID
Limits of the separation of responsibilities
About the polemics on monoliths
Beware of unintended coupling
Wrapping up before going back to the demo
Chapter 7: C4 and Other Approaches
The C4 approach
The context level
The container level
The component level
The code level
Clean architecture, hexagonal architecture, and other frameworks
Technical architecture patterns
Onion architecture
Hexagonal architecture
Clean architecture
Chapter 8: Service Orientation and APIs
Looking at the history of service orientation
The long-awaited reusability.
Routines and avoiding punching additional paper cards
Libraries and the capacity to share instructions between programs
Attempts at general interoperability
Using web standards to try and get universal
The steps in middleware
The most recent evolution - REST APIs
What we are missing to reach actual service reusability
Characteristics of a service
As a service explained
Getting rid of middleware altogether
External interop finally becoming a reality
Interop made real with standards
Keeping complete compatibility
Managing APIs
Inversion of dependency for services
Application to our demonstration system
Interfaces needing analysis
Using norms and standards
Where do I find norms and standards?
Pivotal format for the other interfaces
Chapter 9: Exploring Domain-Driven Design and Semantics
A functional approach to a functional problem
The importance of semantics
DDD
Application to clean information system architecture
Using entities in referential applications
Managing the life cycle of entities
Relation between subdomains and time
Link to the API and services
Including time in an API
Aligning an API to subdomains and the consequences
API testability
Chapter 10: Master Data Management
Responsibilities around the data
Persistence
The question of identifiers
The single entity reading responsibility
Other kinds of reading responsibilities
The complex art of deleting data
Relation to specialized links
So-called secondary features
Metadata and special kinds of data
The different kinds of data referential applications
Centralized architecture
Clone architecture
Consolidated and distributed architectures
Other types of referential architectures
Some architectural choices
Tabular versus NoSQL.
CQRS and event sourcing
One more step beyond databases - storing in memory
Patterns of data evolution in time
Data governance
Progressive implementation of a unique referential
Keeping an eye on dogma and useless complexity
Chapter 11: Business Processes and Low Code
Business processes and the BPMN approach
What is a business process?
Granularity in the processes
Limits of the processes
Business process modeling
The history of BPM standards
The BPMN 2.0 standard
Business processes software-based execution
Principles
Application to our example information system
Link to users
Available software for BPMN edition and execution
Why so little use of BPMN in the industry?
Other associated practices
Business activity monitoring
Business process simulation and optimization
Business process mining
Other approaches to business process implementation
Process in the GUI
Process in higher-level APIs
Process in a MOM/ESB
Low-code/no-code approaches to processes
Choreography instead of orchestration
Implementing choreography
Should I use BPMN in my information system?
Chapter 12: Externalization of Business Rules
Business Rules Management Systems
How does a BRMS handle business rules?
Additional characteristics of a BRMS
Actual use of BRMS
Examples of a BRMS
The DMN standard
The origin and principle of DMN
Implementations
An example of DMN use
Calling the business rule runtime
Chapter 13: Externalization of Authorization
A BRMS and authorization management
The semantics of identity and authorization management
A digression on IAM implementation
Role-based access control and attribute-based access control models
The XACML approach
A digression on the granularity of microservices.
Applying authorization to our sample information system.
Notes:
Description based upon print version of record.
The concept of technical debt
Description based on publisher supplied metadata and other sources.
ISBN:
9781835081471
1835081479
OCLC:
1435751955

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account