Posts Tagged ‘Development’

Few Design Decisions and Development Tips For Web Applications

Friday, September 12th, 2008

Few Design Decisions and Development Tips For Web Applications

1) Use a ORM (unless you have a strong reason)
Using a ORM tool reduces your development time and it is easy to maintain. Yes, I know that some people say ORM tools reduce the performance. An added layer of abstraction definitely reduces performance. But, most ORM tools are developed in a way to minimize the overhead.

Let us say you have 4 developers building an application for you. This application would take 3 months to complete and each developer is paid 8000 dollars a month. You end up paying 96000 dollars for this project. If you used an ORM tool you can easily save 15 - 30 days of work. For the argument lets say it saved 15 days work. The cost advantage: 16000 dollars, go buy some extra RAM / better CPU, instead of mourning about performance. And you have your product 15 days earlier, which may give you a market edge.

2) Concentrate on User Experience
I am not talking about sugar candy images / css etc.. For doing a particular task, minimize the keystrokes required, mouse clicks required.

3) Use Ajax wisely
Ajax is a very nice technology. Use it properly. When you are changing a major part of the page, do a full post back. I know a lot of people may not agree to this. I am suggesting this because some browsers and some Ajax frameworks available have memory leaks with Ajax components, When a major part of the page changed, the browser has to unload the whole DOM and create new DOM structure. Thankfully some browsers are not good at it. Use Ajax when for partial page updates. And whenever possible, try queuing Ajax requests. When a user clicks something and sees the loading… text or image and if he has to wait, it is a little frustrating. Ofcourse it is better than a whole page re load.

4) Take the Users seat
Unfortunately, some developers dont see themself as the end user. So the developers think they built a great product, but it could be useless for end user. For example, for a certain application lets say end users receive some paper forms and they key in them into this application. Remember most of them are good typists. Sometimes developers forget the logical flow using Tabs. An application should add value not make things hard. So to know such things think like the end user. Or for example, the users take telephone calls and key in some things into the application. There is a huge form. And we have a session timeout of 15 minutes, which may not be sufficient for the user. After he keys in everything and clicks submit he finds himself staring at the login page with the message your session expired. (If the developer cared to put that message). Well there are a couple of techniques to handle this. (may be a future article).

5) good coders code, great reuse.
Good coders write good code, great developers re use. Don’t re-invent the wheel. If there is some library that solves your purpose and the library license is applicable for you, go ahead and use it.

Finally,
Be clear on what needs to be done, have your unit test plans ready before you even write code. Test early and test frequently. Don’t wait till you build a mammoth. Start testing as soon as you have some little feature. And test as soon as you add another one. This way you find bugs early, fix them early.

Goodluck.

Few Design Decisions and Development Tips For Web Applications

Globalizing your applications – 1

Thursday, December 27th, 2007

Globalizing your applications – 1

In this blog article Iam going to show how to globalize your .Net applications. When you are going to build an application which will be used by users across the globe i.e users of different locales, globalization helps you a lot to format information for the locale of the user. In .Net The “System.Globalization� namespace contains several classes to help us in this.

From MSDN:
“The System.Globalization namespace contains classes that define culture-related information, including the language, the country/region, the calendars in use, the format patterns for dates, currency, and numbers, and the sort order for strings. These classes are useful for writing globalized (internationalized) applications. Classes like StringInfo and TextInfo provide advanced globalization functionalities, such as surrogate support and text element processing.�

The “System.Globalization� class contains the following classes:
- Calender
- CharUnicodeInfo
- ChineseLunisolarCalendar
- CompareInfo
- CultureAndRegionInfoBuilder
- CultureInfo
- DateTimeFormatInfo
- DaylightTime
- EastAsianLunisolarCalendar
- GregorianCalendar
- HebrewCalendar
- HijriCalendar
- IdnMapping
- JapaneseCalendar
- JapaneseLunisolarCalendar
- JulianCalendar
- KoreanCalendar
- KoreanLunisolarCalendar
- NumberFormatInfo
- PersianCalendar
- RegionInfo
- SortKey
- StringInfo
- TaiwanCalendar
- TaiwanLunisolarCalendar
- TextElementEnumerator
- TextInfo
- ThaiBuddhistCalendar
- UmAlQuraCalendar

Among these classes we will be looking at CultureInfo class.

There are 3 types of cultures:
- Invariant Culture
- Neutral Culture
- Specific Culture

Invariant Culture:
This type of culture is Cullture Insensitive. This type of culture is generally used as a default culture.

Neutral Culture:
These cultures are associated with a language not country or region. They have 2 letter abbreviations like English (en), French (fr), Spanish (sp).

Specific Culture:
These cultures are specified as “Neutral Culture – Specific Culture� like “fr - FR�, “en - US� etc… These cultures take countries, region into account.

Globalizing your applications – 1


Books 24x7