We’re using VS and the following web frameworks are integrated
https://visualstudio.microsoft.com/vs/features/web/frameworks/
Angular Vue React Bootstrap Cordova
I’d like to know if there’s a web framework more integrated with Geode or which of these to choose for a UI layer?
Following up to what VHF stated, Spring Boot, on the other hand, contains excellent support for various Web Frameworks and other Web technologies. See here:
Also, client-side:
Most of these Boot features are conveniently provided via "Starters":
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-project/spring-boot-starters
In a typical Apache Geode application architecture, a developer would do as any database centric application would be designed, use the client/server topology.
In this arrangement then, the Spring Boot application would be the "client", using a ClientCache
instance, which Spring Boot for Apache Geode (SBDG) provides for you OOTB (see here). The server-side would strictly consist of the backend data store (i.e. Apache Geode servers), for purposes of caching, distributed compute, event stream processing, or even functioning as the application's System of Record (SOR), complete with persistence. The cluster of servers would not be serving up any Web Views, for data, or otherwise.
An Apache Geode cluster does expose certain Web Services (like the Developer REST API), but that is for purposes of building various Web clients using different technologies on the client (Spring/Java, JavaScript, etc).
As such, all user facing components of an application architecture should reside on the client-side, e.g. in 1 or more Spring Boot Web application(s) accessing the backend Apache Geode cluster (of (data/persistent-application-state maintaining) servers).
Of course, this is all simply recommended best practices and you are free to do as choose, but just keep in mind that clients and servers have very different resource needs and mixing the 2 is often not recommended, given the vagaries of JVM Heap management, among other things (e.g. service requests (with varying payloads), frequency or requests, and so on and so forth).
Hope this helps!