VS2015 support?

Sep 9, 2015 at 9:40 AM
Hello,

Now that the first preview of SSDT-BI for VS2015 has been released (http://blogs.msdn.com/b/ssdt/archive/2015/09/04/10638963.aspx) I was wondering if anyone is working on VS2015 support for bidshelper?

As far as I understand, the VS2015 SSDT-BI environment should be able to target different versions of SQLServer (including SSIS). The preview is not able to do that yet though, but it is expected to be in the RTM.
Coordinator
Sep 9, 2015 at 12:50 PM
We have nearly finished support for targeting downlevel SSIS versions. But the VS2015 support is still a major piece of work due to the change in add-in models supported in VS. We will keep this thread posted.
Oct 2, 2015 at 1:29 PM
great news. How long do you think it took for a beta version?
Nov 18, 2015 at 7:42 PM
Hi all. Any news about the VS2015 support (including the Biml engine)?
Thank you.
Coordinator
Nov 20, 2015 at 7:44 AM
No, there is no news yet
Jan 22 at 2:31 PM
Edited Jan 22 at 2:32 PM
This is probably the only place where my question can get answered. Is there any documentation of the new json bim file format? I am asking because we really want to use display folders and we really want to use SSAS 2016. And you are the guys who introduced display folders "hack" in 2016 predecessors.
Coordinator
Jan 23 at 4:28 AM
I do not believe that MS has documented the new json format yet, there is an early version in the latest CTP, but it's still being developed. However I do not believe that they have added support for display folders in that CTP yet. We've been telling the development team that we really need these (and actions) implemented in the new json even if MS does not provide a UI in their initial release, so we are keeping our fingers cross that these make it in to the final product. Because if the new file format does not support we will have nothing to implement them against in BIDS Helper (If this is the case at RTM we would have to disable these features when we detect the json format is in use which would not be great)
Mar 3 at 2:37 PM
Any update on supporting vs 2015?
Coordinator
Mar 3 at 7:26 PM
At the moment we've done a small prototype and experimented with porting one feature across to the new extension architecture. Based on the learnings from that we've setup a new branch in the BIDS Helper code based and have start work on converting the core base classes across. Once that is done it looks like we'll have to work our way through updating every single feature as there are some basic conceptual differences between the way add-ins and extensions work in Visual Studio.
Mar 5 at 7:40 AM
Hi,

Just some questions on the strategy for the new extension architecture (which I assume resides in the bisdhelper-vsix branch?).

Note VS2015 will (very soon) have SSIS-multi targetting support for SQL2012,2014,2016 as part of SSDT-BI SQLServer2016 RC0 (see also http://blogs.msdn.com/b/ssis/archive/2016/03/03/what-s-new-for-ssis-2016-rc0.aspx)

Bidshelper currently also supports SQLServer2005 (end of life soon) and SQL2008 in VisualStudio 2005/2008/2010/2012/2013.
The last bidshelper (beta) release 1.7.0 was about a year ago (on Mar 17, 2015).

To me it would make sense if the 'new' (i.e. 2.0) Bidshelper codebase would only support VS2015 with SQLServer2012/2014/2016 support.
That would mean the SQL2005/2008 and VS2005/2008/2010/2012/2013 version could just enter maintenance only mode from the old branch.

I don't know if that would be acceptable to all end-users of bidshelper, but I can imagine it could greatly simplify development of bidshelper moving forward.

Seeing that the SSDT-BI VS2015 version will have multi-targetting support anyway, bidshelper needs to be able to support multiple SQL versions in the same plugin to be effective in VS2015. The old bidshelper architecture where SQL version support is tightly coupled to a specific VS version combination might not be appropriate anymore going forward.

Does this match the current strategy?
The reason I ask is because the bidshelper-vsix branch has solutions for all the SQL versions which could indicate a different direction.


Another question I would like to ask is if it would be possible/acceptable to move development of the 'new' bidshelper to something like GitHub.
I am hoping that would allow people (like me) to better be able to contribute actual code to the project.

I am very interested in helping to get Bidshelper (with BIML support) working in VS2015 asap and am feeling that I currently cannot contribute in a meaningfull way (i.e. by contributing code).

Best regards,

Jeroen
Coordinator
Mar 6 at 5:52 AM
We have not made any firm decisions yet, but our current thinking around version support going forward is that SQL 2005/2008 will probably go into maintenance mode with no new BIDS Helper releases for those versions.

The VSIX extension architecture has existed since VS 2012 so we should be able to pretty easily support SQL 2012/2014/2016 in VS 2012/2013/2015 going forward. I don't think we need to limit support to just VS 2015.

The bidshelper-vsix branch is pretty new and we have not been through and cleaned it up yet so all the solution files that existed in the bidshelper were just copied over automatically. That will probably be cleaned up in the next few weeks once we get the core classes re-worked and tested in the new extension format.

We don't have any plans at this point int time to move BIDS Helper to another site. But you can currently use the Codeplex Client to contribute patches. However the vsix branch is not in stable state at the moment where this would be easy to do.
Mar 7 at 10:09 PM
Apparently "You can't checkout a project, if you're not developer or contributor, via cpc".
I tried it and I got an error: Attempted to perform an unauthorized operation.

Anyway, I will try to keep an eye out on the progress and see if there is anything I can help out with.
Coordinator
Mar 8 at 4:57 AM
<sigh> - sorry about that. Checking the codeplex client site it looks like there are a whole bunch of open issues around unauthorized operation issues. Looks like no one has updated the client after they update the TFS back ends. That does make the issue bigger than I first thought as it is now a blocker to new contributors.
Mar 12 at 2:18 PM
It looks like bidshelper is not needed anymore to create display folders in SSDT 2015. Display folders has become supported feature in 2016 RC0.
Mar 13 at 8:54 AM
Hi,

I did an experiment with github/appveyor/gitter (mostly as a personal experiment to see what is possible with those services).
  • I copied the current bidshelper-vsix branch into a personal github repository
  • I created a new vs2015 branch for some experimentation with vs2015 (I only have that installed) and did a small experiment with setting up a build using the VSSDK that comes with VS2015
  • I hooked up this branch to appveyor for automatic building the vsix for VS2015 (note I disabled the auto publishing of the vsix to http://vsixgallery.com/guide/dev/, but that is something that is also possible)
  • I hooked up gitter for this repository (for chat)
The personal experimental branch is located at https://github.com/japj/bidshelper-vsix/tree/vs2015 and it also shows the badges for appveyor and gitter in the readme
NOTE: this is not building anything useable yet, it is merely a personal experiment to tryout some of available services (github, appveyor and gitter)

I think the appveyor building is especially interesting as it should be possible to also build extensions for VS2010/2012/2013 without having to have everything installed on your own machine (so it helps detecting early breaking builds).

Unfortunately it seems appveyor support for codeplex has hit a blocking issue with integration that seems to have halted.

Best regards,

Jeroen
Apr 6 at 12:18 PM
Hello,

Great to see progress in the vsix branch!
It seems though that the latest commit ( http://bidshelper.codeplex.com/SourceControl/changeset/108315 ) is missing some files.

The following files seem to be missing from source control:
bidshelper-vsix\Core\Logger\NullLogger.cs
bidshelper-vsix\Core\Logger\OutputLogger.cs
bidshelper-vsix\Core\BIDSHelperBuildEventPluginBase.cs
bidshelper-vsix\Core\Logger\ILog.cs

Atleast that is what I get when I open the SQL2012_BidsHelper-VSIX.sln in VS2015.

Best regards,

Jeroen
Coordinator
Apr 7 at 12:55 AM
Thanks Jeroen,

I did some work while disconnected and usually TFS handles that, but sometimes it gets confused and does not add new files. I've fixed that and re-committed.

Note that this branch is still very much a work in progress. I'm still doing some sweeping refactorings and I've only wired up a handful of menu options, but I have converted a reasonable cross section of different feature types so I'm pretty comfortable with the conversion to the new architecture so far.
Apr 7 at 6:48 AM
Hi,

not sure how re-committed works in codeplex but so far it hasn't shown up in http://bidshelper.codeplex.com/SourceControl/list/changesets or if I redownload the changeset.

I understand it is still much a work in progress.
I was looking at the current state since I am hoping we will be able to switch from VS2012 to VS2015 during the coming months (we are currently still targetting SQL2012).

If there is a reasonable part of the new architecture in place that probably means I will also be able to look into unfinished features that we are depending on and contribute (and it means other people might also be able to contribute).
Coordinator
Apr 7 at 10:00 AM
I didn't mean anything special, by re-commit. Simply a second commit.

Unfortunately, I tried to do the commit my commit from work and VS was stuck with a proxy authentication error. It's gone through properly now.
Apr 7 at 11:07 AM
Hi, I still have 2 failures building it:
  • BidsHelperPackage.cs:101 refers to StatusBar.Text, but there does not seem to be a definition (or extension method) for 'Text'. Can it be this is something not committed in BIDSHelper.Core.VsIntegration.StatusBar?
  • Resources\DeployMdxScript.png seems to be missing
So, I think we are almost at a point that I can build it successfully ;)
Thanks for the effort so far!
Apr 7 at 11:48 AM
I also discovered that the references in SQL2012_BidsHelper-VSIX.csproj to the VSSDK props and targets file is incorrect.
It refers to ..\packages... , while the packages folder is actually in the same directory as the VSIX.csproj.

Also, the VSSDK package (14.0.23107) might be outdated, since there is already a 14.2.25123.
Not sure if that is a problem or not (note I am running VS2015 Update2, so that might be related)

And there are some settings that are preventing me to run the extension in the experimental instance (but I still need to figure out how to fix that)
Apr 7 at 12:05 PM
I had to do the following in the bidshelper-vsix branch to get changeset 108317 building and running on my machine (note I have not tested any functionality, but the bidshelper extension shows up in the help/about section).
  • added Resources\DeployMdxScript.png
  • extended Core\VsIntegration\StatusBar.cs to include a Text property
  • modified SQL2012_BidsHelper-VSIX.csproj to Import the VSSDK.BuildTools from the right package path
  • upgraded all nuget packages to their latest version
  • VSIX build options: Enabled "Deploy VSIX content to experimental instance" and Disabled "Copy VSIX content to the following location"
  • in Debug options, start external program: "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" and Arguments: "/rootsuffix Exp"
Apr 7 at 12:40 PM
Now that I have the bidshelper vsix successfully building, I can now look into runtime issues when running bidshelper in VS2015.

I see a fair bit of references with hint paths to VS2010/VS2012 (Private) assemblies in the csproj. Since I have those installed on my dev machine it builds ok.
However when I try to run bidshelper-vsix in VS2015, the assemblies will not resolve because VS2015 has different versions of the assemblies.
And I can confirm this when looking at Tools/Options/Bidshelper/Version, I see:

BIDS Helper encountered an error when Visual Studio started:
Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
at BIDSHelper.BIDSHelperPackage.Initialize() in C:\bidshelper-108317\bidshelper-vsix\BidsHelperPackage.cs:line 107
Could not load file or assembly 'Microsoft.AnalysisServices.Common.FrontEnd, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.

As a check, which version of VisualStudio are you using to do the VSIX work? Is that VS2012?
And what versions if VS/SQL do you have installed on that machine?
Coordinator
Apr 8 at 11:04 AM
I'm currently using SQL2012 as a base and converting from Addin to VSIX first. Once that's stable SQL2014 support should be trivial, then when we do SQL2016 support we'll know that if stuff breaks it's because of differences in 2016.

I do have some changes to StatusBar checked out, but I also have a bunch of other changes including some cleaning up of the references checked out too and I'm in the middle of refactoring a number of things and my project is not even building at the moment, so it's not worth me doing another check in just yet. Like I said - it's a work in progress at the moment.. None of the issues you've hit trying to target SQL2016 with the SQL2012 solution are unexpected.
Apr 8 at 12:29 PM
Thanks for the update, I understand it is still a work in progress and it is good to take your time and do things the right way.
I am maybe just a bit to excited at seeing progress and trying to help out in a phase where that is not yet possible in a good way.
Sorry if that is the case.


Just to be clear, there might be some confusion on the difference between SQL version and VS version support we are talking about.

Historically, the VS and SQL tool versions were tightly coupled.
So when you write SQL2012 in the text above, I assume you also mean VS2012.
Thus when you write SQL2016 that implies VS2015 too.

However VS2015 can target different versions of SQL/SSIS/SSAS/SSRS (2012, 2014 and 2016),
So when I write VS2015 above I am not implying SQL2016 at this moment (that might be some of the confusion).

My team is hoping to switch to VS2015 while still keeping SQL2012 as the target SQL version.
This is partly because we are also doing some C# that has already moved to VS2015 and now are split between different versions of VS.
After we have moved to VS2015 we will look into actually migrating to SQL2016 (and it will be easier to experiment with this in VS2015 as you can switch targeting of the SQL version)

I don't know if you have ideas on how to solve this in the new bidshelper architecture, but "ignoring" VS2015 multi target SQL support could result in:
  • Bidshelper VSIX for SQL2012 in VS2012
  • Bidshelper VSIX for SQL2014 in VS2013
  • Bidshelper VSIX for SQL2016 in VS2015
Whereas it might make sense to also have:
  • Bidshelper VSIX for SQL2012 in VS2015
  • Bidshelper VSIX for SQL2014 in VS2015
If you take VS2015 multi target SQL support into account, you could have:
  • Bidshelper VSIX for SQL2012/SQL2014/SQL2016 in VS2015
It is unclear to me which way you are heading with the new bidshelper architecture and if you agree that it makes sense to be able to do SQL2012 development with bidshelper in VS2015.

I want to help with the VS2015/SQL2012 support for Bidshelper (as a starting point) since that will allow my team to move away from VS2012.

Sorry for the long text, but I hope it clears up some of my thoughts and confusion
Coordinator
Apr 10 at 7:29 AM
So the current plan is to support the maximum number of users with the minimum of effort. When I'm referencing the different SQL versions I'm really thinking in terms of the dependencies. So while not technically Visual Studio versions, it does effectively equate to that at the moment. So the current plan is to support VS2012/2013/2015. The multi-targetting we will effectively get for free. SSRS/SSAS have had the multi-target support since SQL2008R2, it's only SSIS that's lagged behind in this regard.

So with the new VSIX version of BIDS Helper people will have the choice of either going up to VS2015 or staying with their current version of VS.

So I'm starting with the VS2012 support because it's always easier to move up versions than down.

Do you work with SSAS Tabular at all? f you are interested in doing a quick spike - I have not had a chance to look into how to determine the compatibility setting of a SSAS Tabular project. We'll need to know that in order to switch off some of our Tabular features that won't be supported in the new 1200 compatibility mode.
Apr 10 at 8:29 AM
Sorry, we are currently not using SSAS Tabular.
However, that does not mean I can not help figure out how to implement certain things.

The product we build is mostly using SSAS multidimensional and SSIS.
I think the "biggest" feature we are using (and hence my slight focus on SSIS support) is the BIML Engine in BIDSHelper.

I had a quick look on how the AnalysisServices project stores the server version.
Microsoft.AnalysisServices.Project.AnalysisServicesProjectConfigurationOptions contains a string property DeploymentServerVersion
This can have values 9.0,10.0,11.0,12.0 and 13.0 (through Microsoft.DataWarehouse.Project.ServerVersionTypeConverter)

I am not sure yet which path in the VS APIs and project model will lead to getting to this data though.
I will look more into how that actually works, since it seems Microsoft is using similar patterns (with naming of assemblies and namespaces) for other VS extensions aswell.
And this seems related to how BIDSProjectKinds is used in BIDSHelper.
May 15 at 5:41 PM
dogsbell: Looking at your recent commits it seems promissing. Is there any chance to get a pre version? I am especially interested in BIML.
May 16 at 7:40 AM
@fmoeller: if you need to use biml in Visual Studio 2015, you can check the new BimlExpress add-in for Visual Studio.
May 16 at 12:02 PM
@lucazav: tahnks. yes working closely with Varigence to solve some remaning bugs in there. Some of our cutomers prefer just installing open source vs. registering ...
However, personally I like BimlExpress a lot. ;)
Coordinator
May 16 at 12:16 PM
@fmoeller - I can put up a preview 2016 build tomorrow. However we only have the BIML engine from 2014. I don't believe Varigence have provided an updated BIML engine for us yet.
Developer
May 16 at 2:46 PM
Edited May 16 at 4:55 PM
@fmoeller, the BimlEngine in BIDSHelper isn't open source. It's a binary that is handled differently from a licensing perspective than the rest of the BIDSHelper code (just like the MSFT binaries and PostSharp binaries that also ship with BIDSHelper).

You have customers that are unwilling to provide ANY email address for a free product with that much functionality? Even with the knowledge that we don't send marketing emails to those addresses? Rather, we use it only to get an idea of user counts, so that partners will work with us to make Biml even better.

Could you share their reasoning?
Coordinator
May 18 at 12:06 AM
I've put up a preview release here But I'm still working my way through testing the features so I'm not sure if they all work properly yet.
Jun 7 at 8:30 PM
japjOce wrote:
Hello,

Now that the first preview of SSDT-BI for VS2015 has been released (http://blogs.msdn.com/b/ssdt/archive/2015/09/04/10638963.aspx) I was wondering if anyone is working on VS2015 support for bidshelper?

As far as I understand, the VS2015 SSDT-BI environment should be able to target different versions of SQLServer (including SSIS). The preview is not able to do that yet though, but it is expected to be in the RTM.
Now that 2016 (VS 2015) is production, how much longer before bidshelper goes production for 2016?
Coordinator
Jun 8 at 12:56 PM
Soon - but it's hard to give a firm timeline as we don't work on this full time. The work is only done after hours in our spare time.
Sep 9 at 9:37 PM
We are looking at upgrading to VS2015 but won't be going to SQL Server 2016 for a while. The diplay folders functionality is not working in the BIDS Helper for SQL 2016 preview. are you planning to get this fixed? if so, do you have any idea on the timing? Thanks much...
Coordinator
Sep 13 at 1:37 PM
So the display folders feature was working for the RTM release, but then in one of the recent updates one of the undocumented api calls we use was changed. We have fixed this, but we were hoping to also be able to get the BIML features working before the next release. However at the moment I have not been able to get an ETA from Varigence as to when the are likely to provide an update to the BimlEngine component, so we may have to just do another release anyway and disable the BIML functionality.
Sep 14 at 1:53 PM
Thanks Darren! This would help a lot...
Sep 21 at 2:53 PM
Any update yet on when SSAS 2016 Tabular will be supported? Thanks