Monday, January 26, 2009

Building an application ...

.. from idea to reality

As posted before I have some plans for this year. One of these plans is building a complete on-line application all by myself using interesting technology. In this first post I will tell you a bit about the architecture I am using to build it.

Let me first explain (maybe again) that I am web developer and I specialize in C#, ASP.NET, HTML and CSS. Above all I like to experiment with these and do ineteresting stuff from time to time.

With the application I am building I want to solve a problem that I experience myself. This ensures that I will have at least one satisfied costumer. First I will very briefly describe the problem I try to solve and then I will tell a bit about the architecture I have planned.

The problem to solve

When you try to build any application you must have a purpose for it and understanding the purpose is part of the solution. Also being able to relate with the owner of the problem is a big advantage. In this project that is all taken care of. I am the owner of the problem.

In my spare time I am trainer slash coach of the Ladies fieldhockey team of MHC Steenwijk. They are doing great this season and have so far won every of their ten games. This puts more pressure on me than on them as I need to give ever better training to them. I see that as an extra challenge and it gives me even more fun and satisfaction.

As part of the preparation of each training I give I need to document my training. I have to think of a subject for the training (like improve position play, penalty corners, scoring) and then I have to find excercises that support that goal. These excercises need to be drawn in a diagram. I simply have to place some pilons, players, opponents and then add some arrows showing where the players should run and pass.

This is something I usually do on paper with a pencil and I can do it in just a few minutes. But if I want to have these drawings in a digital form, then I could scan those or fire up Visio with a special stencil or go into an even bigger tool like Photoshop or Fireworks. All these tools are way too big for this and way too expensive. I want something that is simple and fast and does that what I want and maybe a little more.

Basic archtiecture

Being a web enthousiast I decided quickly that I want to build as an online tool. I looked at drawing using Javascript libraries and even studied SVG. But I let that be and thought this would be a really interesting project to build using Microsoft Silverlight.

All in all I needed a couple of components in my solution that makes it a complete, fully fledged application.

  • First there is a ASP.NET web page that holds the components.
  • One of the components is the editor with a drag and drop interface and some textboxes for inputting data like name and description of the excercise. This is done in Silverlight.
  • The Silverlight editor uses Isolated Storage for storing intermediate data on the client.
  • The Silverlight editor saves the data to the server through webservice. I have implemented an asynchronous call.
  • The webservice is the layer that gives access to the database, which will hold all excercises and, later, user data.
  • There is also a SQL Server database for storing the data.
  • Also on the page a PNG is shown as the result of the lines and symbols placed within the editor. When the excercise is saved to the database succesfully a callback function to the Silverlight editor the adds some HTML to the DOM among which is dynamically generated image.
  • The HttpHandler generates the images using the data from the database, which it retrieves through the webservice.

All these components are relatively simple. Well, except maybe the SilverLight editor. That will have all sorts of editing functionality. The image handler will just take the excercise data to generate the image. Quite a straight forward process. The database is quite simple and have only a few tables and stored procedures.

Status

At this moment I am close to having solved all the problems that are part of this solution. I can save and retrieve data, drag and drop symbols. Save to Isolated Storage. I have the HttpHandler producing some output.

Basically, I can start to fill in the gaps and then start to test in a real server and see if I can get the configuration all set up correctly. But then it just starts, there is much ore that needs to be added and there's a lot code that I need to rerfactor and clean up.

I have only just begun.

But do read on in part 2.

Reblog this post [with Zemanta]

Wednesday, January 14, 2009

A new year

.. a time to look forward

Sunrise shown in time lapse.  The motions of S...Image via Wikipedia

Now 2009 is officially on its way and it is passed the day for sending best wishes I will give a quick update on what I am upto in the coming time.

Currently I am involved in some projects at work (both insourced and outsourced) and personally I am doing a bit of a project as well. Let me tell you some things about these.

Work projects
Normal working hours
HTML syntax highlightingImage via Wikipedia

Working as a consultant I am since May last year working on a huge project for the Dutch Taxes. I was hired out to Getronics PinkRoccade, which was taken over by Capgemini. It's an interesting project. I think that's a nice way of putting it. My main activities are in programming parts of the Intranet site using things like C#, ASP.NET, WCF, HTML, CSS, SQL Server, SharePoint MOSS. All in a nice Team System environment on a virtual machine.

The funny thing is that my first ever job orientation I did was with Capgemini (I declined, finding it did not fit me). The first ever real job interview was at the Dutch Taxes. I completely flunked that as I had no idea what a job interview was. There were seven (!) people sitting across the table and that completely got me confused.

Other moments of the day

That project is not enough apparently and we are working on some in-house side projects. One of those is a Saas application we are devleoping. It's an online version of Microsoft team Foundation Server. Currently we are busy setting up the service. The accompanying site is getting close to full launch. The actual service is (still) in alpha testing and we expect soon to start with the first beta tests. All in all really exciting.

Coming soon

If that still does not seem enough there already running plans for a next in-house project. This is at the moment still hush-hush. But we intend to outsource some of the coding and also make use of our own Online TFS service. Can be really exciting as well.

Is there still time left?

Well, hardly any time left. But time enough to squeeze in a little project of myself. I am writing a small Silverlight application. To learn that environment, but also because I am need a tool to draw the excercises I use in my field hockey trainings. Usually I just jots some lines and arrows on piece of paper and that's it. But I want to go one step further and have something readable for others.

I have looked around the web and found some tools / sites. These are either big downloads and cost a little or a lot of money. But they all lack some of the things I want. I want to be able to share my excercises and let others use them as inspiration to create even better excercises. Very Web 2.0, very social app.

So, I am trying to set all these things up and have chosen Silverlight as the rich UI element for drawing the excercises.

Enough to keep me busy?

It seems I have a family as well and a hockey team and a dog and a cat.

Better get to work and than quick to get back again and be socially responsible.

Reblog this post [with Zemanta]