Home | Blog | Screencasts | Projects
# Friday, October 05, 2007

I've been doing some Facebook application development using Nikhil Kotharis Facebook.NET framework. I must say, I'm very happy with it. I thought I might post a simple class that I created that lets me use the infinite sessions that Facebook can provide you with. It might be the wrong way to go about it, but it works for me.

Firstly you need to store the SessionKey from each user as they use your application, you should also store if they are infinite by checking the SessionExpires property on the Session object.

The class is:

public class FBASession : Facebook.Service.Core.FacebookSession
{
    private FacebookService _service;

    public FacebookService Service
    {
        get { return _service; }
        set { _service = value; }
    }

    private Facebook.Service.Core.FacebookSession _session;

    public Facebook.Service.Core.FacebookSession FBSession
    {
        get { return _session; }
        set { _session = value; }
    }

    public FBASession(string appKey, string secret, string sessionKey, string userID)
        : base(appKey, secret)
    {
        _service = new FacebookService(appKey, secret, sessionKey, userID);
        _session = _service.Session;
    }
}

Now with this we can use the data we store to create a session and send messages to any user of the application:

FBASession FBSession = new FBASession("<app key>", "<secret key>", "<stored session ID>" , "<facebook ID of user>");
FBSession.Service.Notifications.SendNotification("<facebook ID of user>", "<fb:userlink uid=\"" + facebookUserID + "\" /> has done something and wants you to know", null);

This will allow your facebook application to send a notification (or update the mini-feed etc ) to/of another user.

I was lucky enough to attend a presentation on ASP.NET Ajax at tech-ed that Nikhil presented, it was one of the better sessions at tech-ed, so thanks for all your effort.

Friday, October 05, 2007 11:25:01 AM (E. Australia Standard Time, UTC+10:00)  #    Comments [1] - Trackback

# Tuesday, October 02, 2007

Working on a project, I wanted to serialize the object as JSON:

using System.Web.Script.Serialization;

JavaScriptSerializer jss = new JavaScriptSerializer();
string serializedObject = jss.Serialize(object);

This is using the ASP.NET AJAX framework

I see that ScottGu has a post about building an extension method to perform this function .... very nice.

Tuesday, October 02, 2007 4:15:52 PM (E. Australia Standard Time, UTC+10:00)  #    Comments [0] - Trackback

# Sunday, September 16, 2007

Recently I had the pleasure (or displeasure) of moving some existing asp.net sites to a Content Management System (CMS). The sites relied heavily on some ASP.NET modules for cookie tracking and some other things, so we needed to have an ASP.NET CMS so we could keep this logic. After a bit of searching around I narrowed the scope to two open source products: N2CMS and Cuyahoga.

I actually found Cuyahoga first and had thought that it would be perfect for us. However once I starting having a good look a couple of issues became deal breakers. The first issue was the Cuyahoga uses the Web Project model, which means that the site is complied into assemblies. So if we needed to make a small change to the site we would need to deploy an updated assembly. A rather small issues you might say, but for our needs it's actually a big deal. The other issue was the lack of versioning, hopefully it will get added in a later release.

After it became apparent that Cuyahoga wasn't going to work for us the way we were hoping, I jumped on codeplex to see what else was out there. It wasn't long and I found N2CMS, this looked from the outset to be a better run project. I really liked the declarative approach to creating templates as well.

So I rolled out N2CMS, its worked out OK, a few little things annoy me, but I think they would be a common problem in most low end CMS applications. For example I have some functionality in some user controls, I would love the CMS to allow me to just drop them into a page, rather than creating a template.

Sunday, September 16, 2007 3:23:54 PM (E. Australia Standard Time, UTC+10:00)  #    Comments [1] - Trackback

# Saturday, September 08, 2007

I've been experiencing one of those periods lately where I've been really productive, I liken it to cricket when a batsmen is in good form. A number of factors have contributed to this, things like Tech-Ed and the fact that I have had a number of deliverables due. Just like cricket I think you go through periods where your form can slump when the conditions around you stay the same. You might still have lots of things going on around you but for what ever reason you just can't seem to clear them.

