About the author

J Sawyer is a developer based in Houston, TX who absolutely loves to write code. After spending 9 years at Microsoft, he moved on to other things and is currently the Lead Developer for the RealTime Data Management team at Logica US. He spends his days building Really Cool Things around StreamInsight and having a blast doing it.

He has been involved with HDNUG, one of the oldest and largest .NET-focused user groups in the US, since its inception in 2001 and has watched it grow from 5-10 technologists meeting around a conference table to a thriving community of over 5000 with regular meeting attendance averaging 100 attendees. He currently serves as the Vice President. You can join him at HDNUG on the second Thursday of every month at the Houston Microsoft office.

He also loves to ride his Yamaha FZ1. And sometimes his Ninja 650. And also his Honday XR-400 dirt bike. But he doesn't code and ride at the same time. That would be bad.

StreamInsight Templates–New Build/Release

July 19, 2011 6:27 AM

I just posted this last night on CodePlex. There is nothing new in there but there was some general cleaning up and some fixes to a couple of issues based on feedback. Some of the changes:

  • Added System.ServiceModel to the console project. I could have sworn it was there before …
  • Fix for the project versions. They now all (properly) show up as Fx 4.0, no client profile.
  • In the catch statements, the exception types/variables are commented out. This prevents compiler warnings.
  • Naming of variables in a couple of places to make a little more sense.
  • All input adapters now have a ProductEvents() method.
  • All output adapters now have a skeleton for ConsumeEvents() that also looks for the Stopping() state.
  • Factory classes don’t return the new adapters immediately. Instead, a temp/return variable is set and then returned after the switch statement. This makes it easier to insert custom logic for creation vs. reuse of input adapters.
  • Fix for names … some adapters didn’t have the proper file names.

I am working on templates for extensibility points and have started the UDA item template but that wasn’t quite ready for this build. There will also be templates for UDO’s and UDSO’s.

I think that covers it. As with the last release, please provide feedback.

Tags:

StreamInsight | Open Source

Visual Studio Project and Item Templates for StreamInsight

July 12, 2011 7:34 AM

I’ve just published – and created an initial release for – a set of Visual Studio project and item templates for StreamInsight. The release dropped yesterday is a beta primarily for feedback on the templates, particularly the naming conventions, comments and sample boilerplate code. The items are placed in a “StreamInsight” grouping in the Add New dialogues so they’re very easy to find. There are four project templates:

  • A console application project template that creates a basic app based on the Simple StreamInsight Application that I posted about 2 months ago.
  • A StreamInsight library project template that creates a blank DLL project with the StreamInsight references added. Unlike the built-in DLL project template, this template does not include “Class1.cs” … which has always gotten on my nerves.
  • Item templates for both input and output adapters, typed and untyped. These are multi-file item templates and add the factory, a configuration class and adapters for edge, point and interval events. The typed adapters add a basic/simple type class as well. Each adapter is placed in its own folder and has its own namespace. Because of how the replacement parameters work with the templates, the file names have the format [BaseItemName][Direction].[ItemType]. The base item name will be a short name for the source/destination for the adapter. For example, a point adapter for, say, WCF input adapter for edge events would be WcfInput.Edge. When naming this in the Add New Item dialogue, you would use “Wcf” only.

Project Templates:

Project Templates

Item Templates:

Item Templates

New Item in Solution Explorer:

SIInputAdapter

In the near future, I’m planning on adding item templates for the various StreamInsight specific extension points such as UDA’s and, when version 1.2 is released, UDSO’s.

In the longer term, I’d like to make this a wizard rather than simple item templates. A wizard may allow me to get away from the “.” in the file names and it will allow users to select existing classes for the typed input adapters rather than creating a “phony” one, thereby creating a better user experience. Once I do that, the VSIX will need to be installed via MSI, which would also allow for the addition of Visual Studio snippets for common query patterns and other code chunks. Ambitious goals, perhaps, but those are the only ones worth having, right?

Creating the templates themselves was a royal pain in the a$$. Not so much because of the actual process but because the documentation for creating templates sucks so badly. Some of the documented replacement parameters documented are simply wrong – as in, they don’t get replaced!. Others aren’t documented at all, which makes discovery of these things far more difficult. Considering the number of templates that the Microsoft folks create (and especially the Visual Studio group), one would hope that the documentation would be better that the suckage that exists on MSDN. I wound up digging around in the Visual Studio templates installed on my machine than to figure out some of this stuff.

Of course, because I am a big fan of .NET Open Source software, it is available on CodePlex … and you, dear reader, are welcome to sign up if you’d like to help!

Tags:

StreamInsight | Open Source | Visual Studio Tools

Favorite .NET OSS Projects?

March 6, 2009 5:04 PM

I’ve just gotten back from the 2009 MVP Summit (it was awesome!) and got into a lot of conversations around .NET Open Source, something that I’ve had a soft spot for ever since getting involved with the original Commerce Starter Kit with Rob Conery. And it’s occurred to me that there is no “list” of cool .NET Open Source projects out there. Yes, there is CodePlex, Google Code, SourceForge, etc. that are repositories of OSS projects … but it’s really somewhat impossible to compile a list from there. And Microsoft (DPE included) has done a less-then-stellar job evangelizing these projects. So … I’ve decided that I’m going to go about making such a list and I’m asking y’all to leave feedback/comments/messages for me about your favorite .NET based OSS projects. Yes, I have my own personal list, but I know it’s not complete … there’s just so much out there.

