Friday, November 13, 2009

jQuery & .NET WebMethods: An Introduction

At some point in my programming I began to dislike the .NET page life-cycle. Sometimes I feel as though it was Microsoft's way of trying to impose a structure on something that really didn't need a structure. PHP and Java Servlets have proved this.

Regardless, with the advent of .NET AJAX WebMethods one can skip the life-cycle. For those of you who have been living in a cave for the last few years: 1) Your beard rocks. 2) AJAX (Asynchronous Javascript and XML) basically means that the web browser has a new role. In the old days, the browser would make a request and the server would send it an entirely new page for it to spit at the user. With AJAX, the browser sends a request and the server returns data, and then the browser performs actions on that data (like applying logic to the data and then updating page content). With AJAX the browser is in on the action; it is no longer just a middleman.

Setting Up Your First WebMethod



How do you add a WebMethod to your .NET page-behind code? Check out this code:

[WebMethod]
public static string SayHi()
{
return "Hi";
}

If you were to add this code as well as import System.Web.Services, you could call this function from your client-side JavaScript. No page life-cycle, no post-back; just a request for some data and a response. Using jQuery, the JavaScript code for this would look something like:

//this is the same as jQuery's $(document).ready([function])
//which means that it will call this function as soon as the page is loaded
$(function() {
$.ajax({
type: "POST",
//notice we put the page name and the function name here
url: "default.aspx/SayHi",
//the json data to send to the server (we'll discuss later)
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
//if the request is a success do something with the data
success: function(msg) {
//this alert box would say hi
alert(msg.d);
//this paragraph with id="hiparagraph" would say hi
$('p#hiparagraph').html(msg.d);
//this textbox with class="hitextbox" would say hi
$('input.hitextbox').val(msg.d);
},
//if the request is a failure, blame the user
error: function(xhr, textStatus, exception) {
alert('You are a failure.');
}
});
});

I know what you're thinking-- wow this is boring. And it is at this point. However, if you were to ask .NET to do this the old fashioned way, with a label and some code-behind assign-age I bet it would take twice as long-- maybe longer. In my experience, I have seen request/response times get cut to 1/10th (even 1/20th) the original time by using jQuery and WebMethods. For real.

What is JSON and What Happened to the XML?



All I know is that I haven't used XML directly yet in an AJAX call. JSON is JavaScript Object Notation. Its simple to learn-- check out this page for a little background.

What can you send or receive in the JSON? Short answer: anything. In our example we sent nothing, and received a string. With AJAX calls you can send any sort of JavaScript object. As for what you can receive, feel free to use any of the .NET generic types and any of your own custom made classes-- .NET will translate them into JSON for you.

In Conclusion


Now that we have a better way of communicating with the server, what can we do with it? In the next post we will get into some advanced scenarios and techniques with jQuery and .NET WebMethods.

Thursday, November 12, 2009

The Best Indie Albums of 2009

It is definitely the best time of the year.

If you're anything like me at all you have christened each new year by scouring magazine after magazine after online list in search of new music. Its so easy to do now-- especially with the mass amounts of online blog authors spitting out opinions.(eh-heh) So here it is-- the best indie albums of 2009. Get caught up! Find a new love!

The Top Indie Albums of 2009 in random order

The Dirty Projectors - Bitte Orca

Truly unique! Amazing! I first heard the Dirty Projectors on the Dark is the Night compilation. On this cd I can hear traces of Led Zeppelin III, as well as hip-hop and R&B influences. Which is more amazing-- the intricate, melodic guitar work or the dead-on vocal harmonies? You decide. Regardless, you can put the songs Two Doves and No Intention on my favorites list.



Grizzly Bear - Veckatimist

I really hesitate to put this one up here. Its not that I think it doesn't deserve to be here, or that I should leave it off because every other critic is going to pick it. Its because of the cd's mood--dark and haunting--seriously. At times I've had to turn it off and put on something happier. That being said, this cd is pure genius. There are few albums I listen to where I feel as though each note, effect, and instrument were precisely chosen for the exact moment; which is the way I feel about this one. (the last time being Amnesiac, I believe) If you haven't peeped the youtube video for Ready, Able, do peep my friend. So put Ready, Able and While You Wait for the Others on my favorites list.

M Ward - Hold Time

Otherwise known as the happiest, most gratitude-filled album of all time, Hold Time is the album to put on after Veckatimist. I guess in that sense its like Jack Johnson, except Mr. Ward has style and I don't want to bludgeon him with his own acoustic guitar. Its a simple sounding, honest, soulful, up-building album. For real though, this album is indie Prozac. So take lots with alcohol, and put the songs For Beginners and Blake's View on my favorites list.



Ramona Falls - Intuit

I always have room to hear someone mixing electronic, rock, and acoustic all on the same track. Ramona Falls is one of the best at doing so. If you don't believe me, find some youtube video featuring the song Clover-- expertly done. Additionally I like the fact that he used the "scarcely used, but catchy and ambiguous" lyrics formula. Its beautiful. Put Clover and The Darkest Day on my favorites list.



The XX - xx

The Cure. That's really all I need to say. Do you like The Cure? Then get its electronic reincarnate here. Simple and laid back. I really like how this band has a girl and guy singer that volley lyrics around. Put VCR and Heart Skipped a Beat on my favorites list.





Beirut - Realpeople Holland & March of the Zapotec

I haven't been this jealous in a while. For real though, to be able to gain mastery over both the electronic and Godfather's-soundtrack scenes is beyond my ability as a musician. The strangest part-- that the two can and do mix together so well. Its difficult to explain without sounding like I'm trying to sound like I know what they're doing. And i don't. So just listen to it. Put La Llorona and My Night with the Prostitute from Marseilles on my favorites list.


Passion Pit - Manners

At first I was turned off by this band's vocal style because it seemed borderline whiney. You see, I threw my studded belts away years ago. Regardless, a few listens later I noticed that I was completely in love with their catchy synth leads and child-choir goodness. There will be no second coming of The Postal Service-- but this is good enough. Put Little Secrets and Swimming in the Flood on my favorites list. BTW, this makes a great running cd.



Honorable Mentions

Camera Oscura - My Maudlin Career
Animal Collective - Merriweather Post-Pavillion
The Black Atlantic - Reverence for Fallen Trees
Edward Sharpe & The Magnetic Zeros - Edward Sharpe & The Magnetic Zeros
Yeah Yeah Yeahs - It's Blitz!
Wilco - Wilco

...what did I forget?