First, there’s the issue of terminology. There are lots of names and concepts that swirl around DAC so it’s important to nail a few of them down before proceeding so that we are on the same page.
- The general brand that encompasses all subsequent names and concepts
- The actual framework consisting of several DLL files
- The file format used by DACFx to represent the full definition of an application (usually schema only). Best analogy: an MSI.
- The file format used by DACFx to contain the definition of an application as well as its (table) data.
We’ll start with DACFx because it’s the foundation of the DAC house. Quite simply, DACFx is a framework that provides services around Microsoft SQL Server. While there are many services that DACFx provides, the highest order services are typically:
- Build a DACPAC from a set of T-SQL scripts
- Extract a DACPAC from a database
- Deploy a new database from a DACPAC
- Upgrade an existing database (schema) with a new DACPAC
- Export a new BACPAC from a database
- Import a new database from an existing BACPAC
Together, the suite of DACFx services enable:
- A database application lifecycle
- Schema and data portability
Please note that all of the services have publically available interfaces that can be called without using any GUIs.
The next few posts will walk through the services and how they can help database developers and administrators.