Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Solution Architecture with .NET
Solution Architecture with .NET

Solution Architecture with .NET: Learn solution architecture principles and design techniques to build modern .NET solutions

eBook
€20.98 €29.99
Paperback
€36.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Solution Architecture with .NET

Chapter 1: Principles of the Software Development Life Cycle

In the modern digital workplace, the role of the .NET solution architect is becoming crucial in the software development life cycle. Having a technology leader and a solution creator who can design and build robust and efficient solutions is a key factor to delivering successful products.

This book will highlight the fundamentals that you need to know, as a .NET professional developer, to become an effective solution architect in this growing and rapidly changing field.

Understanding the concept and principles of the Software Development Life Cycle (SDLC) is a great starting point toward planning a software product. This chapter aims to explain the notion of SDLC, its phases, and modern methodologies.

In this chapter, we will cover the following topics:

  • Understanding what the SDLC is
  • Exploring the different SDLC stages
  • Getting familiar with the popular SDLC models

By the end of this chapter, you will be able to describe the SDLC stages and explain the difference between the popular SDLC models, such as Scrum, Spiral, and DevOps.

Understanding the software development life cycle

In today's digital world, every company is looking to deliver a good quality software product in a short period, which means the efficiency and the speed of the development team are game changers. To achieve this goal, companies must apply a set of well-defined activities and structured stages that define the software development life cycle, also known as the SDLC.

The SDLC is a methodology of work and best practices that aim to ease the process of software development and make it more efficient, ensuring the final product is delivered on time within the project budget and is totally in line with the expectations of the client.

There are different variations and models of the SDLC, such as the Waterfall model, the Spiral model, and the Agile model. They are popular and widely used by most software development organizations. Selecting the right model depends mainly on the size of the project and other factors. In the following sections, we are going to explore these models in detail to help you decide which model is right for your team and the project.

Here are the six stages that are defined in the SDLC process:

Figure 1.1: The six stages of the SDLC

Figure 1.1: The six stages of the SDLC

We have just looked at an overview of the software development life cycle and its importance. In the next section, we will explore the different stages of the SDLC process.

Exploring the different SDLC stages

What are the main activities in the SDLC? No matter which model you choose to follow to implement your product, there are six different stages that are considered as common stages in most of the existing models. However, depending on the model, those stages can be executed sequentially or in parallel. By executing this series of stages, it is expected that you will be able to avoid typical and costly pitfalls and achieve the following goals:

  • Lower costs
  • Improved overall quality
  • Shortened production time
  • Excellent customer satisfaction

Let's explore these stages since understanding them is very important to the solution architect, who will be involved with all of them. On the other hand, knowing those stages is necessary to organize and facilitate the development of the product, as well as to make the entire development process more transparent. We'll understand each of them in the following sections.

Planning and requirement analysis

Since the requirements analysis is the first stage, it is the most important and fundamental stage in SDLC. This stage starts by identifying the client's stakeholders, and then conducting several meetings and workshops to define the expectations and gather the requirements.

This stage is performed by the business analyst, the project manager, and the senior technical members of the team. They conduct meetings and workshops with the client to gather all the functional and non-functional requirements, such as the purpose of building the product, what problems it will solve, how it will improve the efficiency of the work, what it will include in terms of functionalities and services, who the target audience or the end user is, identifying the user journeys, detailed use cases and test cases, hardware requirements, backup strategies, and failover processes.

Planning is the process of creating a detailed but high-level plan for how and when each module or task in the project will be developed. The aim is to identify the tasks and their dependencies, along with the expected output of each task. This should be aligned with the client's expectations, as defined in the requirement analysis.

After this stage, everyone in the team should have a clear view of the scope of the project, including its budget, resources, and deadline, as well as possible risks and quality assurance needs. This will be shared with the client to align them with the execution of the project and to give them better transparency.

Let's take a look at the different techniques and activities that we usually use when executing the requirements analysis phases:

  • Use cases: This is an effective technique that is widely used to capture user requirements. It allows us to identify the possible flow of each feature to be implemented in the system, along with how it will interact with the end users. You may be wondering, how many use cases should I write? This might sound difficult at first, but the simple answer to this question is to make sure that you write down as many use cases as possible, to make sure you cover all possible actions and functionalities that should be included in the system.

    The following are the common sections of a use case:

    a. Use Case Name

    b. Summary Description

    c. Actors

    d. Pre-Conditions

    e. Post-Conditions

    f. Level

    g. Stakeholders

  • Business Process Modeling Notation (BPMN): This is used globally to create graphs that describe and document a business sequence using symbols and elements. This technique is recommended if you are implementing business automation processes or the product contains business workflows such as approval cycles.

    Here are the basic shapes of BPMN diagrams in Visio:

