Frequently Asked Questions (Faq) VB 6.0
Mt File đã được Add vào trong Project nhưng sao không thy nm trong
Project Folder?
Sau khi bn dùng menu Command Project | Add File .. để cho mt File ( Form hay
Module) vào trong Project, Project biết ly File y t đâu nhưng không to ra mt bn
sao (copy) ca File y trong Project Folder. Nếu bn mun có mt copy ca File y
trong Project Folder bn phi dùng File | Save As .. đ cha File y trong mt File
trùng tên hay có tên mi trong Project Folder.
Nh là có khi bn mun gi ch mt bn ca mt Basic Module ti mt ch và dùng nó
trong nhiu Project. Mi ln mun dùng nó trong mt Project mi bn ch cn Add File
nó vào trong Project nhưng không mun làm mt bn sao ca nó trong Project Folder.
Li đim ca cách ny là khi cn sa mt Sub trong Basic Module bn ch cn sa
mt bn thôi, ch không cn phi vô tng Project Folder để sa.
SetUp hay Package & Deployment là gì?
SetUp là công vic gói ghém tt c nhng gì cn để chy nhu liu áp dng
(application software) ca bn ri sau đó đem cài đặt lên mt computer khác.
Ngày xưa trong thi Operating System DOS, để chy mt nhu liu áp dng ta ch cn
mt "exe" file ca nhu liu đó và my cái data files. Do đó ch cn sao (copy) nhng
files y vào mt folder trên computer khác là chy được ngay.
Mt nhu liu VB bn va viết xong thì cn nhiu th lnh knh mi chy được. Ít nht
nó cn nhng VB Components ta dùng t Toolbox và nhng Library cho database
..vv..
Hu hết các files ym tr ny cn phi được đặt vào folder C:\Windows\System ca
computer kia. File "exe" ca nhu liu áp dng, Help file và các data file khác thì có th
được đặt vào mt folder theo s la chn ca user. Thí d như C:\MyProgram.
Ngoài ra mt s các VB ActiveX components cn phi được đăng ký vào Registry ca
Windows, và các tin tc v ODBC cűng cn được setup na.
Microsoft có cho ta nhu liu Package & Deployment Wizard để giúp ta cho vào
(include) nhng files nào ta cn trước khi nó bt đầu công vic nén (compress) các
files li thành nhng "cab" files (file có extension là "cab") và sanh ra mt SetUp.exe
file vi mt SetUp.lst file. Ta cn chy file SetUp.exe computer kia để nó làm ba
chuyn:
1. Gin (uncompress) các Cab files ra thành nhng file ri.
2. Copy các files y vào C:\Windows\System, C:\MyProgram và nhng folder
nhánh ca C:\MyProgram nếu cn (td: C:\MyProgra\images, C:\MyProgra\sound
..)
3. Ðăng ký nhng VB ActiveX vào Registry
4. To ra Data Source Name (DSN) file cho ODBC nếu bn đang dùng.
Bn có th dùng Notepad để m SetUp.lst ra xem cho biết. Nó cha nhng d kin
cn thiết cho vic setup. Khi chy setup xong trên computer kia bn s thy nó sanh
ra mt file mi tên "st6unst.log" nm trong cùng folder vi nhu liu áp dng.
Sau ny nếu bn mun uninstall (ly nhu liu ra khi computer) thì vô Control Panel
và click Add/Remove Programs. Khi dialog hin ra vi Tab Install/Uninstall chn nhu
liu bn mun uninstall ri click nút Add/Remove. Windows s da vào st6unst.log để
biết cn delete nhng files nào, đâu và xóa tên các VB ActiveX trong Registry
(deregister).
Thường thường các "cab" files va vn c ca dĩa floppy 1.44MB. Nhng nhu liu VB
nh chiếm ít nht 4 dĩa floppy. Nếu bn chy setup t CD có khi thy các file original
hoc không b compress hoc được compress vào mt cab file duy nht rt ln thay vì
nhiu cab files c 1.44MB.
Lưu ý vài đim sau:
Package & Deployment ca Microsoft có khi không register ActiveX component
ca các công ty khác (third party software companies) khi ta chy setup. Bn
có th th t register (manually) mt ActiveX tên "theVBActiveX.ocx" bng
cách dùng Start | Run :
regsvr32 c:\Windows\System\theVBActiveX.ocx
Nếu Package & Deployment không register được các third party ActiveX như
Crystal Report, PDQComm, TrueDBGrid .vv.. thì th dùng Wise Installation
hay InstallShield cho vic setup. Trong khi Package & Deployment ca
Microsoft da vào Project file để biết bn cn nhng ActiveX components nào
thì Wise Installation có th "watch" bn chy th nhu liu áp dng để biết bn
cn nhng th gì? Nó bt nhng Windows messages để biết vic đó, ging như
công an xét giy nhng người đi vào mt ch để biết có ai trong nhà. Trong
trường hp ny có khi nó bt gp c Antivirus ActiveX luôn, nên bn nh delete
component đó.
Khi InstallShield uninstall mt nhu liu nó vô ý remove tt c các ActiveX
components mà lúc bn register quên tuyên b là "shared" (được dùng chung
cho các nhu liu khác). Có th các Components đó đã hin din và được
register t khuya ri. Nhưng khi InstallShield register chúng li không nói là
"shared" nên sau ny lúc uninstall hu qu tai hi vô cùng.
Khi install mt version mi ca nhu liu áp dng ca bn hãy coi chng
overwrite Access database file trên computer kia. Ln đầu tiên khi bn setup
thì đặt mt database trng, nhưng sau đó khách hàng bt đu dùng và cho
nhiu d kin vào database ri. Có khi nhu liu SetUp cho bn option là ch
copy mt file vào khi nó chưa hin hu (exist).
Nên chy nhu liu áp dng viết bng VB6 trên WindowsNT hay Windows98
thay vì Windows95.
Debug mt nhu liu
Debug là sa các li lm trong code sao cho nhu liu x lý OK theo ý mun
không quá chm hay té lên, té xung.
Cách d nht để loi tr Bugs là ra siêu th mua mt lon thuc hiu Bagon hay
Mortein đem v xt lên code.
Nói cho cùng, debug chng qua là giai đon sau cùng ca công tác tho
chương mà thôi. Do đó, để công vic debug được nh nhàng ta phi lưu ý đến
c nhng giai đon trưc đó trong chu k phát trin nhu liu.
Trước hết, gi s ta biết rõ và chính xác mình cn phi làm gì (Requirements
Specification).
Trong giai đon thiết kế phi đặt ngay kế hoch s th code cách nào, khi nào
và đâu. Lưu ý là h ta b qua vic kim soát ch nào, nhu liu s té (crash)
ch đó. Không có gì ngao ngán bng s đánh thc mình na đêm vì nhu liu
thiết yếu phi chy 24 trên 24 tiếng ca ta va mi té mt cái ch. Dĩ nhiên,
không ai dám ni nóng vi chúng ta vì h tùy thuc vào mình, nhưng làm vic
dưới áp lc như thế ta cn phi tránh càng nhiu càng tt.
Có mt s l li căn bn (basic guideline) v debug:
1. Ðt kế hoch Test tht chI tiết. Nghĩ đến mi trường hp như user không biết
cách dùng, hoc d kin b hư (invalid) .vv.. Nếu cn th Propotype ( mu) thì
nên thc hin càng sm càng tt để yên tâm là sau ny code s đạt đúng tiêu
chun thiết kế.
2. Sau khi code xong ln đầu, nh kim li bng cách đọc tng dòng (gi là
Desk Check). Ðừng xem Clean Compilation (compile không b Syntax error) là
hay ho gì ri lp tc chy th ngay. Tt nht là ct nghĩa cho mt partner hiu
code mình viết (gi là Walk through). Desk Check là cách chu đáo nht đ
kim Logic, vì nhiu khi ta không th nào khám phá ra mt li trong logic bng
cách th bình thường.
3. Gi cho code gn gàng, d hiu và chú thích rõ ràng. Hãy nh rng trong
tương lai ngưi bo trì code s ra bn nếu code bn viết quá bí him mà
không gii thích. Mi Variable đều cn phi đưc đt tên hp lý, cn thn.
đầu mi Sub hay Function gii thích mc đích ca routine, Input là gì, Output là
gì, có dùng k thut lp trình đt bit gì không. Bên trong Sub /Function gii
thích tng bước vic x lý tr khi quá hin nhiên. Mi Logical Test Condition
đều phi được th, ch b qua câu nào vì nghĩ rng nó quá đơn gin. Ðể
breakpoint nhng ch y để kim value ca các variables xem đó đúng như
đã định không.
4. Luôn luôn dùng Option Explicit trong mi Form/Module và tránh Declare
Variables ba bãi. Gim thiu vic dùng Global Variables để ít b ngc nhiên
không biết process nào đã thay đổi value ca variable bn đang dùng. Nếu
phi làm đi làm li mt chuyn thì có l bn có th thay thế nó bng mt
Sub/Function. Nếu hai Objects làm nhiu chuyn tương t thì xem có th gói
các Sub/Functions và Data Variables thành mt Class không.
5. Trong mi Sub/Function đều nên có Error Handler để khám phá ngay bt
trc. Ch nên để câu 'On Error Resume Next' sau khi đã debug xong xuôi và
biết chc có th b qua trường hp gp error trong tương lai.
6. Nếu phn code bn viết s được ráp vào mt phn khác thì test ch ráp
nhau (interface) bng cách kim các Output Values ca code bn và Emulate
(gi b cho vào) Input Values t phn code kia. Nếu cn làm Stress Test (cho
nhiu chuyn xãy ra xem code có chy nhanh đủ và đúng không) thì nên thc
hin càng sm càng tt.
7. Test nhu liu trên mt computer vi MSWindows va cài đt và không có gì
khác, ngay c Antivirus, để khi phi nhc đầu vô lý khi nguyên nhân code gp
khó khăn là vì mt Windows DLL hay b nhu liu Antivirus can thip.
Và sau cùng, gi bình tnh, đừng ni nóng vi chính bn hay vi ai khác. Hãy
nh rng bn là mt Professional, th lng (relax) và gi đầu óc mình minh
mn. Nếu hoàn cnh bi đát quá thì hãy bt chước tôi - cu nguyn xin Chúa
giúp đở.
Các giai đon trong chu k phát trin mt nhu liu (Development Cycle)
Ðại khái các giai đon chính ca chu k phát trin mt nhu liu là:
1. Mun làm gì? (Requirement Specifications): Giai đon ny khách hàng
bàn vi software consultant để bài t nguyn vng ca mình. Khách hàng ch
nói tng quát, consultant phi phng vn nhiu người trong s để có mt hình
nh đầy đ v vn đ.
2. Thiết kế (Design) : T Requirement Specifications bước qua giai đon Thiết
kế. Lúc ny s thy có nhiu đim không được nêu rõ trong Requirement
Specifications nên cn làm cho sáng t (clarification). Công vic ny do
Systems Analyst thc hin. Nếu d án ln thì có Software Architect thiết kế
tng quát trước khi chia ra các Team Leaders ( thường thường là Systems
Analysts). Trong giai đon ny có khi phi làm Prototype (th mô hình mu) để
biết chc k thut mình dùng có đủ kh năng và thích hp vi nhu cu d án
không.
Thiết kế là giai đon quan trng nht trong chu k phát trin mt nhu liu.
Chng nhng ta nghĩ cách xây dng nhu liu, mà còn kế hoch chi tiết cách
th lúc nào, đâu trong code. Ta phi tưởng tượng mi cnh hung bt thường
(unusual scenarios) nhưng có th xãy ra để liu cách đối phó.
3. Tho chương (Coding hay Implementation): Ðây là giai đon tho
chương và debug. Trong phn Debug thì có Unit Test (th tng b phn) và
Integration Test (th chung). Mi khi có sa đổi mt chút thì phi th li nhiu
th nên nếu có th viết Test Script để t động hóa công vic th ny ( gi là
Regression Test) thì tiết kim rt nhiu thì gi. Nếu nhu liu phi phn ng
nhanh chóng (good response) trong khi chy Real-time thì phi th nó trong
hoàn cnh phi gii quyết nhiu thnh cu cùng mt lúc (gi là Stress Test).
4. Chy th (Acceptance Test): ti s ca khách hàng, Software consultant
chng kiến các giai đon chy th để xem nhu liu x lý mi chuyn đúng như
lit kê trước đây. Các công chuyn x lý chy có nhanh đủ không, nht là trong
trường hp nhu liu phi gii quyết rt nhiu thnh cu cùng mt lúc. Trong
nhng hoàn cnh bt bình thường, nhu liu có đứng vng không. Nếu d án
ln, trước Acceptance Test còn có thêm mt giai đon gi là Factory Test khi
Software Consultant đến tn công ty ta để chng kiến ta chy th.
5. Cho dùng (Commissioning, Roll-Out): Khi cho dùng ri là bt đầu giai
đon Bo đảm (Warranty) và Bo trì (Maintenance). Bo trì là thăm viếng li
nhu liu để cha tr Bug (fixing bugs) hay sa đổi (modification) hay làm thêm