SharePoint Foundation offers a highly flexible array of application programming interfaces to support migrating content and dependencies into SharePoint Foundation websites. This content can originate from another SharePoint Web, or from an external resource.
SharePoint content migration is designed on an export/import model. That is, you first export site data, dependencies, and site structure into data files that are rolled up into a content migration package (or multiple packages). Subsequently, the content migration package is imported at the destination, its contents unpacked, and the data, dependencies, and formation are reconstructed on the migration target.
The content migration object model (like the APIs contained in the Microsoft. SharePoint. Deployment namespace) is designed to be flexible. You can migrate an entire website in a single large operation, or you can migrate highly granular incremental updates. The APIs permits subtle control, enabling you to implement migration operations at the level of the list item or library.
Writing custom code by employing the migration object model is the most flexible means for programmatically migrating content. However, in some cases where only basic export/import tasks are required, you might be able to use Windows PowerShell commands or cmdlets, or else Web methods
The following are the anatomy of content migration costs.