Browse Source

Completed the article

pull/21067/head
Halil İbrahim Kalkan 1 year ago
parent
commit
4c8e6aea1d
  1. 29
      docs/en/Community-Articles/2024-10-11-NET-Aspire-vs-ABP-Studio/POST.md

29
docs/en/Community-Articles/2024-10-11-NET-Aspire-vs-ABP-Studio/POST.md

@ -40,8 +40,8 @@ In the next sections, I will go through each feature and explain differences and
ABP Framework has tens of integration packages to 3rd-party libraries and services. .NET Aspire also has some library integrations. But these integrations have different purposes:
* ABP Framework's integrations (like [MongoDB](https://abp.io/docs/latest/framework/data/mongodb), [RabbitMQ](https://abp.io/docs/latest/framework/infrastructure/background-jobs/rabbitmq), [Dapr](https://abp.io/docs/latest/framework/dapr), etc) are integrations for its abstractions and aimed to be used directly by your application code. They are complete and sophisticated integrations with the ABP Framework and your codebase.
* .NET Aspire's integrations (like [MongoDB](https://learn.microsoft.com/en-us/dotnet/aspire/database/mongodb-integration), [RabbitMQ](https://learn.microsoft.com/en-us/dotnet/aspire/messaging/rabbitmq-integration), [Dapr](https://learn.microsoft.com/en-us/dotnet/aspire/frameworks/dapr), etc), on the other hand, for simplifying configuration, service discovery, orchestration and monitoring of these tools within .NET Aspire host. Basically, these are mostly for integrating to .NET Aspire, not for integrating to your application.
* **ABP Framework**'s integrations (like [MongoDB](https://abp.io/docs/latest/framework/data/mongodb), [RabbitMQ](https://abp.io/docs/latest/framework/infrastructure/background-jobs/rabbitmq), [Dapr](https://abp.io/docs/latest/framework/dapr), etc) are integrations for its abstractions and aimed to be **used directly by your application code**. They are complete and sophisticated integrations with the ABP Framework and your codebase.
* **.NET Aspire**'s integrations (like [MongoDB](https://learn.microsoft.com/en-us/dotnet/aspire/database/mongodb-integration), [RabbitMQ](https://learn.microsoft.com/en-us/dotnet/aspire/messaging/rabbitmq-integration), [Dapr](https://learn.microsoft.com/en-us/dotnet/aspire/frameworks/dapr), etc), on the other hand, for simplifying configuration, service discovery, orchestration and monitoring of these tools within .NET Aspire host. Basically, these are mostly for **integrating to .NET Aspire**, not for integrating to your application.
For example, ABP's [MongoDB](https://abp.io/docs/latest/framework/data/mongodb) integration allows you to use MongoDB over [repository services](https://abp.io/docs/latest/framework/architecture/domain-driven-design/repositories), automatically handles database transactions, [audit logs](https://abp.io/docs/latest/framework/infrastructure/audit-logging), [event publishing](https://abp.io/docs/latest/framework/infrastructure/event-bus/distributed) on data saves, dynamic [connection string](https://abp.io/docs/latest/framework/fundamentals/connection-strings) management, [multi-tenancy](https://abp.io/docs/latest/framework/architecture/multi-tenancy) integration and so on.
@ -49,29 +49,29 @@ On the other hand, .NET Aspire's [MongoDB](https://learn.microsoft.com/en-us/dot
### Starter Templates
Both of ABP Studio and .NET Aspire provide startup solution templates for new applications. However, there are huge differences between these startup solution templates and their purpose are completely different.
Both of ABP Studio and .NET Aspire provide **startup solution templates for new applications**. However, there are huge differences between these startup solution templates and their purpose are completely different.
* ABP Studio provides production-ready and [advanced solution templates](https://abp.io/docs/latest/solution-templates) for layered, modular or microservice solution development. They are well configured for local development and deploying to Kubernetes and other production environments. They provide different UI and database options, many optional modules and configuration. For example, you can check the [microservice solution template](https://abp.io/docs/latest/solution-templates/microservice/overview) to see how sophisticated it is.
* .NET Aspire's [project templates](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/setup-tooling?tabs=windows&pivots=visual-studio#net-aspire-project-templates)' main purpose is to provide a minimal application structure that is pre-integrated to .NET Aspire libraries.
* ABP Studio provides **production-ready** and [advanced solution templates](https://abp.io/docs/latest/solution-templates) for **layered**, **modular** or **microservice** solution development. They are well configured for **local development** and deploying to **Kubernetes** and other **production environments**. They provide different **UI and database options**, many optional modules and configuration. For example, you can check the [microservice solution template](https://abp.io/docs/latest/solution-templates/microservice/overview) to see how **sophisticated** it is.
* .NET Aspire's [project templates](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/setup-tooling?tabs=windows&pivots=visual-studio#net-aspire-project-templates)' main purpose is to provide a minimal application structure that is **pre-integrated to .NET Aspire** libraries and configured for **local development** environment.
So, when you start with .NET Aspire project template, you will need to deal with a lot of work to make your solution production and enterprise ready. On the other hand, ABP Studio's solution templates are ready to lunch your system from the first day and they provide you a perfect starting point for your new business idea.
### Monitoring & Application Running
Monitoring applications and services is an important requirement for building complex distributed systems. Both of ABP Studio and .NET Aspire provide excellent tools for that purpose.
Monitoring applications and services is an important requirement for building **complex distributed systems**. Both of ABP Studio and .NET Aspire provide **excellent tools** for that purpose.
* ABP Studio's [Solution Runner panel](https://abp.io/docs/latest/studio/running-applications) provides a powerful UI to run and monitor application and services. You can see all HTTP requests, distributed events, exceptions and detailed application logs, trace and find problems in your system. You can use its fully functional built-in browser to navigate application UIs easily. You can also create multiple profiles to group and configure the applications for different teams.
* .NET Aspire's [dashboard](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/overview) can be used to see the states of the running applications and containers, explore their console output, logs, traces and metrics to understand what is happing in your distributed system.
Both tools are pretty useful for monitoring. In addition to monitoring, ABP Studio offers an advanced UI to control the running applications, build, start and stop individually or by a group of applications.
Both tools are pretty useful for monitoring. In addition to monitoring, **ABP Studio offers an advanced UI to control the running applications**, build, start and stop individually or by a group of applications.
### Architecting / Building Solutions
One of the unique features of ABP Studio is that it is an architectural tool that helps you create the structure and architecture of your solution. You can create any kind of application, from single-layer simple web applications to layered multi-application solutions, from monolith modular to microservice systems. In the next section, I will briefly explains these architectural features.
One of the unique features of **ABP Studio** is that it **is an architectural tool** that helps you create the structure and architecture of your solution. You can create any kind of application, from **single-layer** simple web applications to **layered multi-application** solutions, from **monolith modular** to **microservice** systems. In the next section, I will briefly explains these architectural features.
#### Building Modular Monolith Solutions
With ABP Studio, you can create a new solution, create modules and establish relations (dependencies) between modules to architect your overall modular monolith system easily.
With ABP Studio, you can create a new solution, **create modules and establish relations** (dependencies) between modules to architect your overall **modular monolith system** easily.
Here, a screenshot where we are adding an existing package reference to the Products module of a modular CRM solution:
@ -81,13 +81,13 @@ You can see the [Modular Application Development tutorial](https://abp.io/docs/l
#### Building Microservice Solutions
ABP Studio provides a full featured [microservice startup solution template](https://abp.io/docs/latest/solution-templates/microservice) and the fundamental tooling to build large-scale microservice systems.
ABP Studio provides a full featured [microservice startup solution template](https://abp.io/docs/latest/solution-templates/microservice) and the fundamental tooling to build **large-scale microservice systems**.
Here a screenshot that shows how to add new microservices, API gateways or web applications to a microservice solution:
![abp-studio-add-new-microservice](abp-studio-add-new-microservice.png)
.NET Aspire has not such a feature or plan to provide such an architectural solution building experience.
.NET Aspire has no such a feature and has no such a plan to provide that kind of architectural solution building experience.
### Kubernetes Integration
@ -113,7 +113,7 @@ The following diagram shows ABP Platform components at a glance:
So, when you use ABP Studio, you also take full power of the [open source ABP Framework](https://github.com/abpframework/abp) and other ABP Platform features.
## ABP Platform and .NET Aspire Integration
## ABP and .NET Aspire Integration
I have a good news to you. It is actually possible and pretty easy to make ABP Platform and .NET Aspire working together.
@ -121,7 +121,6 @@ You can check [@berkansasmaz](https://abp.io/community/members/berkansasmaz)'s g
## Conclusion
Both .NET Aspire and ABP Studio serve distinct purposes, catering to different types of development environments. While .NET Aspire excels in simplifying cloud-native application setups and observability, ABP Studio provides a comprehensive framework for modular monoliths and microservice architectures with full-fledged enterprise level production-ready templates and integrated tools.
As said in the previous section, it is also possible to [use them together](https://abp.io/community/articles/how-to-use-.net-aspire-with-abp-framework-h29km4kk).
Both .NET Aspire and ABP Studio serve distinct purposes, catering to different types of development environments. While .NET Aspire excels in simplifying cloud-native application setups and observability, ABP Studio provides a comprehensive framework for modular monoliths and microservice architectures with full-fledged enterprise level production-ready startup solution templates and integrated tools.
In the previous section, it was mentioned that it is possible to [use them together](https://abp.io/community/articles/how-to-use-.net-aspire-with-abp-framework-h29km4kk). You don't have to select one of them. However, in my opinion, when you use ABP Studio, you won't need .NET Aspire since ABP Studio can do everything and much more.
Loading…
Cancel
Save