С WPF вы должны использовать MVVM. К сожалению, нет хороших книг, которые бы вас этому научили.
У меня есть куча статей и примеров на TechNet Wiki и в галерее. Некоторые из них произошли от обучения и обучения новичков.
https://social.technet.microsoft.com/wiki/contents/articles/30959.user-page-andy-oneill.aspx
Что-то там должно помочь.
Сначала используйте viewmodel для навигации.
Не используйте страницы, используйте usercontrols и привязывайте контент к свойству, возвращающему модель представления.
Шаблон с использованием datatype = vmtype в usercontrols в пользовательском интерфейсе.
Я думаю, что рекомендация RedCurry о Pro C # 7 хороша. Мне нравится c # Джона Скита в глубине.
Для теории баз данных.
Имейте в виду, это изменилось очень мало за 20 лет. Следовательно, довольно старые книги все еще хороши, и в наши дни вы можете купить действительно дешевые копии. Например https://www.amazon.co.uk/dp/0201752840?slotNum=0&linkCode=g12&imprToken=uS5pZKPLsrVEOJop6zd4iA&creativeASIN=0201752840&tag=javarevisit01-21 стоит пять.
Мои большие советы по индексации:
По умолчанию - добавьте автоматическое целое число в качестве первичного ключа вместо использования любого естественного ключа, который, по вашему мнению, будет «всегда» уникальным. Они неизбежно меняются.
Не добавляйте слишком много индексов.
Старый совет все еще верен. Нормализуйте, пока это не повредит, а затем денормализуйте, пока это не сработает.
SQL-сервер хорош, его легко найти в Интернете, а sql express бесплатный. Задания очень полезны, но «полная» версия сервера sql стоит дорого. Если у вас будет большое количество серверов sql и низкий / нулевой бюджет, тогда MySQL.
В Интернете есть бесплатные ресурсы для сервера sql. Например http://www.sqlservercentral.com/
Я никогда не читал книгу о LINQ. Я узнал об этом, когда искал что-то в Интернете. Я сильно полагаюсь на intellisense, когда пишу что-то не так просто. Мой большой совет по LINQ - не использовать его для сложных запросов, и по мере того, как сложность увеличивается в одном, который вы пишете, вы должны взглянуть на сгенерированный sql. Сложный linq склонен к генерации ужасно неэффективных sql.