Software Design and C# Programming
Using the C# programming language for software design opens the door for innovation.
Designing software is an important first step to the creation of a new system. The design of the software, how a user is going to interact with the features of the program, is perhaps the single most important element of an application. Creating an interface that is stunningly easy to use is so difficult that many programs miss the mark while offering the same level of functionality.
The C# code necessary to implement a thoroughly designed software interface is often several times longer than the C# written to "just get the job done." For example, a program might show a map centered on a chosen set of lat/lon coordinates. One interface, created by a programmer without thought to the user experience presents two textboxes, one where the user types in the latitude, and one for the longitude. The user has to know the exact coordinates of the location they want before using the program. I think you'll agree this is a very difficult program to use. It is, however, a very simple program to write in C#.
Then consider a similar program with a carefully designed user interface. This program presents a textbox along with a note for the user to enter a city name, zip code, lat/lon, or any other place name. The program then examines the user input. Five digit numbers are matched against a Zip code database for the equivalent lat/lon coordinates. Two numbers, separated by a comma, are checked to see if they are valid lat/lon coordinates and used accordingly. Everything else is submitted to a geolocation service, like Google's free Maps API, retrieving the lat/lon for the closest match in the system.
While it's a lot more work for a programmer to handle several types of input and even to tie into a service on the Internet, the result is obvious. Users of the first system are forced to research and memorize prior to use of the software, users of the second system can sit down and immediately access the desired information without any additional busy-work on their part.
At TrailsWeb, we'll always build the system to handle everything we possibly can. Users of our software need only know the things they already know to interact with the features of our software. We never take the easy way out by reducing the amount of automation within the program at the expense of the user experience. Our commitment is to building the software right, so its users have the best experience possible.