One core concept that will apply to most of the patterns you'll see will be a "seperation of concerns" or kind of an "n-tier" architechture. If you're going to have web and WPF apps using the same data, make sure the data layer is seperate from the business logic and easily contained.
That way you can have both your web app and WPF app connect to the same data store, but not worry about the underlying issues behind it. All your app needs to know is that its getting a List of X or a DataTable or whatever, and can proceed from there.
You can easily apply this to various aspects of your application. I'd recommend starting with the "lower end" aspects such as data access and business functions. Ideally, once those get nailed down nicely, all you'll have to worry about is how the app is being presented to the user, which is where you'll have various implementations, but the core data/functionality remains the same across them all.