gaskell.org » personal http://gaskell.org picking up where teh rest leave off Tue, 07 Jun 2011 16:38:59 +0000 en hourly 1 http://wordpress.org/?v=3.3.2 Bulletproof Ajax with ASP.NET MVC http://gaskell.org/bulletproof-ajax-with-aspnet-mvc/ http://gaskell.org/bulletproof-ajax-with-aspnet-mvc/#comments Sun, 03 Aug 2008 03:26:26 +0000 andy gaskell http://gaskell.org/?p=59 After reading the excellent Bulletproof Ajax by Jeremy Keith, I thought porting the Bulletproof Books sample application to ASP.NET MVC would be a great first attempt at building an ASP.NET MVC application. One of the main points of Bulletproof Ajax is that Ajax should be used to enhance usability and not to make Ajax a requirement to access your content. My version of the Bulletproof Books Shop also makes Javascript and XMLHttpRequest support optional.

Keeping the site accessible to most web browsers took some extra work and consideration when building the Controllers. I decided that any HomeController actions would render html for the entire page.

   13         public ActionResult Index()

   14         {

   15             ViewData.Model = Product.Products;

   16             return View(“Index”);

   17         }

   18 

   19         public ActionResult AddProductToCart(string productID, int quantity)

   20         {

   21             CartController cartController = new CartController();

   22             cartController.AddProduct(productID, quantity);

   23             return Index();

   24         }

   25 

   26         public ActionResult RateProduct(string productID, string rating)

   27         {

   28             RatingController ratingController = new RatingController();

   29             ratingController.RateProduct(productID, rating);

   30             return Index();

   31         }

Controllers that refresh partial chunks of html will know how to respond to actions (add product to cart, rate a product) and render views mapped to MVC user controls. The client will make http requests to different urls based on javascript support in the browser. For example to add a product to a cart with javascript enabled, the javascript will make a post to /Cart.mvc/AddProduct and the server will response with a chunk of html. To add a product with javascript disabled the client will post to /Home.mvc/AddProductToCart and the server will respond with an entire page. The HomeController ends up forwarding the call to the appropriate controller so we’re able to avoid duplicating logic.

   28         public ActionResult DisplayCart()

   29         {

   30             Cart cart = GetCart();

   31             return View(“Cart”, cart);

   32         }

   33 

   34         public ActionResult AddProduct(string productID, int quantity)

   35         {

   36             Cart cart = GetCart();

   37             Product product = Product.Products.Find(s => s.ID == productID);

   38             cart.AddProduct(product, quantity);

   39             SetCart(cart);

   40             return View(“Cart”, cart);

   41         }

One thing I’m not sure about is state management in ASP.NET MVC, so I’m currently storing the cart and ratings in session.

   22         private Rating GetRatings()

   23         {

   24             Rating rating = System.Web.HttpContext.Current.Session["Rating"] as Rating;

   25             if (rating == null)

   26             {

   27                 rating = new Rating();

   28             }

   29             return rating;

   30         }

   31 

   32         private void SetRating(Rating rating)

   33         {

   34             System.Web.HttpContext.Current.Session["Rating"] = rating;

   35         }

You can download the source here.
]]>
http://gaskell.org/bulletproof-ajax-with-aspnet-mvc/feed/ 6
Good Morning Vietnam!!!! http://gaskell.org/good-morning-vietnam/ http://gaskell.org/good-morning-vietnam/#comments Tue, 15 Aug 2006 00:57:25 +0000 andy gaskell http://www.gaskell.org/good-morning-vietnam/ Michael Scott is awesome. Michael gives David Brent a real run for his money.

Some random crap…

I should post more.

]]>
http://gaskell.org/good-morning-vietnam/feed/ 2
Getting “What I’m listening to” working with Windows Media Player 11 http://gaskell.org/getting-what-im-listening-to-working-with-windows-media-player-11/ http://gaskell.org/getting-what-im-listening-to-working-with-windows-media-player-11/#comments Sun, 21 May 2006 05:34:24 +0000 andy gaskell http://www.gaskell.org/getting-what-im-listening-to-working-with-windows-media-player-11/ I just got the new Windows Media Player 11 Beta and it’s pretty cool. The upgrade broke the Turn on “What I’m listening to” feature in MSN / Windows Live Messenger. Here’s the steps to getting Turn on “What I’m listening to” working again.

Click the Now Playing menu (not the button).

Scroll to plug-ins – Other – and make sure that “Windows Live Messenger Music Plugin” is selected. I’m guessing there’s similiar option for MSN Messenger Music Plugin, but I can’t say for sure.

]]>
http://gaskell.org/getting-what-im-listening-to-working-with-windows-media-player-11/feed/ 15
Starting over… http://gaskell.org/starting-over/ http://gaskell.org/starting-over/#comments Tue, 28 Mar 2006 23:33:39 +0000 andy gaskell http://gaskell.org/starting-over/ I decided to move to WordPress. I seem to be moving more and more to the dark side. I’ve worked with WordPress on a few other sites and I have to admit it’s a much better experience than I’ve had with any .net blogging software (.text, community server, some wierd dotnetnuke modules).

I’m learning PHP and it’s a lot like classic ASP except for one thing that I’ve noticed – you can do a more in PHP than classic ASP in fewer lines of code. I think this comes down to available libraries – PHP seems to have many more libraries to access than classic ASP did. I dunno, that’s just how PHP feels so far..

]]>
http://gaskell.org/starting-over/feed/ 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 Buy Generic Methotrexate No Prescription Viagra Walmart Best Online Pharmacy For Cialis Generic Buying Femara Canadian Pharmacy No Prescription Needed Alesse Purchase No Prescription Mircette Cheapest Levitra From India Buy Tablets Actonel Online No Prescription Antibiotics Online Ordina Viagra Tricor No Prescription Acheter Diabecon Viagra Ou Equivalentes Amoxil Buy Online Cheap Cafergot Order Buy Best Generic Baclofen Tablets Without a Prescription Seroquel Order Online No Perscription Purchase Lexapro Online Without Prescription Buy Viagra Online Tabs Cheap Generic Substitute Viagra Purchase Lexapro Purchase Viagra In Australia Buy Viagra In Canada Fast Canadian Pharmacy Toronto Zithromax Order Bupropion Next Day Delivery Canadianlab Viagra Tablets Buy VentolinZovirax And Cost Levitra 20mg Tablets Generic Viagra Free Pills Viagra Professional Buy