I created a dual silverlight / wpf target application. It is not as simple as transferring one into another ...
Your first steps should be to look at the documentation on where wpf and silverlight differ to understand your problem a little better. XAML Handling the Differences between Silverlight and WPF . Do not stop. Understand design patterns that come into play based on different application environments. Now you begin to understand what you are dealing with.
When creating user interfaces for both wpf and silverlight, you must be very careful about the controls and namespaces used. Sharing user interface code can be very tedious, it is often easier to create two separate user interface layers that use common templates where applicable. Most of the user interface features that you have in a rich client application will differ from the functionality of the Silverlight application. You are likely to offer richer data in your wpf application, rather than more concise representations in your silverlight application. In the end, you can probably achieve the same goals, but it will be more difficult than just redirecting and deploying.
If you are building an application from scratch, I would recommend creating a wpf application and a silverlight application at the same time. By doing this, you will come across the possibilities of abstracting service levels and data access strategies used in different environments. Silverlight may need to access data through web services, while your wpf application can talk to an instance of the local database. This can be done quite easily. Use an IoC container or something to implement your proper service implementations. This area provides an opportunity for most code reuse. You can create all your presentation logic and service logic to share two user interfaces. You can also create common logic and data access logic.
If you do not have a local data store in your rich client application, forget the following paragraph.
If you plan to have a randomly connected standalone client (wpf application), you probably have to come up with some kind of synchronization strategy and architecture. Depending on the complexity of your data structures, this can be quite complicated. Building complex synchronization logic with accessible structures is PITA. You may need to build your own or live with the constraints of another.
One tip: start with testing and end testing
Justice
source share