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.
var hiddenAndOffline = FileAttributes.Hidden | File.Attributes.Offline;
if((dir.Attributes & hiddenAndOffline) == hiddenAndOffline)
{
/* Файл скрыт и offline*/
}
if((dir.Attributes & hiddenAndOffline) != 0)
{
/* Файл скрыт или offline или всё вместе */
}