The Choice of ASP.NET Platform

When developing an ASP.NET Core application, you have several choices for structuring your application into different layers. Here are some common choices for each layer: Presentation Layer ASP.NET Core MVC: This is the most common choice for building web applications with a clear separation of concerns. It uses the Model-View-Controller pattern. Razor Pages: A simpler alternative to MVC, suitable for page-focused scenarios. Blazor: Allows you to build interactive web UIs using C# instead of JavaScript. Business Logic Layer Web API Services: Typically, you create services that encapsulate your business logic. These services can be injected into your controllers or Razor Pages. MediatR: A popular library for implementing the mediator pattern, which helps in decoupling business logic from the presentation layer. Minimal API: fast HTTP API  Data Access Layer Entity Framework Core (EF Core): The most widely used ORM in the .NET ecosystem. It provides a high-level abstraction for database operations. Dapper: A lightweight ORM that is faster than EF Core but requires more manual work.  ADO.NET: net data access library  Subsonic, and others ORM.  Other Considerations Dependency Injection (DI): ASP.NET Core has built-in support for DI, which is essential for managing dependencies in a clean and testable way. Logging: ASP.NET Core provides a robust logging framework that can be extended with third-party libraries like Serilog or NLog. Configuration: Use the built-in configuration system to manage settings across different environments. Caching: Implement caching strategies using in-memory caching, distributed caching, or third-party libraries like Redis. Examples:  You want to build information system, you can use: Razor, Web API, ADO.NET, and JWT and O365 Auth 

When we need .NET Aspire for Our Project

.NET Aspire is a modern framework designed to streamline the development of cloud-native applications. It's a comprehensive stack that provides programmers with an opinionated, cloud-ready approach to building observable, production-ready, distributed applications. This framework is delivered through a collection of NuGet packages that address specific cloud-native concerns, making it an invaluable tool for developers looking to enhance their applications with the power and flexibility of the cloud. Comparing with traditional ASP.NET Core, .NET Aspire is more cloud oriented with several features:  Simplified Orchestration One of the key benefits of .NET Aspire is its simplified orchestration capabilities. It focuses on enhancing the local development experience by simplifying the management of an application's configuration and interconnections. This means that developers can spend less time on setup and more time on creating features that matter. Orchestration in .NET Aspire is not intended to replace robust systems used in production environments, such as Kubernetes, but rather to provide a set of abstractions that streamline the setup process during the development phase.   Ready-to-Use Components .NET Aspire comes with a suite of ready-to-use components for commonly used services like Redis or PostgreSQL. These components have standardized interfaces, ensuring they connect consistently and seamlessly with your application. This reduces the complexity of integrating different services and allows for a more modular and maintainable codebase.   Enhanced Developer Experience The framework offers project templates and tooling experiences for popular development environments like Visual Studio, Visual Studio Code, and the dotnet CLI. This helps programmers quickly create and interact with .NET Aspire projects, providing a more intuitive and productive development experience.   Cloud-Native Advantages By leveraging .NET Aspire, programmers can build applications that are inherently scalable, resilient, and manageable, thanks to the cloud infrastructure. The framework's design facilitates the creation of microservices, which are small, interconnected services that make up a cloud-native application. This architectural style is well-suited for the cloud, where applications can take full advantage of the scalability and manageability offered by cloud providers.   Streamlined Startup and Monitoring .NET Aspire also aids in streamlining the startup process and improving monitoring capabilities. This ensures that applications are more reliable and easier to maintain. Service discovery features further enhance applications by simplifying the connection to other services and components, even if developers are not ready to utilize more complex features or services.   In conclusion, .NET Aspire presents a multitude of benefits for programmers, particularly those developing cloud-native applications. Its orchestration, components, and tooling are designed to simplify the development process, allowing programmers to focus on delivering high-quality features rather than getting bogged down by configuration and setup complexities. With .NET Aspire, developers can build distributed applications that are ready for the cloud era, providing a clear path to modern application development.   If you need framework that can be used both on premise and cloud, we prefer to use ASP.NET. However, if you need framework that can applied between cloud, .NET Aspire is for you. Put your use case in the comment.   

CMS or Not CMS

Nowadays, we have two options to build web application. The first option is using web application framework such as ASP.NET core, ASP.NET web form, Django, and many mpore. The second option is using web application Content Management System such as Umbraco, Kentico, Dotnetnuke, or Orchard. On this article, we will discuss when to build with CMS vs Framework. CMS CMS is built with the existing framework. For example, Orchad and Umbraco is build from .Net Core. Basically, you dont need to understand the framework if only you just want to use the CMS. But if you want to extends the capability of the CMS you should understand the framework and how the CMS works. You can use CMS if 1. You need dynamic content for your customer 2. Your customer write the content and push into your website 3. User doesnt have a lot interaction with your website Typical scenario for CMS: company profile, personal website, and blogs Framework Framework is build by the platform stack that we choose. Framework provide programming layer for the user interface, middleware, dan data services. You have a lot freedom with Framework. However, you need to create a lot of routine from the beginning. Framework provides minimalist template but really extensible rather than CMS. You choose framework if 1. Your web requirements are custom  2. Your customer focuses to manage and to store the data 3. User has lot interaction with the website  Typical scenario for framework: information system, web applicatiob, and data driven application Typically, i will start my journey with CMS, and when i feel so many to extend i will choose framework. How about you? 

Scheduled Web Site Backup on Azure

In the past we use sync application like Allway Sync, Cobian, or even FTP to backup our Azure hosted Website. Nowadays, Azure provides you an easy way to backup your website thorugh scheduled or manual backup on their management portal. This post will describe you steps that need to perform to create automatic backup on your website. Login to your Azure Management Portal Click the Website menu on the left side Click the website that you want to backup. click scale menu On the scale menu, change the hosting plan into Standard. Please save the changes Add a services called data services and create Storage Click the backups menu, change the automated backup to ON , select your storage accounts, choose the frequence and hit the save button. The backups will be stored on websitebackup storage container. you can download the backup from the portal. The backup contains your files, configuration and linked resources. If you don’t find your database backup on the zip package, please make sure that the database is already as linked resources. Otherwise, you can also backup use the export feature as i mentioned earlier Cheers, @ridife

Topics Highlights

About @ridife

This blog will be dedicated to integrate a knowledge between academic and industry need in the Software Engineering, DevOps, Cloud Computing and Microsoft 365 platform. Enjoy this blog and let's get in touch in any social media.

Xbox

Month List

Visitor