This feature release of the Data-Tier Application Framework (DACFx) brings with it a significant payload of both new functionality as well as 100+ bug fixes since the last release. The features included in this update center around a new set of extensibility scenarios and an extended API surface area on top of DACFx. These extensibility scenarios include:
- New Schema Model API
- We have introduced a new set of APIs in the DAC namespace that can be used to open, enumerate, and navigate the schema model contained in DAC Packages (.dacpacs/.bacpacs).
- This API, centered around the TSqlModel class, supports scenarios including hydrating a schema model from a DAC Package, querying an opened model for objects of a certain type, enumerating the properties on a specific object, and traversing relationships between objects.
- This API allows you to implement custom solutions on top of DACFx and DAC package artifacts like performing additional validation of your database schema and writing custom schema navigation and browsing tools.
- Deployment Contributor Extensibility
- This release introduces two extensibility points that allow users to customize the DACFx deployment pipeline to enable custom validation or manipulation of the deployment plan. Supported deployment contributor types include:
- Deployment Plan Modifier – Extension that runs after the deployment plan has been generated allowing read/write access to the deployment plan, and read-only access to the model comparison results, and source/target schema models
- Deployment Plan Executor – Extension that runs during deployment allowing read-only access to the deployment plan
- Deployment contributors can be executed when deploying via the DacServices API, SqlPackage.exe, or SSDT.
- Build Contributor Extensibility
- Like with the deployment pipeline, this release adds an extensibility point to the DACFx build pipeline.
- Users can create extensions that run when building a SQL Server database project in Visual Studio or using MSBuild, enabling read-only access to the schema model and all properties/arguments of the build task.
These updated APIs and extensibility mechanisms live in the Microsoft.SqlServer.Dac and Microsoft.SqlServer.Dac.Extensions assemblies that get installed when you install this latest release.
UPDATE 7/2 – Documentation of the key DACFx API namespaces can be found on MSDN here. Additionally, walkthrough samples for the creation of build and deployment contributors can be found in the SSDT documentation here.
How can I get it?
You can obtain this new version of DACFx and its dependencies from our Microsoft Download Center page here. This version of DACFx supersedes all previously available versions. This new version of DACFx supports in-place upgrade from previous versions, so it is not required to remove previous DACFx installations before upgrading to this new release.
If you are on an x64 machine, you will need to install both the x64 and x86 versions of the MSIs from the DACFx June download page linked above.
The version of this update is 11.1.2861.0. This supersedes the previously available May release (11.1.2825.1). You can determine which version of the Data-Tier Application Framework you currently have installed via Windows Add/Remove Programs.
This release of DACFx is fully compatible with the newly released June 2013 release of SQL Server Data Tools, available here. This release is also compatible with SSMS of SQL Server 2012 and SQL Server 2012 SP1.
Only SQL Server Management Studio that ships with SQL Server 2014 CTP1 should be used with SQL Server 2014 CTP1 (http://www.microsoft.com/en-us/sqlserver/sql-server-2014.aspx). No version of Visual Studio, SQL Server Data Tools, or Data-Tier Application Framework provides support for SQL Server 2014 CTP1. We will continue to invest in SQL Server Data Tools (SSDT) and Data-Tier Application Framework (DACFx) and the tooling will be updated to support future SQL Server and Windows Azure SQL Database releases.
Note – Packages created with this version of DACFx that contain required deployment contributors are only consumable by this latest release of DACFx.