Figure 1.2: Basic shapes of BPMN diagrams

Figure 1.2: Basic shapes of BPMN diagrams

  • Unified Modeling Language (UML): UML is used to create flowcharts and diagrams to visualize and document software components, such as classes and interfaces. UML is a good design practice and a very useful technique for creating object-oriented software; it helps software developers model and communicate any complex architectural software design:
Figure 1.3: Sample class diagram

Figure 1.3: Sample class diagram

  • Flowchart technique: This is another graphical representation that's used to describe the different steps of a sequential and logical process flow. In the following diagram, we have a sample flowchart for a checkout process. The green box is the starting point for when the user attempts to add items to the checkout cart before settling the payment and receiving confirmation at the end. The red box represents the end of the process; that is, its completion:

Figure 1.4: Sample flowchart diagram

  • Data flow diagram (DFD): A diagram is worth a thousand words. You can use a DFD to visually represent the way data flows through a process or service in the system. This diagram is used to identify and describe the input data and how it is moving through the system to reach its storage location and form the output data. Here is a sample DFD diagram describing the flow of the data in a purchase order process:
Figure 1.5: Sample data flow diagram

Figure 1.5: Sample data flow diagram

  • Role Activity Diagrams (RAD): This is a role-oriented representation of every possible action in the system. It is used to easily describe and visualize the different roles that are involved in executing each process or service in the system. The following is a sample role activity diagram describing an ATM transaction and showing the steps that are accomplished by each key role:
Figure 1.6: Sample role activity diagram

Figure 1.6: Sample role activity diagram

  • Gantt charts: These are used in project management to assist with planning and scheduling projects of all sizes. They provide a visual representation of tasks, their delivery dates, and the order and dependencies of each task.

    This makes the execution plan more simplified and transparent for the client. The following is a sample Gantt chart representing a project plan. The tasks are grouped based on a specific context and linked through the predecessor column, along with the start date and end date:

Figure 1.7: Sample Gantt chart plan

Figure 1.7: Sample Gantt chart plan

  • Gap analysis: This is a technique that helps compare the current actual results of the system with what was expected by the client in the early stages of the project. It helps denote any missing strategic capability or feature in the system. It should also recommend ways you can make improvements that will help the client meet their initial targets. The following is a sample template that can be used to conduct a gap analysis exercise:
Figure 1.8: Sample gap analysis template

Figure 1.8: Sample gap analysis template

  • Building prototypes: Building a mock-up, or a Minimum Viable Product (MVP) model, of the product will give the end users an idea of what the final version of the product will look like once all the features have been implemented. Using this technique, you can identify any feasibility challenges that you may face when you actually implement the product.

While performing your analysis, consider grouping the requirements into the following three categories:

  • Functional requirements: These represent all the detailed features and functionalities of the system. They are very important for both the development team, to find out what to implement, and the client's stakeholders, to help them align on the final results of the product.
  • Operational requirements: These define the scenarios and the performance measures, along with the associated requirements, that are needed for the product to operate properly in accordance with the client's expectations. This includes the following:

    a. Establishing critical and desired user performance

    b. Defining constraints

    c. Establishing the infrastructure needed

    d. Establishing measures of effectiveness

  • Technical requirements: These describe the technical part that must be fulfilled to easily and successfully deploy the product and make it functional with good performance, as per the client's expectations. This includes the technology that will be used, the technical architecture, the hardware, third-party integration, testing, and deployment plans.

Here are a couple of things that should be considered during this stage:

  • One of the main challenges in the requirements gathering phase is that each member of the client's stakeholders is seeing the product from his/her point of view. For the success of the project, consider listening and capturing all users' perspectives and document them in user stories or use cases. This will help you identify the full picture of what the product will look like and what it will provide as features.
  • In the first meeting with the client, try to identify the different stakeholders and discuss the scope of work to make it clear for all parties. After that, you will have to meet with all the stakeholders to collect the detailed requirements. During these workshops, make sure you keep all your discussions within the scope set forth. This is important to keep the requirements aligned with the business needs and to avoid adding functionalities that the product was never expected to provide.

