My blog has moved!

Visit http://blog.adamroderick.com/ and update your bookmarks.

Tuesday, April 28, 2009

Slides from Denver UG Presentation on ASP.NET MVC

I presented the ASP.NET MVC framework to the Denver .NET user group--and time flies when you are in front of a group that big! I only made it through about 2/3 of my demo, but I feel like the info I shared was of value to the group.

You can download the slides here.

Labels:

Monday, April 27, 2009

Convert XLANGMessage to string

This method has come in handy so much more than I ever thought it would. It's sole purpose is to take a BizTalk message and convert it to a string. One example of where I use it is when I am logging information from within an orchestration.

I suppose you could add an index parameter if you wanted to use this with multi-part messages.



public static class Utilities {
/// <summary>
/// Converts the contents of a message to a string. Careful with large messages,
/// as it will try to put the entire message into the string variable.
/// Not intended for multi-part messages, unless the body part is the first part
/// </summary>
/// <param name="msg">The BizTalk XLANGMessage</param>
public static string ConvertMsgToString(XLANGMessage msg)
{
lock (xmlDoc)
{
xmlDoc = (XmlDocument)msg[0].RetrieveAs(typeof(XmlDocument));
return xmlDoc.DocumentElement.OuterXml;
}
}
}


This usage is from an Expression shape in the Orchestration designer:



System.Diagnostics.EventLog.WriteEntry(
"Entry Title"
, Utilities.ConvertMsgToString(
<MessageVariableHere>
)
);

Labels:

Friday, April 24, 2009

Human workflows

I did a little BA work last week during a "workflow workshop." It was a gathering of stakeholders from around the globe who understood their business. The goal was to come to a consensus on one source of truth when it came to some business process--with the goal to automate the workflows in the future.

With 16 people in a room, some from across the globe, opinions are bound to differ, and communication styles vary. Overall, though, most everyone agreed the workshop was a success. Looking back, I tried to focus on some general questions that--if answered by the group--resulted in a better result.

Some pertain to the overall workflow, and others are for individual tasks


Overall - Should this workflow focus more on the flow of tasks or the possible states and transitions?

Diagrams just represent the real process, like a drawing and a picture both represent a real physical item, different diagrams have strengths & weaknesses. Example - State Machine diagram vs. Activity diagram


Overall - what business problem are we trying to solve?

Do the minimum amount of effort required to solve the business problem - remember, every box, every line is a potential constraint on the users and is potentially more development effort


Overall - What audit trail or history is needed?

Sometimes the only reason for a workflow is audit trail, but often it is involved as part of the overall business problem


Task - Who completes each task?


This is role-based, not individual based. Meaning, a single individual could fill multiple swimlanes in a single workflow


Task - What information is required to complete the task?


Present the minimum required information in the UI for a person in the role needs to complete the task


Task - What are the time constraints (if any) and what happens when they are exceeded? Default selected or escalation?



Task - Enter and exit conditions for each task?


Wednesday, April 22, 2009

ASP.NET MVC Resources