# SmoSamples This unit test project is meant to demonstrate features of the Sql Management Objects framework and to help developers optimize performance of their SMO-based applications. ### Contents [About this sample](#about-this-sample)
[Before you begin](#before-you-begin)
[Run this sample](#run-this-sample)
[Sample details](#sample-details)
[Disclaimers](#disclaimers)
[Related links](#related-links)
## About this sample - **Applies to:** SQL Server 2016 (or higher), Azure SQL Database, Azure SQL Data Warehouse - **Key features:** - Unit tests and a docker file that demonstrate proper use of SMO features against a working SQL Server instance. - **Programming Language:** - C# ## Before you begin To run this sample, you need the following prerequisites. **Software prerequisites:** 1. SQL Server 2016 (or higher) or an Azure SQL Database with the full WideWorldImporters sample database, or 2. Docker 3. At minimum the dotnet 2.2 SDK, or Visual Studio 2017 ## Run this sample If using Docker, use runtests.sh or runtests.cmd as appropriate. If using a separate instance of SQL Server or Azure SQL Database, create a .runsettings file and run the unit tests using Visual Studio or "dotnet vstest". ## Sample details Each unit test demonstrates a specific aspect of SMO-based application development, either in isolation or in conjunction with other SMO components.
Feature areas tested include: 1. Efficient use of collections 2. Sql query capture 3. Events 4. URNs 5. Script generation ## Related Links The SMO NuGet package is at https://www.nuget.org/packages/Microsoft.SqlServer.SqlManagementObjects/
Documentation for the APIs is at https://docs.microsoft.com/sql/relational-databases/server-management-objects-smo/overview-smo
The WideWorldImporters sample database can be found at https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak