Одной из основных концепций, которая будет применяться к большинству шаблонов, которые вы увидите, будет «разделение проблем» или разновидность «n-уровневой» архитектуры. Если вы хотите, чтобы веб-приложения и приложения WPF использовали одни и те же данные, убедитесь, что слой данных отделен от бизнес-логики и легко содержится.
Таким образом, вы можете подключить и ваше веб-приложение, и приложение WPF к одному и тому же хранилищу данных, но не беспокойтесь о лежащих в его основе проблемах. Все, что нужно знать вашему приложению, это то, что оно получает List of X или DataTable или что-то еще, и может продолжать с него.
Вы можете легко применить это к различным аспектам вашего приложения. Я бы порекомендовал начать с «нижних» аспектов, таких как доступ к данным и бизнес-функции. В идеале, после того, как они будут хорошо реализованы, вам нужно будет беспокоиться только о том, как приложение будет представлено пользователю, где у вас будут различные реализации, но основные данные / функциональность остаются неизменными во всех них. .