Software Development  ·  Level 6
Desktop Application Development
Chapter 2: To write desktop application source code
📚 8 Topics
⚑ What you will be able to do

By the end of this chapter, you will be able to:

  • identify the right desktop application development tools based on system requirements.
  • develop the application interface accurately following the design plan.
  • design a database that effectively meets user needs.
  • integrate the database smoothly according to application requirements.
  • implement application functionality that matches user specifications.
  • follow workplace safety and health practices in line with OSHA standards.
  • identify proper methods for e-waste storage and disposal following OSHA guidelines.
  • demonstrate effective e-waste management by applying OSHA procedures.

These skills will help you create reliable, user-friendly desktop applications while keeping yourself and the environment safe in the workplace.

Compiled by: Stephen Mbugua

Writing desktop application source code is a foundational skill for software developers in Kenya’s growing ICT sector. This chapter provides a detailed exploration of the tools and environments used in desktop application development, including how to select appropriate tools based on system requirements. Mastery of these tools is critical for producing efficient, maintainable, and robust software solutions that serve diverse sectors such as banking, education, healthcare, and government services.

2.1 Identifying Development Tools

Professional desktop application development requires familiarity with a variety of development tools that streamline coding, debugging, and deployment. Developers in Kenya’s software industry rely heavily on Integrated Development Environments (IDEs) to improve productivity and code quality. Understanding the features and components of these tools, as well as criteria for their selection, enables developers to match the right environment to project needs and client expectations.

2.1.1 Overview of desktop application development tools

Desktop application development tools provide a comprehensive set of functionalities that support the entire software development lifecycle. These tools combine code editors, debuggers, compilers, and graphical user interface design capabilities to facilitate creating applications that run on Windows, macOS, or Linux platforms. In the Kenyan context, where software solutions often need to integrate with existing systems in sectors like county governments or commercial banks, these tools help manage complexity and ensure compatibility.

Key Features of Desktop Development Tools

  • Code Editing and Syntax Highlighting: These features help developers write syntactically correct code by visually distinguishing keywords, variables, and data types, reducing errors during coding.
  • Compiler and Interpreter Integration: The tools translate source code into executable programs, allowing developers to test and run their applications efficiently.
  • Debugging Support: Built-in debuggers enable step-by-step execution, breakpoints, and variable inspection, crucial for identifying and fixing logical errors.
  • Graphical User Interface (GUI) Designers: Drag-and-drop interfaces allow developers to design forms, buttons, and other controls visually, speeding up the development of user-friendly applications.
  • Version Control Integration: Many IDEs incorporate Git or other version control systems, facilitating team collaboration and code management.
  • Extensibility and Plugins: Support for additional plugins or extensions enables developers to customize the environment to their specific needs, such as integrating database tools or testing frameworks.

Kenyan software firms developing applications for hospitals or educational institutions benefit from these features by accelerating development while maintaining high software quality standards.

Common Desktop Development Tool Categories

  • Integrated Development Environments (IDEs): Comprehensive software suites that combine multiple development tools under one interface.
  • Text Editors: Lightweight tools like Notepad++ or Sublime Text used for quick edits or scripting.
  • Compilers and Build Tools: Standalone programs that compile source code into executables.
  • GUI Builders: Specialized tools for designing user interfaces, sometimes integrated into IDEs.
  • Version Control Systems: Tools like Git and SVN that manage code changes collaboratively.

2.1.2 Visual Studio, Netbeans, JetBrains

Among the popular desktop application development environments, Visual Studio, NetBeans, and JetBrains IDEs stand out for their robust features and widespread adoption. Each offers unique advantages suited to different programming languages and project requirements.

Visual Studio