Now, to be sure, there will be some qualifications for the list. I’m still pondering what some of these will be but, I have to say, I’m not leaning towards things like “usefulness”, “quality” or any other equally subjective criteria. Number of downloads isn’t a qualifier either … some OSS projects have been around for a while and/or have a broad applicability (and a lot of downloads) but that doesn’t mean that other OSS projects that fill a more “niche” need (and have fewer downloads) aren’t equally as valuable. BUT … there are some things that I know that I’ll be looking for. So, here they are:

  • Community-driven: This means that those Microsoft-led projects don’t count. I want the projects that are started, developed and driven by the community. This isn’t to say that you can’t have Microsoft contributors on the project but Microsoft should NOT drive the project.
  • Actively under development: There are a lot of OSS projects out there that are simply dead on the vine. Maybe they have a release and nothing else, maybe they never got past “alpha” or “beta” stage. Not looking for these at all. I’m looking for living, breathing projects with an active community. And I’m looking for at least 1 non-alpha/beta release within the past 12-18 months.
  • Link to project site: Yes, I am perfectly capable of doing a search on Windows Live Search (you really didn’t think I’d use the G-word, did you?), but I don’t want to have to go digging around. If it’s one of your favorite kewl .NET OSS projects, you should already have a link, right? So send it to me. And no, it doesn’t have to be on CodePlex and not being on CodePlex won’t count against the project.
  • More details: Tell me why you think that this is a cool OSS project. What need does it fill? How is it unique? What makes it interesting? I’m not looking for a book here, just a couple of sentences will do. But don’t send me a title and/or a link only.

Tags:

Open Source

CSK 3.0 CTP1

November 3, 2008 6:36 PM

I know, I know, it’s a little late. I said Nov 1st and it’s now Nov 3rd. Here’s what happened – I was all on track to have it ready for the 1st, but then I got sick. I felt like a bowl of cold oatmeal, which is not very good. Kids … I’m tellin’ ya … they’re germ factories. I wound up spending the weekend in bed, resting. I could have down a drop on Friday or Saturday regardless, but it wasn’t at the point that I wanted it to be. Now that I’m feeling better, I got back down to it and got it to the point that I wanted in about an hour or so worth of work (told you I was close).

[EDIT] You can download it from CodePlex. (thanks Alan!)

Release Notes

This is a Tech Preview. Read: nowhere near final. It’s not even up to what I’d call a beta. I’m putting this up primarily for feedback from the community and (hopefully) to generate some additional interest. It does show the direction that I’m going with this and I hope you’ll notice that, while the underlying functionality is pretty complex, it’s easy to work with and easy to change the UI. I have avoided duplicated any code as much as possible, though I may have missed something.

User Interface elements:

Most of the user interface is encapsulated in User Controls, which you will find in the Controls folder. I think that the names should be self-explanatory. For simplicity, data binding is used whenever feasible. Yes, it is not the most attractive. If there is anyone with better design skills, I’d be happy to hear from you.

Implemented functionality:

It’s the very base functionality; you have catalog display and navigation, cart functionality and checkout functionality. Checkout does not, at this time, call any of the payment processing components but the code will be (for the most part) the same when that does get added in.

Installation:

Unzip the file to a folder on your system. In the Data folder, you will find a backup of the Sql Server database that is used for the site. If you restore this to “.\SqlExpress” in a database named “CommerceDb”, you will not need to make any changes at all to the connection strings. If, however, your database is different, change the connection strings that are in the web.config.

Coming next:

Added actual payment processing. Would like to get login implemented as well; we’ll see about that.

Tags: , ,

CSK | Open Source | Web (and ASP.NET) Stuff

CSK 3.0 Current Status

October 29, 2008 12:33 PM

Just last Friday, Rob Conery and I announced that we were working on a Commerce Starter Kit v 3.0, reviving the spirit of the CSK - “Sell your stuff, not your soul” (I always loved that tag line!). The project will be hosted on CodePlex. The current 3.0 checkins do not represent the current state of affairs, but a very interim state. It does show the architectural direction though. I also packaged up the final release of CSK 2.0 that Rob and I collaborated on so long ago for those that are interested. CSK 2.0 will not be actively supported moving forward. Support for CSK 3.0 will be done on the ASP.NET Forums.

This is a quick update on the current status and a preliminary schedule for releases, etc. Keep in mind that this is preliminary and subject to change (in either direction).

November 1, 2008: First drop of CSK 3.0. We’ll call this one a “Community Tech Preview” (CTP) and, in the tradition of CTP’s, it will represent a work very much in progress. We should have all of the major UI components of the site in place and, to some extent, functional. Well, catalog and cart are functional now, checkout … that may not be quite there on Friday’s drop, but I hope to have it there. I’d rather have this CTP release sooner than later to get feedback and participation from the community as early in the process as possible.

December 1, 2008: CSK 3.0 Beta 1. This will be a stable release and we’re targeting to have it feature-complete. But we’ll still be working on any bugs and tightening down the hatches.

January 5, 2009: CSK 3.0 Beta 2. Final beta of CSK 3.0. Again, a stable release, feature complete with few bugs (hopefully) left so we can concentrate on performance tuning and the like. (Note: there will be some tuning throughout the process, but this will involved a major push on tuning.)

February 1, 2009: CSK 3.0 RTM. ‘Nuff said.

I would love for this schedule to actually be too conservative. I really think it is. But … there’s lots to do and I do have other stuff on my plate as well, so I’m playing it safe. In between these milestones, there will be other drops as work progresses, with at least 1 interim release in between the dates here.

If you are interested in working on CSK 3.0 and can commit to spending some time on it (that second part is the hard one!), let me know. This is especially true if you have features that you’d like to see implemented; that’s the best way to get those features in there! Keep in mind though that, much as I would like to, I won’t be giving everyone commit rights … I will need to see some contributions, etc. first. The reality is that we can’t have a free-for-all on the source tree; that would be bad for everyone involved.

Tags: ,

CSK | Open Source