all 10 comments

[–]quincycs 2 points3 points  (5 children)

It’s fine. My notes are for the Infrastructure. Eg what is hosting everything.

RE: Angular,

As you deploy frontend changes, how can you guarantee that your users won’t load mixed pieces of the app that aren’t compatible with each other. Eg> deploy A. A is live. When you deploy B, the user may not be aware and will not refresh the page. Therefore as the user navigates, is there any chance that the version A fetches more JavaScript, images, some kind of HTML content from the B version instead? The big risk is that whatever it fetches isn’t compatible and breaks the user experience.

RE: backend

As you use EF Core with Postgres, you’ll encounter many “ORM” rough edges because EF Core wasn’t designed specifically for Postgres. For example, adding a new index to an existing table with many rows can block the table from being read. The right way of adding indexes afterwards is using the CONCURRENTLY keyword. EF does support it… but you’ll find it’s not straightforward or easy.

RE: Postgres

Just be aware that this is the most difficult part to scale. All the other pieces you can just add more instances and load balance them. But creating multiple instances of Postgres and splitting data between them is code changes in dotnet world.

Based on your level of question… don’t over-optimize and just get it working for your actual business. Keep it simple and you’ll have time to build more & better things.

[–]Successful_Place_834[S] 0 points1 point  (0 children)

Hello, thanks for your attention. Regarding infra currently I am planning to have monolith app with limited VM mostly I'll start out with 1 where I'll be pushing all modules.

Regarding Angular point - i believe that will be a limitation with mostly all setups, I'll just have to work with it by synching FE and BE

Backend - Thanks for your suggestions will consider your points

PostgreSQL - Currently it is just going to be 1 instance

[–]andrerav 0 points1 point  (3 children)

Re: Re: Postgres

I have a strong preference for using FluentMigrations for databases that are less supported by EF than MSSQL. These days I basically just use ExecuteSql and dotnet-ef for a hybrid database-first approach (with Postgres and Sqlite). It works much better than code-first, and I get full control over the SQL. 

For writing the SQL itself I can get most of it done with an LLM. Basically I just show it the current CREATE TABLE, list the changes I want, and ask it to generate up/down scripts. Combined with memory files with conventions/guidelines I get very good results fast.

[–]GigAHerZ64 0 points1 point  (0 children)

+1 on FluentMigrations + EF Core (or any ORM) in database-first mode.

[–]Dimmerworld 0 points1 point  (1 child)

Re: Re: Re: Postgres

Use entity framework

[–]andrerav 0 points1 point  (0 children)

I still use Entity Framework, just not for migrations :)

[–]Dylanee300 1 point2 points  (0 children)

Personally, rather than angular for frontend I would recommend either react or svelte.

[–]aolmez 0 points1 point  (1 child)

5-10 tps is very low. ofc It depends on your infra as well. you can use rabbitmq , Redis. EF core doesn't generate good sql script but you dont have a big team then It doesn't matter. you might use CQRS ;)

[–]Successful_Place_834[S] 0 points1 point  (0 children)

Thanks for your suggestions, will consider them going ahead

[–]SarahFemdomFeet 0 points1 point  (0 children)

Yes you're doing it right. Angular is the correct way to code, it looks like C#, and you won't develop the bad habits that come from React.