So far, we've explored the different activities and techniques we can use for planning and conducting the requirement analysis workshop, which is essential for the success of the project. In the next section, we will learn how to document requirements.

Defining requirements

The next step after completing the requirements analysis workshop is to document all the information that was gathered in the previous step to define the product requirements. Usually, the output result of this activity is the Software Requirement Specification (SRS) document, which consists of all the detailed requirements to be designed and developed during all the phases of the project, from the beginning to its end, until the desired product is delivered. This SRS becomes the requirements contract that will be used to develop the product. It will address all the business needs of your client.

Once the SRS document has been finalized and reviewed by all the parties involved in this project, make sure you send it back to the key stakeholders, or the representatives of the key stakeholders, to sign it. The purpose of signing the SRS is to agree that the requirements that are presented and defined in the document are clear and reflect the business needs, as discussed in the analysis workshop. This formal commitment, which is expressed by all parties involved, will play a crucial role in the project life cycle to ensure that the project will not struggle from scope creep during its implementation.

Important Note:

In project management, scope creep (or requirement creep) refers to a situation where the client is continuously requesting changes and adding new features to the product, even after project kickoff. As a result, the project's scope will continue to grow, which will affect the delivery time and the final cost of the product. This should not occur and to prevent it, you must make sure that all the business needs (that is, the scope of the project) are very detailed and properly defined, and that the client has officially committed to the scope of work.

A basic outline for an SRS document may look like this:

  1. Introduction

    1.1 Purpose

    1.2 Intended Audience

    1.3 Intended Use

    1.4 Scope

    1.5 Definitions and Acronyms

  2. Overall Description

    2.1 User Needs

    2.2 Design and Implementation Constraints

    2.3 Assumptions and Dependencies

  3. System Features

    3.1 Functional Requirements

  4. External Interface Requirements

    4.1 User Interfaces

    4.2 Software Interfaces

    4.3 Hardware Interfaces

  5. Non-Functional Requirements

    5.1 Performance Requirements

    5.2 Security Requirements

    5.3 Software Quality Attributes

Feel free to use this outline and modify it as per your needs, but keep in mind that this document should describe the functionality the product needs to fulfill, along with the technical specifications. Therefore, it should be simple, easy to read, and understand by the project stakeholders. In the next section, we are going to learn about the architecture design phase.

Architectural design

How will we build the product? This a crucial question to answer, especially if you're building a complex or large-scale product that will be used by a wide range of users.

To answer this question, we need to start the architectural design phase, which consists of converting the software specifications that were defined and documented in the previous stages into an abstract design specification plan called the architectural design.

The starting point of this phase is to go through the SRS document and understand every single detail in the requirements. This will help you create the best architecture design, which will ensure you deliver a high-quality product. It is the responsibility of the technical team to document their design in a Design Document Specification (DDS) document. The intended audience of this document is the designers, software developers, and QA testers.

The purpose of this document is to present a comprehensive architectural overview and depict all the technical details of the system components. More specifically, it should present the following:

  • The system architecture, components, classes, their attributes, and methods
  • The database's design, including the definition of the tables and fields, along with the relationships between tables
  • The graphical interface design
  • Hardware or software environment
  • End user environment
  • Security requirements
  • Performance requirements and capacity limitations

This DDS is reviewed by all the key technical stakeholders. Based on various factors such as design modularity, performance, security, capacity limitations, risks, budget, and time constraints, the best design approach is selected to build the product.

A basic outline for a DDS document may look like this:

  1. Introduction

    1.1 Purpose

    1.2 Scope

    1.3 Design Goals

    1.3.1 Maintainability

    1.3.2 Optimized Performance

    1.3.3 Designed Friendly

  2. System Overview

    2.1 Algorithms

    2.2 Technologies Used

    2.3 Architecture Diagrams

    2.4 Database Design

  3. Design Considerations

    3.1 Assumptions and Dependencies

    3.2 General Constraints

    3.3 Goals and Guidelines

    3.4 Development Methods

  4. Architectural Strategies

    4.1 Strategy-1 name or description

    4.2 Strategy-2 name or description

    4.3 ...

  5. System Architecture

    5.1 Component-1 name or description

    5.2 Component-2 name or description

    5.3 ...

  6. Policies and Tactics

    6.1 Policy/tactic-1 name or description

    6.2 Policy/tactic-2 name or description

    6.3 ...

  7. Detailed System Design

    7.1 Module-1 name or description

    7.2 Module-2 name or description

    7.3 ...

  8. Traceability
  9. Glossary
  10. Appendix

