Movatterモバイル変換


[0]ホーム

URL:


Packt
Search iconClose icon
Search icon CANCEL
Subscription
0
Cart icon
Your Cart(0 item)
Close icon
You have no products in your basket yet
Save more on your purchases!discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Profile icon
Account
Close icon

Change country

Modal Close icon
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timerSALE ENDS IN
0Days
:
00Hours
:
00Minutes
:
00Seconds
Home> Programming> Software Architecture> Mastering ABP Framework
Mastering ABP Framework
Mastering ABP Framework

Mastering ABP Framework: Build maintainable .NET solutions by implementing software development best practices

Arrow left icon
Profile Icon Kalkan
Arrow right icon
$41.99
Full star iconFull star iconFull star iconFull star iconHalf star icon4.7(7 Ratings)
PaperbackFeb 2022526 pages1st Edition
eBook
$29.99 $33.99
Paperback
$41.99
Subscription
Free Trial
Renews at $19.99p/m
eBook
$29.99 $33.99
Paperback
$41.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature iconInstant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature iconDRM FREE - Read whenever, wherever and however you want
Product feature iconAI Assistant (beta) to help accelerate your learning
OR

Contact Details

Modal Close icon
Payment Processing...
tickCompleted

Shipping Address

Billing Address

Shipping Methods
Table of content iconView table of contentsPreview book icon Preview Book

Mastering ABP Framework

Chapter 1: Modern Software Development and ABP Framework

Building software systems has always been complicated. Especially in these modern times, there are many challenges while creating even a basic business solution. You often find yourself implementing standard non-business requirements and digging into infrastructure problems rather than implementing your business code, which is the actual valuable part of the system you are trying to build.

ABP Framework helps you focus on the code that adds value to the stakeholders by offering a robust software architecture, automating the repetitive details, and providing the necessary infrastructure to help build modern web solutions. It provides an end-to-end, consistent development experience and improves your productivity. ABP gets you and your team up to speed with all the modern software development best practices pre-applied.

This book is the ultimate guide to developing web applications and systems using ABP Framework by following modern software development approaches and best practices.

This first chapter introduces the challenges of building a well-architected enterprise solution and explains how ABP Framework addresses these challenges. I will also explain the purpose and the structure of this book.

In this chapter, we will cover the following topics:

  • Challenges of developing an enterprise web solution
  • Understanding what ABP Framework offers

Challenges of developing an enterprise web solution

Before digging intoABP Framework, I want to present the challenges of developing a modern enterprise web solution to understand why we need an application framework like ABP Framework. Let's begin with the big picture: architecture.

Setting up the architecture

Before you start to write your code, you need to create a foundation for your solution. This is one of themost challenging phases of building a software system. You have a lot of options and need to make some fundamental decisions. Any decision you make at this stage will likely affect your application for the rest of its lifetime.

There are somecommon, well-known, system-level architecturalpatterns, such asmonolithic architecture,modular architecture, andmicroservice architecture. Applying one of these architecturesdetermines how you develop, deploy, and scale your solution and should be decided based on your requirements.

In addition to thesesystem-levelpatterns, software development modelssuch asCommand and Query Responsibility Segregation (CQRS),Domain-Driven Design (DDD),Layered Architecture, andClean Architecture determine howyour code base is shaped.

Once you decide on your architecture, you should create the fundamental solution structure to start development with that architecture. In this phase, you also need to decide which language, framework, tools, and libraries you will use.

All these decisions need significant experience, so they are ideally done by experienced software architects and developers. However, not all the team members will have the same experience and knowledge level. You need to train them and determine the correct coding standards.

After setting up your architecture and preparing the fundamental solution, your team can start the development process. The next section discusses the common aspects that are repeated by every software solution and how you can avoid repeating them in your development.

Don't repeat yourself!

Don't Repeat Yourself (DRY) is a key principle for software development. Computers automatethe repetitive tasks of the real world to make people's lives easier. So, why do we repeat ourselves while building software solutions?

Authentication is a very common concern of every software solution – single sign-on, Active Directory integration, token-based authentication, social logins, two-factor authentication, forgot/reset password, email activation, and more. Are most of these requirements are familiar to you? You are not alone! Almost all software projects have more or less similar requirements for authentication. Instead of building all these from scratch, using an existing solution, such as a library or a cloud service, is better. Such pre-built solutions are mature and battle-tested, which is important for security.