Visual Studio by Microsoft is a powerful IDE primarily used for developing Windows desktop applications using languages like C#, VB.NET, and C++. It supports .NET framework development, making it ideal for enterprise-level applications deployed in sectors such as banking or government agencies in Kenya.

  • Comprehensive Language Support: Visual Studio supports multiple languages, enabling developers to work on diverse projects.
  • Advanced Debugging and Profiling: Features like IntelliTrace and performance profilers help optimize application performance.
  • Rich GUI Designer: The Windows Forms and WPF designers allow drag-and-drop UI creation.
  • Integration with Azure: Facilitates cloud deployment and services integration.
  • Community and Enterprise Editions: Offers scalable options for individual developers and large organizations.

NetBeans

NetBeans is an open-source IDE favored for Java desktop application development. It supports cross-platform development, which is essential in Kenya’s varied IT environments.

  • Java Swing and JavaFX Support: Provides tools for building rich client interfaces.
  • Modular Architecture: Developers can extend functionality via plugins.
  • Maven and Gradle Integration: Simplifies project management and builds.
  • Cross-Platform Compatibility: Runs on Windows, macOS, and Linux.
  • Free and Community-Driven: Attracts developers in academic institutions and startups.

JetBrains IDEs

JetBrains offers several IDEs such as IntelliJ IDEA for Java, PyCharm for Python, and Rider for .NET development. These environments emphasize productivity and intelligent coding assistance.

  • Smart Code Completion: Helps reduce errors and speeds up coding.
  • Refactoring Tools: Simplify code restructuring without breaking functionality.
  • Version Control Integration: Supports Git, Mercurial, and others.
  • Database Tools: Built-in support for database management.
  • User-Friendly Interface: Customizable themes and keyboard shortcuts.

Kenyan developers working on fintech solutions or educational software often prefer JetBrains IDEs for their advanced code analysis and support for multiple languages.

2.1.3 Criteria for Selecting Tools Based on System Requirements

Choosing the right development tool depends on various factors related to the project’s technical and business needs. In Kenya’s diverse software market, aligning tool capabilities with system requirements ensures efficient development and sustainable maintenance.

Key Selection Criteria

  • Target Operating System: The development tool must support the intended deployment platform, whether Windows, macOS, or Linux. For example, Visual Studio excels in Windows environments, while NetBeans is preferred for cross-platform Java applications.
  • Programming Language Compatibility: The tool should support the primary language used in the project. A mobile banking desktop app using C# would benefit from Visual Studio, whereas a research application in Python would suit PyCharm.
  • Project Complexity and Size: Large enterprise projects require tools with advanced debugging, profiling, and collaboration features, while smaller projects may only need lightweight editors.
  • Integration with Other Technologies: Tools that integrate smoothly with databases, web services, and cloud platforms streamline development workflows.
  • Licensing and Cost: Open-source tools like NetBeans reduce upfront costs, which is crucial for startups and educational projects, while commercial tools may offer better support and features.
  • Community and Vendor Support: Access to updates, documentation, and user communities affects long-term project viability.
  • Performance and Resource Usage: Tools should run efficiently on available hardware, especially in environments with limited resources.

These criteria guide Kenyan software developers when selecting tools for projects such as county government management systems or hospital patient record applications.

2.1.4 Examples of popular development environments (e.g., Visual Studio, Netbeans, JetBrains)

The choice of an Integrated Development Environment (IDE) significantly influences the productivity and quality of desktop applications. The following environments are widely used in Kenya’s software development industry due to their feature sets and community support.

Visual Studio

Visual Studio is the preferred environment for .NET desktop applications. Its integration with Microsoft technologies makes it suitable for projects in banks or insurance firms that rely on Windows infrastructure.

NetBeans

NetBeans is popular among Java developers creating cross-platform desktop software for educational institutions and cooperatives requiring platform independence.

JetBrains IntelliJ IDEA

IntelliJ IDEA is favored for Java and Kotlin development, especially in startups focusing on fintech solutions requiring robust code analysis and support for modern JVM languages.

Eclipse

Eclipse is another open-source IDE supporting multiple languages and is widely used in academic settings for teaching and prototyping desktop applications.

