Wednesday, March 11, 2009

#msdnsrf twitter for GlenGordon:jQuery, BrianHitney:Azure

The Southern Fried Roadshow hits Huntsville! Glen had to start out talking about jQuery 'cause the demo gods snafu'd Brian's laptop.

Glen on ASP.NET + jQuery:
other libs: dojo, scriptactulous, prototype, also AjaxTK & Yahoo! UI Library

AJAH vs AJAX
AJAX stands for Asynchronous JavaScript And XML. So I came up with the term AJAH, which stands for Asynchronous JavaScript And HTML (http://jimmyzimmerman.com/blog/2006/08/ajax-vs-ajah.html)
http://jquery.com/ by John Resig

Selectors:
$("firstName") -> elt w/ID="firstName"
$(":text") -> all textbox elts
$(".required") -> all elts with .required property
more: http://docs.jquery.com/Selectors

Search ScottGu's blog for getting jQuery intellisence working
or get hotfix to do it for you. Here's a good url:
http://west-wind.com/Weblog/posts/536756.aspx

Interesting:
function pageLoad()
{
$(":text") .focus(hilight).blur(lolight);
}
function hilight()
{
$(this).css("background-color","red");
}

function lolight()
{
$(this).css("background-color","");
}

Animation:
.slideDown('slow' or 'normal' or 'fast')

pageLoad
$("#linkage).click(slider)

... Glen is too fast - gotta watch ... talking about sorting using plugin for jQuery.
jLink later on...
You can easily write your own.
....
Nikhil's Web Devepment Helper:
http://projects.nikhilk.net/WebDevHelper/

Use it to see the JSON object graph for Photo object in PhotoService WCF demo.

niiice Lightbox jQuery pluggin:
http://www.huddletogether.com/projects/lightbox/

Brian's turn!
Azure isn't ready for prime time so I'm not gunna say nutn'

Back from lunch, Power Debuggery:
Advance breakpoint-ology 101 is first topic...
+ in stack window can click method-name and hit F9 or right-mouse add breakpoint.
+ add/remove (toggle F9) in three different parts of top of for loop.
+ Ctrl+D+N = new breakpoint, Type in name, and it'll match ALL names that match (no wildcards)
+ Hitcount, and other cases are on right-mouse on click on breakpoint icon or in breakpoint window.
+ likewise, Condition... like in a for look, i==3

[Conditional("DEBUG")] only on void return types, so use
#if DEBUG
public bool CheckEt(string whoDo)
{
if (string.IsNullOrEmpty(whoDo))
{
return false;
}
return true;
}
#endif

Can call CheckEt("me") as a condition as well.

threading/debugging, break-all, open thread window, double-click thread to set context to a specific thread, try "Filter" set break in specific thread.

"When Hit"! Awesome... print trace. this is the last of em' in the right-mouse popup menu
----
"Watch window is even more powerful" said Brain, DE & Rock-n-Rolla debugger!
can call method... but 20 sec timeout, and it doesn't honor breakpoints
but in Immediate Window... yep! And no 20 sec timeout.

Thanks for the presentation #MSDNSFR! Gotta go listen to INETA

Tuesday, March 10, 2009

Keith Elder's WCF presentation @ VSdotNetUG.org

A test client for WCF inside the first few minutes!
WCF Test Client is a WCF Service Host ... nice to run with F5 instantly. (but we know that we want to create a real service host ourselves later, or just use IIS)

WCF Service Host is useful for testers... they script against it.

Great tool:
+ double-click on the GetData (vanilla out of the box), new tab with the "Invoke" button.
+ double-click on the GetDataUsingDataContract (vanilla out of the box), new tab with the "Invoke" button.
+ Invoke, and it shows results
+ Invoke, and you have two tabs: Formatted and XML so you can see the raw data (like if you had issues)
------

ASMX not really usable in WinForms. WCF is.
ASMX is not as performant either... nor is security as simple.

------

AJAX == JSON -> attribute
Twitter == REST api -> attribute

Request, no reply ex: MSMQ ... IsOneWay ex: OperationClient(IsOneWay) on the interface
Request, Reply (normal)
Duplex (Dual) ex: massively online gaming - XBox Live
(ex: http://www.evernote.com/)

------

MessageHeader if you need absolute control over ordering for interoperability.

------

Multiple Binding

... new cmd: Edit WCF Configuration, right-mouse on Web.Config or in Tools menu.
Empty Endpoints

Read Dan Rigsby's blog on this...
http://www.danrigsby.com/blog/

... Too too much to keep up the blogging on while watching.
You'll have to see Keith's presentation to understand how much.

The best parts
+ use of the WcfTestClient
+ WAS - Windows (process) Activation Service
+ timing shows that net.tcp beats http by about 33%, and net.msmq beats tcp by even more.

more later...

Monday, March 9, 2009

Agile Infusion of SCRUM with Bob Schatz

I'm enjoying listening to Scrum-Bob aka Bob Schatz at the inaugural meeting of the
North Alabama Agile special interest group
http://tinyurl.com/agilehsv1
tonight @ Intergraph (7pm 3/9/9)

Here's Bob's site: http://www.agileinfusion.com/

Title: Agile & PMBOK

9 Knowledge Areas:
Prj/Scope/Time/Cost/Quality Mgmt + Human Resources
+ Communications
+ Risk Management + Procurement

Vs. 5 Phases
Initiation + Planning
+ Execution
+ Monitoring & Controlling
+ Closing

PMBOK is stale and has really no upward mobility aspect for change or adaptation to new ways of working.
Agile however is not a majic bullet and nothing can "guarantee success on a project". Bob's good words. I agree.

Unless the pigs and chickens play well, you can't get from point A -> B period.

High change environments like coding dotNet for example implies need for iterative changes to follow the needs of the environment. That's why Agile helps avoid conflicts, you're adapting instead of fighting an uphill battle. Instead of turning on a dime in an Agile way, you may find yourself with scope creep where you can't react to customer feedback early.

Agile implies being an "Experimentalist" where "problems are addressed immediately though rapid experimentation".

Bob: "I never saw it as a battle"
the goal being high-quality s/w with value. Stop fighting over which, just use what you're successful at.