Some non-functional requirements, such as exception handling, validation, authorization, caching, audit logging, and database transaction management, are other sources of code repetition. These concerns are called cross-cutting concerns and should be handled in every web request. In a well-architected software solution, these concerns should be handled automatically by conventions in a central place in your code base, or you should have services to make them easier to implement.

When you integrate to third-party systems, such as RabbitMQ and Redis, you typically want to create abstractions and wrappers around the code that interact with these systems. In this way, your business logic is isolated from these infrastructure components. Also, you don't repeat the same connection, retry, exception handling, and logging logic everywhere in your solution.

Having a pre-built infrastructure to automate this repetitive work saves your development time so that you can focus on your business logic. The next section discusses another topic that takes up our time in every business application – the user interface.

Building a UI base

One of the fundamental aspects of an application is itsuser interface (UI). An application withan unfashionable and unusable UI would not be as attractive at first glance, even if it has outstanding business value under the hood.

While UI features and requirements vary for every application, some fundamental structures are common. Most applications need basic elements, such as alerts, buttons, cards, form elements, tabs, anddata tables. You can use HTML/CSS frameworks such as Bootstrap, Bulma, and Ant Design instead of creating a design system for every application.

Almost every web application has a responsive layout with the main menu, toolbar, header, and footer with custom colors and branding. You will need to determine all these and implement a base UI kit for your application's pages and components. In this way, UI developers can create a consistent UI without dealing with the common structures.

Up to here, I've introduced some common infrastructure requirements, mostly independent from any business application. The next section discusses common business requirements for most enterprise systems.

Implementing common business requirements

While every applicationand system is unique and their value comes from that uniqueness, every enterprise system has some fundamental supporting requirements.

A permission-based authorization system is one of these fundamental requirements. It is used to control the privileges of users and clients of the application. If you want to implement this yourself, you should create an end-to-end solution with database tables, authorization logic, permission caches, APIs, and UI pages to assign these permissions to your users and check them when needed. However, such a system is pretty generic and can be developed as a shared identity management functionality (a reusable module) and used by multiple applications.

Like identity management, many systems need functionalities such as audit log reporting, tenant and subscription management (for SaaS applications), language management, file uploading and sharing, multi-language management, and time zone management. In addition to the pre-built application functionalities (modules), there may be low-levelrequirements, such as implementing the soft-delete pattern and storingBinary Large Object (BLOB) data in your applications.

All these common requirements can be built from scratch, which can be the only solution for some enterprise systems. However, if these functionalities are not the main value that's provided by your application, you can consider using pre-built modules and libraries wherethey are available and customize them based on your requirements.

In the next section, you will learn how ABP Framework helps us with the common infrastructure and base requirements that were discussed in this section.

Understanding what ABP Framework offers

ABP Framework offers an opinionated architecture to help you build enterprise software solutionswith best practices on top of the .NET and ASP.NET Core platforms. It provides the fundamental infrastructure, production-ready modules, themes, tooling, guides, and documentation to implement that architecture properly and automate the details and repetitive work as much as possible.

In the next few sub-sections, I will explain how ABP does all these, starting with the architecture.

The ABP architecture

I mentioned that ABP offers an opinionated architecture. In other words, it is an opinionated framework. So, I shouldfirst explain what an unopinionated framework is and what an opinionated framework is.

As I stated in theSetting up the architecture section, preparing a foundation for a software solution requires a lot of decisions; you should decide on the system architecture, development model, techniques, patterns, tools, and libraries to use in your solution.

Unopinionated frameworks, such as ASP.NET Core, don't say much about these decisions and mostly leave it up to you. For example, you can create a layered solution by separating your UI layer from the data access layer, or you can create a single-layered solution by directly accessing the database from your UI pages/views. You can use any library, so long as it is compatible with ASP.NET Core, and you can apply any architectural pattern. Being unopinionated makes ASP.NET Core flexible and usable in different scenarios. However, it assigns the responsibility to you to make all these decisions, set up the right architecture, and prepare your infrastructure to implement that architecture.

I don't mean ASP.NET Core has no opinion at all. It assumes you are building a web application or API based on the HTTP specification. It clearly defines how your UI and API layers should be developed. It also offers some low-level infrastructure components such as dependencyinjection, caching, and logging (in fact, these components are usable in any .NET application and not specific to ASP.NET Core, but they are mainly developed alongside ASP.NET Core). However, it doesn't say much about how your business code is shaped and which architectural patterns you will use.

