shesha-io / shesha-framework

An open-source Low-Code development framework for .NET developers. Create .NET based business applications with 80% less code.
https://shesha.io
Apache License 2.0
380 stars 75 forks source link

Optimize solution startup time by skipping the bootstrapper process for any DLLs which have not changed #2199

Closed ihouvet closed 2 weeks ago

ihouvet commented 1 month ago

Overview

Solutions startup time can be a little bit longer on Shesha applications and seem to be offputting to some community members see. In particular of the boottrappers seem to consume the most time.

Acceptance Criteria

  1. save list of dlls (name, versions and MD5) on each startup and check the difference. If during the application initialization we realize that all dlls are the same as on previous successful startup we can skip both migrations and bootstrappers. On each bootstrapper we can build a list of dlls which contain classes to be processed and check part of the list.
IvanIlyichev commented 1 month ago

Hi @AlexStepantsov. I've implemented base functionality, current the application skips all bootstrappers when assemblies stay unchanged. Please review code of bootstrappers to ensure that they don't prepare additional data (e.g. cache)