BookRegistry sample application (WASM_Blazor+TS+ADO+TSQL)

=== Content (main folders): ===

1) AFXUI — WASM-library for Blazor client (project);
2) AssemblyRef — dependencies and intermediate DLLs (DotNetHelpers, AFXUI.dll);
3) Auxiliary — auxiliary commands (.cmd);
4) Client — Blazor-WASM C# compilation (project);
5) Database images — backup files of TEST database: .mdf/.ldf (in .7z), .bak;
6) Server — ASP.NET server compilation (project);
7) SHARED — shared folders for C# client/server and SQL;
8) SQL (DB-modelling) — table structure creation, initial data filling, base SP etc.;
9) TypeScript — TS-support for WASM-Blazor app. (Magistral-layout for SPA etc.).

TypeScript project "TypeScript\BookRegistry.TS.njsproj" is for Visual Studio 2019.
But its compilation is unnecessary, because it is allready compiled:
*.ts => *.js ("outDir": "../Client/wwwroot/ts" in "TypeScript\tsconfig.json").

(SDK version 5.0.100 is explicitly specified in "global.json".)

=== Features: ===

Blazor WebAssembly (.NET 5.0 first release) is used for client project.
AspNetServer-project simulates dev.environment for the sake of static web-assets (server-to-client referencing)
that demand as yet development environment.
(Following simulation assignment is used at program start: ASPNETCORE_ENVIRONMENT = Development.)

The projects has initially compiled Debug-versions.
To make them runnable you have to modify corresponding ".StaticWebAssets.xml"-files with correct absolute paths:
– "…\BookRegistry\Server\bin\Debug\net5.0-windows\BookRegistry.Server.StaticWebAssets.xml" (is required);
– "…\BookRegistry\Client\bin\Debug\net5.0\BookRegistry.Client.StaticWebAssets.xml" (not necessary).
You need to specify your actual value for "Path"/"BasePath"-attribute of respective "StaticWebAssets\ContentRoot"-elements!!!
Also you can simply put "BookRegistry" folder into "C:\HANDICRAFT\" (to avoid corrections of the static web assets).

ATTENTION!
To build server-project correctly you need to correct following web-asset files in StaticWebAssets-folder (Server-proj.):
"BookRegistry\Server\StaticWebAssets\**\*.StaticWebAssets.xml" (in Debug, Release and Publish subfolders).
These files require correction with actual absolute paths dependent from location of BookRegistry-sample at your machine!!!

Server-project is not binary dependent from the Client-project (in this BookRegistry-sample).
C# code sharing is used instead of DLL-import.
That is why the Server does not contain (is not obligated to contain) any Client-platform binary specific.
Nevertheless static web-assets are needed and used by the server in order to provide client-side SPA with WebAssembly binaries
and with all equipped files from wwwroot-folder and subfolders: HTML/CSS, JS, JPG/PNG/ICO etc.

=== Requirements (start, re-build): ===

.NET 5.0
SDK 5.0.100
MSBUILD (desirable)
Visual Studio Community 16.8.0+ (desirable)
TypeScript SDK 3.7.4.0+ (desirable)

Microsoft SQL Server 2017 (140)+
SQL-Server database:
– compatibility level: Microsoft SQL Server 2017 (140);
– collation: Cyrillic_General_CI_AS;
– name: TEST (DB logical names: TEST, TEST_log).

=== Dependencies (packages, DLLs): ===

___ AFXUI.csproj: ___
: : : : :
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="5.0.0" />
: : : : :

___ BookRegistry.Client.csproj: ___
: : : : :
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="5.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="5.0.0" PrivateAssets="all" />
<!--<PackageReference Include="Microsoft.Extensions.Configuration" Version="5.0.0" />-->
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="5.0.0" />
<PackageReference Include="System.Net.Http.Json" Version="5.0.0" />
: : : : :

___ BookRegistry.Server.csproj: ___
: : : : :
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="5.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.0" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
: : : : :

=== Internal DLLs (DotNetHelpers from HandicraftSDK): ===
AssemblyRef\DotNetHelpers\.WASM\CommonHelpers.WASM.dll
AssemblyRef\DotNetHelpers\.WIN32\CommonHelpers.dll
AssemblyRef\DotNetHelpers\.WIN32\CommonHelpers.2.dll
AssemblyRef\DotNetHelpers\.WIN32\CommonHelpers.3.dll

– – –