diff --git a/Dependencies/2016/ConnectionDlg.dll b/Dependencies/2016/ConnectionDlg.dll new file mode 100644 index 0000000..0cf2b32 Binary files /dev/null and b/Dependencies/2016/ConnectionDlg.dll differ diff --git a/Dependencies/2016/Microsoft.SqlServer.ConnectionInfo.dll b/Dependencies/2016/Microsoft.SqlServer.ConnectionInfo.dll new file mode 100644 index 0000000..5148f4f Binary files /dev/null and b/Dependencies/2016/Microsoft.SqlServer.ConnectionInfo.dll differ diff --git a/Dependencies/2016/Microsoft.SqlServer.ConnectionInfoExtended.dll b/Dependencies/2016/Microsoft.SqlServer.ConnectionInfoExtended.dll new file mode 100644 index 0000000..afeee48 Binary files /dev/null and b/Dependencies/2016/Microsoft.SqlServer.ConnectionInfoExtended.dll differ diff --git a/Dependencies/2016/Microsoft.SqlServer.Management.SDK.SqlStudio.dll b/Dependencies/2016/Microsoft.SqlServer.Management.SDK.SqlStudio.dll new file mode 100644 index 0000000..26a5913 Binary files /dev/null and b/Dependencies/2016/Microsoft.SqlServer.Management.SDK.SqlStudio.dll differ diff --git a/Dependencies/2016/Microsoft.SqlServer.Management.Sdk.Sfc.dll b/Dependencies/2016/Microsoft.SqlServer.Management.Sdk.Sfc.dll new file mode 100644 index 0000000..8994da0 Binary files /dev/null and b/Dependencies/2016/Microsoft.SqlServer.Management.Sdk.Sfc.dll differ diff --git a/Dependencies/2016/Microsoft.SqlServer.RegSvrEnum.dll b/Dependencies/2016/Microsoft.SqlServer.RegSvrEnum.dll new file mode 100644 index 0000000..b799c2d Binary files /dev/null and b/Dependencies/2016/Microsoft.SqlServer.RegSvrEnum.dll differ diff --git a/Dependencies/2016/Microsoft.SqlServer.Smo.dll b/Dependencies/2016/Microsoft.SqlServer.Smo.dll new file mode 100644 index 0000000..b637043 Binary files /dev/null and b/Dependencies/2016/Microsoft.SqlServer.Smo.dll differ diff --git a/Dependencies/2016/Microsoft.SqlServer.SmoExtended.dll b/Dependencies/2016/Microsoft.SqlServer.SmoExtended.dll new file mode 100644 index 0000000..0ce979b Binary files /dev/null and b/Dependencies/2016/Microsoft.SqlServer.SmoExtended.dll differ diff --git a/Dependencies/2016/Microsoft.SqlServer.SqlEnum.dll b/Dependencies/2016/Microsoft.SqlServer.SqlEnum.dll new file mode 100644 index 0000000..a1d1e16 Binary files /dev/null and b/Dependencies/2016/Microsoft.SqlServer.SqlEnum.dll differ diff --git a/Dependencies/2016/NLog.dll b/Dependencies/2016/NLog.dll new file mode 100644 index 0000000..491a664 Binary files /dev/null and b/Dependencies/2016/NLog.dll differ diff --git a/Dependencies/2016/SqlPackageBase.dll b/Dependencies/2016/SqlPackageBase.dll new file mode 100644 index 0000000..910a2c3 Binary files /dev/null and b/Dependencies/2016/SqlPackageBase.dll differ diff --git a/Dependencies/2016/SqlWorkbench.Interfaces.dll b/Dependencies/2016/SqlWorkbench.Interfaces.dll new file mode 100644 index 0000000..0bd640c Binary files /dev/null and b/Dependencies/2016/SqlWorkbench.Interfaces.dll differ diff --git a/Dependencies/2016/Xceed.Wpf.Toolkit.dll b/Dependencies/2016/Xceed.Wpf.Toolkit.dll new file mode 100644 index 0000000..f6bcb83 Binary files /dev/null and b/Dependencies/2016/Xceed.Wpf.Toolkit.dll differ diff --git a/HuntingDog/HuntingDog.csproj b/HuntingDog/HuntingDog.csproj index 71f658d..be578da 100644 --- a/HuntingDog/HuntingDog.csproj +++ b/HuntingDog/HuntingDog.csproj @@ -1,279 +1,281 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {8D0B85B0-0B3A-4FCC-9FC9-F0C1F0F20062} - Library - Properties - HuntingDog - HuntingDog - v3.5 - 512 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - true - false - x86 - Off - - - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - false - Off - - - - ..\Dependencies\2008\ConnectionDlg.dll - False - - - False - True - C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\envdte.dll - - - False - True - C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\envdte80.dll - - - True - - - False - ..\Dependencies\2008\Microsoft.SqlServer.ConnectionInfo.dll - - - ..\Dependencies\2008\Microsoft.SqlServer.Management.Controls.dll - False - - - ..\Dependencies\2008\Microsoft.SqlServer.Management.Data.dll - False - - - False - ..\Dependencies\2008\Microsoft.SqlServer.Management.Sdk.Sfc.dll - - - ..\Dependencies\2008\Microsoft.SqlServer.Management.Sdk.SqlStudio.dll - False - - - False - ..\Dependencies\2008\Microsoft.SqlServer.RegSvrEnum.dll - - - False - ..\Dependencies\2008\Microsoft.SqlServer.Smo.dll - - - False - ..\Dependencies\2008\Microsoft.SqlServer.SqlEnum.dll - - - False - ..\Dependencies\2008\Microsoft.SqlServer.SqlTools.VSIntegration.dll - False - - - - True - - - False - ..\..\..\..\Program Files\Alex\Hunting Dog\test1\Microsoft.VisualStudio.OLE.Interop.dll - - - False - ..\Dependencies\2008\NLog.dll - True - - - - - - False - ..\Dependencies\2008\SqlWorkbench.Interfaces.dll - True - - - True - - - - - - - - - - - - - - ..\Dependencies\2008\Xceed.Wpf.Toolkit.dll - - - - - - - - - - - - - - - - - DialogWindow.xaml - - - - - - - - - - - - - - - - - - Face.xaml - - - - - - - - - - - - - - - - - - - Resources.resx - True - True - - - - UserControl - - - ucHost.cs - - - - - + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {8D0B85B0-0B3A-4FCC-9FC9-F0C1F0F20062} + Library + Properties + HuntingDog + HuntingDog + v3.5 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + true + false + x86 + Off + + + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + false + Off + + + + ..\Dependencies\2008\ConnectionDlg.dll + False + + + False + True + C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\envdte.dll + + + False + True + C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\envdte80.dll + + + True + + + False + ..\Dependencies\2008\Microsoft.SqlServer.ConnectionInfo.dll + + + ..\Dependencies\2008\Microsoft.SqlServer.Management.Controls.dll + False + + + ..\Dependencies\2008\Microsoft.SqlServer.Management.Data.dll + False + + + False + ..\Dependencies\2008\Microsoft.SqlServer.Management.Sdk.Sfc.dll + + + ..\Dependencies\2008\Microsoft.SqlServer.Management.Sdk.SqlStudio.dll + False + + + False + ..\Dependencies\2008\Microsoft.SqlServer.RegSvrEnum.dll + + + False + ..\Dependencies\2008\Microsoft.SqlServer.Smo.dll + + + False + ..\Dependencies\2008\Microsoft.SqlServer.SqlEnum.dll + + + False + ..\Dependencies\2008\Microsoft.SqlServer.SqlTools.VSIntegration.dll + False + + + + True + + + False + ..\..\..\..\Program Files\Alex\Hunting Dog\test1\Microsoft.VisualStudio.OLE.Interop.dll + + + False + ..\Dependencies\2008\NLog.dll + True + + + + + + False + ..\Dependencies\2008\SqlWorkbench.Interfaces.dll + True + + + True + + + + + + + + + + + + + + ..\Dependencies\2008\Xceed.Wpf.Toolkit.dll + + + + + + + + + + + + + + + + + DialogWindow.xaml + + + + + + + + + + + + + + + + + + Face.xaml + + + + + + + + + + + + + + + + + + + Resources.resx + True + True + + + + UserControl + + + ucHost.cs + + + + + + Designer + + + PublicResXFileCodeGenerator + Resources.Designer.cs + Designer + + + ucHost.cs + + + + Designer - - - PublicResXFileCodeGenerator - Resources.Designer.cs - Designer - - - ucHost.cs - - - - - - - - - {2CE2370E-D744-4936-A090-3FFFE667B0E1} - 9 - 0 - 0 - primary - False - True - - - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - - - - - - - - - - - - - - - - + + + + + + {2CE2370E-D744-4936-A090-3FFFE667B0E1} + 9 + 0 + 0 + primary + False + True + + + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HuntingDog/HuntingDog.csproj.user b/HuntingDog/HuntingDog.csproj.user index f72a35b..77e99f8 100644 --- a/HuntingDog/HuntingDog.csproj.user +++ b/HuntingDog/HuntingDog.csproj.user @@ -1,13 +1,13 @@ - - - - ProjectFiles - - - Program - C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe - - - false - + + + + ShowAllFiles + + + Program + C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe + + + false + \ No newline at end of file diff --git a/HuntingDog2016/.gitignore b/HuntingDog2016/.gitignore new file mode 100644 index 0000000..62dd6c9 --- /dev/null +++ b/HuntingDog2016/.gitignore @@ -0,0 +1,272 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +project.fragment.lock.json +artifacts/ +Properties/launchSettings.json + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/ diff --git a/HuntingDog2016/Core/README.md b/HuntingDog2016/Core/README.md new file mode 100644 index 0000000..62e2f58 --- /dev/null +++ b/HuntingDog2016/Core/README.md @@ -0,0 +1 @@ +This folder should be empty since it is a place holder in VS to include the actual files from HuntingDog location. diff --git a/HuntingDog2016/DogConfig/README.md b/HuntingDog2016/DogConfig/README.md new file mode 100644 index 0000000..62e2f58 --- /dev/null +++ b/HuntingDog2016/DogConfig/README.md @@ -0,0 +1 @@ +This folder should be empty since it is a place holder in VS to include the actual files from HuntingDog location. diff --git a/HuntingDog2016/DogEngine/Impl/README.md b/HuntingDog2016/DogEngine/Impl/README.md new file mode 100644 index 0000000..62e2f58 --- /dev/null +++ b/HuntingDog2016/DogEngine/Impl/README.md @@ -0,0 +1 @@ +This folder should be empty since it is a place holder in VS to include the actual files from HuntingDog location. diff --git a/HuntingDog2016/DogEngine/README.md b/HuntingDog2016/DogEngine/README.md new file mode 100644 index 0000000..62e2f58 --- /dev/null +++ b/HuntingDog2016/DogEngine/README.md @@ -0,0 +1 @@ +This folder should be empty since it is a place holder in VS to include the actual files from HuntingDog location. diff --git a/HuntingDog2016/DogFace/Background/README.md b/HuntingDog2016/DogFace/Background/README.md new file mode 100644 index 0000000..62e2f58 --- /dev/null +++ b/HuntingDog2016/DogFace/Background/README.md @@ -0,0 +1 @@ +This folder should be empty since it is a place holder in VS to include the actual files from HuntingDog location. diff --git a/HuntingDog2016/DogFace/README.md b/HuntingDog2016/DogFace/README.md new file mode 100644 index 0000000..62e2f58 --- /dev/null +++ b/HuntingDog2016/DogFace/README.md @@ -0,0 +1 @@ +This folder should be empty since it is a place holder in VS to include the actual files from HuntingDog location. diff --git a/HuntingDog2016/Engine/README.md b/HuntingDog2016/Engine/README.md new file mode 100644 index 0000000..62e2f58 --- /dev/null +++ b/HuntingDog2016/Engine/README.md @@ -0,0 +1 @@ +This folder should be empty since it is a place holder in VS to include the actual files from HuntingDog location. diff --git a/HuntingDog2016/HuntingDog2016.csproj b/HuntingDog2016/HuntingDog2016.csproj new file mode 100644 index 0000000..08ae78f --- /dev/null +++ b/HuntingDog2016/HuntingDog2016.csproj @@ -0,0 +1,435 @@ + + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + true + + + true + + + Key.snk + + + + Debug + AnyCPU + 2.0 + {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {AA575755-0E5F-4053-A0A1-73B7EB2E03AB} + Library + Properties + HuntingDog + HuntingDog2016 + v4.5.2 + true + true + true + true + true + false + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + Core\DogVersion.cs + + + Core\Extensions.cs + + + Core\Log.cs + + + Core\LogFactory.cs + + + Core\PerformanceAnalyzer.cs + + + Core\Range.cs + + + Core\UpdateDetector.cs + + + Core\UpdateNotificator.cs + + + Core\VersionRetriever.cs + + + DogConfig\Config.cs + + + DogConfig\ConfigPersistor.cs + + + DogEngine\Entity.cs + + + DogEngine\FunctionParameter.cs + + + DogEngine\IDatabaseDictionary.cs + + + DogEngine\IDatabaseLoader.cs + + + DogEngine\Impl\Constructor.cs + + + DogEngine\Impl\DatabaseDictionary.cs + + + DogEngine\Impl\DatabaseLoader.cs + + + DogEngine\Impl\ServerWatcher.cs + + + DogEngine\Impl\StudioController.cs + + + DogEngine\IServer.cs + + + DogEngine\IStorage.cs + + + DogEngine\IStudioController.cs + + + DogEngine\ProcedureParameter.cs + + + DogEngine\SearchCriteria.cs + + + DogEngine\TableColumn.cs + + + DogFace\Action.cs + + + DogFace\Background\BackgroundProcessor.cs + + + DogFace\Background\Request.cs + + + DogFace\Background\RequestType.cs + + + DogFace\BitmapConverter.cs + + + DogFace\DialogWindow.xaml.cs + DialogWindow.xaml + + + DogFace\Face.xaml.cs + Face.xaml + + + DogFace\HtmlTextBlock.cs + + + DogFace\Item.cs + + + DogFace\ItemFactory.cs + + + DogFace\ucHost.cs + UserControl + + + DogFace\ucHost.Designer.cs + ucHost.cs + + + DogFace\UserPreferences.cs + + + DogFace\WidthConverter.cs + + + Engine\AddinCreater.cs + + + Engine\Connect.cs + + + Engine\DatabaseSearchResult.cs + + + Engine\EventWatcher.cs + + + Engine\ManagedConnection.cs + + + Engine\ManagementStudioController.cs + + + Engine\ObjectExplorerManager.cs + + + + + + True + True + Resources.resx + + + + + DogFace\DialogWindow.xaml + MSBuild:Compile + Designer + + + DogFace\Face.xaml + MSBuild:Compile + Designer + + + + + + + + Designer + + + + + Menus.ctmenu + + + + + + + + + ..\Dependencies\2016\ConnectionDlg.dll + + + False + + + False + + + False + + + False + + + False + True + ..\..\..\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\extensibility.dll + + + + + False + ..\Dependencies\2016\Microsoft.SqlServer.ConnectionInfo.dll + + + False + ..\Dependencies\2016\Microsoft.SqlServer.ConnectionInfoExtended.dll + + + False + ..\Dependencies\2016\Microsoft.SqlServer.Management.Sdk.Sfc.dll + + + ..\Dependencies\2016\Microsoft.SqlServer.Management.SDK.SqlStudio.dll + + + False + ..\Dependencies\2016\Microsoft.SqlServer.RegSvrEnum.dll + + + False + ..\Dependencies\2016\Microsoft.SqlServer.Smo.dll + + + False + ..\Dependencies\2016\Microsoft.SqlServer.SmoExtended.dll + + + False + ..\Dependencies\2016\Microsoft.SqlServer.SqlEnum.dll + + + + False + + + packages\Microsoft.VisualStudio.Imaging.14.3.25407\lib\net45\Microsoft.VisualStudio.Imaging.dll + True + + + packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dll + True + + + packages\Microsoft.VisualStudio.Shell.14.0.14.3.25407\lib\Microsoft.VisualStudio.Shell.14.0.dll + True + + + packages\Microsoft.VisualStudio.Shell.Immutable.10.0.10.0.30319\lib\net40\Microsoft.VisualStudio.Shell.Immutable.10.0.dll + True + + + packages\Microsoft.VisualStudio.Shell.Immutable.11.0.11.0.50727\lib\net45\Microsoft.VisualStudio.Shell.Immutable.11.0.dll + True + + + packages\Microsoft.VisualStudio.Shell.Immutable.12.0.12.0.21003\lib\net45\Microsoft.VisualStudio.Shell.Immutable.12.0.dll + True + + + packages\Microsoft.VisualStudio.Shell.Immutable.14.0.14.3.25407\lib\net45\Microsoft.VisualStudio.Shell.Immutable.14.0.dll + True + + + packages\Microsoft.VisualStudio.Shell.Interop.7.10.6071\lib\Microsoft.VisualStudio.Shell.Interop.dll + True + + + True + packages\Microsoft.VisualStudio.Shell.Interop.10.0.10.0.30319\lib\Microsoft.VisualStudio.Shell.Interop.10.0.dll + True + + + True + packages\Microsoft.VisualStudio.Shell.Interop.11.0.11.0.61030\lib\Microsoft.VisualStudio.Shell.Interop.11.0.dll + True + + + True + packages\Microsoft.VisualStudio.Shell.Interop.12.0.12.0.30110\lib\Microsoft.VisualStudio.Shell.Interop.12.0.dll + True + + + packages\Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.Shell.Interop.8.0.dll + True + + + packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729\lib\Microsoft.VisualStudio.Shell.Interop.9.0.dll + True + + + packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6070\lib\Microsoft.VisualStudio.TextManager.Interop.dll + True + + + packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.TextManager.Interop.8.0.dll + True + + + packages\Microsoft.VisualStudio.Threading.14.1.111\lib\net45\Microsoft.VisualStudio.Threading.dll + True + + + packages\Microsoft.VisualStudio.Utilities.14.3.25407\lib\net45\Microsoft.VisualStudio.Utilities.dll + True + + + packages\Microsoft.VisualStudio.Validation.14.1.111\lib\net45\Microsoft.VisualStudio.Validation.dll + True + + + ..\Dependencies\2016\NLog.dll + + + + + + ..\Dependencies\2016\SqlPackageBase.dll + + + ..\Dependencies\2016\SqlWorkbench.Interfaces.dll + + + False + + + + + + + + + + + + + ..\Dependencies\2016\Xceed.Wpf.Toolkit.dll + + + + + DogFace\ucHost.resx + ucHost.cs + + + Engine\CommandBar.resx + + + PublicResXFileCodeGenerator + Designer + Resources.Designer.cs + + + true + VSPackage + Designer + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + \ No newline at end of file diff --git a/HuntingDog2016/HuntingDog2016.sln b/HuntingDog2016/HuntingDog2016.sln new file mode 100644 index 0000000..eeb189e --- /dev/null +++ b/HuntingDog2016/HuntingDog2016.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HuntingDog2016", "HuntingDog2016.csproj", "{AA575755-0E5F-4053-A0A1-73B7EB2E03AB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AA575755-0E5F-4053-A0A1-73B7EB2E03AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA575755-0E5F-4053-A0A1-73B7EB2E03AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA575755-0E5F-4053-A0A1-73B7EB2E03AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA575755-0E5F-4053-A0A1-73B7EB2E03AB}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/HuntingDog2016/HuntingDog2016Package.cs b/HuntingDog2016/HuntingDog2016Package.cs new file mode 100644 index 0000000..45d2e9f --- /dev/null +++ b/HuntingDog2016/HuntingDog2016Package.cs @@ -0,0 +1,102 @@ +//------------------------------------------------------------------------------ +// +// Copyright (c) Company. All rights reserved. +// +//------------------------------------------------------------------------------ + +using System; +using System.ComponentModel.Design; +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Windows.Forms; +using Microsoft.VisualStudio; +using Microsoft.VisualStudio.OLE.Interop; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; +using Microsoft.Win32; + +namespace HuntingDog +{ + /// + /// This is the class that implements the package exposed by this assembly. + /// + /// + /// + /// The minimum requirement for a class to be considered a valid package for Visual Studio + /// is to implement the IVsPackage interface and register itself with the shell. + /// This package uses the helper classes defined inside the Managed Package Framework (MPF) + /// to do it: it derives from the Package class that provides the implementation of the + /// IVsPackage interface and uses the registration attributes defined in the framework to + /// register itself and its components with the shell. These attributes tell the pkgdef creation + /// utility what data to put into .pkgdef file. + /// + /// + /// To get loaded into VS, the package must be referred by <Asset Type="Microsoft.VisualStudio.VsPackage" ...> in .vsixmanifest file. + /// + /// + /// + [ProvideAutoLoad(VSConstants.UICONTEXT.ShellInitialized_string)] + [PackageRegistration(UseManagedResourcesOnly = true)] + [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] // Info on this package for Help/About + [Guid(HuntingDog2016Package.PackageGuidString)] + [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")] + [ProvideMenuResource("Menus.ctmenu", 1)] + public sealed class HuntingDog2016Package : Package + { + /// + /// HuntingDog2016 GUID string. + /// + public const string PackageGuidString = "5b3a5944-ba3e-449d-8b79-4d194244b643"; + + /// + /// Initializes a new instance of the class. + /// + public HuntingDog2016Package() + { + // Inside this method you can place any initialization code that does not require + // any Visual Studio service because at this point the package object is created but + // not sited yet inside Visual Studio environment. The place to do all the other + // initialization is the Initialize method. + } + + #region Package Members + + /// + /// Initialization of the package; this method is called right after the package is sited, so this is the place + /// where you can put all the initialization code that rely on services provided by VisualStudio. + /// + protected override void Initialize() + { + base.Initialize(); + HuntingDogCommand.Initialize(this); + + // total hack https://ssmsschemafolders.codeplex.com/SourceControl/latest#README.md + DelayAddSkipLoadingReg(); + } + + #endregion + + private void AddSkipLoadingReg() + { + var myPackage = UserRegistryRoot.CreateSubKey(@"Packages\{" + PackageGuidString + "}"); + if (myPackage != null) + { + myPackage.SetValue("SkipLoading", 1); + } + } + + private void DelayAddSkipLoadingReg() + { + var delay = new Timer(); + delay.Tick += delegate (object o, EventArgs e) + { + delay.Stop(); + AddSkipLoadingReg(); + }; + delay.Interval = 1000; + delay.Start(); + } + } +} diff --git a/HuntingDog2016/HuntingDog2016Package.vsct b/HuntingDog2016/HuntingDog2016Package.vsct new file mode 100644 index 0000000..a0d23ed --- /dev/null +++ b/HuntingDog2016/HuntingDog2016Package.vsct @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HuntingDog2016/HuntingDogCommand.cs b/HuntingDog2016/HuntingDogCommand.cs new file mode 100644 index 0000000..73380c8 --- /dev/null +++ b/HuntingDog2016/HuntingDogCommand.cs @@ -0,0 +1,86 @@ +using System; +using System.ComponentModel.Design; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; + + +namespace HuntingDog +{ + internal sealed class HuntingDogCommand + { + public const int CommandId = 0x0100; + public static readonly Guid CommandSet = new Guid("c2de79ab-b0ac-40bf-b340-34c6ab2bff53"); + private readonly Package _package; + private IVsWindowFrame _windowFrame = null; + private HuntingDog.ucHost _uglyUsefuleDogFace; + + private HuntingDogCommand(Package package) + { + if (package == null) + { + throw new ArgumentNullException("HuntingDogCommand is null from an unknown reason."); + } + + this._package = package; + + OleMenuCommandService commandService = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; + if (commandService != null) + { + var menuCommandId = new CommandID(CommandSet, CommandId); + var menuItem = new MenuCommand(this.MenuItemCallback, menuCommandId); + commandService.AddCommand(menuItem); + } + } + + public static HuntingDogCommand Instance { get; private set; } + private IServiceProvider ServiceProvider { get { return this._package; } } + public string Caption { get { return "Hunting Dog"; } } + + public static void Initialize(Package package) + { + Instance = new HuntingDogCommand(package); + Instance.ShowToolWindow(); + } + + private void MenuItemCallback(object sender, EventArgs e) + { + ShowToolWindow(); + } + + //https://www.mztools.com/articles/2015/MZ2015005.aspx + private void ShowToolWindow() + { + const string TOOLWINDOW_GUID = "{7C23E551-2E95-40A8-B783-3753D4E3DEAB}"; + + if (_windowFrame == null) + { + + _uglyUsefuleDogFace = new ucHost(); + _windowFrame = CreateToolWindow(Caption, TOOLWINDOW_GUID, _uglyUsefuleDogFace); + + // additional init could be done after this line for the user control + } + _windowFrame.Show(); + } + + + private IVsWindowFrame CreateToolWindow(string caption, string guid, System.Windows.Forms.UserControl userControl) + { + const int TOOL_WINDOW_INSTANCE_ID = 0; // Single-instance toolwindow + + IVsUIShell uiShell = (IVsUIShell)ServiceProvider.GetService(typeof(SVsUIShell)); + Guid toolWindowPersistenceGuid = new Guid(guid); + Guid guidNull = Guid.Empty; + int[] position = new int[1]; + IVsWindowFrame windowFrame = null; + + int result = uiShell.CreateToolWindow((uint)__VSCREATETOOLWIN.CTW_fInitNew, TOOL_WINDOW_INSTANCE_ID, userControl, ref guidNull, ref toolWindowPersistenceGuid, ref guidNull, null, caption, position, out windowFrame); + + Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(result); + + return windowFrame; + } + + + } +} diff --git a/HuntingDog2016/Key.snk b/HuntingDog2016/Key.snk new file mode 100644 index 0000000..bf87134 Binary files /dev/null and b/HuntingDog2016/Key.snk differ diff --git a/HuntingDog2016/Properties/AssemblyInfo.cs b/HuntingDog2016/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..fec24bf --- /dev/null +++ b/HuntingDog2016/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HuntingDog2016")] +[assembly: AssemblyDescription("SSMS Quick schema search addin front-end")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Home-brew")] +[assembly: AssemblyProduct("HuntingDog2016")] +[assembly: AssemblyCopyright("Alex, the lion")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("3.6.0.0")] +[assembly: AssemblyFileVersion("3.6.0.0")] diff --git a/HuntingDog2016/Properties/Resources.Designer.cs b/HuntingDog2016/Properties/Resources.Designer.cs new file mode 100644 index 0000000..183b0af --- /dev/null +++ b/HuntingDog2016/Properties/Resources.Designer.cs @@ -0,0 +1,233 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HuntingDog.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HuntingDog.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap close { + get { + object obj = ResourceManager.GetObject("close", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap cpu { + get { + object obj = ResourceManager.GetObject("cpu", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap database { + get { + object obj = ResourceManager.GetObject("database", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap download { + get { + object obj = ResourceManager.GetObject("download", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap footprint { + get { + object obj = ResourceManager.GetObject("footprint", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + public static System.Drawing.Icon footprintAlpha { + get { + object obj = ResourceManager.GetObject("footprintAlpha", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap process { + get { + object obj = ResourceManager.GetObject("process", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap refresh { + get { + object obj = ResourceManager.GetObject("refresh", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap scroll { + get { + object obj = ResourceManager.GetObject("scroll", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap scroll2 { + get { + object obj = ResourceManager.GetObject("scroll2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap search { + get { + object obj = ResourceManager.GetObject("search", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap server { + get { + object obj = ResourceManager.GetObject("server", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap table_sql { + get { + object obj = ResourceManager.GetObject("table_sql", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap text_align_center { + get { + object obj = ResourceManager.GetObject("text_align_center", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap text_formula { + get { + object obj = ResourceManager.GetObject("text_formula", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap warning { + get { + object obj = ResourceManager.GetObject("warning", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap workplace2 { + get { + object obj = ResourceManager.GetObject("workplace2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/HuntingDog2016/Properties/Resources.resx b/HuntingDog2016/Properties/Resources.resx new file mode 100644 index 0000000..a05c870 --- /dev/null +++ b/HuntingDog2016/Properties/Resources.resx @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\..\Resources\Images\close.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Images\cpu.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Art\database.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Images\download.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Resources\footprint.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + + + AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA + AAD///8B////Af///wH///8Bra2t/0FBQf8gICD/CwsL/zQ0NP9YWFj/eXl5/7Kysv////8B////Af// + /wH///8B////Af///wH///8Bubm5/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/R0dH//// + /wH///8B////Af///wH///8B////AVxcXP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP/e3t7/////Af///wH///8B////Af///wFmZmb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8iIiL/////Af///wH///8B////Af///wH///8B09PT/wcHB/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/hoaG/////wH///8B////Af///wGcnJz/RUVF/6ioqP+Ojo7/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/Ghoa/////wGKior/p6en/////wHX19f/BAQE/wAAAP8tLS3/////AQ0NDf8AAAD/AAAA/wAA + AP8AAAD/BgYG/7Ozs/+Dg4P/AAAA/wICAv+6urr/d3d3/wAAAP8AAAD/Pj4+/////wGRkZH/CQkJ/wAA + AP8AAAD/EBAQ/7W1tf////8BVFRU/wAAAP8AAAD/NTU1/zw8PP8AAAD/AAAA/62trf////8B////AdbW + 1v9hYWH/dHR0/97e3v////8B////AWpqav8AAAD/AAAA/wcHB/8wMDD/AAAA/0NDQ/////8B5+fn/6am + pv////8B////Af///wH///8B////Af///wHT09P/CQkJ/wAAAP8WFhb/qqqq/4aGhv////8B////ASQk + JP8AAAD/cnJy/////wH///8BZmZm/1BQUP/b29v/////AaOjo/9RUVH/o6Oj/////wH///8B////Abm5 + uf8AAAD/AAAA/zs7O/////8B1dXV/wAAAP8AAAD/NDQ0/////wH///8B////Af///wH///8B////Af// + /wGEhIT/AAAA/wAAAP8yMjL/////AcrKyv8AAAD/AAAA/wAAAP/FxcX/////Af///wH///8B////Af// + /wH///8Bd3d3/wAAAP8AAAD/S0tL/////wG/v7//AAAA/wAAAP8AAAD/rq6u/////wH///8B////Af// + /wH///8B////AXd3d/8AAAD/AQEB/7Kysv////8Bzs7O/wAAAP8AAAD/AAAA/7+/v/////8B////Af// + /wH///8B////Af///wHg4OD/Wlpa/5WVlf////8B////Af///wGMjIz/Pz8//4SEhP////8B////Af// + /wH///8BAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//w== + + + + ..\..\Resources\Art\process.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Resources\refresh.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Images\scroll.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Resources\scroll2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Art\search.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Images\server.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Images\table_sql.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Images\text_align_center.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Images\text_formula.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Art\warning.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\..\Resources\Images\workplace2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/HuntingDog2016/Resources/HuntingDog2016.ico b/HuntingDog2016/Resources/HuntingDog2016.ico new file mode 100644 index 0000000..d323b07 Binary files /dev/null and b/HuntingDog2016/Resources/HuntingDog2016.ico differ diff --git a/HuntingDog2016/Resources/HuntingDogCommand.png b/HuntingDog2016/Resources/HuntingDogCommand.png new file mode 100644 index 0000000..b22d975 Binary files /dev/null and b/HuntingDog2016/Resources/HuntingDogCommand.png differ diff --git a/HuntingDog2016/SkipLoading.2016.reg b/HuntingDog2016/SkipLoading.2016.reg new file mode 100644 index 0000000..a86bbd5 Binary files /dev/null and b/HuntingDog2016/SkipLoading.2016.reg differ diff --git a/HuntingDog2016/VSPackage.resx b/HuntingDog2016/VSPackage.resx new file mode 100644 index 0000000..dc58041 --- /dev/null +++ b/HuntingDog2016/VSPackage.resx @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SQL Hunting Dog + + + Hunt all you can + + + + Resources\HuntingDog2016.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/HuntingDog2016/index.html b/HuntingDog2016/index.html new file mode 100644 index 0000000..947b054 --- /dev/null +++ b/HuntingDog2016/index.html @@ -0,0 +1,65 @@ + + + + + + + + Getting Started + + + +
+ + +
+
+

Creating a Visual Studio Extension

+ +

This project enables developers to create an extension for Visual Studio. The solution contains a VSIX project that packages the extension into a VSIX file. This file is used to install an extension for Visual Studio.

+

Add new features

+ +
    +
  1. Right-click the project node in Solution Explorer and select Add>New Item.
  2. +
  3. In the Add New Item dialog box, expand the Extensibility node under Visual C# or Visual Basic.
  4. +
  5. Choose from the available item templates: Visual Studio Package, Editor Items (Classifier, Margin, Text Adornment, Viewport Adornment), Command, Tool Window, Toolbox Control, and then click Add.
  6. +
+ +

The files for the template that you selected are added to the project. You can start adding functionality to your item template, press F5 to run the project, or add additional item templates.

+ +

Run and debug

+

To run the project, press F5. Visual Studio will:

+ +
    +
  • Build the extension from the VSIX project.
  • +
  • Create a VSIX package from the VSIX project.
  • +
  • When debugging, start an experimental instance of Visual Studio with the VSIX package installed.
  • +
+ +

In the experimental instance of Visual Studio you can test out the functionality of your extension without affecting your Visual Studio installation.

+ +
+
+
+

Visual Studio Extensibility Resources

+ +
    +
  1. MSDN documentation
    Detailed documentation and API reference material for building extensions.
  2. +
  3. Extension samples on GitHub
    Use a sample project to kickstart your development.
  4. +
  5. Extensibility chat room on Gitter
    Meet other extension developers and exchange tips and tricks for extension development.
  6. +
  7. Channel 9 videos on extensibility
    Watch videos from the product team on Visual Studio extensibility.
  8. +
  9. Extensibility Tools 2015
    Install an optional helper tool that adds extra IDE support for extension authors.
  10. +
+

Give us feedback

+ +
+
+
+
+ + diff --git a/HuntingDog2016/packages.config b/HuntingDog2016/packages.config new file mode 100644 index 0000000..f03a095 --- /dev/null +++ b/HuntingDog2016/packages.config @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HuntingDog2016/source.extension.vsixmanifest b/HuntingDog2016/source.extension.vsixmanifest new file mode 100644 index 0000000..7834279 --- /dev/null +++ b/HuntingDog2016/source.extension.vsixmanifest @@ -0,0 +1,18 @@ + + + + + HuntingDog2016 + quick search for sql entities in SSMS 2016searcS + + + + + + + + + + + + diff --git a/HuntingDog2016/stylesheet.css b/HuntingDog2016/stylesheet.css new file mode 100644 index 0000000..d5e9c71 --- /dev/null +++ b/HuntingDog2016/stylesheet.css @@ -0,0 +1,129 @@ +body { + margin: 0; + padding: 0; + border: 0; + color: #1E1E1E; + font-size: 13px; + font-family: "Segoe UI", Helvetica, Arial, sans-serif; + line-height: 1.45; + word-wrap: break-word; +} + +/* General & 'Reset' Stuff */ + + +.container { + width: 980px; + margin: 0 auto; +} + +section { + display: block; + margin: 0; +} + +h1, h2, h3, h4, h5, h6 { + margin: 0; +} + +/* Header,
+ header - container + h1 - project name + h2 - project description +*/ + +#header { + color: #FFF; + background: #68217a; + position:relative; +} +#hangcloud { + width: 190px; + height: 160px; + background: url("../images/bannerart03.png"); + position: absolute; + top: 0; + right: -30px; +} +h1, h2 { + font-family: "Segoe UI Light", "Segoe UI", Helvetica, Arial, sans-serif; + line-height: 1; + margin: 0 18px; + padding: 0; +} +#header h1 { + font-size: 3.4em; + padding-top: 18px; + font-weight: normal; + margin-left: 15px; +} + +#header h2 { + font-size: 1.5em; + margin-top: 10px; + padding-bottom: 18px; + font-weight: normal; +} + + +#main_content { + width: 100%; + display: flex; + flex-direction: row; +} + + +h1, h2, h3, h4, h5, h6 { + font-weight: bolder; +} + +#main_content h1 { + font-size: 1.8em; + margin-top: 34px; +} + + #main_content h1:first-child { + margin-top: 30px; + } + +#main_content h2 { + font-size: 1.4em; + font-weight: bold; +} +p, ul { + margin: 11px 18px; +} + +#main_content a { + color: #06C; + text-decoration: none; +} +ul { + margin-top: 13px; + margin-left: 18px; + padding-left: 0; +} + ul li { + margin-left: 18px; + padding-left: 0; + } +#lpanel { + width: 620px; + float: left; +} +#rpanel ul { + list-style-type: none; + width: 300px; +} + #rpanel ul li { + line-height: 1.8em; + } +#rpanel { + background: #e7e7e7; + width: 360px; + float: right; +} + +#rpanel div { + width: 300px; +} diff --git a/HuntingDog2016/useful_links.md b/HuntingDog2016/useful_links.md new file mode 100644 index 0000000..1fa70cf --- /dev/null +++ b/HuntingDog2016/useful_links.md @@ -0,0 +1,31 @@ +Useful links for SSMS 2016 Dev +============================== +https://www.sqlservercentral.com/Forums/Topic1802009-3740-1.aspx +https://sqljudo.wordpress.com/31-days-of-sql-server-management-studio/ssms-day-27-building-a-custom-add-in-extension/ + +Menu and toolbar +http://solutioncenter.apexsql.com/how-to-create-visual-studio-add-ins-with-vs-packages/ + +Clean up +https://msdn.microsoft.com/en-us/library/cc138589.aspx + +How VSPackages Add User Interface Elements +https://msdn.microsoft.com/en-us/library/bb166229.aspx + +Adding Icons to Menu Commands +https://msdn.microsoft.com/en-us/library/bb165158.aspx + +Binding Keyboard Shortcuts to Menu Items +https://msdn.microsoft.com/en-us/library/cc138531.aspx + +Dynamic Menu Commmands +https://msdn.microsoft.com/en-us/library/bb166492.aspx + +Autoload a VS Package +https://www.mztools.com/articles/2013/MZ2013027.aspx + +Create a toolwindow with a ToolWindowPane class in a Visual Studio package +https://www.mztools.com/articles/2015/MZ2015004.aspx + +Create a toolwindow without a ToolWindowPane class in a Visual Studio package +https://www.mztools.com/articles/2015/MZ2015005.aspx \ No newline at end of file diff --git a/HuntingDog2016Install/HuntingDog2016.nsi b/HuntingDog2016Install/HuntingDog2016.nsi new file mode 100644 index 0000000..2bc4389 --- /dev/null +++ b/HuntingDog2016Install/HuntingDog2016.nsi @@ -0,0 +1,29 @@ +;NSIS Modern User Interface +;-------------------------------- +;Include Modern UI + !include "MUI2.nsh" +;-------------------------------- +;General + ;Name and file + Name "Hunting Dog for SSMS 2016 generated ${__DATE__} ${__TIME__} by $%username%" + OutFile "HuntingDog-SSMS2016-Install.exe" + + ;Default installation folder + InstallDir "c:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Extensions\HuntingDog2016\" + +;-------------------------------- +;Common settings +!include include\common.nsi + +;-------------------------------- +;Installer Sections +Section "Copy files " + SetOutPath "$INSTDIR" + File "..\HuntingDog2016\bin\Debug\*.dll" + File "..\HuntingDog2016\bin\Debug\HuntingDog2016.pkgdef" + File "..\HuntingDog2016\bin\Debug\extension.vsixmanifest" +SectionEnd + +Section "Prepare Registry for SkipLoading" + WriteRegDWORD HKCU "SOFTWARE\Microsoft\SQL Server Management Studio\13.0\Packages\{5b3a5944-ba3e-449d-8b79-4d194244b643}" "SkipLoading" 0x00000001 +SectionEnd \ No newline at end of file diff --git a/HuntingDog2016Install/include/common.nsi b/HuntingDog2016Install/include/common.nsi new file mode 100644 index 0000000..0029fe6 --- /dev/null +++ b/HuntingDog2016Install/include/common.nsi @@ -0,0 +1,16 @@ + SetCompressor /SOLID LZMA +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" \ No newline at end of file