I am porting my first (complex) application from WinForms to WPF. I am still in the research stage. One of the main tasks is separation of concerns (UI from logic), hence I would like to use a MVVM framework. I would like to use one of the more complete frameworks (Caliburn micro / MVVM cross / Prism/ ...)
The problem is this program currently needs access to serial ports in the Model layer (eventually to be replaced by bluetooth in the future). As far as I am aware this serial port requirement rules out using anything that depends on PCL or anything similar.
Further complicating things, the View layer will initially need to contain the WPF ribbon (again to be eventually replaced), which I believe will cause minor headaches with some frameworks.
In the future it would be nice if the majority of the codebase was portable to other OS's (hence the interest in MVVM cross).
Which framework would be easiest to acheive my goals? Or am I completely off track and best off sticking to a plain WPF application that has a separate project for business logic that gets called from a UI project, and moving to MVVM when com ports and ribbons are no longer needed?
EDIT (Update): I have more of an understanding of PCL and its limitations now thanks to this article(MSDN). So it looks like I can use Serial Ports with PCL type frameworks if I have an interface and service locater for it, and have a separate (platform specific) project for the implementation of the serial port.