Tech-Ed was a big influencer in my recent good form, I had the same effect from the Tech-ed previously, its really good to interact with a bunch of passionate people. Now it seems that I wake up in the morning keen to get into some code, the funny thing as well about being in form is that the solutions you come up with often leave you wondering where they came from (in a good way). 

Saturday, September 08, 2007 11:11:00 PM (E. Australia Standard Time, UTC+10:00)  #    Comments [0] - Trackback
Misc
# Tuesday, August 14, 2007

I was going through the US Tech-Ed DVD's that we got last week, anyway I came across an interesting session where Microsoft announced that they had licensed the Dundas reporting services charts and gauges for SQL Server 2008. This is great news, I haven't used the Dundas controls personally, but I've seen and heard good things about them. Its a shame they couldn't extend the licence back for 2005 users.

The new tablix control and new designer look great, lots of good things coming with SQL Server 2008, I still think my favorite is the MERGE statement, it will really make loading our data warehouses a lot easier. 

Tuesday, August 14, 2007 3:05:21 PM (E. Australia Standard Time, UTC+10:00)  #    Comments [0] - Trackback

Well Tech-ed is over for another year, this year was fantastic, learnt a lot stuff that will benefit the things I'm currently working on.

I focused my time on:

BI / data mining

SQL Server

ASP.NET AJAX

Then on the WPF stuff, even though I find WPF extremely interesting, I can't justify spending valuable time on it yet, when it is unlikely that I'll be doing any serious development with it in the next 12 months.

So much was going on at Tech-ed, it was a great atmosphere.

It was unfortunate timing that my uni exams landed in the same week as tech-ed, I also elected to take an upgrade exam for the MCSD certs that I have. I haven't found out how I did in my uni exams (I'm confident) but I did pass the 70-553 upgrade exam. I've started looking at the next 70-554 exam, it doesn't look like fun. Only 2 more uni subjects to complete and I should have my masters.

Tuesday, August 14, 2007 1:36:43 PM (E. Australia Standard Time, UTC+10:00)  #    Comments [0] - Trackback

# Sunday, July 15, 2007

I haven't had any problems using Vista, its been rock solid on all the laptops that we have. The one thing that really annoys me is the auto update. Well its not the auto update so much, see we usually sleep with two of our laptop in standby in our bedroom. However once a month, these laptops will come alive in the middle of the night and apply the updates and restart. So in the dead quiet of the night you will hear the sound of Vista starting up (it wakes you up in fright, I must say). Worse still, because the laptop lid is closed, the computer will sit at the login prompt until is is due to power down (which was up to an hour). Being cold and lazy I really couldn't be bothered getting up to open and close the lid, also both laptops never seem to update on the same night, so this past week I've been woken up twice by the sound of booting laptops.

Sunday, July 15, 2007 1:46:06 PM (E. Australia Standard Time, UTC+10:00)  #    Comments [1] - Trackback
Misc
# Monday, June 25, 2007

Macpomme left a comment about how the family.show application would make a fantastic web sharing application. Well it turns out this has already been created, its called Geni. Jeff Attwood at codinghorror.com has also spoken about this application for the brilliant way that it avoids the login barrier. I recommend having a look at this site, before you know it you will have added your family tree. 

Monday, June 25, 2007 5:54:40 PM (E. Australia Standard Time, UTC+10:00)  #    Comments [0] - Trackback
Misc
# Wednesday, June 20, 2007

For various reasons I needed to connect to one of our SQL Server boxes which has been setup to run on a non standard port. At first I tried the normal way to address a port: 192.168.0.3:3000, but that wasn't working. After some googling I found that you need to use a comma:  192.168.0.3,3000.

Wednesday, June 20, 2007 1:37:08 PM (E. Australia Standard Time, UTC+10:00)  #    Comments [0] - Trackback

Statistics
Total Posts: 119
This Year: 104
This Month: 11
This Week: 1
Comments: 15