You can use this outline to describe your architecture and prepare the DDS document. The more you make it clear and detailed, the more you make it easy for the developers and testers during the implementation and testing phases. Next, we will explore the development phase.

Software development

In this stage of SDLC, the software developers start actually developing the product. The technology that's used and the programming language, including all the technical standards, should be aligned with what was agreed on in the DDS document. Keep in mind that the development activities can be accomplished very smoothly when the design specifications are detailed and organized in a proper manner.

Testing

Did we get what we want? Testing the product is a must before launching it to the end users. This stage starts alongside the development stage, where the developers are responsible for testing what they are developing. At this time, it is just basic testing and not enough to say that the product is ready to go live.

Therefore, an official testing cycle should be conducted once the development activities of a specific module or the entire set of features have been completed. During this phase, several types of testing should be conducted, every single functionality should be tested thoroughly, and the identified defects should be reported to the developers to get them fixed.

The quality assurance team can use the test cases that have been documented in the SRS, or they can refer to the use cases to test the product. It is recommended to run the test cases every time the developers release a new version of the product until it reaches a stable version. This is to make sure all the defects that were reported in the previous cycles have been closed.

Deployment and maintenance

Software developers tend to invest the majority of their time in the design and development activities of the product, which is good. Despite its importance, I have learned from several projects that this is not enough. Setting a strategic plan for deployment and maintenance is a key factor for the success of the product.

The focus at this stage is to make the product available for end users so that they can start using it. To do so, the product should be deployed to the production environment.

First, it is recommended that you deploy the product in a testing or staging environment. This is where the User Acceptance Testing (UAT) activities should be performed. All the issues will be solved and deployed back to this environment. Once the product reaches a stable version that is accepted by the client and meets all the specifications that were approved in the previous phases, the product can be moved to the production environment.

Important Note:

User acceptance testing is the final round of testing. It is performed by the client to verify that every single functionality provided by the software works, and to confirm that all the requirements have been covered. This will ensure that the software behaves exactly as the users expect and that they can easily use it without any errors or crashes occurring. At the end of the UAT, the client should accept the software or request some improvements before moving the software to the production environment.

The maintenance phase starts immediately after the product is fully operational in the production environment and signed off by the client. This is a crucial step from the client's point of view because it ensures that their product continues to perform as designed after its deployment.

Types of maintenance

There are four types of software maintenance:

  • Corrective maintenance: This is used mainly to rectify some errors and faults that are observed while the system is in use or to improve the performance of the system.
  • Adaptive maintenance: This may be needed when the client requests to run the software on a new environment such as new hardware or a new operating system. Sometimes, clients request to move their products from an on-premises environment to Azure Cloud. Moreover, it can cover integrating the product with third-party software.
  • Perfective maintenance: This type of maintenance focuses on implementing new features in the product. These features can be requested by the client to accommodate new business cases, or they can be reported by users who have already started interacting with the product and noticed some missing functionalities that can help facilitate their work and improve the overall experience.
  • Preventive maintenance: This is commonly used to detect and correct errors that may cause software failure in the future. It helps reduce the risk of the issues that aren't significant at this moment but may cause serious problems in the future; for example, assuming the clients are expecting to have an increased number of users who will start using their product after 2 months, but this load cannot be accommodated by the current environment's specs. In this case, planning and updating the software environment in advance to serve the load that will be caused by the new users is considered preventive maintenance.

Let's take a look at the following table to understand when and why we should apply these maintenance types:

Figure 1.9: Software maintenance types

Figure 1.9: Software maintenance types

In the next section, we are going to explore the difference between software maintenance and warranty.

Maintenance versus warranty

People may get confused about maintenance and warranty. A software warranty is a formal and legal guarantee that the product will perform properly, as per the specifications, for a certain period. It is a promise to fix any errors or malfunctions in the system at no cost during the warranty period.

The maintenance agreement is sold to the client for long-term and ongoing maintenance activities such as upgrades, updates, or product enhancements.