Lazarus

Lazarus is a free IDE for Pascal programming, used in some Kenyan software firms for legacy system maintenance and specialized applications.

2.1.5 Parts of Integrated Development Environment

An Integrated Development Environment (IDE) consolidates the essential tools for software development into a single application interface. Understanding the components of an IDE helps developers utilize its full capabilities for efficient coding.

Main Components of an IDE

  • Code Editor: The core area where developers write and edit source code, featuring syntax highlighting, auto-indentation, and code completion.
  • Compiler/Interpreter: Translates source code into machine code or intermediate language, enabling execution and testing of the application.
  • Debugger: A tool that allows developers to execute code step-by-step, set breakpoints, and inspect variables to identify and fix bugs.
  • GUI Designer: Provides a visual interface for designing application windows and controls without manual coding.
  • Project Explorer: Displays the structure of the project files and resources, facilitating navigation and management.
  • Build Automation Tools: Automate compiling, linking, and packaging of applications, reducing manual errors.
  • Version Control Integration: Enables managing code changes and collaboration through systems like Git.
  • Output and Console Windows: Show compilation results, error messages, and runtime outputs.

2.1.6 Types of Controls and Objects

Controls and objects form the building blocks of desktop application user interfaces. Selecting appropriate controls determines the usability and functionality of software used by Kenyan organizations.

Common Types of Controls

  • Buttons: Trigger actions when clicked, such as submitting a form or opening a file.
  • Text Boxes: Allow users to input or edit text, essential for data entry in applications like hospital management systems.
  • Labels: Display static text or instructions to guide users.
  • Check Boxes: Enable selection of one or more options, useful for filtering reports in financial software.
  • Radio Buttons: Allow selection of a single option from a group, commonly used in survey or registration forms.
  • Combo Boxes: Combine a text box with a drop-down list, providing selectable options while allowing manual input.
  • List Boxes: Display a list of items from which users can select one or multiple entries.
  • Menus and Toolbars: Provide navigational and command options, improving application accessibility.
  • Panels and Group Boxes: Organize controls visually, enhancing interface clarity.
  • Dialogs: Modal windows that prompt users for input or display messages, critical for error handling and confirmations.

Objects in Desktop Applications

Objects represent both controls and non-visual components such as timers, data connections, and file handlers. Object-oriented programming principles enable developers to create reusable and modular code, improving maintainability.

In Kenyan banking software, for example, objects representing customer accounts encapsulate data and behaviors, facilitating secure and consistent transactions.

Practice Questions

  1. Explain five key features of desktop application development tools and how they support software development in Kenyan organizations. (10 marks)
  2. Compare and contrast Visual Studio and NetBeans as desktop application development environments. Include at least three points for each. (10 marks)
  3. Describe six criteria that should guide the selection of a development tool for a desktop application project. Provide practical considerations relevant to Kenyan software projects. (12 marks)
  4. Identify and explain the main components of an Integrated Development Environment. (10 marks)
  5. List and describe eight types of controls commonly used in desktop application interfaces, highlighting their importance in user interaction. (16 marks)
The rest of this chapter
🔒

Create a free account to open more of this chapter.

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒2.2 Developing Application Interface

Developing the application interface is a critical stage in desktop application development, as it directly affects how users interact with the software. In Kenya, where desktop applications serve diverse sectors such as banking, education, and healthcare, a w…

🔒2.3 Designing the Database

Database design constitutes a critical phase in desktop application development, especially in Kenya’s dynamic business and institutional environments. A well-designed database ensures efficient data storage, retrieval, and management, directly impacting appli…

🔒2.4 Database Integration

Integrating databases with desktop applications is fundamental for managing persistent data efficiently in software development. In Kenya, organizations such as banks, hospitals, and county government offices rely heavily on desktop applications that interact…

🔒2.5 Implementing Application Functionality

