Repository navigation
Expand file tree
/
Copy pathProgram.cs
More file actions
77 lines (65 loc) · 3.02 KB
/
Copy pathProgram.cs
File metadata and controls
77 lines (65 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// ---------------------------------------------------------------------------------------------------------------------
// Imports
// ---------------------------------------------------------------------------------------------------------------------
using System.Drawing;
using InfiniFrame;
using InfiniFrame.Application;
using InfiniFrame.WebServer;
using InfiniFrame.Window.Features.WebMessaging.Handlers;
using InfiniFrameExample.WebApp.Blazor.Components;
using Serilog;
namespace InfiniFrameExample.WebApp.Blazor;
// ---------------------------------------------------------------------------------------------------------------------
// Code
// ---------------------------------------------------------------------------------------------------------------------
public static class Program {
[STAThread]
private static void Main(string[] args) {
// -------------------------------------------------------------------------------------------------------------
// Builder
// -------------------------------------------------------------------------------------------------------------
InfiniFrameApplicationBuilder builder = InfiniFrameApplication.CreateBuilder(args);
builder.WithWindow(window => window
.SetIconFile("wwwroot/favicon.ico")
.SetLocation(new Point(100, 100))
.SetSize(new Size(800, 600))
.RegisterOpenExternalTargetWebMessageHandler()
);
builder.Services
.AddLogging(config => {
config.ClearProviders();
config.AddSerilog();
})
.AddSerilog(config => {
config.WriteTo.Async(static c => c.Console())
.MinimumLevel.Debug();
})
.AddRazorComponents()
.AddInteractiveServerComponents();
builder.Services.AddHttpClient("ServerApi", configureClient: (sp, client) => {
var config = sp.GetRequiredService<IConfiguration>();
// Prefer ASPNETCORE_URLS, then "urls", then a fallback
string urls = config["ASPNETCORE_URLS"]
?? config["urls"]
?? "http://localhost:5000";
string baseUrl = urls
.Split(';', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)
.First();
client.BaseAddress = new Uri(baseUrl);
});
builder.Services.AddScoped(sp => sp.GetRequiredService<IHttpClientFactory>().CreateClient("ServerApi"));
builder.Services.AddInfiniFrameJs();
builder.UseWebServer(web => {
web.WebHost.UseStaticWebAssets();
web.ConfigureWebApplication(webApp => {
webApp.UseRouting();
webApp.UseAntiforgery();
webApp.MapStaticAssets();
webApp.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
});
});
InfiniFrameApplication application = builder.Build();
application.Run();
}
}