Speaking At PASS 2008 In Seattle

I just got back word from my buddy Brian, that we were invited back to PASS. This will be my forth year speaking at this conference and even though Brian and I keep the same title of our session, "Hacking SqlServer" every year is diffrent due to new threats and technologies. This means that we are continually implementing new tactics and technologies within our demos to help form opinions within our audiances if certain practices are safe or not. This year I will probably put LINQ to the test for our hacking dual demo and Brian may flash some new features of SQLServer 2008.

Generic "HasValue" And Policy Activity Gotcha

Recently I noticed this error, Cannot evaluate property "HasValue" because its target object is null. I did not get it at compilation of my workflow project, but running a workflow application. I use generic data types whenever possible, and I use the "HasValue" property as well, so when I started getting this error I was not sure where to start looking. Fortunately, this error means exactly what it says and since I cannot debug to the point where it occurs it probably means it is happening within a WF rule or condition.

Normally if you have code that looks like if(NewPerson.IsMarried.HasValue && NewPerson.IsMarried.Value == true) it will process fine, however if you use generic data types regularly like me within policy activities you will come across the same error message like above. Fortunately, the way around this issue is to simply use the null condition so that your policy's business rules look similiar to this... if(NewPerson.IsMarried!=null && NewPerson.IsMarried.Value == true)

Jacksonville .Net Code Camp 2008, Suggest A Topic!

The official site for Jacksonville's 2008 Code Camp is up! The actual event is scheduled for August 23, 2008. Check out the site and add suggestions of topics that you are interested in learning more about.

Jacksonville,Fl. Architects SIG Meets June 24, 2008

Well, I hope everyone is starting to enjoy the warm weather and the feeling of summer, which reminds me… this summer’s first meeting is scheduled June 24, 2008. This meeting will be a little different than any we have had in the past. The plan is to get our group to participate and learn by helping others within the community. I will start off the meeting with some basic architectural concerns/issues that are common within most IT shops, and hopefully this will break the ground for other participants to share their experience and expertise within certain areas.

Please plan on attending this meeting if possible. I would like to have as many participants as possible to cover different topic areas.

Register here

Orlando, Fl. Microsoft Community Summit Recap

Many thanks to Joe Healy and crew for organizing the community summit we had last weekend. I came down to Orlando, Fl. last Saturday, not sure what to expect, however when I saw the facilities and attendees, I knew that this was going to be a fun weekend. To recap...We were able to use the civic center for the weekend in between the first and second weeks of Teched. It almost felt like we were speaking at Teched, minus a few thousand attendees. However our MS TE's and community leaders did an outstanding job of organizing the event.

Saturday night we had a geek social where our very own Eugene Chuvyrov spun the dance hits. He did a great job of DJing the party and getting things rolling throughout the night. There were some cool games played for play money to buy an XBox 360.

My talk was last Sunday morning at 9 a.m.(probably one of the earliest times I have ever spoke), and I think I pulled around 100 attendees. I did a 1.5 hour presentation on WF, setting the foundation on what to expect for later presentations that followed for 3.0/3.5 services.

Based on some of the feedback I received from speaking, my next couple of blog postings will be focused on answering the questions that were gathered from my session.

Speaking at Microsoft Community Summit 2008(tweener)

Many of us have the unique opportunity of heading to Florida for Tech-ed in the next couple of weeks. One of the most anticipated conferences Microsoft hosts. Unfortunately, like so many others, I will not be able to attend due to client needs. Fortunately though, Microsoft Florida Evangelist, Joe Healy and crew have found an effective way of utilizing the Orlando Convention Center in between Tech-ed tracks. The weekend of June 7-8, 2008, Microsoft Community Summit, Inbetween will come to life with some of the most talented speakers in the region. The best thing about it is this event is FREE. You geeks hearing me out there? If so, click the link and register!

Speaking At Next Jacksonville Technology Council Meeting

It has been awhile since I have spoken this early in the morning however I have the great opportunity of speaking to the Jacksonville Chamber of Commerce's Information Technology Council. My session is on how to gather requirements to encourage software project success. The meeting is Tuesday, May 27, 2008 at FCCJ's Advanced Technology Center, downtown. More information about the council can be found here.

Jax Architects SIG Meets May 27, 2008

