best libraries for a journalling app (windows only)

hey guys. so i wanted to make a journalling app myself that'll keep me more accountable in the future. sure, i could use a markdown editor like obsidian or vscode's built-in markdown viewer, but i'm a developer and the best part about being a developer is remaking stuff that already exists just because you can aside from the backstory, what would be good libraries for this sort of thing? looking for a relatively gentle learning curve where i can get a grasp of the basics and get started easily. open to all suggestions and i need something to do over these coming weeks. this will probably be only a windows project, as my friend group only uses windows which is who i'll probably distribute this to. lemme know what you think 👍🏽
40 Replies
mg
mg3mo ago
depends what you need to get done any given thing will have multiple popular libraries to get it done e.g. for storing the journal entries you'll need a database, which you could be accessing using EF Core, Dapper, linq2db, etc if you want a gui and it's windows only you can use WPF
slowly losing it
slowly losing itOP3mo ago
how easy is it to get started with it?
mg
mg3mo ago
Hello World app with WPF in C# - Visual Studio (Windows)
Create a simple Windows Desktop .NET application in C# with Visual Studio by using the Windows Presentation Foundation (WPF) UI framework.
slowly losing it
slowly losing itOP3mo ago
for the database, this sounds stupid, but could i not just use a JSON/SQL file? or maybe something more adapted to storing and compressing raw text?
mg
mg3mo ago
json can work. if you're just storing plaintext it'll be feasible for a while json wll require loading everything into memory at startup and rewriting everything at once if you're just using one file you could also just use the filesystem and not use a database at all an "SQL file" isn't a thing. sqlite contains its databases in a single file, but that's the exception databases are their own applications that you have to communicate with that said, in this case, sqlite would be the best choice
slowly losing it
slowly losing itOP3mo ago
also it mentions here to use VS but my laptop doesn't exactly work the best with VS and operates much better with VSCode, but of course, there's no XML viewer in vscode (i think), so what do you suggest i do about that?
mg
mg3mo ago
not sure if there's much you can do
slowly losing it
slowly losing itOP3mo ago
that's what i meant: a sqlite connection ah yes, that's another good idea
mg
mg3mo ago
maybe just write the xaml -> run -> edit -> rerun i've never used WPF
slowly losing it
slowly losing itOP3mo ago
hmm, options, options what have you used then?
mg
mg3mo ago
all i do are web apps you could also look into avalonia, which i also haven't used
slowly losing it
slowly losing itOP3mo ago
hm, ok. i'll take a look iz there anyone here who has used avalonia or wpf?
mg
mg3mo ago
lots probably #gui would be where they're active
slowly losing it
slowly losing itOP3mo ago
also do you know about flutter?
mg
mg3mo ago
i've heard of it
slowly losing it
slowly losing itOP3mo ago
hm ok
mikecodesdotnet
mikecodesdotnet3mo ago
I've used both. Started as a WPF developer. Fell in love with Avalonia and ultimately joined the Avalonia team.
slowly losing it
slowly losing itOP3mo ago
what about avalonia makes you like it so much, versus WPF?
mikecodesdotnet
mikecodesdotnet3mo ago
Cross-platform was the initial reason I tried it. I had a compled WPF application that I wanted to run in an embedded scenario. I couldn't understand the embedded Windows licensing situation, so decided to try some other options. Started rewriting in Qt, but found it hard (I hadn't used Qt since QWidgets and it had changed to QML). I then found Avalonia and spent a few hours porting the most complex custom controls. It all worked! The most I played with it, the more I enjoyed the experience. My app could be run on macOS and Linux while reusing a huge amount of code.
slowly losing it
slowly losing itOP3mo ago
ah i see. is avalonia easy to start with? and can it be developed in only VSCode? regular VS doesn't work well with my laptop, so things with XAML don't really work well, if that makes sense
Insire
Insire3mo ago
you'll have the best experience with an actual IDE, you can use VSC, but that wont make it easier for you
mg
mg3mo ago
^ this goes for more than just using a UI framework. it's worth investigating why your computer is having issues with VS
Insire
Insire3mo ago
avalonia works best for ppl with experience with WPF because thats where avalonia took a lot of inspiration from
slowly losing it
slowly losing itOP3mo ago
it just runs like shit. always lagging, taking forever to do simple stuff - it makes no sense to be fair, i AM using a fairly old and simplistic laptop, but still, i dont see why the software doesn't work
Insire
Insire3mo ago
the software relies on the hardware
slowly losing it
slowly losing itOP3mo ago
i have an i5-4210U and 8GB of RAM
Insire
Insire3mo ago
and what kind of storage? old laptops usually run on HDDs, which makes them stupidly slow
slowly losing it
slowly losing itOP3mo ago
i think my dad swapped it out for an SSD, but i'm not sure how you would check this
Insire
Insire3mo ago
because not only did the manufacturer did include HDDs, they did include slow HDDs. aka 5400 RPM ones
slowly losing it
slowly losing itOP3mo ago
what's RPM and why's it relevant to HDDs?
Insire
Insire3mo ago
rounds per minute HDDs have spinning discs inside slow spin == slow reads and writes SSD have no moving parts
slowly losing it
slowly losing itOP3mo ago
ohhhh ah i see makes sense
Insire
Insire3mo ago
you could check the (windows) device manager, its possible that the devices are properly labeled there and then its obvious or you could open the laptop and visually inspect the parts another common laptop problem is their low weight, which means low thermal mass resulting in low cooling performance and overheating parts tldr: your laptop could be getting too hot, so it will slow down as much as possible, in order to not kill itself
slowly losing it
slowly losing itOP3mo ago
so i'm guessing the solution is to use a proper PC
Insire
Insire3mo ago
¯\_(ツ)_/¯
slowly losing it
slowly losing itOP3mo ago
OR get a laptop that isn't reminiscent of cold war times
Insire
Insire3mo ago
it depends on your specific situation many things can slow you down maybe your laptop collected too much dust and overheats because of that idk maybe you are placing it on a blanket and block the exhausts that way maybe the thermal paste and thermal strips are completely dried out and dont transfer a lot of heat anymore i could go on, but you probably get the idea in regards to your original question: $desktopappdev
Insire
Insire3mo ago
maybe that helps an IDE is recommended (and for some even required) for all of them but as i said, if you are patient enough, you can make do with notepad notepad++ and VSC are easy upgrades over just notepad
slowly losing it
slowly losing itOP3mo ago
alright, thank you. i'll be building a new PC with my dad over christmas which will be a good segway into all the things i couldnt do with my currnet laptop this was a gift from him, and intended to only be for not much more than schoolwork and editing files. programming can get quite heavy on your hardware when you want to push the limits

Did you find this page helpful?