简体   繁体   中英

Prerequisites for creating a project in WPF with C#

I have been thinking a lot lately about making a fully functional project with a small team using C# WPF UI. The goal is to create a construction management software. It is not about "reinventing the wheel", the idea behind this is to gain experience in software programming.

Some of the general knowledge that we possess:

  • We have been introduced in OOP at the University.

  • We have programmed in Visual Studio before, but only standard C#.

  • We watched this playlist of Tutorials on WPF

  • We have also been looking at some tamplates on Telerik, but our understanding in WPF is too shallow right now to comprehend them.

Some of the things we would love to understand:

  • What SQL Server would be appropriate for this kind of software, we used Microsoft SQL Server so far.

  • Any recommendation of books that might help us enhance our skill in building a database such as: reading from it, creating appropriate relation-ships, etc would be greatly appreciated.

  • Any recommendation of books for C#, LINQ or anything you know and might help us.

We want to treat this project seriously and we know that we will struggle with this documentation step for quite a while. Please let us know if there is any other step or fundamental thing that we missed, thank you!

I really enjoyed the book Pro C# 7 . I think it's very well written and comprehensive. It even covers WPF at a reasonable level. There are also chapters on dealing with SQL databases.

Once you're familiar with C# and some WPF basics, you can read Windows Presentation Foundation 4.5 Cookbook . I found that their specific examples and explanations helped me understand how WPF works.

Then it's about getting your hands dirty by trying things out. You'll find a lot of resources online as you search for problems you run into. There are tons of blog posts explaining specific WPF solutions, and of course there's StackOverflow.

Good luck.

With WPF you should use MVVM. Unfortunately, there are no good books that will teach you that though. I have a bunch of articles and samples on TechNet wiki and Gallery. A number of these originated from coaching and teaching newbies.

https://social.technet.microsoft.com/wiki/contents/articles/30959.user-page-andy-oneill.aspx

Some of what's in there ought to help.

Use viewmodel first for navigation. Don't use pages, use usercontrols and bind content to a property returns a viewmodel. Template using datatype=vmtype into usercontrols in the ui.

I think redcurry's recommendation of pro c#7 is good. I like Jon Skeet's c# in depth. For database theory. Bear in mind it has changed very little in 20 years. Hence rather old books are still good and you can pick up copies really cheap nowadays. For example https://www.amazon.co.uk/dp/0201752840?slotNum=0&linkCode=g12&imprToken=uS5pZKPLsrVEOJop6zd4iA&creativeASIN=0201752840&tag=javarevisit01-21 well worth a fiver. My big tips on indexing: By default - add an auto integer as primary key rather than using any natural key you think will "always" be unique. They inevitably change.

Don't add too many indexes.

The old advice is still true. Normalise 'til it hurts and then denormalise 'til it works.

SQL server is good, easy to find online advice and sql express is free. Jobs are very useful but the "full" version of sql server is expensive. If you will have large quantities of sql server and low/no budget then MySQL.

There are free resources for sql server on the web. For example http://www.sqlservercentral.com/

I've never read a book on LINQ. I learnt it as I went by looking up stuff on the web. I rely heavily on intellisense when writing anything isn't fairly simple. My big tip on LINQ is not to use it for complex queries and as complexity increases in one you're writing you should look at the generated sql. Complicated linq is prone to generating terribly inefficient sql.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM