The "Code Trip"

By James at November 20, 2007 07:36
Filed Under: Web Development, Inland Empire .NET UG, Microsoft

One of my Microsoft DE friends, Tim Heuer, came up with a great idea a while back, and just formally announced it today... the "Code Trip". What he's gonna do is gather up all the other Microsoft Western State DEs, strap them into a Winnebago, and hit the road, traveling to cities, towns, villages, and trailer parks, west of the Rockies to see what cool stuff developers are doing with Microsoft products.

codetrip-sign-144Personally, I think this idea just rocks, in fact I even told Tim I would be a roadie, but (ahem) I never heard back. C'est la vie, water under the bridge and all that. :)

Anyway, check out to sign up for the RSS feeds, make some suggestions, tell Tim what you think of this crazy idea....

Yo Tim! How about a stop in the Inland Empire?


Latest crazy song in my head Liquid Soul - Evolution - Action Jackson

Streamlining my Javascript some more...

By James at November 14, 2007 06:23
Filed Under: Web Development, Ajax and Javascript
I've been working on updating the MyUCR project at work. I'm always amazed at how much I learn, looking at my code from a year ago gives me shudders, compared to what I know now. For instance, here's a snippet of an Ajax call from last year:
var url = "ajax.aspx?getSingleMsg="+msgID + "&msgTypeID=" + getMessageType();
var xhrReq = xhrRequest("text");"GET", url, true);
xhrReq.onreadystatechange = function()
if(xhrReq.readyState == 4 && xhrReq.status == 200)
DisplaySingleMsg(xhrReq.responseText, getMessageType())


Yikes! That's a heck of a lot of lines to write and maintain. I love using jQuery, but hadn't really gotten into its Ajax events. I wish I had done so earlier. Now the same code looks like this:

var url = "ajax.aspx?getSingleMsg="+msgID + "&msgTypeID=" + getMessageType();
$.get(url, function(xhr){DisplaySingleMsg(xhr, getMessageType());});



Latest crazy song in my head Les Boukakes - Bledi - L'Alawi

Sean Dillingham's Presentation "Designing Usable Interfaces"

By James at November 13, 2007 11:10
Filed Under: Inland Empire .NET UG
Here is Sean Dillingham's presentation, "Designing Usable Interfaces" given to the Inland Empire .NET User's Group on November 13, 2007

Designing Usable Interfaces.pptx (9.71 mb)


"Legalizing" my music

By James at November 12, 2007 14:26
Filed Under: Life in General

I was a follower of Napster, then LimeWire. But now that I'm older I thought "perhaps I should be legal on my music?" I have an eMusic account (which I love), and have occasionally downloaded music from iTunes (which I customer support).

I decided that I would start to convert my music collection to a "legal" one and had heard about Amazon's MP3 downloads. I usually go with eMusic, but since they're mainly independent, they don't have some of the tracks I want to convert.  

I also listen to NPR (National Public Radio) religiously. The other day was a piece on the Latin Grammy's, and how Juan Luis Guerra stole the show. So, I went to Amazon and downloaded the album. It wasn't until later that evening that I discovered the first track "Medicine for My Soul" and "La Llave De Mi Corazon" were the same. So I navigated Amazon for Customer Service, found their "Please enter your phone number" page and called it. After talking with someone in Bangalore for a couple of minutes, she realized she needed to get me to the MP3 department. I had a nice conversation with "Brandon" in the MP3 Customer Service department, who actually checked each track, decided that they were yes the same, and gave me a credit. He also said he'd "personally take responsibility" for letting me know when the bug had been fixed and let me know when the correct track was ready to download. Now, that's customer service.

Thanks Amazon!


Looking for white elephants

By James at November 09, 2007 14:39
Filed Under:

I wanted to add the Live Messenger plugin to my BlogEngine.NET blog and could get it working when running either in Cassini or IIS 6/7. However when I posted the changed files to my hosting server, it wasn't working. I had previously built a custom template for BE, and had problems with custom Javascript being linked correctly. I ended up adding the JS links to the bottom of the master page with the following code:

<script type="text/javascript" src="<%=Request.ApplicationPath %>/themes/<%=BlogSettings.Instance.Theme%>/jquery.js"></script>

That worked fine and I was stumped why my new JS code wasn't working.

It was only until I did the most simplest of things, "View Source" did I see that the source of the javascript file was now


I don't know why this happened. I hadn't changed the source of BE. Perhaps it was a setting change on the hosting server, I don't know.

