The C# (.NET) SDK will be deprecated in December 2019. Users currently leveraging the C# SDK for custom tools will need to convert their tools to a different backend (C++, Python, or macro) ahead of its deprecation. As part of this, the UI of the tool will also need to be reconfigured using the HTML GUI SDK, or macro if using a macro.
More information regarding the deprecation can be found here.
.NET was a nice middle ground between performance and memory management. A lot faster than Python, but much more approachable than C++. You guys are forcing me to get into a nitty gritty low-level language...maybe someday I will thank you ;)
Anyway, I am hoping there is an unspoken reason for deprecating .NET involving going cross-platform. I imagine .NET makes it hard (impossible?) to support Mac/Linux. If giving up .NET means seeing Alteryx on my MacBook Pro, it will be worth it.
I'm not sure I would even bother with the SDK. I'm just coming onto Alteryx, but it doesn't seem worth the time investment. At any point they can just pull the plug. It's probably best to keep custom code solutions external to the platform. I'm glad I only wasted a day or so time looking into the .NET SDK before finding this.
I just did some digging into the C++ SDK. The example installed with designer doesn't compile and the interface is done in C#, so there's not a complete example to start with.
@32bit, I hope you bother with the SDK. I would love to see a strong sub-community of coders supporting each other and extending Alteryx's functionality in ways you just cannot do with the default toolset. And having custom solutions inline with the Alteryx engine is just so much more powerful and flexible than keeping them outside.
I had trouble getting a fresh Visual C++ project to compile as well. I wrote about it here if you want more detail, but basically you need to do the following to your project:
Are you using version 2018.4 of Alteryx? If you are, you will also need to comment out line 13 (#include “Base/Src_Error.h”) in EngineInterface.h of the SDK. Only 2018.4 has this statement, so if you are using an earlier or newer version of Alteryx, you shouldn't have to worry about this.
Anyway, I hope you give the C++ SDK a try, and post questions here if you run into issues, and answer questions others (me...) may have. I am trying to learn C++ and apply it to the SDK, so it would be great if we can learn from and build upon each other.
@tlarsen7572Thanks for the encouragement. One thing I would like to eventually accomplish in the sdk is to bring in xpdf's pdftotext ability into a tool. It has the best text abilities I've seen in a pdf scraper with the -layout switch and I've used it for almost 10 years in my projects at work. It's command-line and already written in c, so I think it wouldn't take too much work. Unfortunately I haven't coded C in almost 20 years, so it's going to be slow going. It seems like a small project, so maybe not much of a loss in the future if it has to be rewritten.
My comments about not bothering with the SDK is because of this announcement. I can see talks about the c# sdk going back to 2010 at least. Plenty of time for a company to invest heavily. I can just imagine their reaction to this news when they see it.
XPDF would be a great tool to get into Alteryx for those of us cursed with having to deal with PDF 'data' files. And with the c bindings, it sounds like a perfect candidate for the C++ SDK. Time permitting, I would be willing to pitch in on something like this if you ever want to give it a proper try. And by 'pitch in', I mean bumble around until C++ finally starts making sense...
@Nate1 set up a Slack channel that @nick612haylund and I used for some Python development. Unless they say different, I don't see any issue in expanding it to include the C++ and HTML SDKs. If you are interested, that might be a nice place to start collaborating.
@tlarsen7572I confirmed the pdftotext exe works with the run command without creating it as a new tool. You can even publish it to the server without having to install anything or any special setup.Just capture the output as a plain ascii text file and each line is read in separately and can be parsed using regex.