Following are consideration items you need to keep in mind before you start your actual design.
It is an ideal process if all the DBCS and NLS requirements and consideration are included in the early design phase because adding DBCS support into existing products tends to be considerably expensive. You have to locate hits, add DBCS support, and re-test the DBCS support version. Sometimes, your external interfaces need to be changed to accept DBCS. So, DBCS support should be specified and designed from the very beginning, and DBCS enabling works should be incorporated into your development process.
A hardware independent program is a program which does not access the hardware resource directly but through the system software services. DBCS hardware has unique features. If your program uses the capability of hardware directly, then your program may have hardware dependence on those hardware, and you may need to define the support hardware list for your program and enable your program to support the DBCS hardware.
If your program supports the same hardware devices, still it may need to cover such differences as resolution of the display and the key layout of the keyboard. Those different information are defined as the device characteristics or device capabilities (DEV CAPS) and can be obtain by the system Dev API. A hardware independent program will not assume these device value and queries them from the system through the system Dev API. This style of hardware independent programming is recommended.
In order to handle DBCS data, you must take care of the following:
Not all the data format need to support DBCS data. Normally text data need to support DBCS data. (See the Types of Character Data for the discussion about what types of data are need to be supported as the DBCS data. Also see Data Type.) You may need to consider the following types:
Both SBCS data and DBCS data are allowed.
Only DBCS data are allowed.
Only SBCS data are allowed.
You can perform the DBCS and NLS enabling tasks (e.g. coding, compile) on the SBCS environment, but you need to test the program on a DBCS environment.
Considerations are described in DBCS Support in a Typical Application Model
Considerations are described in Single Module