Business Process Management was unheard of a few years ago and overshadowed by Service Oriented Architecture. SOA has changed the way we connect and integrate our systems. However, SOA is only one aspect of developing a modern solution. If SOA is the how then BPM is the why. Join us in a lively discussion of BPM where we’ll define BPM, its technology and approaches for adoption.

Register and get directions here

My Month of Speaking

Yesterday was my fourth week speaking consecutively for a month straight. These past weeks have been the most grueling while trying to balance my daily work efforts as a consultant, creating new presentation slides and demos while also trying to balance my family life. There have been many nights of staying up late, learning new things and figuring out ways to effectively present on them. Here is a rundown of the past four weeks and where I have been presenting.

Annually I do a lot of Florida code camp presentations but for the end of April into May, I wanted to focus strictly on user groups and special interest groups (SIG). I really did not plan to have all of my presentations run consecutively, however it just seemed to happen that way. I actually had to cancel speaking at the Jax SQL Saturday since I was doing a ton of travelling with work and could not balance the two. April 24, 2008 I had the opportunity to speak in Tallahassee, Fl., at an Architect SIG that had just started up. I did my presentation on gathering and modeling requirements. I was the second speaker after the previous month of Jeff Barnes (MS) priming them up for me. Now I run the Arch SIG in Jax and when I saw around 30+ attendees in Tally I was shocked. I started soul searching trying to figure out what I could do to draw that many to our arch SIG meetings. I mean, these guys were hungry!

The next week, May 1, 2008, I headed back to Tallahassee, Fl. to speak again, except this time it was at the Capital City .Net User Group. I wound up doing a two hour session on Migrating WF. I had originally planned for an hour session, but these guys were even hungrier. Again, I think we had around 30 or so which really fired me up.

The third week, May 7, 2008, I spoke at JaxDUG, right here in my home town of Jacksonville, Fl. This was a special time for me because it was in my own backyard, even though there were not many I knew personally that attended, there is just something special about speaking within your local community. This time I spoke on integrating WF with WCF, however a bit more watered down with different demos that I had planned for my next week's presentation at VSLive. I think we had around 25 which also was exciting.

Now for the best part! VSLive has been and will always be one of my favorite conferences. Being in Orlando, Fl. It makes things even more worth wild, because you can enjoy so many things while you are down there. Yesterday, I did my presentation on Integrating WF with WCF and probably had around 50-75 attendees. One of the main reasons why I think the attendees enjoyed it, was because my demos expressed real world scenarios and none of them blew up! More importantly, there were very few people I saw leave during my presentation. Not that it means people do not enjoy what a presenter is presenting on, but I think it means that the presenter has kept it interesting enough, that attendees are connected with what you are presenting on.

Other than presenting, VSLive was just as fun as if I had just been an attendee. It was a huge rush presenting at it this year and I hope to be back. Everything was top notch and extremely professional. One interesting thing was Crazy Wednesday, a wild event that was hosted by Billy Hollis. Towards the end they needed a panel of speakers to answer questions from the hundreds of developers attending the conference. Billy Hollis was hosting, Rocky Lhotka, Richard Shaw Hale, Walt Ritscher and me made up the panel. It was quite interesting about some of the questions that the attendees came up with however we all had a blast!

Speaking At Tallahassee, Fl. .Net User Group May 1, 2008

I will be heading back to Tallahassee, Fl. tomorrow to speak at the Capital City .Net User Group about WF. I was just there last week speaking at the Architecture SIG on tips for gathering requirements and designing architecture, however this week I will be discussing and demonstrating how to complement existing internal frameworks by migrating to Windows Workflow. My examples will focus on integration with current services, using transactions, implementing policies, persisting and tracking workflows and finally I will wrap up with an example of hosting WF within WCF.

If you are in the Tallahassee, Fl. area, please drop by. You can register here.

Save on Orlando's VSLive 2008 Registration

I can help you save on registration for VSLive! Orlando 2008! Attendees who register for VSLive! Orlando using priority code SOWHI will receive the Gold Passport all-access pass for just $1,895, a savings of $300.00 off the standard price. Register today!

Experiencing MVP Summit 2008

I finally made it to Seattle, Wa this morning for Microsoft's MVP Summit, and I must say that Microsoft knows how to host an event. Everything has been first class. I have met a bunch of really nice fellow MVPs and finally Mark Clagett, our MVP Lead for Connected Systems...I have never felt so much at home.

While adjusting to the time change this morning of about a 3 hour difference, I went ahead and made my schedule for today based on some open slots that we could choose from on certain topics of interest. One of the sessions I attended was open panel and invoked such a discussion that they decided to repeat it into the next hour of sessions. Little did I know I was going to be asked to facilitate the topics and run the 1 1/2 hour session...What an honor but also quite nerve racking since it was "spur of the moment" and I was speaking with fellow MVPs. After the session was over, I found out a Microsoft employee was tucked in the corner during the session, when he introduced himself and congratulated me on doing a good job. This was very rewarding!

Jacksonville,Fl. Architects SIG Meets April 22, 2008

Our local architect SIG will meet April 22, 2008 and we will have one of our own, Gábor Lipták, doing a presenation on Enterprise Service Bus(ESB). Here are the bullet points that will be covered.

  1. ESB Technology
  2. ESB Functionality
  3. ESB Patterns
  4. Custom Services
  5. ESB Clients
  6. Hands-on demo of Sonic Workbench. The software site is at: SonicSoftware

Please register here and drop by if you are in the Jacksonville, Fl. area because this is going to be a very interesting topic. Directions to this event can be found in the registration.

Speaking At Tallahassee, Fl. Arch SIG April 24, 2008

The Tallahassee Arch SIG has changed their meeting date this month because of some minor confusion(probably my fault). It seems they had me scheduled to speak April 17, 2008 however that did not fly with my schedule because I will be in Redmond that week for the MVP Summit. So to prove how great those guys are, they decided to change their meeting date to accommodate my short-comings.

April 24, 2008 I will be speaking on how to make projects successful, with a presentation titled, "Requirements To Architecture In 60 Minutes". This presentation was a huge success at Jacksonville's Arch SIG, so I figured I would share it with Tally. Please come by and check out the presentation if you are in the Tallahassee, Fl. area that day. You can register here. Here is a description of what I will be speaking on...

What are the steps for successfully architecting a solution? What makes software projects successful? Have you heard these questions before? In 60 minutes, I can show and tell you what makes software projects successful from gathering requirements to providing a stable architecture! This presentation will give you a better idea as to the processes that should be followed and artifacts that should be produced to be make a project 360 degrees successful.

WF/WCF Enterprise Solution In Final Stages

It has been 6 crazy months, but my team is finally getting notification that our maintenance solution is almost ready for production. In a nut shell, a Florida agency needed a maintenance solution to manage maintenance for dorm rooms internally and externally to its tenants. For example, if a tenant had a leaky faucet, he or she could punch out a maintenance request and it would get assigned and worked, with the tenant being able to verify the request's progress. The cool thing is that the dorms have visually impaired tenants so it was real important to make sure the interface was not only 508 compliant, but added custom functionality to make the UI even more user-friendly. Other than making sure that HTML was well formatted with metadata, we also used AJAX to take care if postbacks. One scenario called for building custom cascading dropdowns that were fed via SQLServer. In fact, the agency used this functionality as a standard for other applications.

In addition to being 508 compliant, the solution also called for the ability to manage a maintenance request. This is where WF was used to handle these long running processes. Here is the flow

  1. Maintenance request is created.
  2. Maintenance request is assigned.
  3. Maintenance work is completed.
  4. Maintenance work is approved.

After a request is created each of these states could only be changed based on the role of the user logged in. The roles were as followed...

  1. Requestor - Requests maintenance
  2. Supervisor - Assigns work and approves the work
  3. Staff - Completed the maintenance work provided within the request.
  4. Admin - God rights(could do most of the above)

However we also used policies for when a request could transition. For instance,

  1. A role could not create and assign a request to themselves.
  2. Work done by a supervisor or staff could only be approved via another supervisor or admin, however even an admin could not work and approve maintenance for a single request.

I could go on and on about the business rules of this solution and how WF simplified the requirement, however the important part is the role that WF played with helping us meet our deadlines through

  1. Automation
  2. Tracking
  3. Simplicity of modeling the process.
  4. Flexibility as business rules changed.

The true art of WF being a framework can be observed by doing a project of this size, because you see where all the pieces fit. From changing the flow to changing the business rules via policies, everything is compartmentalized so you can specifically go to the modulated area to implement or manage change.

This project took a ton of my time and soul to architect and build, but don't they all? Especially when you build something that is used for such a tremendous cause. I will be speaking at VSLive next month, and some of my experience based on this project will be shared in my presentation and demos, so if you get a chance to attend my session, come up afterwards and let me know you read this post!