#pragma checksum "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "2f24c949f1506c0af01ff0ad4871df18de750aa6"
// <auto-generated/>
#pragma warning disable 1591
namespace BookRegistry.Client.Pages
{
    #line hidden
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Components;
#nullable restore
#line 1 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using System.Net.Http;

#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using System.Net.Http.Json;

#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using Microsoft.AspNetCore.Components.Forms;

#line default
#line hidden
#nullable disable
#nullable restore
#line 4 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using Microsoft.AspNetCore.Components.Routing;

#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using Microsoft.AspNetCore.Components.Web;

#line default
#line hidden
#nullable disable
#nullable restore
#line 6 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using Microsoft.AspNetCore.Components.WebAssembly.Http;

#line default
#line hidden
#nullable disable
#nullable restore
#line 7 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using Microsoft.AspNetCore.Authorization;

#line default
#line hidden
#nullable disable
#nullable restore
#line 8 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using Microsoft.AspNetCore.Components.Authorization;

#line default
#line hidden
#nullable disable
#nullable restore
#line 11 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using CommonHelpers.WASM;

#line default
#line hidden
#nullable disable
#nullable restore
#line 12 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using AFXUI;

#line default
#line hidden
#nullable disable
#nullable restore
#line 14 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using BookRegistry.Client;

#line default
#line hidden
#nullable disable
#nullable restore
#line 15 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using BookRegistry.Client.DB;

#line default
#line hidden
#nullable disable
#nullable restore
#line 16 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using BookRegistry.Client.Shared;

#line default
#line hidden
#nullable disable
#nullable restore
#line 17 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using BookRegistry.Client.Components;

#line default
#line hidden
#nullable disable
#nullable restore
#line 18 "D:\HANDICRAFT\BookRegistry\Client\_Imports.razor"
using BookRegistry.Client.Pages;

#line default
#line hidden
#nullable disable
    [Microsoft.AspNetCore.Components.RouteAttribute("/about")]
    public partial class AboutPage : APageComponent
    {
        #pragma warning disable 1998
        protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder)
        {
#nullable restore
#line 3 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
  try{

#line default
#line hidden
#nullable disable
            __builder.OpenElement(0, "div");
            __builder.AddAttribute(1, "style", "float: right");
            __builder.AddMarkupContent(2, "<span style=\"color: Red; font-size: x-large; vertical-align: middle\">&#x21AF;</span>\r\n   ");
            __builder.OpenComponent<BookRegistry.Client.Shared.AButton>(3);
            __builder.AddAttribute(4, "Title", "Unhandled exception test");
            __builder.AddAttribute(5, "Classes", "ml-1");
            __builder.AddAttribute(6, "Focusable", Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<System.Boolean>(
#nullable restore
#line 7 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
                                                                       false

#line default
#line hidden
#nullable disable
            ));
            __builder.AddAttribute(7, "ON_Click", new System.Action(
#nullable restore
#line 8 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
                      UnhandledExceptionButton_OnClick

#line default
#line hidden
#nullable disable
            ));
            __builder.AddAttribute(8, "ChildContent", (Microsoft.AspNetCore.Components.RenderFragment)((__builder2) => {
                __builder2.AddContent(9, "Throw unexpected error");
            }
            ));
            __builder.CloseComponent();
            __builder.CloseElement();
            __builder.AddMarkupContent(10, "\r\n");
            __builder.AddMarkupContent(11, "<p class=\"page_ImpressiveTitle\">\r\n   About <b>BookRegistry</b>-application (sample of DB-operation tool)\r\n   <img src=\"images/book_registry.png\" class=\"ml-1\"></p>\r\n");
            __builder.AddMarkupContent(12, @"<div id=""about_pg_ContactsDIV""><div style=""text-align: right""><span class=""about_pg_ContactsCaptionSPAN"">Author requisites (contacts):</span><br></div>
   <div style=""margin-top: 5px""><span class=""about_pg_AuthorRequisiteNameSPAN"">Author<b>:</b></span>
         <b>Sergei Y.Kitaev</b><br>
      <span class=""about_pg_AuthorRequisiteNameSPAN"">E-Mail<b>:</b></span>
         <a href=""mailto:S.Y.Kitaev@yandex.ru"" title=""Mail-to"">S.Y.Kitaev@yandex.ru</a><br>
      <span class=""about_pg_AuthorRequisiteNameSPAN"">Residence<b>:</b></span>
         Voronezh, Russia
   </div></div>
");
            __builder.AddMarkupContent(13, @"<p align=""justify""><b>BookRegistry</b>-program is a sample Web-application which is intended to probe <b>Blazor-WASM</b> framework
   and to work out some generalized C#-cooperation: WASM-Blazor client (C#) versus Web-server in ASP.NetCore (C#),
   plus necessary TypeScript for access to DOM. The purpose was to elaborate a multilingual support
   (in programming languages) for traditional client-server functionality that should be accessible from Web-page
   (so-called client-server app.engine for Web).
</p>
");
            __builder.AddMarkupContent(14, "<span class=\"page_ContentTitleSPAN mt-1\">Content:</span>\r\n");
            __builder.OpenElement(15, "ol");
            __builder.AddAttribute(16, "class", "primaryIndexOL");
            __builder.OpenElement(17, "li");
            __builder.OpenElement(18, "a");
            __builder.AddAttribute(19, "href", "#internals");
            __builder.AddAttribute(20, "title", "Sctoll to");
            __builder.AddAttribute(21, "onclick", "return HRef_ScrollToId(\'about_pg_InternalsA\')");
            __builder.AddContent(22, 
#nullable restore
#line 38 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
          BlockTitle_Internals

#line default
#line hidden
#nullable disable
            );
            __builder.CloseElement();
            __builder.CloseElement();
            __builder.AddMarkupContent(23, "\r\n   ");
            __builder.OpenElement(24, "li");
            __builder.OpenElement(25, "a");
            __builder.AddAttribute(26, "href", "#at_server_side");
            __builder.AddAttribute(27, "title", "Sctoll to");
            __builder.AddAttribute(28, "onclick", "return HRef_ScrollToId(\'about_pg_AtServerSideA\')");
            __builder.AddContent(29, 
#nullable restore
#line 43 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
          BlockTitle_AtServerSide

#line default
#line hidden
#nullable disable
            );
            __builder.CloseElement();
            __builder.CloseElement();
            __builder.AddMarkupContent(30, "\r\n   ");
            __builder.OpenElement(31, "li");
            __builder.OpenElement(32, "a");
            __builder.AddAttribute(33, "href", "#inside_database");
            __builder.AddAttribute(34, "title", "Sctoll to");
            __builder.AddAttribute(35, "onclick", "return HRef_ScrollToId(\'about_pg_InsideDatabase\')");
            __builder.AddContent(36, 
#nullable restore
#line 48 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
          BlockTitle_InsideDatabase

#line default
#line hidden
#nullable disable
            );
            __builder.CloseElement();
            __builder.CloseElement();
            __builder.AddMarkupContent(37, "\r\n   ");
            __builder.OpenElement(38, "li");
            __builder.OpenElement(39, "a");
            __builder.AddAttribute(40, "href", "#resume");
            __builder.AddAttribute(41, "title", "Sctoll to");
            __builder.AddAttribute(42, "onclick", "return HRef_ScrollToId(\'about_pg_ResumeA\')");
            __builder.AddContent(43, 
#nullable restore
#line 53 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
          BlockTitle_Resume

#line default
#line hidden
#nullable disable
            );
            __builder.CloseElement();
            __builder.CloseElement();
            __builder.CloseElement();
            __builder.AddContent(44, 
#nullable restore
#line 58 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
 BlockTitleHRef( "I.", 0, "about_pg_InternalsA", "#internals",
   BlockTitle_Internals, null, "about_pg_AtServerSideA" )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(45, @"<p class=""littleSpacingP_J"">
   SPA (<i><b>S</b>ingle <b>P</b>age <b>A</b>pplication</i>) is equipped with so-called <b><i>Magistral</i></b>-layout,
   which has been designed as SPA-container for clean internal SPA-navigation and possibility of explicit cancellation
   (abandoment by user) of server request invocation. Such cancellable busy-operation is realized here as semi-blocking
   visual procedure.
</p>
");
            __builder.AddMarkupContent(46, @"<p class=""littleSpacingP_J""><b>Magistral</b>-layout is implemented with help of <b>TypeScript</b> (there is C# API for Blazor-client; .NET-classes:
   <b>AFXUI.UMagistral</b> and <b>AFXUI.UMagistralMI</b>). Magistral HTML (layout elements in markup) was intentionally built
   at topmost in <b>wwwroot</b>&#x2F;<b>index.html</b> (instead of Razor-file) — for the sake of sense presence of embedded SPA-enhancement,
   as if it has been built-in into browser (for such perceptional effect).
</p>
");
            __builder.AddMarkupContent(47, @"<p class=""littleSpacingP_J""><b>BookRegistry</b>-application consists of a set of modules (DLLs) and each side (client/server) has its own subset.<br>
   This Blazor-based program (WASM-client) uses special error control technique for UI-access from C#.
   This technique is based on extensive usage of corresponding exception guards in UI-message/event circuit.
   This mechanism together with other helpers of visual character are packed into <b>AFXUI</b> auxiliary library
   (<b>AFXUI.dll</b>-module; <b>AFXUI</b>-namespace). Public types (lib.classes etc) has following name-patterns:
   “<b><i>U…</i></b>” (prefixed) and “<b><i>…AFX</i></b>” (suffixed).<br>
   Other app.-framework extensions are implemented in client-project, in <b>AFXUI.App</b>-subfolder.<br>
   In addition, this application uses its own modest component collection located in “<b>Client\Shared</b>”-subfolder
   (“<b><i>A…</i></b>”-classes).<br>
   In folder “<b>SHARED\$General.AFX</b>” there are extension classes for both sides: C#-client &#x2F; C#-server.<br>
   (<b>AFX</b>-abbreviation means here <i><b>A</b>pplication <b>F</b>ramework <b>E</b>xtension</i>.)
</p>
");
            __builder.AddMarkupContent(48, @"<p class=""littleSpacingP""><b>BookRegistry</b>-application is build with auxiliary base library <b><i>DotNetHelpers</i></b>
   (set of libs with extensions of general runtime character), which is represented by following modules:<br>
   – <b>CommonHelpers.WASM.dll</b> (at client-side);<br>
   – <b>CommonHelpers.dll</b>+<b>CommonHelpers.2.dll</b>+<b>CommonHelpers.3.dll</b> (at server-side).
</p>
");
            __builder.AddMarkupContent(49, @"<p class=""littleSpacingP""><u>Satellite library sources (<b>DotNetHelpers</b> base-lib.):</u><br>
   – “HandicraftSDK\DotNetHelpers\Libraries\.WASM\<b>CommonHelpers.WASM</b>” (code-packages: <b><i>$Core</i></b>);<br>
   – “HandicraftSDK\DotNetHelpers\Libraries\.WIN32\<b>CommonHelpers.*</b>” (code-packages:
   <b><i>$Core</i></b>, <b><i>$Plus</i></b>, <b><i>$Console</i></b>, <b><i>$Data</i></b>, <b><i>$ORM</i></b>, …).
</p>");
            __builder.AddContent(50, 
#nullable restore
#line 98 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
 BlockTitleHRef( "II.", 0, "about_pg_AtServerSideA", "#at_server_side",
   BlockTitle_AtServerSide, "about_pg_InternalsA", "about_pg_InsideDatabase" )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(51, @"<p class=""littleSpacingP_J"">
   On side of Web-server service code is separated into following two different parts:
   “<b>solid-code</b>” (C#-controllers) and “<b>soft-code</b>” (procedural T-SQL).
   In spite of any difficulties of such division, soft-code is very useful thing, because it may be corrected
   on the fly, without need of server restart. Also the code may be changed by little pieces as opposed to solid C# EXE/DLL-recompilation.<br></p>
");
            __builder.AddMarkupContent(52, @"<p class=""littleSpacingP_J"">
   In <b>BookRegistry</b> Web-server each query to database is represented by two nearly-situated files of same base-name:
   <b><i>&lt;NamedQuery&gt;</i>.sql</b> and <b><i>&lt;NamedQuery&gt;</i>.cs</b>. Such DB-query is visible not only for server-side C#,
   but also exposes correspondent data-structures and/or error-statuses for C#-client (WASM app.).
   Directives of conditional compilation are used intensively for the sake of flexibility
   (instead of simple DLL-sharing by means of .NET-standard format).<br>
   The project uses (intentionally) its own specially-made support for database access — extremely lightweight ORM to SP
   and “traditional queries”, which sits directly on ADO.NET.
</p>
");
            __builder.AddMarkupContent(53, @"<p class=""littleSpacingP_J"">
   Database data-models (structures) are normally declared only once in C# — simultaneously for server and client sides
   (with some differences, that is achieved via conditional compilation).
   This approach is used to form interaction API (Web-client—Web-server) with minimal involvement of usage of JSON-attributes for C#.
   Exchangeable C# data-models are implemented as so-called self-checking objects, with strict property getters
   applied to values, whose type (in C#) does not provide null. Such autonomous checking technique (C#-only)
   is used to guarantee consistency of nulls.<br>
   At client-side additional JSON-to-null checking is fired automatically by service invocation routine (in AFX) —
   when response-object is received from server. It is realized as so-called “back-packing”-test (in AFX)
   for the sake of null-checking (before access to response object properties from application writer client-code).
</p>");
            __builder.AddContent(54, 
#nullable restore
#line 127 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
 BlockTitleHRef( "III.", 0, "about_pg_InsideDatabase", "#inside_database",
   BlockTitle_InsideDatabase, "about_pg_AtServerSideA", "about_pg_ResumeA" )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(55, @"<p class=""littleSpacingP_J"">
   At DB-level — <b>Transact-SQL</b> is used for queries. SQL-code is maintained with help of <b><i>SQL-file technology</i></b> —
   lightweight scripting&#x2F;command-line tools for Transact-SQL enhancement, which allows to organize SQL-project on base
   of traditional file&#x2F;directory structure usage (for code-files), with corresponding code-translation: from SQL-files to SQL-database.<br>
   In <b>BookRegistry</b>-application SQL-code is located in following folders:<br>
   – “<b>SHARED\$ClientServer\!DB-queries (application SP)</b>”: top-level stored procedures;<br>
   – “<b>SQL (DB-modelling)</b>”: base stored procedures, table creation, initial data filling, data deletion, table-structure removal etc.
</p>
");
            __builder.AddMarkupContent(56, @"<p class=""littleSpacingP""><u><b>SQL-file technology</b> includes following components:</u><br>
   – <b><i>$SqlTrans</i></b> command utility (SQL-file to DB translation, preprocessor etc; it is based on well-known <b>SQLCMD</b>-tool);<br>
   – other CMD-utilities: <b><i>$SqlUplodad</i></b>, <b><i>$SqlToCsvExp</i></b> (<b><i>SqlToCsvExport.exe</i></b>), <b><i>$SqlCon</i></b>, <b><i>$SQL</i></b>;<br>
   – <b><i>SQLAUX</i></b> scripting library (helper objects like SP, scalar/table-function, etc; import definitions, templates etc);<br>
   – integration features (plugin/marco for <b>Far-Manager</b>, settings/instructions, etc);<br>
   – miscellaneous templates and samples, illustration pictures etc.
</p>");
            __builder.AddContent(57, 
#nullable restore
#line 146 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
 BlockTitleHRef( "IV.", 0, "about_pg_ResumeA", "#resume",
   BlockTitle_Resume, "about_pg_InsideDatabase" )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(58, @"<p class=""littleSpacingP_J""><b>BookRegistry</b>-program together with its libraries (<b>AFXUI.dll</b>, <b>DotNetHelpers</b>,
   modest app.component lib. and other AFX-subfolders in application projects), — all this has been built/united
   as minimal implementation of simple idea: to launch <u><b>Client-Server WASM-application</b> in <b>C#</b>, <b>TypeScript</b> and <b>T-SQL</b></u>.
   <b>BookRegistry</b>-program (WASM-Blazor app.) is working example of this idea.<br>
   (This minimal sample code-project was produced in <b>April 2020</b>.)
</p>

");
            __builder.AddMarkupContent(59, "<p class=\"bigSpacingP\"><span class=\"small_bold_text\">Main assembly properties (WASM):</span></p>\r\n");
            __builder.OpenElement(60, "table");
            __builder.AddAttribute(61, "class", "propertyTABLE");
            __builder.AddMarkupContent(62, "<thead><tr><th class=\"propertyNameTH\">Assembly attribute</th>\r\n         <th class=\"propertySeparatorTH\"></th>\r\n         <th class=\"propertyValueTH\">Value</th></tr></thead>\r\n   ");
            __builder.OpenElement(63, "tbody");
            __builder.AddContent(64, 
#nullable restore
#line 168 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Assembly (name)",  BookRegistry_Client_Info.AssemblyName, true )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(65, "\r\n      ");
            __builder.AddContent(66, 
#nullable restore
#line 169 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Exe-module",       BookRegistry_Client_Info.ModuleName )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(67, "\r\n      ");
            __builder.AddContent(68, 
#nullable restore
#line 170 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Product",          BookRegistry_Client_Info.ProductName )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(69, "\r\n      ");
            __builder.AddContent(70, 
#nullable restore
#line 171 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Version",          BookRegistry_Client_Info.VersionString )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(71, "\r\n      ");
            __builder.AddContent(72, 
#nullable restore
#line 172 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Configuration",    BookRegistry_Client_Info.ConfigurationName )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(73, "\r\n      ");
            __builder.AddContent(74, 
#nullable restore
#line 173 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Target framework", BookRegistry_Client_Info.TargetFramework )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(75, "\r\n      ");
            __builder.AddContent(76, 
#nullable restore
#line 174 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Description",      BookRegistry_Client_Info.ProductDescription )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(77, "\r\n      ");
            __builder.AddContent(78, 
#nullable restore
#line 175 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Company",          BookRegistry_Client_Info.CompanyName )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(79, "\r\n      ");
            __builder.AddContent(80, 
#nullable restore
#line 176 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Authors",          BookRegistry_Client_Info.Authors )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(81, "\r\n      ");
            __builder.AddContent(82, 
#nullable restore
#line 177 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Copyright",        BookRegistry_Client_Info.CopyrightString )

#line default
#line hidden
#nullable disable
            );
            __builder.AddMarkupContent(83, "\r\n      ");
            __builder.AddContent(84, 
#nullable restore
#line 181 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
       PropertyTR( "Public key token", BookRegistry_Client_Info.PublicKeyToken )

#line default
#line hidden
#nullable disable
            );
            __builder.CloseElement();
            __builder.CloseElement();
#nullable restore
#line 185 "D:\HANDICRAFT\BookRegistry\Client\Pages\AboutPage.razor"
}catch(Exception e){ProcessRenderingError(GetType(),e);}

#line default
#line hidden
#nullable disable
        }
        #pragma warning restore 1998
    }
}
#pragma warning restore 1591
