Monday, June 22, 2009

Creating a Widget framework in ASP.Net

Note: I've added a label: "widget" for all my posts relating to implementing a Widget framework in Asp.Net.

A recent request at my workplace sent me off looking for a Widget framework for ASP.Net similar to IGoogle and PageFlakes. All I found was Dropthings.

Just like everyone else, after downloading the source code, I loaded the project in Visual Studio and tried to run the solution. After messing with the SQL Express DB for a few minutes, the Dropthings solution fired up with no problems. Well, after playing with the example site for a few minutes I shut the site down and started it back up again, this time walking through the code, one line at a time.

After manually stepping through about a gazillion lines of code, the site finally fired up. Wow, was it really that complex to dynamically load a few widgets on a web page? OK, maybe I was so focused on the trees that I could not understand the forest. So, I tried to step through the click event of the minimize button and ... well, lets just say that there is complex and there is COMPLEX.

Before we go any farther, lets start with a few definitions:

1 - Widget: A self contained application that runs in a subsection of the web page. Widgets usually have header area similar to a windows program and just like a windows program usually have minimize and maximize buttons. Other buttons, such as refresh and edit buttons may also be available.

2 - Widget Container: One or more areas, usually columns, where widgets are displayed on the web page and with drag and drop functionality, between which widgets can be moved and re-ordered.

3 - Widget Based Site: A web site with one or more pages that dynamically display widgets that the user can personalize by adding removing and rearranging widgets.

Now, does such a framework have to be soooooo complex as dropthings? After a deep and long look at the source code, there are quite a few things to commend the author for. There is also a ton of things he needs to be castigated for.

As I endeavor to create a widget based site from scratch, I will blog my successes and failures as well as the elements I found in dropthings that I decided to recreate in my site.

Tuesday, June 16, 2009

Ramblings + some upcoming posts

Wow! Vacation, A move from my laptop to my desktop (The laptop is my primary computer in the winter and my desktop is my primary computer in the summer - It's cold in the basement in the winter!) and Lots of work on the "Farm" seems to have made eight weeks disappear like smoke.

Well, I'm finally back to my blog.

What I'd like to post in the near future:

The missing conversion class: Why didn't Microsoft include a class to convert numbers from any base to any base from 2 to 36? Well, I've got one.

A Silverlight Risk Map: I built on the USA Map to create a risk map that shows the colors of the "owning" player.

Thanks to a start from another blog (I'll give the credit in the post) a generic full singly linked list based on class references instead of an array.

Now, long before I started this blog I was deeply involved in the Campaign Cartographer 2/3 (CC2/CC3) community. After I received my pre-ordered copy of CC2, way back when it was first released, I started to expand its capabilities.

I found out how to write XP's (plugins) for CC2 and wrote the fractal commands that are in the product today. CC2's core is written in assembly and the XP's are written in either assembly or C/C++. I wrote a random name generator that combined C++ with VB6. After .net arrived I rewrote my random name generator in C#. I even wrote five tutorials (You can read the tutorials here.) on using Microsoft's IJW (believe it or not, IJW stands for "It just works) to interconnect C++ with C# using CC2/CC3 as the example application.

Well, I've recently been contacted by an individual trying to work my tutorials and they are having issues, so I will be revisiting them - and posting about it here.

I've also got an application 75% done that is a "stand alone WIKI" for CC3. The idea here is to be able to link RTF data and map links. I'll also be posting about this as I dig back into this project.

I've not forgotten my efforts at board game programming, I just have to clean some of these other projects before I can get back to game programming.

Well, that's all my thoughts for now. If anyone has a preference on what I post first, feel free to add a comment. I DO read all comments!