everynerd.net

the winged developer finally takes flight.

Archive for the ‘asp.net’ tag

Lessons in Graphical UI Design

with 2 comments

Developing an application to administer content on a site or internal web application is relatively basic. You have a set of functional requirements sitting in front of you and the tasks to complete them are often  straightforward. In a web-based PHP or ASP.NET application, the possibilities in arrangement of controls and convenience for the user are fairly constrained.  They need to fit in a standards compliant way and in a good application, there needs to be as few page loads as possible. In a Rich Internet Application (RIA) using Flex, we can utilize Flash to build an interface in practically any way we want and allow as little or as much to be shown to the user at one time. Understanding the resources to accomplish this may be difficult, however.

A few things need to be considered when developing the user interface for the RIA.

First, finish developing the functional requirements for your application. Don’t start rearranging and skinning components that might lose their usefulness or be removed entirely by the end.

Second, you need to know your audience. The users of your program are the ones that are going to be using it the most and you will need to cater to whether they are skilled computer users, novice, or a mix of all types. This will help determine the complexity of your screens and the “lingo” you might use.

Third, research the “common method” for developing a user interface with the tools that you’re using. In the case of Flex, there are a series of subclasses on the Container class which are used to order and arrange child components in a meaningful manner on the screen. Classes like Accordian and TabNavigator can be crucial in organizing many different components into one area.

And lastly, and most importantly, take the time to actually use the application. I don’t know how many times my perception of a design (or lack thereof) has changed after actually sitting down and going through the motions on the application as if it were my daily routine.

It also really helps to sit down with an end user or a stranger to the design and go through a mini-training session. Within the first 20 minutes of this process you will immediately know what is going to be used the most, and what will be used the least. This can greatly help the manage the appearance of these controls by prioritizing access to them.

Written by everynerd

July 16th, 2008 at 12:59 am

Incident Reporting to RIAs: A Journey

with one comment

Introduction

In February 2007, just a few months after earning my BSc., I was hired by a local custom software development company to assist in the development of several large-scale applications for the international airport, as well as enhancing an internal item-tracking system with ASP.NET.  Using ColdFusion, MS SQL, and the Model-View-Controller architecture it was my duty to help build applications that either managed money or managed incidents.  It was a massive learning experience that I had thought weathered me to the storm of professional software development. However, when the company closed its doors over a year later due, I became quickly aware of how very little I had scratched the surface.

After several intense and interesting interviews at several different organizations, I pursued one position which preferred me to specialize in PHP.

Having only seen PHP and never utilized it, I was apprehensive about pursuing the choice. However, after two interviews and a telephone conference later, it was clear to me they found more interest in me than just my passing knowledge of PHP, but rather in my experience in Object-Oriented Programming (OOP).

A Whole New Can of Worms

Day one on the job opened up a Pandora’s box of research, troubleshooting, and headaches.  I was assigned as an Adobe Flex developer. My requirement was to design, maintain, and enhance an administration tool for a high-profile website in tandem with another developer who was much more experience in the architecture and ActionScript than I was.  The most I’d seen of Flash development was at least five years ago and I made a ball roll across the screen. Needless to say, programmatic development in this language was alien to me.

The most challenging part about this new position was a few things:

  1. The job centered around a single site and proposed future sites
  2. I had never developed any sort of graphical Flash application or otherwise
  3. The usefulness of knowledgeable people was sadly stunted by over-inflated egos

Challenges aside, I toughed out the first month and suddenly found myself really getting the idea behind graphical development. Funny enough, learning the language was the easiest part of the transition, it was everything else that was difficult.

Developing a flash-based image cropping tool was probably the biggest mouthful I’d had to digest in my professional career. At my previous job, there was hardly a task I would’ve had to scratch my head over by the time of my departure, and now in the first week of this one I’ve got the biggest head-scratcher a head’s ever seen.

Once the tool was developed it was integrated into the Cairngorm architecture of our Flash application (a relatively simple MVC system which simplifies scalability), and I was onto my next task.

Unit Testing as a Pioneer

Show of hands on who’s developed unit tests for an application? (probably a good number)

Show of hands on who’s developed unit tests in Cairngorm? (probably a much smaller number, but thank God for FlexUnit)

Show of hands on who’s developed unit tests in Cairngorm to test asynchronous service calls via amfphp? (Oh god, am I the only one?)

Needless to say my next task was nearly as trying as the first, but I was determined to make it happen.

For anyone new to Cairngorm and especially to the idea of testing asynchronous calls to a service, it’s important to remember that not everything anyone else says is right for your application. I’ve tried numerous methods in order to get a proper test done and only after about 3 weeks was a half-solution decided upon.

First and foremost, read through every word of Steven Webster’s starter guide to Flex and Cairngorm and familiarize yourself with the setup, and be absolutely certain you’ve followed his guidelines for developing your application. The next step is to grab FlexUnit, a wonderful testing suite written by the good folks at Adobe to help test-driven developers like myself build a better system.

Once FlexUnit’s installed, look at your code and commence the head-scratching.

Look to part 2 of this entry for some actual code and suggestions to assist your testing needs.

Written by everynerd

July 13th, 2008 at 10:46 pm