Tauchen Sie ein in die Einrichtung von Optimizely in einer Dotnet Aspire-Umgebung unter Verwendung von C# 8.0. Befolgen Sie diese detaillierte Anleitung, um Ihr Optimizely-Projekt von Grund auf zu konfigurieren. Für einen tieferen Einblick und Zugriff auf die vollständige Codebasis besuchen Sie das Optimizely Aspire GitHub-Repository.
Hinweis: Sie müssen Visual Studio Preview und Aspire installiert haben – https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/setup-tooling?tabs=visual-studio
Noch ein Hinweis: Ich weiß, dass ich Passwörter im Code habe, aber dies ist ein POC, um zu beweisen, dass es funktioniert. Es wird niemals in eine Produktionsumgebung gelangen. Irgendwann kann es durchaus sein, dass ich das Gerüst in eine Konsolen-App verlagere und zu einer if-Anweisung im AppHost wechsle, um die Funktionalität vollständig aus der Web-App zu verschieben, aber im Moment ist es in Ordnung …
-
Starten Sie ein Optimizely-Projekt:
dotnet new epicmsempty --name Something.Web
Beginnen Sie mit der Erstellung eines neuen Optimizely-Projekts mit dem angegebenen Befehl.
-
Lösungseinrichtung in Visual Studio: Öffnen Sie Visual Studio, erstellen Sie eine neue leere Projektmappe und fügen Sie dann das neu erstellte Webprojekt zu dieser Projektmappe hinzu.
-
Upgrade auf C# 8.0: Stellen Sie sicher, dass Ihr Projekt C# 8.0 für Aspire verwendet.
-
Konfigurieren Sie die Starteinstellungen: Beheben Sie ein potenziell bekanntes Problem, indem Sie Ihre Starteinstellungen so festlegen, dass die Ports 8000 und 8001 verwendet werden.
-
Integrieren Sie .Net Aspire Orchestration: Klicken Sie mit der rechten Maustaste auf das Webprojekt, wählen Sie Hinzufügen → .Net Aspire Orchestration und fahren Sie mit den gegebenen Anweisungen fort (es könnte ein Fehler auftreten, ignorieren Sie ihn vorerst, wir beheben ihn später).
-
Datenbankkonfiguration: Fügen Sie die Datenbank mit der folgenden Konfiguration zu Ihrem Apphost-Projekt hinzu:
builder.AddSqlServerContainer("something.db", "0pti_R0cks", 1433) .WithVolumeMount("./App_Data/database-files", "/var/opt/mssql/data", VolumeMountType.Bind);
-
Starteinstellungen und Umgebungsvariablen aktualisieren: Ändern Sie die Starteinstellungen, um sie einzuschließen
RUN_MODE
unter den Umgebungsvariablen und stellen Sie das Protokoll aus Sicherheitsgründen auf HTTPS um:{ "$schema": "http://json.schemastore.org/launchsettings.json", "profiles": { "Web": { "commandName": "Project", "dotnetRunMessages": "true", "launchBrowser": "true", "applicationUrl": "https://localhost:15138", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "DOTNET_ENVIRONMENT": "Development", "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:16093", "RUN_MODE": "WEB" } }, "Scaffold": { "commandName": "Project", "dotnetRunMessages": "true", "launchBrowser": "true", "applicationUrl": "https://localhost:15138", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "DOTNET_ENVIRONMENT": "Development", "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:16093", "RUN_MODE": "SCAFFOLD" } } } }
-
Vermehren
RUN_MODE
Umgebungsvariable: Sicherstellen, dass dieRUN_MODE
Die Umgebungsvariable wird korrekt vom Apphost an die Web-App übergeben, indem Folgendes an Ihre angehängt wirdAddProject
Aufbau:.WithEnvironment("RUN_MODE", Environment.GetEnvironmentVariable("RUN_MODE"));
-
Anpassung der Serviceerweiterung: Ändern Sie die ServiceDefaults-Erweiterungsklasse zur Unterstützung
Host.CreateDefaultBuilder(args)
für Optimizely-Kompatibilität. Spezifische Änderungen werden im Optimizely Aspire GitHub-Repository detailliert beschrieben. -
Protokollierungskonfiguration: Aktualisieren Sie die Protokollierungseinrichtung
Program.cs
So zentralisieren Sie die Protokollverwaltung:.ConfigureLogging(l => { l.AddOpenTelemetry(logging => { logging.IncludeFormattedMessage = true; logging.IncludeScopes = true; }); })
-
Endgültige Integration: Schließen Sie die Einrichtung durch Integration ab
services.AddServiceDefaults(_webHostingEnvironment, _configuration);
in deinStartup.cs
. -
Datenbankinitialisierung und Anwendungsstart:
- Führen Sie den AppHost aus
Scaffold
Modus zum Initialisieren der Datenbank. - Wechseln zu
Web
Modus, um Ihre Optimizely-Site über Aspire betriebsbereit zu machen.
- Führen Sie den AppHost aus
Den vollständigen Quellcode und zusätzliche Ressourcen finden Sie im GitHub-Repository von Optimizely Aspire, wo Sie tiefer in die Struktur des Projekts, die Einrichtungsnuancen und die benutzerdefinierten Konfigurationen eintauchen können.
Andy Blyth
Andy Blyth ist ein technischer Architekt/leitender C#-Entwickler, studiert Kampfsport und versucht, Blogbeiträge zu schreiben (wenn er sich erinnert). Derzeit arbeitet er als C#-Hauptentwickler in Manchester, Großbritannien.