Developing effective desktop applications in Kenya’s software development industry requires a focus on translating user requirements into practical, working software. This process involves writing clean, maintainable source code that meets specified needs, ver…

🔒2.6 Observing workplace safety and health practices

Workplace safety and health are critical concerns even in software development environments across Kenya. Although the risks in software development may appear less physical than in manufacturing or construction, hazards such as prolonged screen exposure, repe…

🔒2.7 Identifying E-Waste Storage and Disposal Methods

In Kenya's growing technology sector, software developers and IT professionals frequently upgrade hardware and peripherals, generating electronic waste (e-waste). Proper identification and management of e-waste storage and disposal are critical to avoid enviro…

🔒2.8 Demonstrating E-Waste Management

In Kenya's growing digital economy, managing electronic waste (e-waste) responsibly is vital, especially in workplaces involved in software development and IT. Desktop application development environments generate e-waste through obsolete computers, peripheral…

Chapter Summary

This chapter explored the essential tools and environments used in desktop application development, highlighting popular integrated development environments such as Visual Studio, NetBeans, and JetBrains. It emphasized the importance of selecting development tools based on specific system requirements and detailed the various controls and objects commonly used in application interfaces, including buttons, textboxes, labels, and data grids. The process of developing an application interface was discussed with attention to design patterns like MVC and user experience best practices. Database design was covered by focusing on understanding user data needs, choosing appropriate database models, and establishing data relationships. Techniques for database integration were examined, including ensuring data consistency and employing APIs and ORM tools. The chapter also addressed workplace safety and health practices relevant to software development, referencing OSHA regulations and the significance of ergonomics. Finally, it covered e-waste management by outlining proper storage, disposal methods, and the importance of staff training and monitoring in handling electronic waste responsibly.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. What are the primary components of an Integrated Development Environment (IDE)? (3 marks)
  2. Explain the importance of selecting appropriate development tools based on system requirements. (3 marks)
🔒20 more in this section.

Chapter Examination Questions

🔒 PDFDownload these examination questions, with worked answers

SECTION A (40 Marks) - Answer ALL Questions

  1. Identify three popular Integrated Development Environments (IDEs) used for desktop application development and explain one key feature of each. (4 marks)
  2. Describe the main components of an Integrated Development Environment and their roles in software development. (4 marks)
🔒18 more in this section.

Chapter Practical Activities

Practical 1: Select and Install Desktop Application Development Tools

Software Development · Level 6
Desktop Application Development
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Select the most suitable desktop application development IDE based on given system requirements and install it on a computer with Windows 10 OS.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer with Windows 10 OS installedVisual Studio Community Edition installer
Internet connection with minimum 5 Mbps speedNetBeans IDE installer
JetBrains IntelliJ IDEA Community Edition installer
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer with Windows 10 OS installed1 Pc per Candidate
2Internet connection with minimum 5 Mbps speed1 Connection per Candidate
3Visual Studio Community Edition installer1 Copy per Candidate
4NetBeans IDE installer1 Copy per Candidate
5JetBrains IntelliJ IDEA Community Edition installer1 Copy per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Identify and select suitable IDE
Analyzed system requirements to determine IDE suitability
(Award 4 marks for correct identification of IDE based on system requirements)
4
Compared features of Visual Studio, NetBeans, and JetBrains IntelliJ IDEA
(Award 3 marks for clear comparison of IDE features relevant to desktop app development)
3
Justified selection of IDE based on criteria such as language support, ease of use, and project type
(Award 3 marks for valid justification for chosen IDE)
3
Sub-Total10
TASK 2: Install and configure the selected IDE
Downloaded or accessed the correct IDE installer
(Award 2 marks for accessing correct installer)
2
Successfully installed the IDE with default or customized settings as required
(Award 5 marks for correct installation process without errors)
5
Configured IDE settings such as workspace, theme, and language preferences
(Award 3 marks for proper configuration of development environment)
3
Sub-Total10
PRODUCT CHECKLIST
Installed IDE launches successfully and displays the start screen
(Award 5 marks if IDE launches without errors and is ready for desktop application development)
5
IDE correctly configured with user preferences as specified
(Award 5 marks for correct configuration of IDE settings)
5
Sub-Total10
GRAND TOTAL30
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)

