| < Day Day Up > |
|
C# in a Nutshell (Drayton, Albahari, and Neward), 133
C# refactoring tools, 92
C#Builder IDE, 102
Caching application block, 134
camel casing, 137
Check In command, 35
Check Out command, 34
check-out/edit/check-in development style, 42–43
ClearCase software, 38, 39
Cloak command, 37
code building process, 236–254,
See also coding;
source code
using automated build tools, 237
using Build menu in VS .NET, 236–237
checklist, 254
continuous integration, 250–251
daily build tasks, 238–239
daily build tools
Daily Build, 240–241, 240
FinalBuilder, 241–243, 241
Hippo.NET, 243
Merant Build, 240
from Microsoft, 239–240
NAnt, 239, 243–248
OpenMake, 240
overview, 239
Visual Build Professional, 248–250, 249
daily builds, defined, 237
on dedicated computers, 250
overview, 236–237
problems and solutions
automating intractable tools, 252
fixing broken builds, 252–253
handling developer idiosyncracies, 252
managing version numbers, 253
overview, 251
warning, 251
Code Complete (McConnell), 156
Code Generation in Action (Herrington), 144
code generation tools, 142–153
active code generators, 145–146
AlachiSoft TierDeveloper, 149
built into VS .NET, 147–148, 148
CodeSmith, 143–144, 143–144, 150–152
deciding to use or not, 152–153
example, 150–152
Iron Speed Designer, 149
m3rlin, 149
not getting trapped by, 151
Olero ORM.NET, 149
overview, 142–143
passive code generators, 144–145
Solutions Design LLBLGen Pro, 149
SQL injection problem and, 145
taxonomy, 144–146
uses, 146–147
warning, 153
Workstate Codify, 150
Yes! Software CodeCharge Studio 2.2, 150
code munger, 145
code project organization, 20–31
checklist, 31
design patterns and
benefits, 24–25
defined, 23–24
Gang of Four patterns, 24–25
Microsoft patterns, 25–26
overview, 20
scheduling deliveries, See also delivering
beta testing approach, 29, 71
choosing approaches, 30
overview, 28–29, 28
XP approach, 29–30
software architecture
defined, 20
versus design, 20–21
design patterns and, 23–26
in small projects, 21, 22
technology trap, 23
UML and, 22–23
starting new projects
breadth-first coding, 27
depth-first coding, 27
mixed approaches, 28
overview, 26
code project planning, 2–18
checklist, 18
choosing methodologies
agile approaches, 16–17, 17
iterative approaches, 16
Microsoft Project and, 15
overview, 14–15, 17–18
waterfall approaches, 15–16
handling requirements
defining requirements, 6–8
elicitation checklist, 8
eliciting requirements, 9
overview, 6
requirements development, 8
requirements management, 8, 11
technology traps and, 7
use case documentation, 9–10
warning, 8
nailing down feature sets
with elevator pitches, 3–4
with mind maps, 4–6, 6
overview, 2
overview, 2
tracking progress
inch-pebbles and, 12
overview, 11
with scheduling tools, 11–13, 13
with time and billing tools, 13–14, 14
code property rights. See protecting
The Code Project website, 137
CodeMeeting tool, 212
CodeReview tool, 213
coders, xix
CodeSMART add-in, 113, 114
CodeSmith tool, 143–144, 143–144, 150–152
CodeWright tool, 112, 212
coding defensively, 52–67,
See also bug tracking; logging
testing
using assertions
defined, 52
guidelines for, 55–56
mechanics of, 53–54, 54
in .NET, 52–56, 53–54
in other languages, 55
overview, 52
uses for, 56
checklist, 67
using comments
intent comments, 65
noise comments, 61–62
overview, 61
placeholder comments, 63, 63
summary comments, 64–65
synchronization problem, 66
using exceptions
custom exceptions, 58–60
defined, 56
example, 56–57
guidelines for, 60–61
mechanics of in C#, 57
overview, 52
coding documentation, 216–233
checklist, 232–233
developer help files
using NDoc, 225, 228, 228–229
overview, 224–225
using XML comment tags, 225–228, 227
end-user help files
choosing topics, 218–220, 219
conceptual help, 219
context-sensitive help, 217
using FAR, 223
indexes, 217–218, 221
using Microsoft HTML Help, 222, 223
organizing information, 220–221
overview, 216
using professionals, 221, 224
using RoboHelp, 223, 224
task-specific help, 218, 219
and testing, 221
understanding user needs, 216–218
with user feedback links, 222, 222
user interface and, 225
manuals, 229–230
overview, 216
team documentation
development logs, 230–231
overview, 230
postmortems, 231–232
coding software installers, See also delivering
choosing install creators, 280–281
example, 282–286, 284–286
including licenses, 283
using Inno Setup, 277
install-on-demand, 280
using InstallAnywhere.NET, 277–278
using InstallShield DevStudio, 278, 279, 279
using InstallShield Express, 278
using NSIS, 278
overview, 276–277
and testing, 282
tips for, 281–282, 282
and uninstallers, 282
using Visual Studio .NET, 278, 281, 282–286, 284–286
Windows Installer resources on, 279, 280
using Wise for VS .NET, 278–279
using Wise for Windows Installer, 278–279
coding with small teams, 198–213
checklist, 213
versus coding solo, 199
and documenting
development logs, 230–231
overview, 230
postmortems, 231–232
legalities, 199
managing teams
choosing team structures, 200
overview, 199–200
the Peter Principle and, 201–202
processes, 202
tracking progress, 200–201
overview, 198
reasons for, 198
tools for distributed teams
CodeMeeting, 212
CodeReview, 213
CodeWright, 212
e-mail, 203
GotDotNet, 206–207, 208
Groove Workspace, 211, 212
instant messages, 204
online workspaces, 204–208, 206, 208
overview, 203
SharePoint Services, 210–211
SourceForge, 205, 206
wikis, 209, 210
comments, See also coding defensively
intent comments, 65
noise comments, 61–62
overview, 61
placeholder comments, 63, 63
summary comments, 64–65
synchronization problem, 66
XML comment tags, 225–228, 227
compatibility testing, 164
Compuware DevPartner Studio add-in, 116, 117
ConceptDraw MINDMAP software, 5
concurrent development style, 42–43
Configuration Management application block, 134
conformance testing, 163–164
continuous integration, 250–251
contracts, 256–259,
See also protecting
Create Project command, 34
Creative Commons project, 261
CruiseControl.NET tool, 251
csUnit testing tool, 73
“Customizing VS .NET Start Page” article, 98
CVS (Concurrent Versions System) software, 34, 38, 39–40
| < Day Day Up > |
|