Guidance on good application architecture / design is not in short supply however most of the examples focus on some business object, like Customer and its behaviour and persistence.
There is little guidance on software that is focus on integrating existing systems. For example integrating SharePoint with an application deployment system. Say I have a Windows service that reads a SharePoint list and adds packages to SCCM.
Is the general consensus for solving this is to have object that represent the data from SharePoint and objects that represent the data in SCCM. The main program flow is then using SharePoint objects to create new SCCM objects and save them back to SCCM?
Or is it simpler and cleaner to just have a routing the reads from one and writes to the other in the one step.
Use a simple Adapter to bridge the connection between the two systems. This is a basic Enterprise Integration pattern and it specifically addresses your concern by kind of mixing your two approaches.
Think of the link between Sharepoint and the other application as a Message Channel (or “routing” as you’ve put it). The adapter can sit at any end of the channel, to convert the source datatype to the destination datatype (and vice versa). Here, you don’t need to have an intermediate datatype, just the source and destination datatype. The data enters as one type and leaves as the other