Forms will represent the bulk of what is new, interesting, and useful about this course. Rather than many of
your previous programming projects, C# forms allow us to easily create, manipulate, and dynamically program
interactive applications, complete with text fields, drop-down menus, check boxes, and buttons. You can expect
that we will spend a substantial amount of time studying not just the implementation mechanics of these forms, but
also design strategies and philosophies of what makes a good user interface (UI) and user experience (UX). This
will often have us referring to
bad UI/UX design, as a simple way to consciously recognize what we
already know is good/bad design.
Sometimes,
the UI/UX is intentionally designed to be unintuitive (what's called a "dark pattern").
You've no doubt spent a significant amount of time on the internet and/or using various computer applications,
the best of which come with design features that you may not be consciously aware of, consider, or figure out.
Good UI/UX design should just intuitively yield itself to the user, responding to them as they expect it should,
and provide access to the desired functionality without too much struggle.
Later on in the class, I'm going to ask everyone for two (2) examples of good/bad UI/UX design, so that we can
dedicate some time to discussing what about them works (or fails) and understand their subtley when it comes time
for us to work on our own UI/UX. While there is an entire profession dedicated to simply working, building, and
refining an applications UI/UX, the more that you — as programmers/software engineers — can connect
to and contribute as part of the development team, the better. At the very least, your practice with some of the
back-end mechanisms for these objectives can help qualify what can be done, the difficulty/time/resources of
these implementations, and ways to alternatively reach goals. It may be the case that the designer simply doesn't
know what .NET can do or make easy to realize, which can lead to a better final product.
In short: collaboration is the foundation upon which great things are built. The better you can speak the language
of design, the more valuable you will be to your development team.