We have just explained the different stages of the SDLC and highlighted the expected output of each stage. In the next section, we are going to provide an overview of the popular SDLC models.

In this section, we explored all the SDLC phases, from planning and requirements analysis to deploying and sign-off. In the next section, we will get to know the most popular SDLC models.

Getting familiar with the popular SDLC models

Every product requires a suitable approach to developing it. Usually, this decision is made based on multiple factors, such as if the requirements are well-documented, the requirements are not ambiguous, the project is short, and so on. In this section, we will highlight some of the most popular models that are used in software development.

The Waterfall model

The Waterfall model is a straightforward and sequential approach to building a software product. Each stage of the development cycle should be completed before you move on to the next stage and usually, the output of each stage is considered to be the input for the next stage.

Here is a representation of the different stages of this model:

Figure 1.10: Waterfall stages

Figure 1.10: Waterfall stages

Some of the advantages of the Waterfall model are as follows:

  • Stages are clearly defined and easy to understand
  • Stages are well-documented
  • Works well for smaller projects where the requirements are well-defined

Some of the disadvantages of this model are as follows:

  • The working version of the product will be delivered at a late stage of the development cycle.
  • Not a good model for complex and ongoing projects since the stakeholders won't be able to give their feedback at the early stages of the development process.
  • Not a good model when there is a high risk of requirements changing.

The Agile model

The Agile model, an example of which is Scrum, is one of the most well-known development methodologies and is widely adopted by many IT organizations. It is also applied to non-tech projects.

