Einrichten von Optimizely auf Aspire: Eine exemplarische Vorgehensweise für Entwickler – Technical Dogsbody – Principal C# Developer

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 …

  1. Starten Sie ein Optimizely-Projekt:

    dotnet new epicmsempty --name Something.Web
    

    Beginnen Sie mit der Erstellung eines neuen Optimizely-Projekts mit dem angegebenen Befehl.

  2. 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.

  3. Upgrade auf C# 8.0: Stellen Sie sicher, dass Ihr Projekt C# 8.0 für Aspire verwendet.

  4. Konfigurieren Sie die Starteinstellungen: Beheben Sie ein potenziell bekanntes Problem, indem Sie Ihre Starteinstellungen so festlegen, dass die Ports 8000 und 8001 verwendet werden.

  5. 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).

  6. 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);
    
  7. 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"
          }
        }
      }
    }
    
  8. Vermehren RUN_MODE Umgebungsvariable: Sicherstellen, dass die RUN_MODE Die Umgebungsvariable wird korrekt vom Apphost an die Web-App übergeben, indem Folgendes an Ihre angehängt wird AddProject Aufbau:

    .WithEnvironment("RUN_MODE", Environment.GetEnvironmentVariable("RUN_MODE"));
    
  9. 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.

  10. Protokollierungskonfiguration: Aktualisieren Sie die Protokollierungseinrichtung Program.cs So zentralisieren Sie die Protokollverwaltung:

    .ConfigureLogging(l =>
    {
        l.AddOpenTelemetry(logging =>
        {
            logging.IncludeFormattedMessage = true;
            logging.IncludeScopes = true;
        });
    })
    
  11. Endgültige Integration: Schließen Sie die Einrichtung durch Integration ab services.AddServiceDefaults(_webHostingEnvironment, _configuration); in dein Startup.cs.

  12. 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.
Lesen Sie auch  Die Entscheidung über Spot-ETFs auf Ethereum hat sich erneut verzögert. Wie hat der ETH-Kurs reagiert?

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.