ESP Document - G3 Technical Information
D247 - Öffentliche Dokumente - Simone Beckmann - 17/03/2020
<h1> Technical Information LEEGOO BUILDER G3 </h1> [TOC] # LEEGOO BUILDER G3 Desktop Application ## Destription The application was completely reimplemented based on [LEEGOO BUILDER G2](https://www.eas-solutions.de/cpq-produkte/leegoo-builder-engineering-edition-g2.html "LEEGOO BUILDER G2")"Know How". ## Architecture [LEEGOO BUILDER G3](https://www.eas-solutions.de/cpq-produkte/leegoo-builder-engineering-edition-g3.html "LEEGOO BUILDER G3") was developed as a server-client application. The server and client are delivered in one application, so the software can connect directly to the database and no additional installation is required except for the SQL Server.  ## Frameworks and tools used    | Property | Value | | ------------ | ------------ | | Programming Language | [C# ](https://de.wikipedia.org/wiki/C-Sharp "C# ") | |Display |[WPF (Windows Presentation Foundation)](https://de.wikipedia.org/wiki/Windows_Presentation_Foundation "WPF ()")| | Architectural pattern | [MVVM](https://de.wikipedia.org/wiki/Model_View_ViewModel "MVVM") mit [Prism](https://stackoverflow.com/questions/6273357/what-is-prism-for-wpf "Prism") | |Connection Server :fa-exchange: Client| [WCF(Windows Communication Foundation)](https://de.wikipedia.org/wiki/Windows_Communication_Foundation "WCF(Windows Communication Foundation)") | |UI elements| [Devexpress WPF](https://www.devexpress.com/ "Devexpress") | ## Client Automation API For the automation of the desktop application an API is available. It allows executing the functions of the desktop application (e.g. create a new project, create a new proposal...) | Property | Value | | ------------ | ------------ | |Type|[WEB API](https://de.wikipedia.org/wiki/ASP.NET#ASP.NET_Web_API "WEB API")| |Technology|[REST](https://de.wikipedia.org/wiki/Representational_State_Transfer "REST")| |Authentication|None, as useable only in direct connection with the desktop application| |Transfer|[XML](https://de.wikipedia.org/wiki/Extensible_Markup_Language "XML"), [JSON](https://de.wikipedia.org/wiki/JavaScript_Object_Notation "JSON")| |Client DLL|Yes, one [.Net Core](https://de.wikipedia.org/wiki/.NET_Core ".Net Core") Dll | # LEEGOO BUILDER G3 API ## Description In addition to the application`s Client Automation API there also exists a standalone API which provides all functions of LEEGOO G3. ## Architecture  <div class="alert alert-success" role="alert">The API can be accessed using a HTTP request. In addition to the supported formats, XML and JSON, [Protobuf](https://de.wikipedia.org/wiki/Protocol_Buffers "Protobuf") compression is used for faster and more efficient transfers.</div> ## Frameworks und tools used <img src="/image/d70b67f0-d501-e911-80dd-d0bf9c3a26d9" height="100" /> <img src="/image/66235993-e301-e911-80dd-d0bf9c3a26d9" width="250" /> <img src="/image/30373406-e401-e911-80dd-d0bf9c3a26d9" width="250" /> <img src="/image/e7f9db37-e501-e911-80dd-d0bf9c3a26d9" width="250" /> | Property | Value | | ------------ | ------------ | | Programming Language | [C# ](https://de.wikipedia.org/wiki/C-Sharp "C# ") | |Technology|[REST](https://de.wikipedia.org/wiki/Representational_State_Transfer "REST")| | Architectural pattern |Data storage/transmission with [POCO](https://en.wikipedia.org/wiki/Plain_old_CLR_object) Classes | |Transfer|[XML](https://de.wikipedia.org/wiki/Extensible_Markup_Language "XML"), [JSON](https://de.wikipedia.org/wiki/JavaScript_Object_Notation "JSON"), [Protobuf](https://de.wikipedia.org/wiki/Protocol_Buffers "Protobuf")| |Client|Yes, one [.Net Core](https://de.wikipedia.org/wiki/.NET_Core ".Net Core") Dll, [Javascript](https://de.wikipedia.org/wiki/JavaScript "Javascript") and [Typescript](https://de.wikipedia.org/wiki/TypeScript "Typescript") Client | |Authentication|[JWT (JSON Web Token)](https://de.wikipedia.org/wiki/JSON_Web_Token "JWT(JSON Web Token)")| |Documentation|Created automatically with [SWAGGER](https://de.wikipedia.org/wiki/Swagger_(Software)| # LEEGOO BUILDER G3 Web Application ## Description The Web Interface is currently in development and its aim is the incremental provision of the entire functionality of [LEEGOO BUILDER G3](https://www.eas-solutions.de/cpq-produkte/leegoo-builder-engineering-edition-g3.html "LEEGOO BUILDER G3") on the WEB too. ## Architecture  <div class="alert alert-info" role="alert">All operations of the Web Interface are routed via the LEEGOO G3 Web API to the SQL server.</div> ## Frameworks and tools used <img src="/image/1c0b3e5b-4f41-ec11-a8bd-0abaea937309" height="100" /> <img src="/image/ff8b9242-db01-e911-80dd-d0bf9c3a26d9" height="150" /> <img src="/image/83e70e10-4f41-ec11-a8bd-0abaea937309" height="100" /> <img src="/image/a26acdf1-3042-ec11-a8bd-0abaea937309" width="400" /> <img src="/image/82495c92-2f42-ec11-a8bd-0abaea937309" width="400" /> | Property | Value | | ------------ | ------------ | | Programming Language | <a href="https://en.wikipedia.org/wiki/C_Sharp_(programming_language)" title="C#">C#</a> | |Display |[Asp.net Core](https://en.wikipedia.org/wiki/.NET_Core "Asp.net Core") and [Blazor](https://en.wikipedia.org/wiki/Blazor "Blazor")| |Display Framework|[Bootstrap Material](https://daemonite.github.io/material/ "Bootstrap Material")| | Technology | [Blazor Server](https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-5.0#blazor-server) and [Blazor WebAssembly](https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-5.0#blazor-webassembly "Blazor WebAssembly")| |Connection Server :fa-exchange: Client| Web-API with [REST](https://en.wikipedia.org/wiki/Representational_state_transfer "REST") | |UI Elements| [Syncfusion](https://www.syncfusion.com/blazor-components "Syncfusion Blazor") und [Blazorise](https://blazorise.com/ "Blazorise") | # LEEGOO BUILDER G3 in the Cloud LLEEGOO BUILDER G3 Desktop can also be run in the Cloud, and the various operating modes are listed below. For these operating modes it is irrelevant which Cloud service is used ([Azure](https://de.wikipedia.org/wiki/Microsoft_Azure "Azure"), [Amazon Web Services](https://de.wikipedia.org/wiki/Amazon_Web_Services "Amazon Web Services"), Self Hosted, etc..). Prerequisites: - [Virtual Maschine](https://de.wikipedia.org/wiki/Virtuelle_Maschine "Virtuelle Maschine") - Windows operating system - The normal [G3 Minimum Requirements](/document/c0f7a349-43f9-e811-80dd-d0bf9c3a26d9) ## 1. Operating mode: SQL Server in the Cloud  In this operating mode the SQL server is executed in the Cloud and LEEGOO BUILDER G3 [On Premises](https://de.wikipedia.org/wiki/On_Premises "On Premises") (on site) is run. <div class="alert alert-danger" role="alert">The important point is that with this operating mode connection to the Internet is excellent as the application is very data-heavy.</div> ## 2. Operating mode: Entire application in the cloud  With this operating mode the entire application is ‘outsourced’ to the Cloud and the display is transferred remotely via the Internet. <div class="alert alert-warning" role="alert">This requires a large amount of resources in the Cloud. At least 2GB of RAM are required per user.</div> ## 3. Operating mode: LEEGOO BUILDER G3 Web Application  In this operating mode, a server is operated with the LEEGOO BUILDER G3 web application. The browser is used for display and operation. <div class="alert alert-success" role="alert">The individual components from the "Server" area can also be operated on different servers as well as in the cloud.</div> <div class="alert alert-warning" role="alert">Only the user views are available in the web application yet. Until full implementation of all functions, LEEGOO BUILDER G3 is required for administration.</div>