Right now, I’m going through the pros and cons of two approaches for database and services, but each has it’s own long list of side effects and benefits, which is going to take some time to get my head around it.
For the time being I will mention the two directions and a starting point for the pros and cons, and if/when I complete the list, I can share the rest.
Note: I have a large app to build that will require 4 modules: Admin, Website (Marketing site + anonymous usage of system), Vendor and consumer.
The Website, Vendor and consumer modules will be written as SPA in Vue. These are public facing modules to be able to run on Mobile as efficiently as possible.
The Admin, depends on the following direction.
a) Firebase: (Firestore, Cloud Function, Firebase storage, Firebase hosting and etc.) - All the way for backend data and backend services.
i. A lot of backend services are in place,
ii. Great performance with Firestore,
iii. Saves me a lot of time to build backend REST services,
iv. Auth system built in,
v. Easy hosting,
vi. good access to run serverless functions.
vii. Firesrore SDK is very easy to use in Vue.
i. Putting all my eggs in Google basket.
ii. No control of pricing like I’d would if I was running a fixed monthly charge of Dedicated server with my own app server.
iii. Firestore query is very primitive compared to SQL query.
iv. I have to write the whole Admin in Vue as well.
v. If your app runs Cron Jobs, get ready to pay a lot of monthly charge to uncle Google.
b) MSFT Backend REST hand built server using WebAPI and IdentityServer4 for auth and MySQL for database.
i. #1 the monthly cost is a lot less and fully under my control.
ii. No charge on the CPU or calling my own functions or running my own queries.
iii. I can build powerful queries either using MSFT Entity Framework (ORM) or writing SP.
iv. Much more powerful queries that Firebase offers.
v. The Admin can be written in ASP Core as server side that connects directly to my database. Big time saving here.
vi. I will build the auth server using Identityserver4 that becomes part of the backend server.
i. I have to build the complete REST server to serve the Vue modules.
ii. I have to host and maintain my own database and application.
iii. I have to build my own LIVE server to update all users in RealTime and it is built into Firestore.
These are just from the top of my head.
Hope this helps Scott!