Book Reviews

Custom Tasks for SAS Enterprise Guide Using Microsoft .NET

978-1-60764-678-5


"I’ve been waiting for a book like this for years, and now that it’s arrived, it does not disappoint. In this publication, Hemedinger introduces you to the power and flexibility of .NET and the SAS Task Toolkit library, which when combined make the process of building SAS Custom Tasks straightforward.

The first eight chapters are best read consecutively to provide background to the code examples in later chapters, but thereafter readers are free to choose which chapters suit their ability, as custom task information is provided at the start of each chapter and includes both the SAS and .NET difficulty levels.

The example custom tasks Hemedinger demonstrates throughout the book are varied and show what can be achieved when combining good ideas with SAS Enterprise Guide and the .NET framework-- the chapter on bringing your Facebook data into SAS being worth the cover price alone.

In summary: another Hemedinger home run."

David Moors
Independent SAS Consultant


"Having known Chris for a number of years, I expected a carefully researched book. He has included examples in both C# and VB.NET, so, even though I have written SAS Enterprise Guide custom tasks before, having read this book I have now learned how to do it properly. I can confidently say that everyone from beginner to expert will benefit from reading this book!"

Philip R. Holland
Consultant and Author
Holland Numerics Ltd


"Brilliant! This book takes a challenging subject and presents it in a structured step-by-step fashion. It begins with obtaining the right tools and gaining a basic understanding of those tools; it culminates in a series of example projects that demonstrate the flexibility, functionality, and benefit of Custom Tasks, giving novices like me a strong starting point.

I particularly liked Hemedinger's chapter on debugging techniques, an area so often ignored in books of this kind, yet so important for those new to the topic. Knowing how to switch on logging was of particular interest to me—it's something that all SAS programmers take for granted yet is not switched on in .NET by default.

Hemedinger takes the time to discuss alternative approaches throughout, and offers recommendations based upon his experiences. His open style of writing, combined with copious code samples for VB and C#, gives the reader plenty of confidence to get started on one's first project."

Andrew Ratcliffe
Freelance SAS Consultant
RTSL.eu, www.NoteColon.info


"This book is structured perfectly, from the first chapter describing the pros and cons of custom tasks versus other SAS programming options to the technical step-by-step guides in the final chapters. The book is a valuable reference tool and can also be easily read cover to cover.

Working my way through the book’s robust set of examples and tutorials, I found the author does an excellent job of covering the small issues that frequently arise (IDE setup/debugging/etc.). This saved me hours upon hours of time and allowed me to focus on the book’s technical aspects instead of troubleshooting my environment setup.

In summary, using this book as a guide, I have been able to create custom tasks for SAS Enterprise Guide and the SAS Add-In for Microsoft Office, which my co-workers and I use in our day-to-day SAS technical analyst positions. This book is a catalyst for anyone looking to tackle both the basic and advanced topics of creating custom tasks. With the help of this book, every potential gray area is clarified, allowing the reader to fully understand the concepts and the underlying workings of custom tasks in SAS Enterprise Guide and the SAS Add-In for Microsoft Office."

Pete Peranzo
SAS Technical Analyst


"Recently I had an opportunity to read Chris Hemedinger's new book Custom Tasks for SAS Enterprise Guide Using Microsoft .NET. I'd been very much looking forward to it because extending and customizing SAS software through custom applications and plug-ins is a topic that interests me greatly. Like many "old-timers" I started out by developing SAS/AF applications using SCL. At Metacoda I now use SAS Integration Technologies and the various Java-based SAS APIs to develop custom plug-ins for SAS Management Console. It's only natural that I'd also be interested in developing custom plug-ins (custom tasks) for SAS Enterprise Guide and had been eagerly looking forward to picking up some tips from Chris's new book.

I would say, in a nutshell, if you want to learn how to extend SAS software with .NET custom tasks, you should read Chris's book first; otherwise, you'll be doing it the hard way. I read the book over a few days and I know I've saved myself weeks of looking through documentation, papers, and learning from trial and error.

The main things I liked about the book were its brevity, focus, and the numerous custom task examples. At just over 250 pages, it's a short, punchy book that concentrates on just what you need to know to get a custom task built. Many of the programming books I own are close to 1000 pages, so I appreciate the short ones. I like a short book which distills the authors experience down to the key topics that will be of most help to me in making progress on the topic. I think it must be hard for an author to keep a programming book short and focused, deciding what should stay and what should go. It'd surely be easier to include everything, but that would make it difficult for a reader to find and extract the golden nuggets they need. This book concentrates on the nuggets: it starts with a minimal task and then shows numerous other examples of how it can be extended in various ways to do what you need it to. While full source code is downloadable for all the examples presented, the book focuses on key areas only. You won't find pages and pages of source code, just the fragments that are of most interest. If you need to, you can download whole custom task projects and review the full working source code in detail.

It's a very focused book. It doesn't attempt to teach you SAS, .NET, C#, or VB; but, does tell you what you will need to know and points you in the right direction where you need it. There are many other resources available to gain that knowledge, and I like the fact the book assumes you already know it (or will find out elsewhere) and you just want to know the integration aspects. A beginner can use this book as a companion to other SAS and .NET programming resources. Experienced developers can get the key integration information they need from this book without wading through pages of SAS and C# language basics or architecture details. I've bookmarked a bunch of pages I know I'll come back to, but even if I lost those bookmarks I know I'd be able to easily find those gems again.

There are many examples of practical custom tasks and full source code is available for each one. Each chapter introduces a new custom task that highlights particular areas of custom task development like running SAS code, saving task state, using SAS user interface controls, accessing SAS data, running operating system commands, using SAS IOM interfaces, and using third-party assemblies. As a SAS metadata nut, one thing I would like to have seen in the book was an example of accessing SAS metadata APIs from a .NET custom task, but that's only because it's a particular interest of mine. Having finished reading Chris' book, I'm now keen to have a go at writing such a custom task for myself.

If you're a .NET developer who wants to write custom tasks for SAS Enterprise Guide or the SAS Add-in for Microsoft Office, then this is a book you must read. If you're a SAS user who needs a custom task developed for you and you know a .NET developer, then this is a book you should buy for him or her. I know I'll be keeping my copy readily available within arm’s reach.

Now it's time for me to get started on that custom task to access SAS metadata…"

Paul Homes
Metacoda


"When I first saw that Chris Hemedinger wrote a book on SAS Custom Tasks for Enterprise Guide and SAS Add-In for Microsoft Office, I said, ‘WOW!

I don’t keep many technical books around, but any content from Hemedinger on this subject would be a must have. He is the go-to person on this area and I have relied on him in the past to fill in a nuanced area or two. As I read the book, I was presented with a few nuggets that stood out. First of all, it provided an insight into the world of professional .NET development at SAS. That was an unexpected surprise. I picked up a few great tips above and beyond custom tasks.

The meat of the book is how to create custom tasks in .NET for SAS. This is where it shines. Hemedinger lays out what interfaces are needed, how to build the .NET project, tips on debugging, and lots of sample code. For a beginner in this area, he walks them through the process. For a more experienced .NET developer, Hemedinger saves a lot of time by pointing out exactly what interfaces should be used; he then provides that all important code sample for making it happen.

A great book and one I will use again and again."

Alan Churchhill
Savian