Practical 2: Exploring IDE Components for Desktop Application Development

Software Development · Level 6
Desktop Application Development
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Demonstrate and document the use of key IDE components including Code Editor, Debugger, and Project Explorer within a Visual Studio project sized to contain at least 3 source files.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer installed with Visual Studio 2019Visual Studio Project with 3 source code files
Rewritable Compact Disc (CD-RW)
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer installed with Visual Studio 20191 Pc per Candidate
2Rewritable Compact Disc (CD-RW)1 Pc per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Create and Explore IDE Project
Opened Visual Studio and created a new project
(Award 2 marks for correctly creating a new project)
2
Added at least 3 source code files to the project
(Award 3 marks for adding 3 or more source files)
3
Opened and demonstrated use of the Code Editor
(Award 3 marks for showing code editing features like syntax highlighting, line numbers)
3
Navigated and explained the Project Explorer pane
(Award 2 marks for correctly using Project Explorer to view project files)
2
Used the Debugger to set breakpoints and run the application
(Award 5 marks for setting breakpoints, starting debug mode, and stepping through code)
5
Saved the project and copied it onto the CD-RW
(Award 2 marks for correctly saving and backing up the project to CD-RW)
2
Sub-Total17
PRODUCT CHECKLIST
Project contains at least 3 source code files and is correctly saved on CD-RW
(Award 8 marks for completeness, correct file count, and successful backup)
8
Sub-Total8
GRAND TOTAL25
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)
🔒

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒Develop a Desktop Form with Buttons and Textboxes for Student RegistrationPractical 3
🔒Design and implement a desktop form with Labels and ComboBox controlsPractical 4
🔒Develop a Desktop Application Form Displaying Student Data Using DataGrid and ListView ControlsPractical 5
🔒Design and Implement a Multi-Form Desktop Application with Navigation and ControlsPractical 6
🔒Develop a User Registration Interface 600mm x 400mmPractical 7
🔒Develop a Desktop Application Interface Using MVC Pattern with UX Best PracticesPractical 8
🔒Design a Relational Database Schema for a University Student Management SystemPractical 9
🔒Develop a desktop application connected to a local database for managing student records (400mm x 300mm window size)Practical 10
🔒Implement Data Validation and ORM Integration in a Desktop ApplicationPractical 11
🔒Develop and Test a Desktop Application for Library Book Management 1200mm x 800mm InterfacePractical 12
🔒Implement Workplace Safety and Ergonomic Setup in Software Development EnvironmentPractical 13
🔒Identification and Proper Storage of E-Waste Materials as per OSHA RegulationsPractical 14
🔒Develop a Desktop Application for Implementing and Monitoring E-Waste Management 800x600 pixelsPractical 15
Flashcards 20 cards Study deck ▾
Question
1

↻ Tap card to reveal answer
🔒

18 more in this section.

Create a free account
Test Yourself 19 questions Start quiz ▾
0%
0 / 2
🔒

17 more in this section.

Create a free account
Am I competent?

At the start of this chapter we promised you would be able to:

  • identify the right desktop application development tools based on system requirements.
  • develop the application interface accurately following the design plan.
  • design a database that effectively meets user needs.
  • integrate the database smoothly according to application requirements.
  • implement application functionality that matches user specifications.
  • follow workplace safety and health practices in line with OSHA standards.
  • identify proper methods for e-waste storage and disposal following OSHA guidelines.
  • demonstrate effective e-waste management by applying OSHA procedures.

Tick each one you can genuinely do.

So, are you there yet?

You're competent when you can confidently do 50% or more of what this chapter promised.

Sign in to record how you're doing.