ASP.NET Core (backend) + Avalonia UI (desktop frontend)
We are tasked to create an application for our project and we have to make sure that it can perform on kind of low-end hardware something like intel i3 7th gen and 8gb of ram, thats why I chose C# because my thinking is that if I try to create a web app is that I'd be working with the chromium engine which is slow (please correct me on this)
We are tasked to create essentially 2 applications in one. The first application is Attendance Monitoring System and Student Management System.
the Attendance monitoring system
- Able to log the attendance and stores it in the database
- Capture the picture of the said attendee
the Student Management System
- The Administrator is able to upload documents and etc.
- The administrator is able to manipulate the data that was written.
My questions are the following:
1. Is this "tech-stack" plausible? Am I able to divide the work for frontend guys and backend guys?
2. Is it easy for me to create ASP.NET Core APIs? (I came from Java Springboot and have quite good understanding on how it works)
3. Are the said technologies hard to learn? (most of my groupmates have basic understanding of programming in C#)
4. Do I ensure that this application can be deployed in a low-end hardware like the specs mentioned above?
Thank you!
12 Replies
intel i3 7th gen and 8gb of ram, thats why I chose C# because my thinking is that if I try to create a web app is that I'd be working with the chromium engine which is slow (please correct me on this)Do you mean that on such hardware modern browser won't work? I don't know but could be the case, although you may check firefox/chrome requirements. You can make backend api in whatever works on that hardware (maybe Java Spring which you've mentioned are ok with that or ASP.NET or nodeJS) and then front in Avalonia or maybe something else. You've mentioned that you understand Java and your mates C# - is there any technology you all have in common? As delivering a project and learning new language on the same time may be difficult.
a web app would probably be fine for that
but a desktop app is also fine
1. of course
2. i dont know springboot but if you have any experience with creating web apis in any framework i imagine the transition to asp.net wouldnt be hard. minimal apis are pretty simple too. but if you do have experience with soringboot why not use it? are you the only dev?
ah your not solo
3. for avalonia if no one has experience with xaml guis then its a bit of a learning curve yeah
and avalonia in particular doesnt have good docs
4. you could create a low end vm to test your app ig
can you elaborate a bit on that? Sounds interesting...
you can create a virtual machine with something like virtualbox, give it like 1 or 2 cores and 8gb of ram, and see how well your app performs there
itll most probably perform better on the actual low end machine
https://www.virtualbox.org/, this one? 🙂
yeah or vmware or hyperv
Holy shit the idea of using virtual machines to simulate sounded really simple and brilliant, thank you
Thank you for this
I'll try to create much questions as possible
thanks, could be useful one day 😉
to be honest, nothing of that sounds like its hard on any kind of hardware.
asp.net core will be easy to transition from spring boot.
with ef core as ORM in the backend u also have a fast development time, especially because it provides stuff like migrations which is in the end something similar to version control.
that should fix ur backend needs.
for the front end, MAUI, WPF, Avalonia are all fine.
it depends really on ur needs here. if u want native controls u would have to choose between MAUI and WPF,
if u want cross platform, u probably want Avalonia, which is the only of these three major GUI frameworks that supports linux.
if u want to support mobile, u would nowadays consider MAUI (Avalonia is on its way, but its slow but steadily improving)
regarding docs around avalonia: check the WPF docs, they kept it quite similiar, here and there u find a type thats named a bit different, but if u look at a class list (eg in the API reference) u will see it quickly
tho i dont have experience with MAUI, i can confirm that all of this can run on such low spec.
cuz im currently dealing with a 8GB RAM and the following as CPU:
for both dev and using clients and servers
1.Yes, your chosen tech stack is plausible. You can easily divide work between frontend (using Razor Pages or Blazor) and backend (using ASP.NET Core Web API) teams.
2.Yes, if you're familiar with Java Spring Boot, you'll find it easy to create ASP.NET Core APIs. The concepts and architecture are quite similar, making the transition straightforward.
3.No, that is not hard.If they have understanding of C#,they should be able to pick up ASP.NET Core and related technologies fairly quickly.
4.Yes, it can run smoothly on low-end hardware like an Intel i3 with 8GB RAM.