× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Cách kích hoạt đăng nhập ứng dụng .NET Console

14/09/2023 01:42

Nếu bạn không muốn tạo máy chủ trong ứng dụng bảng điều khiển của mình thì sao? Hãy cùng tìm hiểu sâu hơn trong bài viết dưới đây nhé

Ñếu ứng dụng bảng điều khiển .NET có nhu cầu ghi nhật ký thì cách hiển nhiên là tạo máy chủ. Nếu bạn không muốn tạo máy chủ trong ứng dụng bảng điều khiển của mình thì sao? Ngoài ra còn có một cách khác. Hãy xem hai cách khác nhau để kích hoạt đăng nhập vào ứng dụng bảng điều khiển .NET là gì.

Ứng dụng bảng điều khiển dựa trên máy chủ

Đối với ứng dụng bảng điều khiển dựa trên máy chủ, mọi việc rất đơn giản. Đó là một quá trình gồm hai bước:

Gói NuGet

Có ba gói NuGet có thể được thêm vào ứng dụng bảng điều khiển.

Mã số

Dưới đây là ví dụ về cách thêm SimpleConsolenhà cung cấp, ghi lại tất cả tin nhắn vào bảng điều khiển. Mã này cũng được thêm vào EventLogvới tư cách là nhà cung cấp nhật ký, giúp ghi lại tất cả các tin nhắn đã ghi vào trình xem sự kiện. Bạn có thể mở ứng dụng EventViewer trên windows để xem các tin nhắn đã ghi.

class Program
{
    static Task Main(string[] args)
    {
        var host = CreateHostBuilder(args).Build();
        var workerInstance = host.Services.GetRequiredService<Worker>();
        workerInstance.Execute();
        return host.RunAsync();
    }

    static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureServices((_, services) =>
        {
            services.AddTransient<Worker>();
        })
        .ConfigureLogging((_, logging) => 
        {
            logging.ClearProviders();
            logging.AddSimpleConsole(options => options.IncludeScopes = true);
            logging.AddEventLog();
        });
}

Ứng dụng bảng điều khiển không phải máy chủ

Loại ứng dụng bảng điều khiển này không thiết lập máy chủ chung . Thay vào đó, chúng ta sẽ sử dụng LoggerFactory.Create để xây dựng các phiên bản logger. Phương thức này lấy tham số Hành động có thể được sử dụng để định cấu hình nhà cung cấp dịch vụ ghi nhật ký.

Gói NuGet

Các gói NuGet bên dưới sẽ được thêm vào ứng dụng bảng điều khiển.

 

Mã số

Dưới đây là mã ví dụ tạo phiên bản LoggerFactory để tạo phiên bản ILogger .

class Program
{
    static void Main(string[] args)
    {
        using var loggerFactory = LoggerFactory.Create(builder =>
        {
            builder
                .AddFilter("Microsoft", LogLevel.Warning)
                .AddFilter("System", LogLevel.Warning)
                .AddFilter("NonHostConsoleApp.Program", LogLevel.Debug)
                .AddConsole();
        });
        ILogger logger = loggerFactory.CreateLogger<Program>();
        logger.LogInformation("Info Log");
        logger.LogWarning("Warning Log");
        logger.LogError("Error Log");
        logger.LogCritical("Critical Log");
        Console.ReadLine();
    }
}

Ý kiến ​​– Ưu và nhược điểm

Theo tôi, cách tiếp cận với Host có quy mô tốt hơn. Nếu bạn có một ứng dụng bảng điều khiển có kích thước phù hợp, nó sẽ cần tệp cấu hình, bạn cũng có thể muốn sử dụng tính năng chèn phụ thuộc và các tính năng khác. Các tính năng này rất dễ triển khai bằng ứng dụng bảng điều khiển dựa trên Máy chủ .

Việc tạo máy chủ có thể tốn rất nhiều công sức nếu bạn đang tạo một ứng dụng bảng điều khiển đơn giản, ứng dụng này rất nhỏ hoặc có vòng đời ngắn hơn. Nếu ứng dụng chỉ có một vài lớp và logic rất hạn chế thì tốt hơn nên sử dụng phương pháp tiếp cận ứng dụng Bảng điều khiển không lưu trữ.