DAC Concepts

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:

  1. A database application lifecycle
  2. 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.


2 Responses to DAC Concepts

  1. mbowles201 says:

    ANy way to programmatically read a 2012 dacpac and get the tables and fields out of it? Want to script up a POCO model builder as the EF reverse engineer tool is lacking in table naming conventions. Thanks!

    • dacguy says:


      A programmatic means was available in SQL Server 2008 R2 through the DACSTORE class but was removed in SQL Server 2012 as part of a larger update to the programmatic surface area. If this feature is really important to you, I highly recommend posting a request to have it added back to the DAC framework on the Connect feedback site: https://connect.microsoft.com/SQLServer/Feedback.

      In the meantime, you can look through the XML included in the DAC package but this is not a good long term solution since the XML format may change from release to release.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: