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
O'Reilly Online Learning: Academic/Public Library Edition- Format:
- Author/Creator:
- Contributor:
- Language:
- English
- Subjects (All):
- Physical Description:
- 1 online resource (772 pages)
- Edition:
- 1st ed.
- Place of Publication:
- Birmingham : Packt Publishing, Limited, 2024.
- 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.