()
- .BuildServiceProvider()
- .RunBootsharp();
-```
-
-— we can now provide implementation for `IProvider` and use `Generator` in JavaScript/TypeScript:
-
-```ts
-import bootsharp, { Provider, Generator } from "bootsharp";
-
-// Implement 'IProvider'.
-Provider.getData = () => ({
- info: "...",
- items: []
-});
-
-await bootsharp.boot();
-
-// Use 'Generator'.
-const result = Generator.generate();
-```
+https://bootsharp.com/guide
diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index a5163284..6d4a8080 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -75,5 +75,5 @@ export default defineConfig({
"/api/": [{ text: "Reference", items: (await import("./../api/typedoc-sidebar.json")).default }]
}
},
- sitemap: { hostname: "https://sharp.elringus.com" }
+ sitemap: { hostname: "https://bootsharp.com" }
});
diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md
index 4082a6d1..4cc1d71d 100644
--- a/docs/guide/getting-started.md
+++ b/docs/guide/getting-started.md
@@ -46,6 +46,10 @@ public static partial class Program
}
```
+::: info NOTE
+Authoring interop via static methods is impractical for large API surfaces—it's shown here only as a simple way to get started. For real projects, consider using [interop interfaces](/guide/interop-interfaces) instead.
+:::
+
## Compile ES Module
Run following command under the solution root:
diff --git a/docs/guide/index.md b/docs/guide/index.md
index e80761e9..989ad9e4 100644
--- a/docs/guide/index.md
+++ b/docs/guide/index.md
@@ -2,25 +2,25 @@
## What?
-Bootsharp is a solution for building web applications, where domain is authored in .NET C# and is consumed by a standalone JavaScript or TypeScript project.
+Bootsharp is a solution for building web applications where the domain logic is authored in .NET C# and consumed by a standalone JavaScript or TypeScript project.
## Why?
-C# is a popular language for building maintainable software with complex domain logic, such as enterprise and financial applications. However, its frontend capabilities are lacking, especially compared to the web ecosystem.
+C# is a popular language for building maintainable software with complex domain logic, such as enterprise and financial applications. However, its frontend capabilities are lacking—especially when compared to the web ecosystem.
-Web platform is the industry-standard for building modern user interfaces. It has best in class tooling and frameworks, such as [React](https://react.dev) and [Svelte](https://svelte.dev) — allowing to build better frontends faster, compared to any other language/platform ecosystem.
+The web platform is the industry standard for building modern user interfaces. It offers best-in-class tooling and frameworks, such as [React](https://react.dev) and [Svelte](https://svelte.dev), enabling developers to build better frontends faster than with any other language or platform.
-In contrast to solutions like [Blazor](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor), which attempt to bring the entire web platform inside .NET (effectively reversing natural workflow), Bootsharp facilitates high-level interoperation between C# and TypeScript, allowing to build domain and UI layers under their natural ecosystems.
+In contrast to solutions like [Blazor](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor), which attempt to bring the entire web platform into .NET (effectively reversing the natural workflow), Bootsharp facilitates high-level interoperation between C# and TypeScript. This allows you to build the domain and UI layers within their natural ecosystems. The project can then be published to the web or bundled as a native desktop or mobile application with [Electron](https://electronjs.org) or [Tauri](https://tauri.app).
## How?
-Bootsharp installs as a [NuGet package](https://www.nuget.org/packages/Bootsharp) to the C# project dedicated for building the solution for web. It's specifically designed to not "leak" the dependency outside entry assembly of the web target, which is essential to keep the domain clean from any platform-specific details.
+Bootsharp is installed as a [NuGet package](https://www.nuget.org/packages/Bootsharp) into the C# project dedicated to building the solution for the web. It is specifically designed not to "leak" the dependency outside the entry assembly of the web target—essential for keeping the domain clean of any platform-specific details.
-While it's possible to author both export (C# -> JS) and import (C# <- JS) bindings via static methods, complex solutions will benefit from interface-based interop: simply feed Bootsharp C# interfaces describing export and import API surfaces, and it will automatically generate associated bindings and type declarations.
+While it's possible to author both export (C# → JS) and import (C# ← JS) bindings via static methods, complex solutions benefit from interface-based interop. Simply provide Bootsharp with C# interfaces describing the export and import API surfaces, and it will automatically generate the associated bindings and type declarations.

-Bootsharp will automatically build and bundle JavaScript package when publishing C# solution, as well as generate `package.json`, so that you can reference the whole C# solution as any other ES module in your web project.
+Bootsharp will automatically build and bundle the JavaScript package when publishing the C# solution, and generate a `package.json`, allowing you to reference the entire C# solution as any other ES module in your web project.
::: code-group
```jsonc [package.json]
diff --git a/docs/guide/interop-interfaces.md b/docs/guide/interop-interfaces.md
index f4433335..d3874f79 100644
--- a/docs/guide/interop-interfaces.md
+++ b/docs/guide/interop-interfaces.md
@@ -1,8 +1,8 @@
# Interop Interfaces
-Instead of manually authoring a binding for each method, make Bootsharp generate them automatically with `[JSImport]` and `[JSExport]` assembly attributes.
+Instead of manually authoring a binding for each method, let Bootsharp generate them automatically using the `[JSImport]` and `[JSExport]` assembly attributes.
-For example, say we have a JavaScript UI (frontend), which needs to be notified when a data is mutated on the C# domain layer (backend), so it can render the updated state; additionally, our frontend may have a setting (eg, stored in browser cache) to temporary mute notifications, which needs to be retrieved by the backend. Create the following interface in C# to describe the expected frontend APIs:
+For example, say we have a JavaScript UI (frontend) that needs to be notified when data is mutated in the C# domain layer (backend), so it can render the updated state. Additionally, the frontend may have a setting (e.g., stored in the browser cache) to temporarily mute notifications, which the backend needs to retrieve. You can create the following interface in C# to describe the expected frontend APIs:
```csharp
interface IFrontend
@@ -12,7 +12,7 @@ interface IFrontend
}
```
-Now add the interface type to the JS import list:
+Now, add the interface type to the JS import list:
```csharp
[assembly: JSImport([
@@ -20,20 +20,7 @@ Now add the interface type to the JS import list:
])]
```
-Bootsharp will generate following C# implementation:
-
-```csharp
-public static partial class JSFrontend : IFrontend
-{
- [JSFunction] public static partial void NotifyDataChanged (Data data);
- [JSFunction] public static partial bool IsMuted ();
-
- void IFrontend.NotifyDataChanged (Data data) => NotifyDataChanged(data);
- bool IFrontend.IsMuted () => IsMuted();
-}
-```
-
-— which you can use in C# to interop with the frontend and following TypeScript spec to be implemented on the frontend:
+Bootsharp will automatically implement the interface in C#, wiring it to JavaScript, while also providing you with a TypeScript spec to implement on the frontend:
```ts
export namespace Frontend {
@@ -42,7 +29,7 @@ export namespace Frontend {
}
```
-Now say we want to provide an API for frontend to request mutation of the data:
+Now, say we want to provide an API for the frontend to request a mutation of the data:
```csharp
interface IBackend
@@ -59,7 +46,7 @@ Export the interface to JavaScript:
])]
```
-Get the following implementation auto-generated:
+This will generate the following implementation:
```csharp
public class JSBackend
@@ -76,7 +63,7 @@ public class JSBackend
}
```
-— which will produce following spec to be consumed on JavaScript side:
+— which will produce the following spec to be consumed on the JavaScript side:
```ts
export namespace Backend {
@@ -84,8 +71,8 @@ export namespace Backend {
}
```
-To make Bootsharp automatically inject and inititliaize generate interop implementations, use [dependency injection](/guide/extensions/dependency-injection) extension.
+To make Bootsharp automatically inject and initialize the generated interop implementations, use the [dependency injection](/guide/extensions/dependency-injection) extension.
::: tip Example
-Find example on using interop interfaces in the [React sample](https://github.com/elringus/bootsharp/tree/main/samples/react).
+Find an example of using interop interfaces in the [React sample](https://github.com/elringus/bootsharp/tree/main/samples/react).
:::
diff --git a/docs/index.md b/docs/index.md
index f56ae81b..6e315db2 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -7,7 +7,7 @@ titleTemplate: Bootsharp • :title
hero:
name: Bootsharp
text: Use C# in web apps with comfort
- tagline: Author domain in C#, while taking full advantage of the modern JavaScript frontend ecosystem.
+ tagline: Author the domain in C#, while fully leveraging the modern JavaScript frontend ecosystem.
actions:
- theme: brand
text: Get Started
@@ -31,7 +31,7 @@ hero:
✨
High-level Interoperation
- Generates JavaScript bindings and type declarations for your C# APIs facilitating seamless interop between the domain and UI.
+ Generates JavaScript bindings and type declarations for your C# APIs, enabling seamless interop between domain and UI.
@@ -41,7 +41,7 @@ hero:
📦
Embed or Sideload
- Choose between embedding all the C# binaries into single-file ES module for portability or sideload for best performance and build size.
+ Choose between embedding all C# binaries into a single-file ES module for portability or sideloading for performance and size.
@@ -51,7 +51,7 @@ hero:
🗺️
Runs Everywhere
- Node, Deno, Bun, web browsers and even constrained environments, such as VS Code extensions — your app will work everywhere.
+ Node, Deno, Bun, web browsers—even constrained environments like VS Code extensions—your app runs everywhere.
@@ -63,7 +63,7 @@ hero:
⚡
Interop Interfaces
- Manually author interop APIs via static C# methods or simply feed Bootsharp your domain-specific interfaces — it'll figure the rest.
+ Manually author interop APIs via static C# methods or feed Bootsharp your domain-specific interfaces—it'll handle the rest.
@@ -73,7 +73,7 @@ hero:
🏷️
Instance Bindings
- When an interface value is specified in interop API, instance binding is generated allowing to interoperate on stateful objects.
+ When an interface value is used in interop, instance binding is generated to interoperate with stateful objects.
@@ -83,7 +83,7 @@ hero:
🛠️
Customizable
- Configure namespaces for emitted bindings, function and event names, C# -> TypeScript type mappings and more.
+ Configure namespaces for emitted bindings, function and event names, C# -> TypeScript type mappings, and more.
@@ -93,7 +93,7 @@ hero:
🔥
Modern .NET
- Supports latest runtime features: WASM multi-threading, AOT compilation, assembly trimming, streaming module instantiation.
+ Supports latest runtime features: WASM multi-threading, assembly trimming, NativeAOT-LLVM, streaming instantiation.
diff --git a/docs/public/img/llvm-bench.png b/docs/public/img/llvm-bench.png
index 234d795f554b6d4117031cc99bac8fed3fe1679b..6335661db0cc19e0dae71c37f73a4a483fffc71a 100644
GIT binary patch
literal 262387
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