Repository navigation
Home de
🌐 Diese Seite auf: English · Português · Español · Français · Deutsch
Willkommen im offiziellen Wiki von eQuantic.UI, einem C#-Framework für ultraschnelle Interface-Entwicklung: Komponenten werden einmal in C# geschrieben und als DOM + CSS im Web (über TypeScript-Kompilierung und Intelligente Reconciliation) sowie als GPU-Pixel auf Native (über die hauseigene Photon-Engine: Metal/Vulkan, ohne WebView, ohne Skia) realisiert.
ui.equantic.tech/playground: Schreiben Sie eine Komponente
in C#, drücken Sie Run und sehen Sie zu, wie sie rendert. Es ist keine Simulation: Dasselbe eqc,
das Ihr Build verwendet, kompiliert das Snippet serverseitig, und das Ergebnis wird in die Seite
gemountet, also ist das, was Sie sehen, was das Framework tatsächlich tut. Nichts zu installieren.
Der Rest der Seite liegt auf ui.equantic.tech, und sie ist selbst eine eQuantic.UI-Anwendung, die die veröffentlichten Pakete konsumiert: ein dauerhafter Beweis, dass der Build eines Nutzers mit nichts als nuget.org funktioniert.
Ein Feature trägt die Version, in der es ausgeliefert wurde: Seit 0.2.0-preview.7 unter einer Überschrift, oder eine Seit-Spalte, wenn die Zeilen einer Tabelle unterschiedlich alt sind. Hat ein Abschnitt keine Marke, ist er älter als die Marken, nicht älter als das Feature.
Sie werden aus git abgeleitet, nie aus dem Gedächtnis geschrieben:
c=$(git log --diff-filter=A --format=%h -- path/to/File.cs | tail -1) # der Commit, der es hinzufügte
git tag --contains $c --sort=v:refname | head -1 # die erste Version damitJede Marke wird zweimal geschrieben, und das ist Absicht. Die kursive Zeile ist für den, der dies auf GitHub liest; der HTML-Kommentar daneben ist dieselbe Tatsache in einer Form, auf die eine Maschine filtern kann, und er ist hier unsichtbar:
*Seit **0.2.0-preview.20*** <!-- eq:since 0.2.0-preview.20 symbol="class InView" src="src/eQuantic.UI.Primitives" -->symbol ist das, WORAUS die Version abgeleitet wurde, damit die nächste Person die beiden Befehle von
oben gegen dieselbe Sache erneut laufen lassen kann, statt der Zahl zu vertrauen. src grenzt die
Suche ein, wenn der Name nicht eindeutig ist, und note ersetzt symbol, wenn kein einzelnes Symbol
die Antwort festnagelt.
Wo die Marke steht, bestimmt, was sie abdeckt:
- Unter einer Überschrift deckt sie diesen Abschnitt ab, bis zur nächsten Überschrift gleicher oder höherer Ebene.
-
Vor jeder Überschrift deckt sie die ganze Seite ab, und so sagt eine Seite, die es in einer
älteren Version noch nicht gab, genau das.
Storage,Analytics,MarkdownundMermaidtun das heute.
Die Website liest sie; ein Test bricht den Build, wenn der Kommentar und die kursive Zeile sich widersprechen. Marken, die mitten in einem Satz oder in einer Tabellenzelle stehen, sind reine Prosa, und darauf filtert noch nichts.
- Erste Schritte - Drei Befehle und kein Node: Vorlage installieren, Anwendung erzeugen, starten. Was die Vorlage mitgibt, und wohin ein Preview-Feed zeigt.
- Architekturüberblick - Die Landkarte: ein Vokabular, zwei Arten von Ziel, die Schichten und die zwei Pipelines, Server Actions, Routing, und wo es weitergeht.
- Write-once-Komponenten - DIE Architektur: ein Vokabular, zwei Realisierer, dieselbe Klasse im Web und auf Native.
-
Deklarative Oberfläche - Schreiben ohne
new: die Factory-Oberfläche, Ihre eigenen Komponenten, die ihr automatisch beitreten,[UiFactory], und die eine scharfe Kante. - Paketarchitektur - Entwurf eigenständiger Pakete und Verwaltung der Artefakte.
- Komponenten - Der Komponentenkatalog: Aktionen, Flächen, Navigation, Overlays, die recycelnde ListView, das Spreadsheet-Gitter.
- Styling - Typisiertes Styling in C#: eine Engine, atomares CSS im Web, GPU-Malen auf Native, dazu der HTML-Notausgang auf niedriger Ebene.
- Lokalisierung - Mehrsprachigkeit auf .NET-Art: die ausgelieferten Nahtstellen (SdkStrings, die Kulturhand von Photon) und der Entwurf von Track L.
- Analytics und GTM - Analytics als Fähigkeit, die die Anwendung per Konstruktor nimmt, mit Google Tag Manager als einem Installer und nicht als der Schnittstelle.
-
Architektur, gemessen - Der
docs/-Index des Repositorys: das Architektur-Audit, das Flutter-Paritäts-Audit, die laufenden Pläne.
- Photon-Engine - Die native GPU-Engine: normativer SDF-Kern, echter Text und echte Icons auf jeder Plattform (CoreText, DirectWrite, das Android-Textlayout), Metal- + Vulkan-Backends, die macOS-/iOS-/Android-/Windows-Shells.
- Design System - Typisierte Tokens, die ATOMARE Style-Engine (Styling ohne CSS), IAppTheme-/Material-3-Theming, Dichte und die dichten Typo-Stufen.
- Fähigkeiten - Kamera, Standort, Fotos, Biometrie, Netzwerk: Dienste, die per Konstruktor genommen, je Host realisiert und dort null sind, wo der Host sie nicht hat.
- Speicher - Eine Signatur über den jeweils eigenen Speicher jeder Plattform (localStorage, NSUserDefaults, SharedPreferences) und warum Geheimnisse ein eigener Typ sind, den der Browser nicht bereitstellen kann.
- Formulare - Ein Formular ist ein MODELL, kein Control: Werte, Flags, Regeln, Fehler und das eine laufende Submit leben in Primitives, also läuft dasselbe C# auf dem Server, im Browser-Zwilling und in einem nativen Fenster.
- Code-Editor - Das Editor-MODELL, auf dem eine IDE aufbaut: Zeilendokumente, inkrementelles Highlighting für fünf Sprachen und jede, die eine Anwendung registriert, ein Undo, das eine Tippfolge zusammenfasst, und der Controller hinter jedem Editierbefehl.
- Markdown - Markdown, gerendert als das Design System: ein Parser auf jeder Seite (SSR, Photon, Browser-Zwilling), gethemt vom IAppTheme der Anwendung selbst.
- Mermaid - Flussdiagramme und Sequenzdiagramme, gezeichnet vom Design System selbst, ohne mermaid.js; ```mermaid-Zäune in Markdown rendern nativ.
- Compiler (CSharpToJs) - Wie wir C# in performantes TypeScript überführen.
- Unterstützte C#-Features - Detaillierte Matrix der unterstützten Sprachfeatures und APIs.
- Externe Typauflösung - Wie der Compiler Klassen auflöst, die in externen Dateien definiert sind.
- Build-Ablauf - Wie die Kompilierungs-Pipeline mit null externen Abhängigkeiten arbeitet.
- Runtime (TypeScript) - Details zum Reconciler, zur Zustandsverwaltung und zum Lebenszyklus der Komponenten.
- Performance und Optimierung - Keyed Diffing, Listener-Verfolgung per WeakMap und weitere Optimierungen.
-
Server-Integration -
AddUI(),UIOptions, Middleware, SSR und SEO-Konfiguration. -
Asset-Verwaltung -
IRequireAssets,IComponentAssetProvider<T>und automatische Asset-Injektion. -
BunPackage - npm-Pakete direkt in der
.csprojdeklarieren (nullpackage.json). - Sicherheit und Server Actions - Autorisierung, Payload-Validierung und Schutz der Server Actions.
- Bildoptimierung - Serverseitige Bildoptimierung im Stil von Next.js (Skalieren, WebP, Caching).
-
Diagramme -
BarChartund die Diagrammschicht, einmal geschrieben und auf jedem Ziel gezeichnet. - Icons - Lucide, Tabler, Heroicons und mehr.
-
Lottie -
.lottie- und.json-Animationen über die dotLottie-Player-Komponente.
- Debugging und Entwicklungswerkzeuge - Professionelles Debugging mit Logger und Fehler-Overlay.
- Projekt-Roadmap - Was kommt.
Tip
Diese Dokumentation wird mit der Entwicklung des Projekts aktualisiert. Wenn Sie Unstimmigkeiten finden, melden Sie sie gern.
🏁 Hier starten
🏗️ Architektur
- Architekturüberblick
- Write-once-Komponenten
- Deklarative Oberfläche
- Paketarchitektur
- Komponenten
- Styling
- Lokalisierung
- Analytics und GTM
📱 Write-once
- Photon-Engine
- Design System
- Fähigkeiten
- Speicher
- Formulare
- Code-Editor
- Markdown
- Mermaid
- E-Mail-Rendering
⚙️ Kompilierung
⚡ Runtime
🔌 Server
🎨 Ökosystem
🚀 Entwicklung