Câu hỏi phỏng vấn .NET Core
Câu hỏi

Explain two types of deployment for .NET Core applications

Câu trả lời

In .NET Core, there are two primary types of deployment: Framework-Dependent Deployment (FDD) and Self-Contained Deployment (SCD). Each has its own characteristics, advantages, and disadvantages.

Framework-Dependent Deployment (FDD)

Characteristics:

  • Dependency on Installed Runtime: The application relies on the presence of a shared .NET runtime on the target machine. Only the application binaries and third-party dependencies are included in the deployment package.
  • Smaller Package Size: Since the .NET runtime is not included, the deployment package is significantly smaller. For example, a simple ASP.NET Core application might be around 2.66 MB[1].
  • Cross-Platform: The application can be run on any platform that has the appropriate .NET runtime installed. The same binary can be executed on different operating systems using the dotnet command.

Advantages:

  • Reduced Disk and Memory Usage: Multiple applications can share the same .NET runtime, reducing overall disk and memory usage.
  • Automatic Updates: Applications can benefit from updates to the .NET runtime without needing to be recompiled or redeployed. This includes security patches and performance improvements[1][2].

Disadvantages:

  • Runtime Version Dependency: The application depends on the version of the .NET runtime installed on the target machine, which can lead to compatibility issues if the runtime is not the expected version[1][10].

Self-Contained Deployment (SCD)

Characteristics:

  • Includes .NET Runtime: The deployment package includes the .NET runtime and all necessary libraries, making the application independent of the installed runtime on the target machine.
  • Larger Package Size: Because the runtime is included, the deployment package is much larger. For instance, a self-contained deployment for a simple ASP.NET Core application can be around 93.1 MB for Windows and 96.3 MB for Linux[1].
  • Platform-Specific: The application is compiled for a specific platform and cannot be run on other platforms without recompilation. Different packages need to be created for different target environments (e.g., win-x64, linux-x64)[1][5].

Advantages:

  • Version Control: Developers have complete control over the .NET runtime version used by the application, ensuring consistency across different environments[1][5].
  • No Runtime Installation Required: The application can run on machines without any .NET runtime installed, simplifying deployment in environments where inst...
middle

middle

Gợi ý câu hỏi phỏng vấn

senior

Does .NET support Multiple Inheritance?

middle

Explain what is included in .NET Core?

middle

When should we use .NET Core and .NET Standard Class Library project types?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào