public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
var store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates.OfType()
.First(c => c.FriendlyName == "Ivan Yakimov Test-only Certificate For Server Authorization");
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseKestrel(options =>
{
options.Listen(System.Net.IPAddress.Loopback, 44321, listenOptions =>
{
var connectionOptions = new HttpsConnectionAdapterOptions();
connectionOptions.ServerCertificate = certificate;
listenOptions.UseHttps(connectionOptions);
});
})
.UseStartup();
});
}
}
Почему новые обновление не могут перейти например на net 6?
Или я возможно проглядел галочку при упаковке?
dotnet publish -r win-x64 --self-contained -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -o ./publish-path
Нужен ли на установленный .net на платформе где будет запускаться такое .net приложение?
Нужен ли на установленный .net на платформе где будет запускаться такое .net приложение?
C:/workspace
❯ dotnet new console -o DemoLinuxPublish
Шаблон "Консольное приложение" успешно создан.
Идет обработка действий после создания...
Выполнение "dotnet restore" для C:\workspace\DemoLinuxPublish\DemoLinuxPublish.csproj...
Определение проектов для восстановления...
Восстановлен C:\workspace\DemoLinuxPublish\DemoLinuxPublish.csproj (за 113 ms).
Восстановление выполнено.
C:/workspace took 2s
❯ cd .\DemoLinuxPublish\
C:/workspace/DemoLinuxPublish via .NET v6.0.100 net6.0 took 12s
❯ dotnet publish -c Release -r linux-x64 --self-contained -v q --nologo -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:DebugType=None -p:DebugSymbols=false -p:PublishReadyToRun=true -p:PublishTrimmed=true
C:/workspace/DemoLinuxPublish via .NET v6.0.100 net6.0 took 2s
❯ ls .\bin\Release\net6.0\linux-x64\publish\
Directory: C:\workspace\DemoLinuxPublish\bin\Release\net6.0\linux-x64\publish
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 21.03.2022 3:25 15866695 DemoLinuxPublish
как видим, после десериализации значения полей перепутались.
И я использую Newtonsoft.Json (13.0.1)
типы без ? принимать null не могут.
А если серьезно, то как все же гарантировать правильную работу кода при применении похода null reference type?
Можно ли все таки гарантировать что поле не будет равно null и при этом не пользоваться конструктором?
Нужно создать приложение под платформу .NET 5
Крайне желательно обеспечить отказоустойчивость всего этого дела, то есть даже если вдруг будет какой-то баг, то чтобы можно было легко закодить автоматический перезапуск.
получать по HTTP
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddHttpClient();
var app = builder.Build();
app.MapPost("/value", async ([FromBody] SensorReadings data, [FromServices] HttpClient httpClient) =>
{
// Что-то делаем с полученными данными
await httpClient.PostAsJsonAsync("https://example.com", data);
});
app.Run();
record SensorReadings(Guid SensorId, DateTimeOffset Timestamp, double Value);
и кроме как слов об оптимизаций я ничего особо не заметил....
Major areas of focus for .NET 7 include improved support for cloud native scenarios, tools to make it easier to upgrade legacy projects, and simplifying the developer experience by making it easier to work with containers.