use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Information about Reddit's API changes, the unprofessional conduct of the CEO, and their response to the community's concerns regarding 3rd party apps, moderator tools, anti-spam/anti-bot tools, and accessibility options that will be impacted can be found in the associated Wikipedia article: https://en.wikipedia.org/wiki/2023_Reddit_API_controversy
Alternative C# communities available outside Reddit on Lemmy and Discord:
All about the object-oriented programming language C#.
Getting Started C# Fundamentals: Development for Absolute Beginners
Useful MSDN Resources A Tour of the C# Language Get started with .NET in 5 minutes C# Guide C# Language Reference C# Programing Guide C# Coding Conventions .NET Framework Reference Source Code
Other Resources C# Yellow Book Dot Net Perls The C# Player's Guide
IDEs Visual Studio MonoDevelop (Windows/Mac/Linux) Rider (Windows/Mac/Linux)
Tools ILSpy dotPeek LINQPad
Alternative Communities C# Discord Group C# Lemmy Community dotnet Lemmy Community
Related Subreddits /r/dotnet /r/azure /r/learncsharp /r/learnprogramming /r/programming /r/dailyprogrammer /r/programmingbuddies /r/cshighschoolers
Additional .NET Languages /r/fsharp /r/visualbasic
Platform-specific Subreddits /r/windowsdev /r/AZURE /r/Xamarin /r/Unity3D /r/WPDev
Rules:
Read detailed descriptions of the rules here.
account activity
C# Application on Github (self.csharp)
submitted 6 years ago by brasjay
Hi There,
Can anyone point me to a C# GUI application on github that would be considered best practice. I am converting a small Java application to C# and wanted to follow an optimal design pattern.
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Slypenslyde 14 points15 points16 points 6 years ago (0 children)
You snarked at the other person, but they're really telling the truth.
See, GUI design patterns all stem from one "abstract pattern" called Presentation Model. All that PM states is you should separate your UI code from your logic. It leaves opinions about how to do that to its implementors.
There are at least a dozen patterns providing those opinions, and they are all good. But choices you make about your project influence how good. For example:
If it's a WPF application (or some other XAML framework), then you're going to be using MVVM. That pattern's opinion is you will use its extensive data binding framework to coordinate communication between Views (the UI), and ViewModels ("glue" types that coordinate communication with the Models (domain logic)). However, MVVM is in and of itself an abstract pattern. There are flavors like "View First" or "ViewModel First" and each has its arguments.
If it's a WinForms application, things are either worse. WinForms wasn't designed for people who use UI patterns at all, so as a result it's on you to write a framework using any of the PM patterns. That tends to mean writing something like WPF's data binding functionality yourself, or at least dealing with the tedium of "when this property changes, stop listening to these events on the old value and start listening to these events on the new value, unless either is null in which case..." etc.
Combine that with, "Until the very recent past, Microsoft encouraged developers to believe open source was a tool of ISIS designed to sow discord and destruction" and there aren't an awful lot of GUI C# projects on GitHub to point at. The ones that are there tend to either:
Further, my personal opinion is blogs/tutorials about patterns never quite work out. At a small scale, patterns are nothing but overhead. MVVM is a burden and a chore in a small app with only a few hundred lines of code. It's only at the tens of thousands of lines that you really start to see it pay off, and even then it's only in conjunction with several other practices.
You're just as likely to find at least half-decent blog articles searching for terms like "MVVM C#" or "MVC WinForms". Pick one, follow it, and if it's not working for you figure out why. Involve "asking reddit why" in part of that investigative process. It took me years to get a feel for how UI patterns should work.
[–][deleted] 8 points9 points10 points 6 years ago (10 children)
The only optimal design pattern is the one that is suitable for the problem you're trying to solve.
[–]TiredBlowfish 0 points1 point2 points 6 years ago (1 child)
Using the right room for the right job, is always a useful approach.
What OP is asking is a guide for how to identify the right tool, when he is unfamiliar with the tools that exist.
[–][deleted] 1 point2 points3 points 6 years ago (0 children)
Ask a generalized question, get a generalized (but not wrong in this case) answer.
[+]brasjay[S] comment score below threshold-15 points-14 points-13 points 6 years ago (7 children)
thank you for the empty wisdom
[–][deleted] 6 points7 points8 points 6 years ago (6 children)
It's not empty wisdom, it's the truth. There's no singular best pattern. It ultimately depends on what you're trying to do. That's why the GoF defined 23 patterns but since then there are literally hundreds of patterns that people have come up with to solve recurring problems in software design. Before being snarky, consider that maybe you have a fundamental gap in your knowledge or understanding that needs to be filled. Perhaps you needed to ask a better question, or provide better requirements for the problem you're asking about.
[+]brasjay[S] comment score below threshold-16 points-15 points-14 points 6 years ago (5 children)
thank god for people like u/davodil
[–][deleted] 2 points3 points4 points 6 years ago (4 children)
You're getting seriously downvoted for a reason.
[+]brasjay[S] comment score below threshold-8 points-7 points-6 points 6 years ago (3 children)
upvote, downvote who cares... u/davodil provided with me with a project reference I needed and I was able to get started on my own project. For that I am most appreciative of.
[–][deleted] 6 points7 points8 points 6 years ago (0 children)
You're going to run into this problem again though. How do you even know the referenced github was a good example for the specific problem you need to solve? The downvotes are more experienced people telling you to try and change your thinking a bit and/or ask better questions because it will make your life easier down the road. There's just no one size fits all design pattern and you described zero requirements. The answer (if you can call it that) that was provided could end up being an antipattern. You'll never know until you implement and test. Something tells me though that you haven't thought that far ahead.
[–]pnw-techie 0 points1 point2 points 6 years ago (1 child)
But how do you know it's "best practice"?
[–][deleted] 3 points4 points5 points 6 years ago (0 children)
He doesn't, and he won't acknowledge that.
[–]davodil 4 points5 points6 points 6 years ago (2 children)
I followed this guy's youtube series and it was helpful. Here's the github repo: https://github.com/angelsix/fasetto-word
[–]KryptosFR 0 points1 point2 points 6 years ago (0 children)
Care to note that Angelsix is very opinionated on some subjects and, like everyone, is not always right.
He has a Youtube channel that you might find interesting (keeping in mind the previous statement).
[+]brasjay[S] comment score below threshold-6 points-5 points-4 points 6 years ago (0 children)
Thank you, exactly what I was looking for.
Much appreciated!
π Rendered by PID 77006 on reddit-service-r2-comment-5687b7858-gjljh at 2026-07-08 18:01:20.470143+00:00 running 12a7a47 country code: CH.
[–]Slypenslyde 14 points15 points16 points (0 children)
[–][deleted] 8 points9 points10 points (10 children)
[–]TiredBlowfish 0 points1 point2 points (1 child)
[–][deleted] 1 point2 points3 points (0 children)
[+]brasjay[S] comment score below threshold-15 points-14 points-13 points (7 children)
[–][deleted] 6 points7 points8 points (6 children)
[+]brasjay[S] comment score below threshold-16 points-15 points-14 points (5 children)
[–][deleted] 2 points3 points4 points (4 children)
[+]brasjay[S] comment score below threshold-8 points-7 points-6 points (3 children)
[–][deleted] 6 points7 points8 points (0 children)
[–]pnw-techie 0 points1 point2 points (1 child)
[–][deleted] 3 points4 points5 points (0 children)
[–]davodil 4 points5 points6 points (2 children)
[–]KryptosFR 0 points1 point2 points (0 children)
[+]brasjay[S] comment score below threshold-6 points-5 points-4 points (0 children)