What I ended up doing was moving the javascript files to the "js" main folder of BE and now all is good.

BTW, if you want to IM me via Messenger, just click on the "Instant Message James" link in the sidebar, and you're good to go.


Streamlining the JSON Serialization

By James at November 01, 2007 03:26
Filed Under: Web Development, Ajax and Javascript

For a while now I have been using the Newtwonsoft.Json dll to generate my JSON objects. The documentation is pretty sparse and I had to do a lot of experimentation to figure out the best way to do it. I ended up with this base code.

myUCR_DepartmentsTableAdapters.MyUCR_DepartmentsTableAdapter deptTA = new myUCR_DepartmentsTableAdapters.MyUCR_DepartmentsTableAdapter();
myUCR_Departments.MyUCR_DepartmentsDataTable deptDT = new myUCR_Departments.MyUCR_DepartmentsDataTable();
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);

foreach (myUCR_Departments.MyUCR_DepartmentsRow deptRow in deptDT)
   writer.WritePropertyName("deptID"); writer.WriteValue(deptRow.deptID.ToString());
   writer.WritePropertyName("dept"); writer.WriteValue(deptRow.department.ToString().Trim());

 As you can see, that's a lot of code to serialize a simple datatable.

I wanted to find an easier way, so started browsing around. Googling for "JSON DataTable Serialization", I came across this article "A DataTable Serializer for ASP.NET AJAX" at What he did was to extend the JavaScriptConverter found in System.Web.Script.Serialization to serialize a DataTable. I looked through his code and decided to implement it.

Now here's how I do my serialization:

        MyUCR_LoginTableAdapter ta = new MyUCR_LoginTableAdapter();
        DataTable dt = ta.GetByTesting();
        JavaScriptSerializer toJSON = new JavaScriptSerializer();
        toJSON.RegisterConverters(new JavaScriptConverter[]{new JavaScriptDataTableConverter()});

And what rocks is the object names are mapped to the column names in the database.




A baby in the house

By James at October 15, 2007 17:06
Filed Under: Life in General

We have a baby!

Ok, well she's not ours per se, but she's our 1 year old niece, Camila. She'll be staying with us, along with her parents, till after the first of the year. Its gonna be great to have a little one around for the holidays.


Latest crazy song in my head Peter White - Promenade - Promenade

Brad McGehee's IEDOTNETUG Presentation - SQL Server Profiling

By James at October 09, 2007 11:06
Filed Under: Inland Empire .NET UG
Here is Brad McGehee's slide deck on SQL Server 2005 Profiler and Performance Dashboard, given to the Inland Empire .NET User's Group on October 9, 2007 

Riverside Profiler Dashboard Presentation.ppt (1.50 mb)


Home Grown Ajax presentation to IEDOTNETUG

By James at May 08, 2007 10:58
Filed Under: Web Development, Inland Empire .NET UG, Ajax and Javascript
Here is my Presentation to the Inland Empire .NET User's Group, "Home Grown Ajax and Javascripting" given on May 8, 2007.

HomeGrownAjaxandJavascripting.ppt (931.50 kb)


Steve O'Brien Presentation to IEDOTNETUG - Design Patterns

By James at February 13, 2007 10:54
Filed Under: Inland Empire .NET UG

Here is Steve O'Brien's Presentation to the Inland Empire .NET User's Group, "OO Principles and Design Patterns" on February 13, 2007

Design Patterns Presentation.ppt (137.00 kb)


About the author

James James is a five time and current Microsoft MVP in Client App Development, a Telerik Insider, a past Director on the INETA North America Board, a husband and dad, and has been developing software since the early days of Laser Discs and HyperCard stacks. As the Founder and President of the Inland Empire .NET User's Group, he has fondly watched it grow from a twice-a-month, early Saturday morning group of five in 2003, to a robust and rambunctious gathering of all types and sizes of .NET developers.

James loves to dig deep into the latest cutting edge technologies - sometimes with spectacular disasters - and spread the word about the latest and greatest bits, getting people excited about developing web sites and applications on the .NET platform, and using the best tools for the job. He tries to blog as often as he can, but usually gets distracted by EF, LINQ, MVC, ASP, SQL, XML, and most other types of acronyms. To keep calm James plays a mean Djembe and tries to practice his violin. You can follow him on twitter at @latringo.

And as usual, the comments, suggestions, writings and rants are my own, and really shouldn't reflect the opinions of my employer. That is, unless it really does.

James Twitter Feed

Recent Comments

Comment RSS

Month List