ABP Framework, on the other hand, is an opinionated framework. It believes that certain ways of approaching software development are inherently better and thus guide developers down those paths. It has opinions about the architecture, patterns, tools, and libraries you will use in your solution. Though ABP Framework is flexible enough to use different tools and libraries, and change your architectural decisions, you get the best value when you follow its opinions. But don't worry; it provides good, industry-accepted solutions to common architectures to help you build maintainable software solutions with best practices. The decisions it takes will save your time, increase your productivity, and make you focus on your business code rather than infrastructural problems.

In the next few sections, I will introduce the four fundamental architectures ABP stands on.

Domain-driven design

ABP's main goal is to provide a model to build maintainable solutions with clean code principles. ABP offersa layered architecture basedon DDD patterns and practices. It provides a layered startup template (seeThe startup templates section), the necessary infrastructure, and guidance for applying that architecture properly.

Since ABP is a software framework, it focuses on the technical implementation of DDD.Part 3,Implementing Domain-Driven Design, of this book explains the best practices of building a DDD-based solution using ABP Framework.

Modularity

In software development, modularity isa technique that's used to split asystem into isolated parts, called modules. The ultimate goal is to reduce complexity, increase reusability, and enable different teams to work on different sets of features in parallel without affecting each other.

Modularity has twomain challenges that are simplified with ABP Framework:

  • The first challenge is to isolate modules. ASP.NET Core has some features (such as Razor component libraries) to support modular applications. Still, it is very limited because it is an unopinionated framework and has opinions only for the UI and API parts. On the other hand, ABP Framework provides a consistent model and infrastructure to build fully isolated, reusable application modules with its database, domain, application, and UI layers.
  • The second challenge of modularity is dealing with how these isolated modules communicate and become a single, unified application at runtime. ABP offers concrete models for common requirements of a modular system, such as sharing a database among modules, communicating between the modules via events or API calls, and installing a module in an application.

ABP provides many pre-built open source application modules that can be used in any application. Someexamples include the Identity module, which provides user, role, andPermission Management, and the Account module, which provides login and register pages for your application. Reusing and customizing these modules saves your time. In addition, ABP provides a module startup template to help you build reusable application modules. An example of this can be found inChapter 15,Working with Modularity.

Modularity is great for managing the complexity of a large monolithic system. However, ABP helps you create microservice solutions too.

Microservices

Microservices and distributed architecture is the accepted approach to building scalable software systems. It allowsdifferent teams to work on differentservices and independently version, deploy, and scale their services.

However, building a microservice system has some important challenges in terms of development, deployment, inter-microservice communication, data consistency, monitoring, and more.

Microservice architecture is not a problem that a single software framework can solve. A microservice system is a solution that brings many different disciplines, approaches, technologies, and tools together to solve unique problems. Every microservice system has its requirements and restrictions. Each team has a level of expertise, knowledge, and skills.

ABP Framework was designed to be microservice compatible from the beginning. It provides a distributedevent bus for asynchronous communicationbetween microservices with transaction support (as explained in thePublishing domain events section ofChapter 10,DDD – The Domain Layer). It also provides C# client-side proxies to easily consume the REST APIs of remote services (as explained in theConsuming HTTP APIs section ofChapter 14,Building HTTP APIs and Real-Time Services).

