-
Notifications
You must be signed in to change notification settings - Fork 85
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/signumsoftware/framework
- Loading branch information
Showing
15 changed files
with
58 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
31c91da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Slimming Signum.React
The typical use case of Signum Framework is that of a Line-of-business application: power users using on a daily baisis an application hosted in the intranet or private cloud.
There are cases however where this application has a public-facing portal consumed by anonymous users.
A few months ago Signum Framework took the first step to improve this scenario by only providing type information for allowed types. This improves security and performance by delivering less metadata.
Today we do the second step: By splitting some javascript modules, moving things around and using
React.lazy
/React.Suspense
we can save the anonymous user the loading of some signum hevyweight modules like Navigator, Finder, Operations, Constructor...This, together with some webpack optimizations, can be a big difference for casual users / mobile phone users / google performance benchmarks.
File Size evolution
Before any optimization, vendor.js and main.js are about 7.8 Mb in development mode.
After tihs Sigum.React changes, vendor.js and main.js are 6.1Mb, almost 1.8 Mb less!.
By configuring webpack to use production mode build, the numbers go down to 2.2 Mb! What an improvement! This will make debugging client-code in production harder but is totally worth it for public facing applications.
We can also reduce the size of vendor by 300kb by removing d3.js, probably not used in a public catalog.
Finally, we can move font-awesome to vendor.js. This doesn't make any difference in vendor.js + main.js size, but keeps our main.js clean and mean less tranasfer since main.js changes more often than vendor.js.
What has changed:
In Framework
Hooks.tsx
toNavigator.tsx
(useFetchInState
,useFetchInStateWithReload
,useFetchAndRemember
,useFetchAll
).Hooks.tsx
toFinder.tsx
(useQuery
,useInDB
).FunctionalAdapter
has been moved fromFrameModal.tsx
to Modals.tsxIn Extensions
AuthClient
has been splitted inAuthClient.tsx
(login, logout, change password, etc...) andAuthAdminClient.tsx
(for admins).In Southwind
MainPublic.tsx
(initial module for everybody) andMainAdmin.tsx
, (async loaded only for admins)DashboardClient
RestClient
and uses React.lazy forWorkflowDropdown
andToolbarRenderer
build:dll
andbuild:webpack
, renamesbuild
tobuild-development
and creates a newbuild-production
."Anonymous"
user instead of no user at all will be used when PublicCatallog is selected.Diff of southwind changes: https://github.com/signumsoftware/southwind/compare/8bd40e35607e5965ff21cd1cdb7eb9a30f551157..ef375d3f9e71ff9365be1484f0b9d3b549f8efcf
What's coming next?
In the next days you can expect an update to Typescript 3.9 (with faster builds!) and a new Pivot table chart, so be quick to update your code to get the new goodies :)
Enjoy :)
31c91da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome!
31c91da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great improvements! Thanks :)
31c91da
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.