Hi there,
Windows Forms? Simply no!
It is an old system, which isn't supported anymore and really isn't the best way to go. Instead, use WPF (Windows Presentation Foundation). There are few reasons to do it:
- WF uses DPI for managing placement of components. This is however a bad solution, because there are many mobile devices currently, which represents DPI in different way. Result is, that your app will look differently on pc and smartphone and differences won't be nice.
WPF uses DIP (device independent pixel) instead, what causes, that your app will look the same on all devices.
- WF uses absolute positions of objects to represent a form. While it can be good for simple forms, it gets more complicated in more complex projects, what will hurt your code as well as result application.
Because html showed as a very practical way to design forms on web, WPF gets inspired and use xml, a language very similar to html to design forms. As a programmer who works with WPF already, I can tell you, that it is very useful. You can make bindings to objects directly in it, so you can for example use a List in your class to fill a ListBox on the screen without doing anything for it, WPF will do it automatically based on the binding.
- WPF uses Direct 3D to draw forms, what is much faster and more efficient for cpu than KDI, which is used by WF. Also it isn't limited by basic Windows elements like KDI, you can do anything you want in it like inserting images to buttons or comboboxes.
I thing your school is doing good forcing you to use C#. remember, C# is one of the most modern languages, designed to work with the most modern oop techniques, where for example c++ still gets stuck. Just use oop everywhere and your code will look very nice for you as well as other people.
Also, my recommendation, stick with Microsoft technologies included in C#. No, they really aren't like Skype, teams working on them made much better job. WPF ist just one example, but there are many others. LINQ is something that you will simply love when you learn it, no other language have such a powerful tool. Tasks, asynchronous programming and other methods of managing threads are another good example, while they are partially included also in other languages, C# is doing best in my opinion, because it was designed to simplify work, but preserve oop as well.
And with technologies like Xamarin and Mono, you can bring you app not to windows only, but to Android, iOS, Mac or Linux as well. It is possible to develop directly for choosed platform, but there is also way to have just one code base and then compile for all platforms from it.
In summary, just don't worry, even if you don't like syntax of C#, it is still very powerful language. If your school will teach you the most modern ways to work with it, well, that is another thing to consider. Schools are often outdated with their technologies, what can seriously hurt you. only way to solve this problem is to learn yourself. If something seems too complicated for you, just look for easier way to do it, there is high chance you will find one.
Nothing is complicated in C#, you must only figure a way how to do it properly.
That is all for now.
Best regards
Rastislav