The approach of this model is to break the product into cycles or iterations. Each iteration lasts for about 2-4 weeks (usually, it shouldn't be a long time). At each iteration, the development team should deliver a complete working version of the software. The idea is to take the use cases and split them into iterations so that you get a functioning part of the product at the end of the iteration. In this way, the development team is producing ongoing and incremental releases that have been well tested.

This approach helps teams identify and address issues early on. It also involves the stakeholders throughout the development process to get their feedback.

The following diagram is a quick representation of the Agile stages:

Figure 1.11: Agile stages

Figure 1.11: Agile stages

The Spiral model

The Spiral model is a combination of the Iterative model and the Waterfall sequential model. Usually used for large projects, it provides support for risk handling at the early stages of each iteration. With this model, the project passes through four phases:

  • Identifying objectives by gathering the business requirements
  • Performing risk analysis
  • Reviewing and evaluating
  • Developing and testing

Here is a diagram depicting the Spiral model:

Figure 1.12: Spiral model

Figure 1.12: Spiral model

With each iteration, you can build a prototype of the new feature and functionalities that will be delivered in this iteration.

These phases are repeated in a spiral until the entire product is delivered, allowing for multiple rounds of refinement.

The advantages of the Spiral model are as follows:

  • This model provides an early indication of the existence of risks.
  • Critical high-risk functionalities are developed first.
  • Stakeholders are closely tied to the entire development life cycle phases.
  • Users can see the system in action at early stages with the use of prototypes.
  • Stakeholders can incorporate early and continuous feedback.

The disadvantages of the Spiral model are as follows:

  • This model is costly and is not recommended for small projects that have low risks in most cases.
  • Managing the process is somewhat complex.
  • Risk assessment expertise is required to run this model.

The DevOps model

In a DevOps model, the developers and operations teams work together. You may be wondering, well, what does this mean?

Using the traditional models that we talked about earlier, companies were splitting up their resources into teams that handled specific responsibilities:

  • A development team to architect and build the product.
  • An operations team to prepare the environment and host the product.
  • A test team to prepare the test cases and conduct thorough QA testing and to report back to the development team.

With the DevOps methodology, the developers and operations teams are requested to collaborate closely – as one team – in all the stages of the SDLC process. A successful DevOps model ensures continuous feedback, accelerates the deployment, improves the development process, and automates manual processes.

Here is a representation showing the different steps in the DevOps model:

Figure 1.13: DevOps model

Figure 1.13: DevOps model

The advantages of the DevOps model are as follows:

  • Fast delivery of features
  • Better responsiveness to problems
  • Efficient operations
  • Reduced bottlenecks
  • Better communication and collaboration
  • More productive team members, with more time to innovate

The disadvantages of the DevOps model are as follows:

  • DevOps requires culture change and new methods of communication, which is a big challenge in a traditional environment.
  • There is a need to upgrade the infrastructure to optimize the process, which can be expensive for some companies.
  • Fast development can lead to critical security shortfalls.

Now, let's learn how to choose the right model.

Choosing the right model

When selecting the right SDLC model to build a particular product, it's important to remember that each model offers a unique process that may help you overcome the challenges that you will encounter during the development cycle. One model would never fit every project or every client's needs, which is why you should understand these popular models and know when to apply them.

Finding the right model depends heavily on the factors the project will be executed with, such as your current infrastructure, the culture adopted by your team, and how the client would like the project to be managed. Certain projects may run best with a Waterfall approach, while others would benefit from the flexibility of the Agile model.

Let's take a look at the following table, which highlights the main factors when it comes to choosing the right model for your product:

Figure 1.14: How to choose the right SDLC model

Figure 1.14: How to choose the right SDLC model

In this section, you explored the most popular SDLC models. Each one offers a unique methodology that can help you overcome different challenges you may encounter in your career. You also learned how to choose the right model for your product.

Summary

In this chapter, you learned about the definition and the importance of the SDLC, as well as how it can help the organization deliver products in an efficient way. Then, you learned about the different stages of the SDLC, the most popular models, along with their advantages and disadvantages, and how to choose the right model for your team.

In the next chapter, you will learn about the different team roles, along with their responsibilities, and how they fit into the SDLC process and the team structure.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Find out what are the essential personality traits and responsibilities of a solution architect
  • Become well-versed with architecture principles and modern design patterns with hands-on examples
  • Design modern web solutions and make the most of Azure DevOps to automate your development life cycle

Description

Understanding solution architecture is a must to build and integrate robust systems to meet your client’s needs. This makes it crucial for a professional .NET software engineer to learn the key skills of a .NET solution architect to create a unique digital journey and build solutions for a wide range of industries, from strategy and design to implementation. With this handbook, developers working with the .NET technology will be able to put their knowledge to work. The book takes a hands-on approach to help you become an effective solution architect. You’ll start by learning the principles of the software development life cycle (SDLC), the roles and responsibilities of a .NET solution architect, and what makes a great .NET solution architect. As you make progress through the chapters, you’ll understand the principles of solution architecture and how to design a solution, and explore designing layers and microservices. You'll complete your learning journey by uncovering modern design patterns and techniques for designing and building digital solutions. By the end of this book, you'll have learned how to architect your modern web solutions with ASP.NET Core and Microsoft Azure and be ready to automate your development life cycle with Azure DevOps.

Who is this book for?

This book is for intermediate and advanced .NET developers and software engineers who want to advance their careers and expand their knowledge of solution architecture and design principles. Beginner or intermediate-level solution architects looking for tips and tricks to build large-scale .NET solutions will find this book useful.

What you will learn

  • Understand the role and core responsibilities of a .NET solution architect
  • Study popular UML (Unified Modeling Language) diagrams for solution architecture
  • Work with modern design patterns with the help of hands-on examples
  • Become familiar with microservices and designing layers
  • Discover how to design modern web solutions
  • Automate your development life cycle with Azure DevOps

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Aug 27, 2021
Length: 238 pages
Edition : 1st
Language : English
ISBN-13 : 9781801072434
Vendor :
Microsoft
Category :
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Aug 27, 2021
Length: 238 pages
Edition : 1st
Language : English
ISBN-13 : 9781801072434
Vendor :
Microsoft
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 138.97
C# 10 and .NET 6 – Modern Cross-Platform Development
€59.99
Solution Architecture with .NET
€36.99
Software Architecture with C# 10 and .NET 6 – Third Edition
€41.99
Total 138.97 Stars icon
Banner background image

Table of Contents

14 Chapters
Section 1: Understanding the Responsibilities of a Solution Architect Chevron down icon Chevron up icon
Chapter 1: Principles of the Software Development Life Cycle Chevron down icon Chevron up icon
Chapter 2: Team Roles and Responsibilities Chevron down icon Chevron up icon
Chapter 3: What Makes an Effective Solution Architect? Chevron down icon Chevron up icon
Section 2: Designing a Solution Architecture Chevron down icon Chevron up icon
Chapter 4: Designing a Solution Architecture Chevron down icon Chevron up icon
Chapter 5: Exploring Architecture Design Patterns Chevron down icon Chevron up icon
Chapter 6: Architecture Considerations Chevron down icon Chevron up icon
Chapter 7: Securing ASP.NET Web Applications Chevron down icon Chevron up icon
Chapter 8: Testing in Solution Architecture Chevron down icon Chevron up icon
Section 3: Architecting Modern Web Solutions with DevOps Solutions Chevron down icon Chevron up icon
Chapter 9: Architecting Modern Web Solutions with ASP.NET Core and Azure Chevron down icon Chevron up icon
Chapter 10: Designing and Implementing Microsoft DevOps Solutions Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.4
(10 Ratings)
5 star 50%
4 star 40%
3 star 10%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




James Croft Aug 30, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
If you’re looking to take your .NET career to the next level or need a refresher on what it means to be an architect in the .NET space, this book is for you.The first section captures what it means to be working in the commercial world of software development. It covers in detail team structures, software development methodologies, and what it means to be an architect. It provides great, usable examples that you can take away and start implementing today if you're new to this space. If you're already well established, you might want to jump to sections 2 and 3!From here on, while some chapters cover solution architecture design at a high level, this is where your .NET skills come into play. You'll be introduced to best patterns and practices in .NET software design, modelling and detailing architectures with diagrams, and applying these to real world examples with .NET 5 applications (including microservices architectures!)You'll also get an in-depth look at some common considerations that you can also start thinking about and applying to your .NET applications. These have a significant impact on how you grow as a both a developer and an architect. We're talking strategies for performance, maintenance, reusability, testing, and security. These thought-provoking sections are what take the mindset of a developer to the architect level.Overall, the book is a great starter for .NET developers who want to excel, think, and work towards a career in architecture. If you are fully committed to the Microsoft Azure ecosystem (or are looking to be), you'll get the most of this book. Otherwise, it plays as a good reference handbook for .NET architects in general.
Amazon Verified review Amazon
irakli gabisonia Oct 09, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
If you are interested in Solution Architecture this book will provide you great overview.This book covers every aspect of Solution Architecture activity.The book will give you good understanding of SDLC and methodologies also it covers fundamental design principles and common design patterns which will help reader to build great solutions.As a Solution Architect, I highly recommend this book!
Amazon Verified review Amazon
Mike R Dec 29, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book has joined my list of useful texts to get ideas across to junior devs. On my first .NET project years ago, the architecture had already been established. Those decisions were a black box to me at the time. This book does a great job of filling in lots of detail about *why* it was done that way.In the years since, I've learned a lot of this as my career and skill level advanced. And I've also had to explain these concepts to junior developers. They will often ask why we bother to do things "the hard way".This covers all of the basics, from the dev life cycle, to roles on the team, architecture styles and when to choose them, and even UML diagramming. The sections on security and testing were especially helpful.I agree with some of the other reviewers that code samples *might* have been helpful. But this book works very well as a thorough high-level overview of the topic. I'm glad I picked it up and learned from it.
Amazon Verified review Amazon
Pranam Bhat Dec 10, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The book "Solution Architecture with .NET" by Jamil Hallal is one good resource of .NET including great explanation.This book gives a tremendous walk through of core concepts and architecture for all ASP.NET Developers out there. When developer start working on any project, they might need guidance and clarity on how to start designing and implementing the blue print. That is the crucial stage of project. This is the point where this book helps and motivates a developer what to chose and how to start. The UML's and graphical representations in this book makes a developer easy to understand and focus.Author has a great skills to make everyone understand the concept and move forward. digrams, examples and tips are very helpful. I suggest this book to all the .NET developer's.Thank you Packt team for bringing out such a great book to the audience.
Amazon Verified review Amazon
Michael S. Roshak Dec 29, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book is great for those people transitioning from sole contributor to enterprise architect. Often developers become hyper specialized in their skill set. How to lead the architecture of an entire organization. It shows organisational strategies such as SDLC and UML. As well as orthogonal strategies for making sure that the software is build efficiently with security in mind.I liked how the author was prescriptive. He used .net and Azure. This gives the reader a easy to follow road map of tools they can implement. Specifically I liked that he used Azure DevOps tooling to show how to use pipelines and artifacts.I have been an Architect for 8 years now so for me this book was a bit of a review. This book would have been invaluable when I was a developer thinking about advancing my career. He does not go over some of the more cutting edge architects such as data mesh, C4, and DDD. But all in all this is a great book.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.