Stretching my Beyond the Basics of EG series by one more posting... The ability to create your own (custom) tasks in Enterprise Guide certainly takes EG beyond the basics. I've previously mentioned my disappointment (here and here) at the lack of 3rd-party custom tasks. One of the undoubted reasons is a perceived difficulty in coding with Microsoft .NET rather than any of SAS's own languages.
That may be about to change with the imminent release of Chris Hemedinger's Creating Custom Tasks for SAS Enterprise Guide using Microsoft .NET from SAS Press. In a recent blog post, Chris mentioned that his book will become available in early 2013. It will be a welcome addition to the SAS Press portfolio.
It's easy to see why custom tasks must be written in a non-SAS language: EG runs on Windows PCs, and those PCs will not have a copy of SAS on them if EG is working in client server mode and SAS is on a server. So the custom task author needs to use a language that is universally available and has a good understanding of Windows and its APIs. Thus, .NET is a sensible choice for SAS to have made.
However, it's not a programming skill that is available to many SAS teams. At best it tends to be a skill that one member of the team my have picked up. In these circumstances, support for custom tasks can easily become dependant upon one key person. That's not a good situation. I wrote about Bus Factors for software projects last year; the same applies to support teams.
If you're lucky enough to have two or more team members with .NET skills, or you're able to get support from a team alongside the SAS team, then custom tasks can add a great deal of value to your use of SAS and Enterprise Guide. Perhaps it's worth one or two of your team members investing some time into learning .NET?...
Andy,
ReplyDeleteThere's no getting around it. Creating custom tasks DOES involve programming in .NET (either C# or Visual Basic, your choice).
How much .NET do you need to know? It depends on your ambitions for your particular task. Simple custom tasks require very little programming.
You can see how small a custom task project might be from this very simple sample:
A SasData example on github
I intend to post more examples there as companion pieces to the book. Look for announcements on my blog.
.NET is a very transferable skill, so any investment of time spent learning it can help to make you a more valuable tech resource. It broadens your horizons a bit.
Hi Chris. I think there are two issues, and maybe my previous posts haven't quite aimed true.
DeleteThe first issue is the difficulty for a SAS practitioner to get hold of an IDE. An IDE such as Visual Studio Express is free, but downloading it to a corporate PC is often a stumbling block because most corporations block downloads. Asking the IT department to download and supply will be met with stiff hurdles.
The second issue is the ability to support a production SAS and EG solution that includes .NET components. There has to be a formal commitment to retain .NET skills within the SAS support team. The simple answer here is to restrict the use of custom tasks to dev/test/research activities.