All of the pre-built ABP application modules are designed so that you can convert them into microservices. ABP alsoprovides a detailed guide (https://docs.abp.io/en/abp/latest/Best-Practices/Index) to explain how you can create such microservice-compatible modules. In this way, you can start with a modular monolith, and then convert it into a microservice solution later.

The core ABP team has prepared an open source microservice reference solution built with ABP Framework. It demonstrates how you can create a solution with API Gateways, inter-microservice communication, distributed events, distributed caches, multiple database providers, and multiple UI applications with single sign-on. It also includes the Kubernetes and Helm configurations to run the solution on containers. Seehttps://github.com/abpframework/eShopOnAbp to learn all the details about that solution.

The next section introduces the last fundamental architecture that ABP Framework provides out of the box – multi-tenancy.

SaaS/multi-tenancy

Software-as-a-Service (SaaS) is a trendingapproach to building andselling software products. Multi-tenancy is a widely used architectural pattern for building SaaS systems. The following arethe typical features of a multi-tenant system:

  • Shares the hardware and software resources between tenants.
  • Every tenant has users, roles, and permissions.
  • Isolates database, cache, and other resources between tenants.
  • Can enable/disable application features per tenant.
  • Can customize application configurations per tenant.

ABP Framework covers all these requirements and more. It helps you build a multi-tenant system while most of your code base is unaware of multi-tenancy.

Chapter 16,Implementing Multi-Tenancy, explains multi-tenancy and multi-tenant application development with ABP Framework.

So far, I've introduced the fundamental architectural patterns that ABP provides as pre-built solutions. However, ABP also provides startup templates to help you get started with a new solution easily.

The startup templates

When you create a new solution using ASP.NET Core's standard startup templates, you get a single-project solutionwith minimal dependencies and no layers, which is not so production-ready. You usually spend a considerable amount of time setting up the solution structure to implement your software architecture properly, as well as to install and configure the fundamental tools and libraries.

ABP Framework provides a well-architected, layered, pre-configured, and production-ready startup solution template. The following screenshot shows the initial UI when you directly run the startup template that's created with ABP Framework:

Figure 1.1 – ABP application startup template

Figure 1.1 – ABP application startup template

Let's talk about this startup template in more detail:

  • The solution is layered. It is clear and tells you how to organize your code base.
  • Some pre-builtmodules are already installed, such as theAccount andIdentity modules. You havelog in,register,user and role management, and some other standard functionalities already implemented.
  • Unit test andintegration test projects are pre-configured and ready to write your first test code.
  • It contains some utility applications to manage your database migrations and consume and test your HTTP APIs.

ABP's application startup templatecomes with multiple options for theUI Framework andtheDatabase Provider. You canstart withAngular,Blazor, orMVC (Razor Pages) options as the UIframework, anduseEntity Framework Core (with any database management system) orMongoDB as the database provider. You will learnhow to create anew solution and run it inChapter 2,Getting Started with ABP Framework.

In the next section, I will introduce some of ABP's infrastructure components.

The ABP infrastructure

ABP is based on familiar tools and libraries you already know about. While it is a full-stack applicationframework, it doesn't introduce a newObject-Relational Mapper (ORM) and instead uses Entity Framework Core. Similarly, it uses Serilog, AutoMapper, IdentityServer, and Bootstrap instead of creating similar functionalities itself. It provides asolution that integrates these tools, fills the gaps, and implements common business application requirements.

ABP Framework simplifies exception handling, validation, authorization, caching, audit logging, and database transaction management by automating them by conventions and allowing you to fine-control when you need to. So, you don't repeat yourself for these cross-cutting and common concerns.

ABP is well integrated with IdentityServer for cookie and token-based authentication, as well as single-sign-on. It also provides a detailed, permission-based authorization system to help you control the privileges of the users and clients of the application.

Besides the basics, background jobs, BLOB storage, text templating, audit logging, and localization components provide built-in solutions for common business requirements.

On the UI part, ABP provides a complete UI theming system to help you develop theme-unaware and modular applications and easily install a theme for an application. It also provides tons of features and helpers on the UI side to eliminate repetitive code and increase productivity.

The next section will talk about the community, which is important for an open source project.

The community

When you set up your solution architecture in your company, no one knows your structure except thedevelopers working on it. However, ABP has a large and active community. They are using the same architecture and infrastructure, applying similar best practices, and developing their application similarly. This has a great advantage when you are stuck with an infrastructure problem or want to get an idea or a suggestion for implementing a business problem. It is also easier to understand someone's code in another solution since ABP developers are applying the same or similar patterns.

ABP Framework has been around and growing since 2016. At the end of 2021, it has 7,000+ stars, 220+ contributors, 22,000+ commits, 5,700 closed issues on GitHub, and more than 4,000,000 downloads on NuGet with more than 110+ major and minor releases. I mean, it is a mature, accepted, and trusted open source project.

The core ABP team and thecontributors from the community areconstantly writing articles, preparing video tutorials, and sharing on the ABP Community website:https://community.abp.io. The following screenshot has been taken from the ABP Community website:

Figure 1.2 – The ABP Community website

Figure 1.2 – The ABP Community website

Check out the ABP Community website to see what others are doing with ABP Framework and closely follow ABP Framework's development.

Summary

In this chapter, we introduced the problems of building a business solution and explained how ABP provides solutions to these common problems. ABP also increases developer productivity by providing a pre-built architectural solution and the necessary infrastructure to implement that architecture.

By the end of this book, you will be comfortable with ABP Framework and will have learned a lot of best practices and techniques regarding enterprise software development.

In the next chapter, you will learn how to create a new solution using ABP'scommand-line interface (CLI) tool and run it in your development environment.

Left arrow icon

Page1 of 4

Right arrow icon
Download code iconDownload Code

Key benefits

  • Build robust, maintainable, modular, and scalable software solutions using ABP Framework
  • Learn how to implement SOLID principles and domain-driven design in your web applications
  • Discover how ABP Framework speeds up your development cycle by automating repetitive tasks

Description

ABP Framework is a complete infrastructure for creating modern web applications by following software development best practices and conventions. With ABP's high-level framework and ecosystem, you can implement the Don’t Repeat Yourself (DRY) principle and focus on your business code.Written by the creator of ABP Framework, this book will help you to gain a complete understanding of the framework and modern web application development techniques. With step-by-step explanations of essential concepts and practical examples, you'll understand the requirements of a modern web solution and how ABP Framework makes it enjoyable to develop your own solutions. You'll discover the common requirements of enterprise web application development and explore the infrastructure provided by ABP. Throughout the book, you’ll get to grips with software development best practices for building maintainable and modular web solutions.By the end of this book, you'll be able to create a complete web solution that is easy to develop, maintain, and test.

Who is this book for?

This book is for web developers who want to learn software architectures and best practices for building maintainable web-based solutions using Microsoft technologies and ABP Framework. Basic knowledge of C# and ASP.NET Core is necessary to get started with this book.

What you will learn

  • Set up the development environment and get started with ABP Framework
  • Work with Entity Framework Core and MongoDB to develop your data access layer
  • Understand cross-cutting concerns and how ABP automates repetitive tasks
  • Get to grips with implementing domain-driven design with ABP Framework
  • Build UI pages and components with ASP.NET Core MVC (Razor Pages) and Blazor
  • Work with multi-tenancy to create modular web applications
  • Understand modularity and create reusable application modules
  • Write unit, integration, and UI tests using ABP Framework
Estimated delivery feeDeliver to United States

Economy delivery10 - 13 business days

Free $6.95

Premium delivery6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date :Feb 28, 2022
Length:526 pages
Edition :1st
Language :English
ISBN-13 :9781801079242
Vendor :
Microsoft
Category :
Languages :
Tools :

What do you get with Print?

Product feature iconInstant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature iconDRM FREE - Read whenever, wherever and however you want
Product feature iconAI Assistant (beta) to help accelerate your learning
OR

Contact Details

Modal Close icon
Payment Processing...
tickCompleted

Shipping Address

Billing Address

Shipping Methods
Estimated delivery feeDeliver to United States

Economy delivery10 - 13 business days

Free $6.95

Premium delivery6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Publication date :Feb 28, 2022
Length:526 pages
Edition :1st
Language :English
ISBN-13 :9781801079242
Vendor :
Microsoft
Category :
Languages :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99billed monthly
Feature tick iconUnlimited access to Packt's library of 7,000+ practical books and videos
Feature tick iconConstantly refreshed with 50+ new titles a month
Feature tick iconExclusive Early access to books as they're written
Feature tick iconSolve problems while you work with advanced search and reference features
Feature tick iconOffline reading on the mobile app
Feature tick iconSimple pricing, no contract
$199.99billed annually
Feature tick iconUnlimited access to Packt's library of 7,000+ practical books and videos
Feature tick iconConstantly refreshed with 50+ new titles a month
Feature tick iconExclusive Early access to books as they're written
Feature tick iconSolve problems while you work with advanced search and reference features
Feature tick iconOffline reading on the mobile app
Feature tick iconChoose a DRM-free eBook or Video every month to keep
Feature tick iconPLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick iconExclusive print discounts
$279.99billed in 18 months
Feature tick iconUnlimited access to Packt's library of 7,000+ practical books and videos
Feature tick iconConstantly refreshed with 50+ new titles a month
Feature tick iconExclusive Early access to books as they're written
Feature tick iconSolve problems while you work with advanced search and reference features
Feature tick iconOffline reading on the mobile app
Feature tick iconChoose a DRM-free eBook or Video every month to keep
Feature tick iconPLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick iconExclusive print discounts

Frequently bought together


C# 10 and .NET 6 – Modern Cross-Platform Development
C# 10 and .NET 6 – Modern Cross-Platform Development
Read more
Nov 2021826 pages
Full star icon3.9 (77)
eBook
eBook
$8.99$10.99
$79.99
Mastering ABP Framework
Mastering ABP Framework
Read more
Feb 2022526 pages
Full star icon4.7 (7)
eBook
eBook
$29.99$33.99
$41.99
Practical Microservices with Dapr and .NET
Practical Microservices with Dapr and .NET
Read more
Nov 2022312 pages
eBook
eBook
$29.99$33.99
$41.99
Stars icon
Total$163.97
C# 10 and .NET 6 – Modern Cross-Platform Development
$79.99
Mastering ABP Framework
$41.99
Practical Microservices with Dapr and .NET
$41.99
Total$163.97Stars icon

Table of Contents

23 Chapters
Part 1: IntroductionChevron down iconChevron up icon
Part 1: Introduction
Chapter 1: Modern Software Development and ABP FrameworkChevron down iconChevron up icon
Chapter 1: Modern Software Development and ABP Framework
Challenges of developing an enterprise web solution
Understanding what ABP Framework offers
Summary
Chapter 2: Getting Started with ABP FrameworkChevron down iconChevron up icon
Chapter 2: Getting Started with ABP Framework
Technical requirements
Installing the ABP CLI
Creating a new solution
Running the solution
Exploring the pre-built modules
Summary
Chapter 3: Step-By-Step Application DevelopmentChevron down iconChevron up icon
Chapter 3: Step-By-Step Application Development
Technical requirements
Creating the solution
Defining the domain objects
EF Core and database mappings
Listing the product data
Creating products
Editing products
Deleting products
Summary
Chapter 4: Understanding the Reference SolutionChevron down iconChevron up icon
Chapter 4: Understanding the Reference Solution
Technical requirements
Introducing the application
Understanding the architecture
Running the solution
Summary
Part 2: Fundamentals of ABP FrameworkChevron down iconChevron up icon
Part 2: Fundamentals of ABP Framework
Chapter 5: Exploring the ASP.NET Core and ABP InfrastructureChevron down iconChevron up icon
Chapter 5: Exploring the ASP.NET Core and ABP Infrastructure
Technical requirements
Understanding modularity
Using the dependency injection system
Configuring an application
Implementing the options pattern
Logging
Summary
Chapter 6: Working with the Data Access InfrastructureChevron down iconChevron up icon
Chapter 6: Working with the Data Access Infrastructure
Technical requirements
Defining entities
Working with repositories
EF Core integration
MongoDB integration
Understanding the UoW system
Summary
Chapter 7: Exploring Cross-Cutting ConcernsChevron down iconChevron up icon
Chapter 7: Exploring Cross-Cutting Concerns
Technical requirements
Working with authorization and permission systems
Validating user inputs
Exception handling
Summary
Chapter 8: Using the Features and Services of ABPChevron down iconChevron up icon
Chapter 8: Using the Features and Services of ABP
Technical requirements
Obtaining the current user
Using the data filtering system
Controlling the audit logging system
Caching data
Localizing the user interface
Summary
Part 3: Implementing Domain–Driven DesignChevron down iconChevron up icon
Part 3: Implementing Domain–Driven Design
Chapter 9: Understanding Domain-Driven DesignChevron down iconChevron up icon
Chapter 9: Understanding Domain-Driven Design
Technical requirements
Introducing DDD
Structuring a .NET solution based on DDD
Dealing with multiple applications
Understanding the execution flow
Understanding the common principles
Summary
Chapter 10: DDD – The Domain LayerChevron down iconChevron up icon
Chapter 10: DDD – The Domain Layer
Technical requirements
Exploring the example domain
Designing aggregates and entities
Implementing domain services
Implementing repositories
Building specifications
Publishing domain events
Summary
Chapter 11: DDD – The Application LayerChevron down iconChevron up icon
Chapter 11: DDD – The Application Layer
Technical requirements
Implementing application services
Designing DTOs
Understanding the responsibilities of the layers
Summary
Part 4: User Interface and API DevelopmentChevron down iconChevron up icon
Part 4: User Interface and API Development
Chapter 12: Working with MVC/Razor PagesChevron down iconChevron up icon
Chapter 12: Working with MVC/Razor Pages
Technical requirements
Understanding the theming system
Using the bundling and minification system
Working with menus
Working with Bootstrap tag helpers
Creating forms and implementing validation
Working with modals
Using the JavaScript API
Consuming HTTP APIs
Summary
Chapter 13: Working with the Blazor WebAssembly UIChevron down iconChevron up icon
Chapter 13: Working with the Blazor WebAssembly UI
Technical requirements
What is Blazor?
Getting started with the ABP Blazor UI
Authenticating the user
Understanding the theming system
Working with menus
Using the basic services
Using the UI services
Consuming HTTP APIs
Working with global scripts and styles
Summary
Chapter 14: Building HTTP APIs and Real-Time ServicesChevron down iconChevron up icon
Chapter 14: Building HTTP APIs and Real-Time Services
Technical requirements
Building HTTP APIs
Consuming HTTP APIs
Using SignalR with ABP Framework
Summary
Part 5: MiscellaneousChevron down iconChevron up icon
Part 5: Miscellaneous
Chapter 15: Working with ModularityChevron down iconChevron up icon
Chapter 15: Working with Modularity
Technical requirements
Understanding modularity
Building the Payment module
Installing the Payment module into EventHub
Summary
Chapter 16: Implementing Multi-TenancyChevron down iconChevron up icon
Chapter 16: Implementing Multi-Tenancy
Technical requirements
Understanding multi-tenancy
Working with the ABP multi-tenancy infrastructure
Using the feature system
When to use multi-tenancy
Summary
Chapter 17: Building Automated TestsChevron down iconChevron up icon
Chapter 17: Building Automated Tests
Technical requirements
Understanding the ABP test infrastructure
Building unit tests
Building integration tests
Summary
Why subscribe?
Other Books You May EnjoyChevron down iconChevron up icon
Other Books You May Enjoy
Packt is searching for authors like you

Recommendations for you

Left arrow icon
Debunking C++ Myths
Debunking C++ Myths
Read more
Dec 2024226 pages
Full star icon5 (1)
eBook
eBook
$27.99$31.99
$39.99
Go Recipes for Developers
Go Recipes for Developers
Read more
Dec 2024350 pages
eBook
eBook
$27.99$31.99
$39.99
50 Algorithms Every Programmer Should Know
50 Algorithms Every Programmer Should Know
Read more
Sep 2023538 pages
Full star icon4.5 (68)
eBook
eBook
$35.98$39.99
$49.99
$49.99
Asynchronous Programming with C++
Asynchronous Programming with C++
Read more
Nov 2024424 pages
Full star icon5 (1)
eBook
eBook
$29.99$33.99
$41.99
Modern CMake for C++
Modern CMake for C++
Read more
May 2024504 pages
Full star icon4.7 (12)
eBook
eBook
$35.98$39.99
$49.99
Learn Python Programming
Learn Python Programming
Read more
Nov 2024616 pages
Full star icon5 (1)
eBook
eBook
$31.99$35.99
$39.99
Learn to Code with Rust
Learn to Code with Rust
Read more
Nov 202457hrs 40mins
Video
Video
$74.99
Modern Python Cookbook
Modern Python Cookbook
Read more
Jul 2024818 pages
Full star icon4.9 (21)
eBook
eBook
$38.99$43.99
$54.99
Right arrow icon

Customer reviews

Top Reviews
Rating distribution
Full star iconFull star iconFull star iconFull star iconHalf star icon4.7
(7 Ratings)
5 star85.7%
4 star0%
3 star14.3%
2 star0%
1 star0%
Filter icon Filter
Top Reviews

Filter reviews by




Justin Berger-LeblancJun 17, 2024
Full star iconFull star iconFull star iconFull star iconFull star icon5
Good product
Amazon Verified reviewAmazon
ErikMar 28, 2022
Full star iconFull star iconFull star iconFull star iconFull star icon5
It is one of those books which advanced software engineering techniques and concepts from monolithic through modular to microservice-oriented applications are explained clearly with concrete examples in C# programming language.Halil is mastermind of software architecture solutions and the proof is abp framework, which has excellent reputation among programmers (all seniority levels).In my opinion, this book is suitable for all programmers (not only for .NET developers).I have a longer relationship with abp framework (and previously ASP.NET Boilerplate) and my team gained a lot when we switched from "custom development" to "development based on abp framework". The number of bugs was significantly reduced and the speed of development skyrocketed.Well done Halil!
Amazon Verified reviewAmazon
Wai TechnologiesMar 09, 2022
Full star iconFull star iconFull star iconFull star iconFull star icon5
In “Mastering the ABP Framework” Author Halil Ibrahim Kalkan guides you through ABP Frameworks core features and project structure. His style is very simple, and this is exactly what will enable you to learn about working with the framework and becoming productive quickly.By elaborating on ABP frameworks best practices, the book in a way makes sure that developers do not try to recreate their own coding style from their experience which may not make sense in the ABP context. The book does not contain any unnecessary and tedious information that can get in the way of learning. Its simple, to the point and easy to follow.In the first part the book describes how ABP is built on the essentials of modern web development principles and how it addresses cross cutting concerns. Here you will get to know about what ABP framework offers. The second part focuses on information to get you started and explores different pre-built modules. In the third part, there is a tutorial that enables you to build a simple CRUD application using a Products module.I would suggest including implementation of some examples based on customer requirements.You’ll gain a strong foundation in the ABP framework, including best practices for testing, debugging, code reuse, and other development tips. The fourth part of the book is the best part. It reveals the mystery around the entire User Interface and theming in the ABP framework. The main challenge developers face is the abstracted UI code in the packages, so they are unbale to easily view source code and extend it for customization. However, with the understanding of the Bundling and theming system as explained in this section, it would certainly simplify UI customization. In the fifth and last part of the book, the author explains about creating new modules and how to integrate modules into an existing application. The multi-tenancy is the key feature of ABP framework and information about its usage is extremely crucial and helpful for a developer. This part is pretty well laid out and simplified.It’s a MUST READ for beginners and experienced developers who are creating applications using the ABP framework.
Amazon Verified reviewAmazon
Anto SubashMar 01, 2022
Full star iconFull star iconFull star iconFull star iconFull star icon5
it's a great read. starts with simple things and goes in-depth with explaining all the fundamentals of the ABP framework. really like the "Cross-Cutting concerns" chapter which explains authorizations and permission.There is a fair bit of code to go through which helps a lot and the Step by step guide cover UI and the API side of things. so you can learn full-stack development with this.It is very opinionated towards DDD (Domain Driven Design) which is great for building large systems but might be too much if you are building something small.
Amazon Verified reviewAmazon
Sergei GorlovetskyMar 21, 2022
Full star iconFull star iconFull star iconFull star iconFull star icon5
I loved the fact that the book is authored by Halil İbrahim Kalkan who is the chief architect of ABP framework.The book is structured as step by step development guide and makes it easy to follow along while doing practice exercise.Automatic testing unit and integration testing is covered which often overlooked by developers.The book does not cover mobile development part of the framework so I'm hoping second edition of the book will close this gap.
Amazon Verified reviewAmazon
  • Arrow left icon Previous
  • 1
  • 2
  • Arrow right icon Next

People who bought this also bought

Left arrow icon
50 Algorithms Every Programmer Should Know
50 Algorithms Every Programmer Should Know
Read more
Sep 2023538 pages
Full star icon4.5 (68)
eBook
eBook
$35.98$39.99
$49.99
$49.99
Event-Driven Architecture in Golang
Event-Driven Architecture in Golang
Read more
Nov 2022384 pages
Full star icon4.9 (11)
eBook
eBook
$35.98$39.99
$49.99
The Python Workshop Second Edition
The Python Workshop Second Edition
Read more
Nov 2022600 pages
Full star icon4.6 (22)
eBook
eBook
$36.99$41.99
$51.99
Template Metaprogramming with C++
Template Metaprogramming with C++
Read more
Aug 2022480 pages
Full star icon4.6 (14)
eBook
eBook
$33.99$37.99
$46.99
Domain-Driven Design with Golang
Domain-Driven Design with Golang
Read more
Dec 2022204 pages
Full star icon4.4 (19)
eBook
eBook
$31.99$35.99
$44.99
Right arrow icon

About the author

Profile icon Kalkan
Kalkan
Github icon
Halil İbrahim Kalkan is a computer engineer who loves building reusable libraries, creating distributed solutions, and working on software architectures. He is an expert on Domain Driven Design, Multi-Tenancy, Modularity and Microservice Architecture. Halil has been building software since 1997 (when he was 14) and working as a professional since 2007. He has a lot of articles and talks on software development. He is a very active open-source contributor and built many projects based on the web and Microsoft Technologies. Halil is currently leading the open-source ABP Framework, which provides a complete architectural solution and the necessary infrastructure to implement that architecture.
Read more
See other products by Kalkan
Getfree access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the digital copy I get with my Print order?Chevron down iconChevron up icon

When you buy any Print edition of our Books, you can redeem (for free) the eBook edition of the Print Book you’ve purchased. This gives you instant access to your book when you make an order via PDF, EPUB or our online Reader experience.

What is the delivery time and cost of print book?Chevron down iconChevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium:Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge?Chevron down iconChevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order?Chevron down iconChevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries:www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges?Chevron down iconChevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live inMexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live inTurkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order?Chevron down iconChevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy?Chevron down iconChevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged?Chevron down iconChevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use?Chevron down iconChevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books?Chevron down iconChevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium:Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela

[8]ページ先頭

©2009-2025 Movatter.jp