Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 154

Assignment Brief

BTEC Level 4-5 HNC/HND Diploma (QCF)


To be filled by the Student
Name of the Student : Lahiru Anjana kandelekamge
Edexcel No : Registration No: KLT/A - 001566 Batch No: HND-COM-002

Unit Assessment Information

Qualification : Higher National Diploma in Computing and Systems Development

Unit Code & Title : Unit 42 - Programming in .NET

Assessment Title & No’s : Online Examination Management System (OEMS) - (.NET – 16 – 001)

Learning outcomes and grading opportunities:


LO 01: Understand the principles of programming using a .NET framework
Learning Outcomes LO1.1 LO1.2 LO1.3
LO 02: Be able to design .NET solutions
Learning Outcomes LO2.1 LO2.2 LO2.3
LO 03: Be able to implement .NET solutions
Learning Outcomes LO3.1 LO3.2 LO3.3 LO3.4
LO 04: Be able to test and document .NET solutions
Learning Outcomes LO4.1 LO4.2 LO4.3 LO4.4 LO4.5

Merit and Distinction Descriptor


M1 M2 M3 D1 D2 D3

Date Issued : Date Due :


Date of Submission: 28.10.2017

Assessor : Mr. Suhendra Jayawardena Date Assessed:

Internal Verifier (IV): Date of IV:

L.A. Kandelekamge Programming with .NET


STATEMENT OF ORIGINALITY AND STUDENT DECLARATION

I hereby, declare that I know what plagiarism entails, namely to use another’s work and to
present it as my own without attributing the sources in the correct way. I further understand
what it means to copy another’s work.
1. I know that plagiarism is a punishable offence because it constitutes theft.
2. I understand the plagiarism and copying policy of the Edexcel UK.
3. I know what the consequences will be if I plagiaries or copy another’s work in any of the
assignments for this program.
4. I declare therefore that all work presented by me for every aspect of my program, will be
my own, and where I have made use of another’s work, I will attribute the source in the
correct way.
5. I acknowledge that the attachment of this document signed or not, constitutes a binding
agreement between myself and Edexcel UK.
6. I understand that my assignment will not be considered as submitted if this document is
not attached to the attached.

Student’s Signature: …………………. Date:.…….………

L.A. Kandelekamge Programming with .NET


ASSIGNMENT BRIEF
The institute of XYZ is a leading computer school which offers IT Education Island wide.
Knowledge of the students registered in the institute are assessed through exams. The top
management of the institute has decided to use an Online Examination Management System
(OEMS) for this process. OEMS is a term to manage the exam system in terms of student
registered for exam. Each and every student registered in the system for a particular course
will get a username and password to login to the OEMS.

A student should face an exam for each module of the course he enrolls in, where a course is
consisted of multiple modules. Each module exam is consisting of 15 multiple choice
questions; each question has four choices with only one correct answer. Exam questions
should be taken randomly from a pool of questions related to the module. A student has only
three attempts for an exam and he should score more than 50% of the correct answers in each
and every module exam to complete the course successfully. The system should also facilitate
students to view their exam scores and the overall average score.

Admin will manage the OEMS and should have full access to the system where lecturer has a
limited access to the system.

Following are the functionalities that should be performed by the lecturer.


1. Login to the OEMS
2. Manage Questions
 View a list of all questions
 Edit and Update Questions
 Delete the exiting questions
3. View Student grades

Following are the functionalities that should be performed by the admin users.
1. Login as Admin
2. Manage Lectures
 Register new lecturers
 Edit exiting lecturer details
 View profile of a lectures
 View a list of all lecturers

L.A. Kandelekamge Programming with .NET


3. Manage Students
 Register new students
 Edit exiting student details
 View a list of all students
 Search Students
 View student grades

4. Manage Questions
 View a list of all questions
 Edit and Update Questions
 Delete the exiting questions
 Filter Questions

5. Manage Courses
 Add new courses
 Edit / delete existing courses
 Add or remove modules to the course
 Listing of all courses

6. Manage Subjects (modules)


 Add new modules
 Listing of all modules
 Filter modules

Assume that you are hired by the Institute of XYZ as the developer of the OEMS and design
and implement a suitable solution for the above scenario using .Net framework. You are free
to add more functionalities to the system while maintaining the mentioned functionality of
the system.

L.A. Kandelekamge Programming with .NET


TASK 1. Understand the principles of programming using a .NET framework
1.1 .Net is a framework which consists of powerful features, characteristics and principles.
(Discuss the principles, characteristics and features of programming using a .NET
framework. (Interoperability, common runtime engine, language independence, base class
library, deployment, security, portability etc.) (LO 1.1)
1.2 Critically compare different types of .NET framework architectures versions and select
the best suitable version to implement the Examination Management System. (LO 1.2)
1.3 Identify the supportive components of .NET framework and critically evaluate the
identified components. (LO 1.3)

TASK 2. Design the Online Examination Management System


2.1 Provide evidences for the designed system (Your answer may include User interface
design, Class Diagram, ER Diagram, Activity Diagrams etc.) (LO 2.1)
2.2 Explain the components and data and file structures required to implement a given design.
(LO 2.2)
Hint: You can use a component diagram to explain the components to be implemented in
the system, Arrays can be used a data structure and if you are using files to store any data
explain the structure of the files and data is stored.
2.3 The system can be implemented to be deployed in many environments such as mobile,
handheld, web based, desktop, dedicated device, client server etc. Evaluate potential
delivery environments and interaction of the designed system. (LO 2.3)

TASK 3. Implement the designed examination system


3.1 Implement the designed system using .Net framework. Provide important code lines with
proper comments and user interfaces filled with sample data. (LO 3.1) Include sample
codes of implemented control structures. (LO 3.2)
Note: It is recommended to provide formatted codes in textbox without using screenshots
and caption.
3.2 Identify and implement opportunities for error handling and reporting to minimize the
errors that might occur. Provide evidences of the implemented techniques used to handle
the errors. (LO 3.3)
Note: Using a try-catch block is one of them and there are many more.
3.3 Provide evidences of features of the selected Integrated Development Environment (IDE)
used to implement the system effectively. (LO 3.4)

L.A. Kandelekamge Programming with .NET


TASK 4. Test the implemented examination management system
4.1 Critically review and test the implemented system and provide the identified
discrepancies, if any, of the application through an analysis of actual test results against
expected. (LO 4.1 & LO 4.2)
Note: Should provide test cases including screenshots of the actual results and mention
how you fix the discrepancies identified.
4.2 Evaluate independent feedback of the users to identify the limitations of the implemented
system and make recommendations for further improvements to overcome the limitations
identified. (LO 4.3)
Note: Select the best suited fact finding method(s) to gather user feedbacks and should be
justified the reason for the selection with own opinions and evidences.
4.3 Prepare a user documentation to properly guide the users of the implemented system and
the technical documentation for the support and maintenance of the system. (LO 4.4 &
LO 4.5)
Note: Documentations should be simple and understandable by anyone. Use screenshots
and provide stepwise guidance.

L.A. Kandelekamge Programming with .NET


Abbreviations

Java EE Java Enterprise Edition

JVM Java Virtual machine

VB Visual Basic

CLS Common Language Specification

CTS Common Type System

XML Extensible Markup Language

CLI Common Language Infrastructure

CLR Common Language Runtime

FCL Framework Class Library

ASP Active Server page

URL Uniform Resource Locator

MS Microsoft

SQL Structured Query Language

ODBC Oracle Data Base Connectivity

IP Internet Protocol

ACL Access Control List

WWF Windows Workflow Foundation

WCF Windows Communication Foundation

GUI Graphical User Interface

WPF Windows Presentation Foundation

MEF Managed Extensibility Framework

HTTP Hyper Text Transfer Protocol

DPI Density Per Inch

L.A. Kandelekamge Programming with .NET


CD Compact Disk

DVD Digital Versatile Disk

OEMS Online Examination Management System

L.A. Kandelekamge Programming with .NET


Acknowledgement

The success and final outcome of this assignment required a lot of guidance assistance from
many people and I extremely fortunate to have got this all along the completion of my
assignment work. Whatever I have done is only due to such guidance and assistance and I
would not forget to thank them. I respect and thank Mr. Suhendra Jayewardene for giving an
opportunity to do this assignment. I extremely grateful to both of you for providing such a
nice support and guidance.
Finally, I would like to thank my parents and my friends who gave me a support to make this
assignment successfully…!

L.A. Kandelekamge Programming with .NET


List of Tables

Table 1 attributes in login........................................................................................................40


Table 2 Methods in user class..................................................................................................41
Table 3 attributes in class student............................................................................................42
Table 4 Methods in class student.............................................................................................42
Table 5 attributes in class lecturer............................................................................................43
Table 6 Methods in class lecturer.............................................................................................44
Table 7 attributes in class exam...............................................................................................45
Table 8 methods in class exam.................................................................................................45
Table 9 Attributes in the class course......................................................................................46
Table 10 Methods in class course............................................................................................46
Table 11 Attributes in the class subject....................................................................................46
Table 12 Methods in class exam..............................................................................................47
Table 13 Attributes in class question.......................................................................................47
Table 14 Methods in class question.........................................................................................48
Table 15 table student..............................................................................................................48
Table 16 Table Lecturer...........................................................................................................49
Table 17 Table course..............................................................................................................49
Table 18 Table subject.............................................................................................................49
Table 19 table question............................................................................................................49
Table 20 Table user..................................................................................................................50
Table 21 Table grades..............................................................................................................50
Table 22 Table admin...............................................................................................................50
Table 23 Admin test plan.........................................................................................................76
Table 24 Lecturer test plan.......................................................................................................76
Table 25 Student test plan........................................................................................................76
Table 26 Login test case...........................................................................................................77
Table 27 Add student test case.................................................................................................78
Table 28 Update and Remove test case....................................................................................79
Table 29 Search student test case.............................................................................................79
Table 30 Add lecturer test case................................................................................................80
Table 31 Update and Remove lecturer test case......................................................................81
Table 32 Search lecturer test case............................................................................................81

L.A. Kandelekamge Programming with .NET


Table 33 Add course test case..................................................................................................82
Table 34 Update and Remove course test case........................................................................83
Table 35 Search course test case..............................................................................................83
Table 36 Add subject test case.................................................................................................83
Table 37 Update and Remove subject test case.......................................................................84
Table 38 Search subject test case.............................................................................................84
Table 39 Add question test case...............................................................................................85
Table 40 Update and Remove question test case.....................................................................86
Table 41 Search question test case...........................................................................................86
Table 42 Add user test case......................................................................................................87
Table 43 Update and Remove accounts test case.....................................................................87
Table 44 Search accounts test case..........................................................................................88
Table 45 Update and Remove question test case.....................................................................88
Table 46 Search question test case...........................................................................................89
Table 47 Load questions to sessions test case..........................................................................89
Table 48 View loaded questions test case................................................................................90
Table 49 Add grades to database test case...............................................................................90
Table 50 table student............................................................................................................122
Table 51 Table Lecturer.........................................................................................................122
Table 52 table course.............................................................................................................122
Table 53 Table subject...........................................................................................................123
Table 54 table question..........................................................................................................123
Table 55 Table user................................................................................................................123
Table 56 Table grades............................................................................................................123
Table 57 Table admin.............................................................................................................124

L.A. Kandelekamge Programming with .NET


List of Figures

Figure 1 .Net Framework Architecture......................................................................................3


Figure 2 ADO.net Architecture..................................................................................................4
Figure 3 VB and C# relationship between CTS.......................................................................27
Figure 4 Login User Interface..................................................................................................30
Figure 5 Admin Dashboard......................................................................................................30
Figure 6 Exam Selection page..................................................................................................31
Figure 7 Question page............................................................................................................31
Figure 8 Result page.................................................................................................................32
Figure 9 View all students page...............................................................................................32
Figure 10 Subject Add Interface..............................................................................................55
Figure 11 Subject update and remove interface.......................................................................56
Figure 12 Question interface....................................................................................................58
Figure 13 Control structures.....................................................................................................59
Figure 14 Code example for If Else condition.........................................................................60
Figure 15 Code example for foreach loop................................................................................62
Figure 16 Code example for sequence control structure..........................................................63
Figure 17 Example for try-catch block....................................................................................65
Figure 18 Tool Box..................................................................................................................68
Figure 19 Solution Explorer.....................................................................................................69
Figure 20 Server Explorer........................................................................................................70
Figure 21 Properties Window..................................................................................................71
Figure 22 Breakpoint................................................................................................................72
Figure 23 Default layout of Visual studio................................................................................73
Figure 24 Example for Intelli Sense.........................................................................................74
Figure 25 Example for color combination...............................................................................74
Figure 26 VC redistributable installation...............................................................................100
Figure 27 VC redistributable installation..............................................................................100
Figure 28 VC redistributable installation..............................................................................101
Figure 29 Login interface.......................................................................................................102
Figure 30 Admin dashboard...................................................................................................103
Figure 31 Add student interface.............................................................................................103
Figure 32 Change student interface........................................................................................104

L.A. Kandelekamge Programming with .NET


Figure 33 View student interface...........................................................................................104
Figure 34 Student grades interface.........................................................................................105
Figure 35 Add lecturer interface............................................................................................105
Figure 36 Change lecturer interface.......................................................................................106
Figure 37 View lecturer interface..........................................................................................106
Figure 38 Add course interface..............................................................................................107
Figure 39 change course interface..........................................................................................107
Figure 40 View course Interface............................................................................................108
Figure 41Add subject interface..............................................................................................108
Figure 42 Change subject interface........................................................................................109
Figure 43 View subject interface...........................................................................................109
Figure 44 Add question interface...........................................................................................110
Figure 45 Change question interface......................................................................................110
Figure 46 View question interface.........................................................................................111
Figure 47 Create student user account interface....................................................................111
Figure 48 Create lecturer user accounts.................................................................................112
Figure 49 Change user accounts............................................................................................112
Figure 50 View user accounts................................................................................................113
Figure 51 Lecturer dashboard interface.................................................................................113
Figure 52 Student dashboard interface...................................................................................114
Figure 53 Exam selection interface........................................................................................114
Figure 51 System functions....................................................................................................115

L.A. Kandelekamge Programming with .NET


Contents

Abbreviations...........................................................................................................................vii

List of Tables..............................................................................................................................x

List of Figures..........................................................................................................................xii

Task 1. Understand the principles of programming using a .net framework.............................1

1.1. .Net is a framework which consists of powerful features, characteristics and


principles. Discuss the principles, characteristics and features of programming using
a .NET framework. (Interoperability, common runtime engine, language independence,
base class library, deployment, security, portability etc.)......................................................1

1.2. Critically compare different types of .NET framework architectures versions and select
the best suitable version to implement the Examination Management System...................11

1.3. Identify the supportive components of .NET framework and critically evaluate the
identified components..........................................................................................................27

Task 2. Design the online examination management system..................................................30

2.1. Provide evidences for the designed system...................................................................30

User Interface designs.......................................................................................................30

Class Diagram for designed system..................................................................................33

ER diagram for designed system......................................................................................34

Activity diagrams for designed system (Administrator)...................................................35

Activity diagrams for designed system (Lecturer)...........................................................37

Activity diagrams for designed system (Student).............................................................38

2.2. Explain the components and data and file structures required to implement a given
design....................................................................................................................................40

2.3. The system can be implemented to be deployed in many environments such as mobile,
handheld, web based, desktop, dedicated device, client server etc. Evaluate potential
environments and interaction of the designed system..........................................................52

L.A. Kandelekamge Programming with .NET


TASK 3. Implement the designed examination system...........................................................55

3.2. Identify and implement opportunities for error handling and reporting to minimize the
errors that might occur. Provide evidences of the implemented techniques used to handle
the errors...............................................................................................................................64

3.3. Provide evidences of features of the selected Integrated Development Environment


(IDE) used to implement the system effectively..................................................................67

Task 4. Test the implemented examination management system............................................75

4.1. Critically review and test the implemented system and provide the identified
discrepancies, if any, of the application through an analysis of actual test results against
expected................................................................................................................................75

4.2. Evaluate independent feedback of the users to identify the limitations of the
implemented system and make recommendations for further improvements to overcome
the limitations identified.......................................................................................................92

4.3. Prepare a user documentation to properly guide the users of the implemented system
and the technical documentation for the support and maintenance of the system...............97

User Document.................................................................................................................97

Technical Document.......................................................................................................115

Conclusion..............................................................................................................................125

Appendix A............................................................................................................................127

Appendix B............................................................................................................................128

Appendix C............................................................................................................................129

Reference................................................................................................................................130

L.A. Kandelekamge Programming with .NET


Task 1. Understand the principles of programming using a .net framework

1.1. .Net is a framework which consists of powerful features, characteristics and


principles. Discuss the principles, characteristics and features of programming
using a .NET framework. (Interoperability, common runtime engine, language
independence, base class library, deployment, security, portability etc.)

The .net framework is a software development framework from Microsoft. It provides a


controlled programming environment where software can be developed, installed and
executed on windows based operating systems. This framework introduced in 2002. The .net
platform is similar in purpose to the Java EE platform, and like Java's JVM runtime
engine, .net ’s runtime engine must be installed in the computer in order to run the many .net
applications on the market. The .net Framework supports SOAP based web services as well
as Microsoft's legacy component object model. .net is similar to Java because it uses an
intermediate bytecode language that can be executed on any hardware platform that has a
runtime engine. But there are some differences also.  Successfully programming in .net
requires embracing this new technology as new and fully understanding the many things that
make .net unique. When object oriented languages were introduced, developers faced a
similar challenge and, unfortunately, mindset. Many programmers quickly learned the syntax
and ported their C application to C++ or Smalltalk. However, without the requisite
understanding of object oriented programming, these new applications were procedural
programs draped in the syntax of an object oriented language. Some developers invested the
time to learn object oriented programming not just the syntax, but the philosophy and intent.
Their resulting applications were true object oriented programs that provided all the benefits
envisioned for the new programming modality. Similarly, understanding the philosophy and
architecture of .net is essential for creating applications that offer new solutions. Some
industry analysts assert that Microsoft has gambled the company on .net. Microsoft's
languages are C#, J#, Managed C++, JScript.NET and Visual Basic.net. Other languages
have been reengineered in the European version of .net, called the Common Language
Infrastructure. .net compilers generate Microsoft Intermediate Language bytecode, which is
executed by the .net Common Language Runtime engine.

L.A. Kandelekamge Programming with .NET


Main Characteristics of .Net Framework.

 Interoperability

The word ‘Interoperability’ really refers to the ability of diverse systems and organizations to
work together. This term is often used in technical systems engineering cases also. In
computer systems, there is lot of interaction happening between different new systems and
old systems.

The .NET Framework provides many great features including the Interoperability; it is
achieved by set of tools and services provided by the framework. It includes a large library
and supports several programming languages like C#, VB.NET etc. which allows language
interoperability

.NET Framework Architecture

.net is tiered, modular, and hierarchal. Each tier of the .net framework is a layer of
abstraction. .net languages are the top tier and the most abstracted level. The common
language runtime is the bottom tier, the least abstracted, and closest to the native
environment. This is important since the common language runtime works closely with the
operating environment to manage .net applications. The .net Framework is partitioned into
modules, each with its own distinct responsibility. Finally, since higher tiers request services
only from the lower tiers, .net is hierarchal.

L.A. Kandelekamge Programming with .NET


The architectural layout of the .net framework is illustrated in following figure.

Figure 1 .Net Framework Architecture


 Common Language Specification (CLS)

Common Language Specification is a set of basic language features that .net languages
needed to develop Applications and Services, which are compatible with the .net framework.
When there is a situation to communicate objects written in different .net complaint
languages, those objects must expose the features that are common to all the languages. CLS
ensures complete interoperability among applications, regardless of the language used to
create the application.

L.A. Kandelekamge Programming with .NET


 Common Type System (CTS)

Common type system describes a set of types that can be used in different .net languages in
common. That is, the CTS ensure that objects written in different .net languages can interact
with each other. For communicating between programs written in any .net complaint
language, the types have to be compatible on the basic level. These types can be value types
or reference types. The value types are passed by values and stored in the stack. The
reference types are passed by references and stored in the heap. Common type system
provides base set of data types which is responsible for cross language integration. The
common language runtime can load and execute the source code written in any .net language,
only if the type is described in the common type system. Most of the members defined by
types in the .net framework class library are common language specification compliant types.

 ADO.NET

ADO.NET consist of a set of objects that expose data access services to the .net environment.
It is a data access technology from Microsoft .net framework, which provides communication
between relational and non-relational systems through a common set of components.
System.Data namespace is the core of ADO.NET and it contains classes used by all data
providers. ADO.NET is designed to be easy to use, and visual studio provides several
wizards and other features that you can use to generate ADO.NET data access code.

The architectural layout of the ADO.net is illustrated in following figure.

Figure 2 ADO.net Architecture


The two key components of ADO.NET are data providers and dataset. The data provider
classes are meant to work with different kinds of data sources. They are used to perform all
data management operations on specific databases. Dataset class provides mechanisms for
managing data when it is disconnected from the data source.

L.A. Kandelekamge Programming with .NET


 .Net Remoting

Microsoft .net remoting provides a framework that allows objects to interact with one another
across application domains. The framework provides a number of services, including
activation and lifetime support, as well as communication channels responsible for
transporting messages to and from remote applications. Formatters are used for encoding and
decoding the messages before they are transported by the channel. Applications can use
binary encoding where performance is critical, or XML encoding where interoperability with
other remoting frameworks is essential. All XML encoding uses the SOAP protocol in
transporting messages from one application domain to the other. Remoting was designed with
security in mind, and a number of hooks are provided that allow channel sinks to gain access
to the messages and serialized stream before the stream is transported over the channel.

 Common Language Infrastructure (CLI)

Part of Microsoft's .net strategy, Common Language Infrastructure enables an application


program written in any of several commonly used programming languages to be run on
any operating system using a common runtime program rather than a language specific one.
Common Language Infrastructure provides a virtual execution environment comparable to
the one provided by Sun Microsystems for Java programs. In both environments, CLI and
Java use a compiler to process language statements into a preliminary form of executable
code called bytecode. Later, when a program is run, its bytecode is compiled on the fly into
the native code required by the machine architecture of a given computer. CLI is designed to
make it easier to develop programs that can be used as Web services.

 Common Language Runtime (CLR)

As part of Microsoft's .net framework, the common language runtime is programming that


manages the execution of programs written in any of several supported languages, allowing
them to share common object oriented class is written in any of the languages. The common
language runtime is somewhat comparable to the java virtual machine that Sun Microsystems
furnishes for running programs compiled from the java language. Microsoft refers to its
common language runtime as a "managed execution environment." A program compiled for
the CLR does not need a language specific execution environment and can easily be moved
to and run on any system with Windows 2000 or Windows XP. Programmers writing in any

L.A. Kandelekamge Programming with .NET


of Visual Basic, Visual C++, or C# compile their programs into an intermediate form of code
called Common Intermediate Language in a portable execution file that can then be managed
and executed by the common language runtime. The programmer and the environment
specify descriptive information about the program when it is compiled and the information is
stored with the compiled program as metadata. Metadata, stored in the compiled program,
tells the CLR what language was used, its version, and what class libraries will be needed by
the program. The Common Language Runtime allows an instance of a class written in one
language to call a method of a class written in another language. It also provides garbage
collecting, exception handling, and debugging services.

 Language Independence

Language interoperability is the ability of code to interact with code that is written by using a
different programming language. Language interoperability can help maximize code reuse
and improve the efficiency of the development process. Because developers use a wide
variety of tools and technologies, each of which might support different features and types, it
has historically been difficult to ensure language interoperability. However, language
compilers and tools that target the common language runtime benefit from the runtime's built-
in support for language interoperability. The common language runtime provides the
necessary foundation for language interoperability by specifying and enforcing a common
type system and by providing metadata. Because all languages targeting the runtime follow
the common type system rules for defining and using types, the usage of types is consistent
across languages. Metadata enables language interoperability by defining a uniform
mechanism for storing and retrieving information about types. Compilers store type
information as metadata, and the common language runtime uses this information to provide
services during execution; the runtime can manage the execution of multi-language
applications because all type information is stored and retrieved in the same way, regardless
of the language the code was written in.

 .Net Framework Class Library (FCL)

The .net framework class library provides the core functionality of .net framework
architecture. The .net framework class library includes a huge collection of reusable classes,
interfaces, and value types that expedite and optimize the development process and provide
access to system functionality. The .net framework class library organized in a hierarchical
tree structure and it is divided into namespaces. Namespaces is a logical grouping of types for

L.A. Kandelekamge Programming with .NET


the purpose of identification. Framework class library provides the consistent base types that
are used across all .net enabled languages. The classes are accessed by namespaces, which
reside within Assemblies. The System Namespace is the root for types in the .net framework.
The .net framework class library classes are managed classes that provide access to system
services. The .net framework class library classes are object oriented and easy to use in
program developments. Moreover, third party components can integrate with the classes in
the .net framework.

 Security

Security is the main and very important thing of everything. So, .net framework also provide
several security protocols to protect data and resources form threats. There are a few parts to
introduce, when we are talking about security of the .net framework. Following shows the
parts of security.

 Securing ASP.NET Web Applications

Most Web sites need to selectively restrict access to some portions of the site. You can think
of a Web site as somewhat analogous to an art gallery. The gallery is open for the public to
come in and browse, but there are certain parts of the facility, such as the business offices,
that are accessible only to people with certain credentials, such as employees. When a Web
site stores its customers' credit card information in a database, for example, access to the
database must be restricted. ASP.NET security features help you address this and many other
security issues.

 Code Access Security

To help protect computer systems from malicious mobile code, to allow code from unknown
origins to run with protection, and to help prevent trusted code from intentionally or
accidentally compromising security, the .net framework provides a security mechanism called
code access security. Code access security allows code to be trusted to varying degrees
depending on where the code originates and on other aspects of the code's identity. Code
access security also enforces the varying levels of trust on code, which minimizes the amount
of code that must be fully trusted in order to run. Using code access security can reduce the
likelihood that your code can be misused by malicious or error-filled code. It can reduce your
liability because you can specify the set of operations your code should be allowed to

L.A. Kandelekamge Programming with .NET


perform as well as the operations your code should never be allowed to perform. Code access
security can also help minimize the damage that can result from security vulnerabilities in
your code.

 Cryptographic Services

The classes in the .NET Framework cryptography namespace manage many details of
cryptography for you. Some are wrappers for the unmanaged Microsoft CryptoAPI, while
others are purely managed implementations. You do not need to be an expert in cryptography
to use these classes. When you create a new instance of one of the encryption algorithm
classes, keys are auto generated for ease of use, and default properties are as safe and secure
as possible.

 Key Security Concepts

The Microsoft .NET Framework offers code access security and role-based security to help
address security concerns about mobile code and to provide support that enables components
to determine what users are authorized to do. These security mechanisms use a simple,
consistent model so that developers familiar with code access security can easily use role-
based security, and vice versa. Both code access security and role-based security are
implemented using a common infrastructure supplied by the common language runtime.
Because they use the same model and infrastructure, code access security and role-based
security share several underlying concepts, which are described in this section. Make sure
that you are familiar with these concepts before reading the documentation for .NET
Framework code access security and role-based security.

 Role Based Security

Business applications often provide access to data or resources based on credentials supplied
by the user. Typically, such applications check the role of a user and provide access to
resources based on that role. The common language runtime provides support for role based
authorization based on a Windows account or a custom identity. Before reading this section,
make sure you understand the material presented in Key Security Concepts.

 Secure Coding Guidelines

L.A. Kandelekamge Programming with .NET


Evidence-based security policy and code access security provide very powerful, explicit
mechanisms to implement security. Most application code can simply use the infrastructure
implemented by the .NET Framework. In some cases, additional application-specific security
is required, built either by extending the security system or by using new ad hoc methods.
Using the .NET Framework-enforced permissions, and other enforcement in your code, you
should erect barriers to prevent malicious code from obtaining information that you do not
want it to have or performing other undesirable actions. Additionally, you must strike a
balance between security and usability in all the expected scenarios using trusted code.

 Security Policy Best Practices

The .NET Framework provides a code access security model that allows administrators to
modify security policy to meet their individual needs. While code access security generally
increases the reliability and security of applications, improperly administering code access
security policy can potentially create security weaknesses. This section explains basic
administration concepts and describes some of the best practices to use when administering
code access security policy.

 Security Policy Management

Security policy is the configurable set of rules that the common language runtime follows
when determining the permissions to grant to code. The runtime examines identifiable
characteristics of the code, such as the Web site or zone where the code originates, to
determine the access that code can have to resources. During execution, the runtime ensures
that code accesses only the resources that it has been granted permission to access. Security
policy defines several code groups and associates each of them with a set of permissions.
Code groups categorize code by characteristics such as its publisher, digital signature, the
URL from where it originates, and so on. After all evidence is considered, code is placed into
code groups and the resulting permission grant is the total set of permissions associated with
every code group that the code obtains membership in. Although the default security policy is
suitable for most situations, administrators can modify or customize security policy to tailor it
to the specific needs of their organizations. The runtime grants permissions to both
assemblies and application domains based on security policy.

L.A. Kandelekamge Programming with .NET


 Portability

The .NET Framework Portable Class Library project type in Visual Studio helps you build
cross-platform apps and libraries for Microsoft platforms quickly and easily. Portable class
libraries can help you reduce the time and costs of developing and testing code. Use this
project type to write and build portable .NET Framework assemblies, and then reference
those assemblies from apps that target multiple platforms such as Windows and Windows
Phone. Even after you create a Portable Class Library project in Visual Studio and start
developing it, you can change the target platforms. Visual Studio will compile your library
with the new assemblies, which helps you identify the changes you need to make in your
code.

L.A. Kandelekamge Programming with .NET


1.2. Critically compare different types of .NET framework architectures versions and
select the best suitable version to implement the Examination Management System.

Each version of the .net framework contains the common language runtime, the base class
libraries, and other managed libraries. According to .net framework versions, it has few
upgrades and packages. The first .net framework version is .net framework 1.0 and it
introduced in 2002 by Microsoft. All of the Microsoft products like MS Office, Visual Studio
are based on .net framework. Without .net framework, any products of Microsoft cannot run
properly. Therefore, if we use any Microsoft product, we need to install .net framework
before use that product. Each new version of the .NET Framework retains features from the
previous versions and adds new features. The CLR is identified by its own version number.
The .NET Framework version number is incremented at each release, although the CLR
version is not always incremented. For example, the .NET Framework 4, 4.5, and later
releases include CLR 4, but the .NET Framework 2.0, 3.0, and 3.5 include CLR 2.0.

ASP.NET also a programming language that introduced by the Microsoft. We used ASP.NET
to create and design web sites. ASP.NET is the combination of few programming languages
like HTML, C# and others. HTML used to front end and C# used to create functionalities.
Asp.net used SQL to store data. ASP.NET also needs the .NET framework and its
functionality to run properly. If we need to create a web site using asp.net, we should have to
exact idea about .NET framework and following shows the each and every main .NET
framework versions and included files and techniques in there.

.NET Framework 1.0

. NET framework 1.0 introduced in January 2002 by Microsoft Company to giving equality
for all the Microsoft products. There are many namespaces and added types in this version
of .NET framework.

Following shows the some of them.

L.A. Kandelekamge Programming with .NET


 Accessibility
 IEHost.Execute
 Microsoft.CLRAdmin
 Microsoft.IE
 Microsoft.JScript.Vsa
 Microsoft.VisualBasic.CompilerServices
 Microsoft.VisualBasic.Vsa
 Microsoft.VisualC
 Microsoft.Vsa.Vb.CodeDOM
 Microsoft_VsaVb
 RegCode
 System.Diagnostics.Design
 System.EnterpriseServices.Internal
 System.Messaging.Design
 System.ServiceProcess.Design
 System.Web.Handlers
 System.Web.RegularExpressions
 System.Web.Util
 System.Windows.Forms.ComponentModel.Com2Interop
 System.Windows.Forms.PropertyGridInternal

Following shows the added types

 Microsoft.VisualBasic

 System.Design

 System.Windows.Forms

 System.Xml

. NET Framework 1.1

The .NET Framework version 1.1 extends the .NET Framework version 1.0 with new
features, improvements to existing features, and enhancements to the documentation.

Following shows the updates

L.A. Kandelekamge Programming with .NET


 Asp.net mobile controls

ASP.NET mobile controls extend the .NET framework and visual studio by providing
support for mobile devices such as cell phones and personal data assistants. The .NET
framework version 1.1 release incorporates the mobile controls into the .net framework and
visual studio distributions. ASP.NET Mobile Controls extend ASP.NET server controls such
that they adapt to the mobile device on which the Web application is rendering. Through
browser detection, the mobile controls conform to the capabilities of individual devices
ranging from full-featured PDA browsers to small, 5-line × 20-character cell phone displays.
This adaptive rendering feature handles many of the tedious device-specific rendering
decisions and frees you to focus on your Web application logic.

 ADO.net changes

The .NET Framework Data Provider for ODBC, which previously was available as a Web
download only, now ships with the .NET Framework under the
namespace System.Data.Odbc. The .NET Framework Data Provider for Oracle now ships
with the .NET Framework under the namespace System.Data.OracleClient.

 Side by side execution

The .NET Framework version 1.1 supports side-by-side execution. Side-by-side execution is
the ability to store and execute multiple versions of an application or component on the same
computer. This means that you can have multiple versions of the runtime, and multiple
versions of applications and components that use a version of the runtime, on the same
computer at the same time. In addition, subsequent installations of other versions of the .NET
Framework or of a component will not affect the applications already installed.

 Security changes

In version 1.0 and 1.1, applications that receive less than full trust from the runtime code
access security system cannot call shared managed libraries unless the library writer
specifically allows them to through the use of
the AllowPartiallyTrustedCallersAttribute attribute. If you plan on using libraries from
partially trusted code, you need to be aware that some libraries will not be available to your
code. In version 1.1, System.Web.dll, System.Web.Mobile.dll, and

L.A. Kandelekamge Programming with .NET


System.Web.RegularExpressions.dll are included in the list of assemblies that have
the AllowPartiallyTrustedCallersAttribute and can be called from partially trusted code.

 IPv6 support

The .NET Framework version 1.1 supports the emerging update to the Internet Protocol,
commonly referred to as IP version 6, or simply IPv6. This protocol is designed to
significantly increase the address space used to identify communication endpoints in the
Internet to accommodate its ongoing growth. IPv6 is supported in the System.Net namespace,
ASP.NET, and XML Web services.

.NET Framework 2.0

The Microsoft .NET Framework version 2.0 extends the .NET Framework version 1.1 with
new features, improvements to existing features, and enhancements to the documentation. 

Updates of .NET Framework 2.0

 64-bit platform support

The new generation of 64-bit computers enables the creation of applications that can run
faster and take advantage of more memory than is available to 32-bit applications. New
support for 64-bit applications enables users to build managed code libraries or easily use
unmanaged code libraries on 64-bit computers.

 Support of Access Control List

An access control list is used to grant or revoke permission to access a resource on a


computer. New classes have been added to the .NET Framework that allow managed code to
create and modify an ACL. New members that use an ACL have been added to the I/O,
registry, and threading classes.

 ADO.NET improvements

L.A. Kandelekamge Programming with .NET


New features in ADO.NET include support for user-defined types, asynchronous database
operations, XML data types, large value types, snapshot isolation, and new attributes that
allow applications to support multiple active result sets with SQL Server 2005.

 ASP.NET improvements

The Microsoft .NET Framework 2.0 includes significant enhancements to all areas of
ASP.NET. For Web page development, new controls make it easier to add commonly used
functionality to dynamic Web pages. New data controls make it possible to display and edit
data on an ASP.NET Web page without writing code. An improved code-behind model
makes developing ASP.NET pages easier and more robust. Caching features provide several
new ways to cache pages, including the ability to build cache dependency on tables in a SQL
Server database.

 Supports of Authenticated Streams

Applications can use the new NegotiateStream and SslStream classes for authentication and


to help secure information transmitted between a client and a server. These authenticated
stream classes support mutual authentication, data encryption, and data signing.
The NegotiateStream class uses the Negotiate security protocol for authentication.
The SslStream class uses the Secure Socket Layer security protocol for authentication.

And also, .NET Framework 2.0 has more updates

 Com interoperability service enhancement


 Console class additions
 Data protection API
 Debugger display attribute
 Debugger edit and continue support
 Distributed computing
 FTP support
 Generics and Generic collections
 I/O enhancements

L.A. Kandelekamge Programming with .NET


 .NET Framework remoting
 Programmatic control of caching
 Manifest based activation

.NET Framework 3.0

The .NET Framework 3.0 is the next step in this progression. Applications built on this new
version of the Framework can be created with Visual Studio 2005, making it feel familiar to
most Windows developers. But the .NET Framework 3.0 is also an evolution, adding more to
what version 2.0 of the Framework already provides. Scheduled to be released in late 2006,
the .NET Framework 3.0 will be available for Windows Vista, Windows Server 2003, and
Windows XP. Using this update, Microsoft introduced the new components for doing works
easier. Windows Workflow Foundation, Windows Communication Foundation, Windows
CardSpace, Windows Presentation Foundation are the new components of this update.

Updates

 Windows Workflow Foundation (WWF)

WWF just a series of steps performed in some order. One might even argue that every
application implements a workflow, since every application executes some process. Yet the
traditional approach to creating an application using C# or Visual Basic or some other
programming language is to make the steps in this process implicit in the code. This certainly
works, but it also embeds the process itself deeply into a program's logic, making that process
more difficult to implement and to change. Using workflow technology to implement process
logic can be an effective way to address this problem. Rather than intertwining the logic in
ordinary code, each step in the process is explicitly defined, then executed by a workflow
engine. The result is a clean implementation of the process itself.

 Windows Communication Foundation (WCF)

Most applications need to communicate with other applications. How this communication is
done has taken a big step forward in the last few years. After decades of disagreement, all of
the major vendors have agreed to support the same protocols for application communication.

L.A. Kandelekamge Programming with .NET


Based on SOAP, this global agreement on Web services makes interoperability between
applications built on different technology platforms, such as J2EE and the .NET Framework,
significantly simpler than it has been in the past. It also makes the idea of service oriented
architecture much more plausible for most organizations.

 ASP.NET Web Services, providing interoperable SOAP-based communication.


 .NET Remoting, focusing on communication between .NET applications.
 Enterprise Services, offering support for scalable, transactional applications.
 System.Messaging, supporting queued messaging through MSMQ.
 Web Services Enhancements, an extension to ASP.NET Web Services that provides
support for more recent specifications such as WS-Security.

This is exactly what's done by WCF. Rather than requiring developers to use a different
technology with a different application programming interface for each kind of
communication, WCF provides a common approach using a common API. In the .NET
Framework 3.0 environment, most applications that might have used one of the technologies
just listed will instead use WCF for communication.

 Windows CardSpace

 In the majority of cases, a person's digital identity is expressed as a simple username.
Combined with a password, this identity is used to access email accounts, Internet merchants,
and even on-line banks and other financial institutions. Sometimes, this simple user name and
password has limitations and drawbacks. Following shows the major drawbacks of this.

 People have a hard time remembering all of the usernames and passwords they've chosen
for different sites. Many people use the same values for different sites, easing the memory
problem but increasing the security risk.
 Usernames, passwords, and other personal information can be stolen by phishers. By
sending deceptive emails, phishers entice their victim to log in to a Web site that looks
just like, say, the site of the victim's bank. The site is actually controlled by the phisher,
however, and so once the victim enters his username and password, the phisher can use
this information to masquerade as the user at the real site.

L.A. Kandelekamge Programming with .NET


Microsoft Corporation introduced CardSpace technique to overcome above mentioned and
not mentioned other credential matters and to help people keep track of their digital identities.
By choosing a card, users also choose a digital identity that will be used to access this site.
Rather than remembering a plethora of usernames and passwords, users need only recognize
the card they wish to use. Different cards can also contain different information, allowing
users to control exactly what each site learns about them.

 Windows Presentation Foundation

The user interface is an important part of nearly every application. Yet what users expect
from those interfaces has advanced significantly. Traditional menu driven GUIs are still
required, but applications may also need to display video, run animations, use two and three
dimensional graphics, and work with various kinds of documents. And all of this must be
possible whether the application is accessed from a stand-alone desktop client or through a
web browser. A primary goal of WPF is to address this challenge. By offering a consistent
technical supporting for all of these user interface aspects, WPF makes life simpler for
developers. By taking a more modern approach, including support for video, animation, two
and three dimensional graphics, and various kinds of documents, WPF can let users work
with information in new ways. And by providing a common foundation for desktop clients
and browser clients, WPF makes it easier to build applications that address both.

.NET Framework 3.5

.NET Framework 3.0 is the important update among others. Because, it introduced Ajax
enabled web sites, CLR modifications, networking and other modifications.

Following shows the updates

 ASP.NET

New ASP.NET features include ASP.NET Dynamic Data, which provides a rich scaffolding
framework that allows rapid data driven development without writing code, and an addition
to ASP.NET AJAX that provides support for managing browser history.

 CLR

L.A. Kandelekamge Programming with .NET


 Improved application startup and working set performance.
 Better layout of .NET Framework native images.
 Opting out of strong-name verification of fully trusted assemblies.
 Better generated code that improves end-to-end application execution time.
 Detecting approaching full garbage collections with Garbage Collection Notifications.
 Opting for managed code to run in ASLR if supported by the operating system.
 Managed applications that are opened from network shares have the same behavior as
native applications by running with full trust.

 Client Profile improvements

The .NET Framework Client Profile is a subset of the full .NET Framework that targets client
applications. This improves the installation experience on computers that do not already have
the .NET Framework installed.

 Networking

Enhancements have been made that affect how integrated Windows authentication is handled
by the HttpWebRequest, HttpListener, SmtpClient, SslStream, NegotiateStream, and related
classes in the System.Net and related namespaces. Support was added for extended protection
to enhance security.

 WPF improvements

Performance improvements have been made to Windows Presentation Foundation, including


a faster startup time and improved performance for Bitmap effects. Additional functionality
for Windows Presentation Foundation includes better support for line of business
applications, native splash screen support, DirectX pixel shade support, and the new web
browser control.

 Data access in ADO.NET

The .NET Framework Data Provider for SQL Server provides full support for all the new
features of the SQL Server 2008 Database Engine. The ADO.NET Data Platform is a multi-
release strategy to decrease the amount of coding and maintenance required for developers by
enabling them to program against conceptual entity data models. This platform includes the

L.A. Kandelekamge Programming with .NET


ADO.NET Entity Framework, the Entity Data Model, Object Services and LINQ to Entities,
Entity SQL, Entity Client, ADO.NET Data Services and Entity Data Model Tools.

.NET Framework 4.0

The .NET Framework 4 is highly compatible with applications that are built with
earlier .NET Framework versions, except for some changes that were made to improve
security, standards compliance, correctness, reliability, and performance. The .NET
Framework 4 is highly compatible with applications that are built with earlier .NET
Framework versions, except for some changes that were made to improve security, standards
compliance, correctness, reliability, and performance.

Core new features and updates

 Diagnostics and Performance

Earlier versions of the .NET Framework provided no way to determine whether a particular
application domain was affecting other application domains, because the operating system
APIs and tools, such as the Windows Task Manager, were precise only to the process level.
Starting with the .NET Framework 4, you can get processor usage and memory usage
estimates per application domain.

 Garbage Collection

The .NET Framework 4 provides background garbage collection. This feature replaces
concurrent garbage collection in previous versions and provides better performance.

 Dynamic Language Runtime

The dynamic language runtime is a new runtime environment that adds a set of services for
dynamic languages to the CLR. The DLR makes it easier to develop dynamic languages to

L.A. Kandelekamge Programming with .NET


run on the .NET Framework and to add dynamic features to statically typed languages. To
support the DLR, the new System.Dynamic namespace is added to the .NET Framework.

 Tuples

The .NET Framework 4 provides the System.Tuple class for creating tuple objects that
contain structured data. It also provides generic tuple classes to support tuples that have from
one to eight components. To support tuple objects that have nine or more components, there
is a generic tuple class with seven type parameters and an eighth parameter of any tuple type. 

 Memory-Mapped Files

The .NET Framework now supports memory-mapped files. You can use memory-mapped
files to edit very large files and to create shared memory for interposes communication.

.NET Framework 4.5

 Managed Extensibility Framework (MEF)

In the .NET Framework 4.5, the Managed Extensibility Framework provides the following
new features,

 Support for generic types.


 Convention-based programming model that enables you to create parts based on naming
conventions rather than attributes.
 Multiple scopes.

 Asynchronous file operations

In the .NET Framework 4.5, new asynchronous features were added to the C# and Visual
Basic languages. These features add a task-based model for performing asynchronous
operations. To use this new model, use the asynchronous methods in the I/O classes.

 Tools

L.A. Kandelekamge Programming with .NET


In the .NET Framework 4.5, Resource File Generator enables you to create a .resw file for
use in Windows 8.x Store apps from a .resources file embedded in a .NET Framework
assembly.

 Parallel computing

The .NET Framework 4.5 provides several new features and improvements for parallel
computing. These include improved performance, increased control, improved support for
asynchronous programming, a new dataflow library, and improved support for parallel
debugging and performance analysis.

 Web

ASP.NET 4.5 and 4.5.1 add model binding for Web Forms, Web Socket support,
asynchronous handlers, performance enhancements, and many other features.

 Networking

The .NET Framework 4.5 provides a new programming interface for HTTP applications.
Support is also included for a new programming interface for accepting and interacting with a
Web Socket connection by using the existing HttpListener and related classes.

 Windows Presentation Foundation

In the .NET Framework 4.5, Windows Presentation Foundation contains changes and
improvements in the following areas,

 The new Ribbon control, which enables you to implement a ribbon user interface that
hosts a Quick Access Toolbar, Application Menu, and tabs.
 The new INotifyDataErrorInfo interface, which supports synchronous and asynchronous
data validation.
 New features for the Virtualizing Panel and Dispatcher classes.
 Improved performance when displaying large sets of grouped data, and by accessing
collections on non-UI threads.

L.A. Kandelekamge Programming with .NET


 Data binding to static properties, data binding to custom types that implement the
ICustomTypeProvider interface, and retrieval of data binding information from a binding
expression.
 Repositioning of data as the values change (live shaping).
 Ability to check whether the data context for an item container is disconnected.
 Ability to set the amount of time that should elapse between property changes and data
source updates.
 Improved support for implementing weak event patterns. Also, events can now accept
markup extensions.

 Windows Communication Foundation

In the .NET Framework 4.5, the following features have been added to make it simpler to
write and maintain Windows Communication Foundation applications:

 Simplification of generated configuration files.


 Support for contract-first development.
 Ability to configure ASP.NET compatibility mode more easily.
 Changes in default transport property values to reduce the likelihood that you will
have to set them.
 Updates to the XmlDictionaryReaderQuotas class to reduce the likelihood that you
will have to manually configure quotas for XML dictionary readers.
 Validation of WCF configuration files by Visual Studio as part of the build process,
so you can detect configuration errors before you run your application.
 New asynchronous streaming support.
 New HTTPS protocol mapping to make it easier to expose an endpoint over HTTPS
with Internet Information Services (IIS).
 Web sockets support to enable true bidirectional communication over ports 80 and
443 with performance characteristics similar to the TCP transport.
 Support for configuring services in code.

L.A. Kandelekamge Programming with .NET


 XML Editor Tooltips.
 Channel Factory caching support.
 Binary encoder compression support.
 Support for a UDP transport that enables developers to write services that use "fire
and forget" messaging. A client sends a message to a service and expects no response
from the service.
 Ability to support multiple authentication modes on a single WCF endpoint when
using the HTTP transport and transport security.
 Support for WCF services that use internationalized domain names (IDNs).

 Windows Workflow Foundation (WF)

In the .NET Framework 4.5, several new features were added to Windows Workflow
Foundation, including, State machine workflows, which were first introduced as part of
the .NET Framework 4.0.1. This update included several new classes and activities that
enabled developers to create state machine workflows.

 The ability to set breakpoints on states.


 The ability to copy and paste transitions in the workflow designer.
 Designer support for shared trigger transition creation.
 Activities for creating state machine workflows, including: State Machine, State, and
Transition.

 .NET for Windows 8.x Store apps

Windows 8.x Store apps are designed for specific form factors and leverage the power of the
Windows operating system. A subset of the .NET Framework 4.5 or 4.5.1 is available for
building Windows 8.x Store apps for Windows by using C# or Visual Basic.

L.A. Kandelekamge Programming with .NET


 Portable Class Libraries

The Portable Class Library project in Visual Studio 2012 enables you to write and build
managed assemblies that work on multiple .NET Framework platforms. Using a Portable
Class Library project, you choose the platforms to target. The available types and members in
your project are automatically restricted to the common types and members across these
platforms.

.NET Framework 4.6.1

 Cryptography

The .NET Framework 4.6 added RSACng support for X509 certificates. The .NET
Framework 4.6.1 adds support for ECDSA X509 certificates. ECDSA offers better
performance and is a more secure cryptography algorithm than RSA, providing an excellent
choice where Transport Layer Security performance and scalability is a concern. The .NET
Framework implementation wraps calls into existing Windows functionality.

 ADO.NET

Always Encrypted support for hardware protected keys ADO.NET now supports storing
Always Encrypted column master keys natively in Hardware Security Modules. With this
support, customers can leverage asymmetric keys stored in HSMs without having to write
custom column master key store providers and registering them in applications.

.NET Framework 4.7

 Better support for control characters by the DataContractJsonSerializer

In the .NET Framework 4.7, the DataContractJsonSerializer serializes control characters in


conformity with the ECMAScript 6 standard. This behavior is enabled by default for
applications that target the .NET Framework 4.7, and is an opt-in feature for applications that
are running under the .NET Framework 4.7 but target a previous version of the .NET
Framework.

 Networking

L.A. Kandelekamge Programming with .NET


The TLS stack, which is used by System.Net.Security.SslStream and up-stack components
such as HTTP, FTP, and SMTP, allows developers to use the default TLS protocols
supported by the operating system. Developers need no longer hard-code a TLS version.

 ASP.NET

Starting with the .NET Framework 4.7, ASP.NET adds a new set of APIs that allow
developers to replace the default ASP.NET implementations for in-memory object caching
and memory monitoring.

High DPI support for Windows Forms

Starting with applications that target the .NET Framework 4.7, the .NET Framework features
high DPI and dynamic DPI support for Windows Forms applications. High DPI support
improves the layout and appearance of forms and controls on high DPI monitors. Dynamic
DPI changes the layout and appearance of forms and controls when the user changes the DPI
or display scale factor of a running application.

According to above .NET Framework structure details, I have selected the .NET Framework
4.5 to develop the Online Examination management system. Because, .NET Framework 4.5
improves the many features of the .NET Framework. .NET Framework 4.5 is the default
framework of the new systems and programs. So, I have to implement this online
examination management system as suitable for any kind of computer system. And
also, .NET Framework 4.5 have introduced the new technologies with this framework update.
Because of this framework version, I can implement this online examination management
system better than others. Finally, this framework version improves the security of the system
and it will be an additional advantage to me. So, I selected this .NET Framework 4.5 for
developing my web based application.

L.A. Kandelekamge Programming with .NET


1.3. Identify the supportive components of .NET framework and critically evaluate
the identified components.

.NET Framework has few many supportive components to help programmers when coding
and designing. Without these components, .NET Framework cannot provide the best service
to programmers and framework based on this component. Therefore, these components are
very important.

 Common Language Specification (CLS)

Common Language Specification is a set of basic language features that .net languages
needed to develop Applications and Services, which are compatible with the .net framework.
When there is a situation to communicate objects written in different .net complaint
languages, those objects must expose the features that are common to all the languages. CLS
ensures complete interoperability among applications, regardless of the language used to
create the application.

 Common Type System (CTS)

Common type system describes a set of types that can be used in different .net languages in
common. That is, the CTS ensure that objects written in different .net languages can interact

L.A. Kandelekamge Programming with .NET


with each other. For communicating between programs written in any .net complaint
language, the types have to be compatible on the basic level. These types can be value types
or reference types. The value types are passed by values and stored in the stack. The
reference types are passed by references and stored in the heap. Common type system
provides base set of data types which is responsible for cross language integration. The
common language runtime can load and execute the source code written in any .net language,
only if the type is described in the common type system. Most of the members defined by
types in the .net framework class library are common language specification compliant types.

Figure 3 VB and C# relationship between CTS


 ADO.NET

ADO.NET consist of a set of objects that expose data access services to the .net environment.
It is a data access technology from Microsoft .net framework, which provides communication
between relational and non-relational systems through a common set of components.
System.Data namespace is the core of ADO.NET and it contains classes used by all data
providers. ADO.NET is designed to be easy to use, and visual studio provides several
wizards and other features that you can use to generate ADO.NET data access code.

 .Net Framework Class Library (FCL)

The .net framework class library provides the core functionality of .net framework
architecture. The .net framework class library includes a huge collection of reusable classes,
interfaces, and value types that expedite and optimize the development process and provide
access to system functionality. The .net framework class library organized in a hierarchical
tree structure and it is divided into namespaces. Namespaces is a logical grouping of types for
the purpose of identification. Framework class library provides the consistent base types that
are used across all .net enabled languages. The classes are accessed by namespaces, which
reside within Assemblies. The System Namespace is the root for types in the .net framework.

L.A. Kandelekamge Programming with .NET


The .net framework class library classes are managed classes that provide access to system
services. The .net framework class library classes are object oriented and easy to use in
program developments. Moreover, third party components can integrate with the classes in
the .net framework.

 Common Language Infrastructure (CLI)

Part of Microsoft's .net strategy, Common Language Infrastructure enables an application


program written in any of several commonly used programming languages to be run on
any operating system using a common runtime program rather than a language specific one.
Common Language Infrastructure provides a virtual execution environment comparable to
the one provided by Sun Microsystems for Java programs. In both environments, CLI and
Java use a compiler to process language statements into a preliminary form of executable
code called bytecode. Later, when a program is run, its bytecode is compiled on the fly into
the native code required by the machine architecture of a given computer. CLI is designed to
make it easier to develop programs that can be used as Web services.

 Common Language Runtime (CLR)

As part of Microsoft's .net framework, the common language runtime is programming that


manages the execution of programs written in any of several supported languages, allowing
them to share common object oriented class is written in any of the languages. The common
language runtime is somewhat comparable to the java virtual machine that Sun Microsystems
furnishes for running programs compiled from the java language. Microsoft refers to its
common language runtime as a "managed execution environment." A program compiled for
the CLR does not need a language specific execution environment and can easily be moved
to and run on any system with Windows 2000 or Windows XP. Programmers writing in any
of Visual Basic, Visual C++, or C# compile their programs into an intermediate form of code
called Common Intermediate Language in a portable execution file that can then be managed
and executed by the common language runtime. The programmer and the environment
specify descriptive information about the program when it is compiled and the information is
stored with the compiled program as metadata. Metadata, stored in the compiled program,
tells the CLR what language was used, its version, and what class libraries will be needed by
the program. The Common Language Runtime allows an instance of a class written in one

L.A. Kandelekamge Programming with .NET


language to call a method of a class written in another language. It also provides garbage
collecting, exception handling, and debugging services.

Task 2. Design the online examination management system

L.A. Kandelekamge Programming with .NET


2.1. Provide evidences for the designed system.

User Interface designs

Figure 4 Login User Interface

Figure 5 Admin Dashboard

L.A. Kandelekamge Programming with .NET


Figure 6 Exam Selection page

Figure 7 Question page

L.A. Kandelekamge Programming with .NET


Figure 8 Result page

Figure 9 View all students page

L.A. Kandelekamge Programming with .NET


Class Diagram for designed system

L.A. Kandelekamge Programming with .NET


ER diagram for designed system

L.A. Kandelekamge Programming with .NET


Activity diagrams for designed system (Administrator)

L.A. Kandelekamge Programming with .NET


L.A. Kandelekamge Programming with .NET
Activity diagrams for designed system (Lecturer)

L.A. Kandelekamge Programming with .NET


Activity diagrams for designed system (Student)

I have included the few user interfaces and diagrams in above. These diagrams show the
various things about the newly designed system. Actually, with these diagrams, user and
developer can get the idea about the system and these diagrams show how it works.

Class diagram is the most important diagram in software industry, because class diagram
explains all the methods and variables of the class with their access modifiers. And also, it
shows the relationship between other classes. In this system, I am going to create 07 classes,

L.A. Kandelekamge Programming with .NET


because, without 07 classes, I cannot create this software. I have included the designed class
diagram for the system and this diagram shows every detail of the class. For example, I can
introduce the student class. All the student related functions are created in this student class
and it is easy to identify and find the things in the class. There are 16 private variables and 07
public methods in the student class. And also, we can get the parameters and method`s return
type using this diagram. So, with class diagram, we can get above mentioned details.

Entity Relation diagram relate with database. That means, this diagram shows the database
table details. Using this diagram, we can identify the table names, column names and
relationships between other entities. As the above included entity relation diagram, we can
see the 08 entities with their attributes. For example, I can introduce student entity. It has 12
attributes and specific name called tbl_student.

Activity diagram is another important diagram of the system. This diagram shows main
activities of the system. Actually, this diagram helps users to identify the activities between
system and user. When drawing the activity diagram for this designed system, I have to
create 03 activity diagrams, because this system has 03 users with various access privileges.
So, I had to create 03 diagrams for them. First one for administrator and it has every function
belongs to administrator. Second one for lecturer and last one for student.

L.A. Kandelekamge Programming with .NET


2.2. Explain the components and data and file structures required to implement a given
design.

Before we create solution for XYZ Institute`s online examination management system, we
should identify the data and file structures. It is very important process of the whole software
creating process. We can introduce this identification process is the approach of the creating
software solution. After this process, we can handle workloads and time frames according to
tasks to do and it helps to create a quality product. So, I have to identify the data and file
structures of the system, before I start creating the application. Following table shows the
data, I have identified.

Class_User
 Attributes
Attribute name Type Description

-id string This variable used to store id from database.

-user string This variable used to store user inputted


username

-nic String This variable used to store nic from DB

-fname String This variable used to store first name of the user

-password String This variable used to store user inputted


password.

-constant String Store access level

Table 1 attributes in login

L.A. Kandelekamge Programming with .NET


 Methods

Method Name Type Description

+ loginFunction DataTable Check user name and password.

+ searchStudent(nic) DataTable Load description according to course name.

+addUsers(fname,nic,user, void Create user accounts.


password,constant)
searchLecturer(nic) DataTable Search lecturer according to nic.

SearchUser(nic) DataTable Search user according to nic.

updateUser(id,user,password) void Update user accounts.

removerUser(id) void Remove user accounts.

Table 2 Methods in user class


Class_Student
 Attributes
Attribute name Type Description

-id String Store id.

-title string This variable used to store title

-fname string This variable used to store first name

-lname string This variable used to store last name

-nic string This variable used to store NIC no

-dob string This variable used to store date of birth

-address string This variable used to store address

-gender string This variable used to store gender

-mobile string This variable used to store mobile

L.A. Kandelekamge Programming with .NET


-home string This variable used to store home no

-email string This variable used to store email address

-course string This variable used to store course name

-first_name string This variable used to store first name.

-last_name string This variable used to store last name

Table 3 attributes in class student

 Methods

Method Name Type Description

+ Course_Drop_Load() DataSet Load course name to drop down list

+ loadDiscription(course) DataTable Load description according to course


name.

+addStudent(title,fname,lname, void Add student details to the system


nic,dob,address,gender,mobile,
home,email,course)
+searchByFirstname(first_name) DataTable Search students according to first name

+searchByLastname(last_name) DataTable Search students according to last name

+searchByNIC(nic) DataTable Search student according to NIC.

+updateStudent(id, void Update student details


title,fname,lname,nic,dob,
address,gender,mobile,home,
email,course)
+removeStudent(id) Void Remove student details from the system.

Table 4 Methods in class student

L.A. Kandelekamge Programming with .NET


Class Lecturer
 Attributes
Attribute name Type Description

-id String Store id.

-title string This variable used to store title

-fname string This variable used to store first name

-lname string This variable used to store last name

-nic string This variable used to store NIC no

-dob string This variable used to store date of birth

-address string This variable used to store address

-gender string This variable used to store gender

-mobile string This variable used to store mobile

-home string This variable used to store home no

-email string This variable used to store email address

-first_name string This variable used to store first name.

-last_name string This variable used to store last name

Table 5 attributes in class lecturer

 Methods

Method Name Type Description

+addLecturer(title,fname,lname, void Add lecturer details to the system


nic,dob,address,gender,mobile,
home,email)
+searchByFirstname(first_name) DataTable Search lecturer according to first name

L.A. Kandelekamge Programming with .NET


+searchByLastname(last_name) DataTable Search lecturer according to last name

+searchByNIC(nic) DataTable Search lecturer according to NIC.

+updateLecturer (id, void Update lecturer details


title,fname,lname,nic,dob,
address,gender,mobile,home,
email)
+removeLecturer (id) Void Remove lecturer details from the system.

Table 6 Methods in class lecturer


Class Exam
 Attributes
Attribute name Type Description

-nic string This variable used to store nic

-course string This variable used to store course

-sunject string This variable used to store subject

-question System.web.UI. This variable used to store questions


WebControls
-answer_list System.web.UI. This variable used to store answer
WebControls

-correct_answer System.web.UI. This variable used to store correct answer


WebControls

-index string This variable used to store index

-first_name string This variable used to store first name

-sub string This variable used to store subject

-user string This variable used to store username

-m double This variable used to store parsed grade

L.A. Kandelekamge Programming with .NET


-grade double This variable used to store all the grade

-mark double This variable used to store assign marks to grade.

Table 7 attributes in class exam

 Methods

Method Name Type Description

+course_Drop_Load() DataTable Load course details to the drop-down


list

+LoadSubject(course) DataTable Load subject details to the drop-down


list

+attempyCount(subject,nic) Int Count attempts of each student

+loadQuestion(subject) DataTable Load questions to the session variables.

+addQuestion(question,answer_list void Load questions to labels and radio


, index,correct_answer) button list.

+marksCount(m) void Count marks

+addQuestionToDB(first_name, void Add marks to the database


sub,nic)

+resultCount(subject,nic) SqlData Load results to the result page


Reader

+loadNIC(user) DataTable Load NIC according to user

Table 8 methods in class exam

Class_Course
 Attributes

L.A. Kandelekamge Programming with .NET


Attribute name Type Description

-id string This variable used to store id from database.

-course string This variable used to store course

-description String This variable used to store description from DB

Table 9 Attributes in the class course

 Methods

Method Name Type Description

+addCourse(course,description) void Add course details to the DB

+searchCourse(course) DataTable Search course details

+updateCourse(id, course,description) void Update existing records

+removeCourse(id) void Remove course details from DB.

Table 10 Methods in class course


Class_Subject
 Attributes
Attribute name Type Description

-id string This variable used to store id from database.

-subject string This variable used to store subject

-course string This variable used to store course

-description String This variable used to store description

Table 11 Attributes in the class subject

 Methods

L.A. Kandelekamge Programming with .NET


Method Name Type Description

+addSubject(subject, course,description) void Add subject details to the DB

+searchSubject (subject) DataTable Search sbuject details

+updateSubject (id,subject, course, void Update existing records


description)

+removeSubject (id) void Remove subject details from DB.

Table 12 Methods in class exam


Class Question
 Attributes
Attribute name Type Description

-id string This variable used to store nic

-question string This variable used to store questions

-subject string This variable used to store subject

-ans1 string This variable used to store answer 1

-ans2 string This variable used to store answer 2

-ans3 string This variable used to store answer 3

-ans4 string This variable used to store answer 4

-correct_ans string This variable used to store correct answer

Table 13 Attributes in class question

 Methods

L.A. Kandelekamge Programming with .NET


Method Name Type Description

+Subject_Drop_Load() DataTable Load subject details to the drop-


down list

+addQuestion(subject,question,ans1, void Add question to the database


ans2,ans3,ans4,correct_ans)

+searchQuestion(question) DataTable Search question details

+updateQuestion(id, subject, question, void Update question


ans1, ans2,ans3,ans4,correct_ans)

+removeQuestion(id) void Remove questions

Table 14 Methods in class question


 Table student

Column Name Data Type Description


Id int Store batch ID, Primary Key, Not Null,
Identity
title varchar(10) Store title, Allow Null
fname varchar(50) Store first name, Allow Null
lname varchar(50) Store last name, Allow Null
nic varchar(10) Store NIC no, Allow Null
dob varchar(10) Store date of birth, Allow Null
address varchar(MAX) Store address, Allow Null
gender varchar(10) Store gender, Allow Null
mobile varchar(10) Store mobile no, Allow Null
home varchar(10) Store home no, Allow Null
email varchar(50) Store email, Allow Null
course varchar(50) Store course name, Allow Null
Table 15 table student

 Table lecturer

Column Name Data Type Description


Id int Store batch ID, Primary Key, Not Null,
Identity
title varchar(10) Store title, Allow Null
fname varchar(50) Store first name, Allow Null
lname varchar(50) Store last name, Allow Null
nic varchar(10) Store NIC no, Allow Null

L.A. Kandelekamge Programming with .NET


dob varchar(10) Store date of birth, Allow Null
address varchar(MAX) Store address, Allow Null
gender varchar(10) Store gender, Allow Null
mobile varchar(10) Store mobile no, Allow Null
home varchar(10) Store home no, Allow Null
email varchar(50) Store email, Allow Null
course varchar(50) Store course name, Allow Null
Table 16 Table Lecturer

 Table course

Column Name Data Type Description


id int Store course ID, Primary Key, Not Null,
Identity
cname varchar(50) Store course name, Allow Null
description varchar(MAX) Store description, Allow Null
Table 17 Table course

 Table subject

Column Name Data Type Description


id int Store subject ID, Primary Key, Not Null,
Identity
sname varchar(50) Store subject name, Allow Null
cname varchar(50) Store course name, Allow Null
description varchar(MAX) Store description, Allow Null
Table 18 Table subject

 Table question

Column Name Data Type Description


id int Store question ID, Primary Key, Not Null,
Identity
question varchar(MAX) Store question, Allow Null
ans1 varchar(MAX) Store answer 1, Allow Null
ans2 varchar(MAX) Store answer 2, Allow Null
ans3 varchar(MAX) Store answer 3, Allow Null
ans4 varchar(MAX) Store answer 4, Allow Null
correct varchar(MAX) Store correct answer, Allow Null
subject varchar(MAX) Store subject name, Allow Null
Table 19 table question

L.A. Kandelekamge Programming with .NET


 Table user

Column Name Data Type Description


id int Store user ID, Primary Key, Not Null, Identity
account varchar(MAX) Store account name, Allow Null
username varchar(50) Store username, Allow Null
password varchar(50) Store password, Allow Null
access varchar(50) Store access level, Allow Null
nic varchar(50) Store nic, Allow Null
Table 20 Table user

 Table grades

Column Name Data Type Description


id int Store user ID, Primary Key, Not Null, Identity
fname varchar(50) Store first name, Allow Null
subject varchar(50) Store subject, Allow Null
nic varchar(50) Store nic no, Allow Null
marks varchar(10) Store student marks, Allow Null
Table 21 Table grades

 Table Admin

Column Name Data Type Description


Id int Store batch ID, Primary Key, Not Null,
Identity
title varchar(10) Store title, Allow Null
fname varchar(50) Store first name, Allow Null
lname varchar(50) Store last name, Allow Null
nic varchar(10) Store NIC no, Allow Null
dob varchar(10) Store date of birth, Allow Null
address varchar(MAX) Store address, Allow Null
gender varchar(10) Store gender, Allow Null
mobile varchar(10) Store mobile no, Allow Null
home varchar(10) Store home no, Allow Null
email varchar(50) Store email, Allow Null
course varchar(50) Store course name, Allow Null
Table 22 Table admin

L.A. Kandelekamge Programming with .NET


In this sub task, I have included all the variables and methods in the classes of the newly
created online examination management system with more details. I have presented these
details in tabular format and it will be very clear and understandable for users. Each table has
many details according to classes. For example, student class has 02 tables called attributes
and methods. Variable table has the details of all the variables in that particular class.
Actually, it has 03 columns called attribute name, data type and description. Attribute name
column includes the variable name and data type column includes the details about that
variable which can holds that what data and finally, description column includes the
additional details about that variable. Methods tables is also like attribute tables. Because, this
kind of table includes the method name, data type and description.

And also, I have included the database table details to this sub task. Because database tables
are the very important part of any kind of system. Without them, programmer cannot store
data properly and easily. So, I have included them to this task. In this system, there are 08
tables using to manage data. These tables is also like before explained tables, because it has
only 03 columns and those columns are including the database column name, data type and
additional details about the column.

L.A. Kandelekamge Programming with .NET


2.3. The system can be implemented to be deployed in many environments such as
mobile, handheld, web based, desktop, dedicated device, client server etc. Evaluate
potential environments and interaction of the designed system.

This examination management system is a system that use internet to provide its facilities.
That means, this system requires internet connection to work properly. Actually, even we
cannot access to this system without the internet. In present, the internet is the most common
thing among other services. Because, with technology, we can be able to access to the
internet through many electronic devices. Such as, mobile phones, laptops, most commonly
desktop computers and there are so many other devices. If something on the internet, we can
access to that using above mentioned devices, but there are some issues here and we have to
consider them if we are creating or designing the web site. Actually, this online examination
management system is also a web site that creates for specified target audience. But the
reason is we cannot give access rights to some devices to access to this system, because it can
be a security issue. If we are implementing the system, we need to select the deployment
environment to run the system. There are few deployment environments. Such as, mobile
handheld, web based, desktop dedicated devices and also, client server model. Above
mentioned deployment environments have some advantages and disadvantages. So, I have to
select one deployment environment among those.

 Mobile Handheld deployment environment

First thing is mobile handheld environment and it includes mostly mobiles, tabs, PDAs and
other handheld devices. we cannot give permissions to access through mobiles and other
mobile related devices, because, this is an examination system. This system contains the
questions and answers and other confidential details. So, if we use mobile devices to do an
exam, students can cheat easily, because they can google the questions and find the answers.
So, I am not giving opportunity to cheat. Therefore, I don`t give the permission to access this
site through mobile devices. Because of this matter, I have no idea to select this deployment
environment.

L.A. Kandelekamge Programming with .NET


 Web based deployment environment

And also, I don`t give permission to access to this web site through personal computers and
personal laptops. Because, this is the same situation to mobile devices. But if this is a web
based application, I need to implement this web based system in an internet to overcome this
matter, because, if we use intranet, intranet means the network within an organization. So, if
user want to access the system, he or she needs to access to the intranet first. Actually, an
application that runs entirely on a web browser is known as a web application. Web
application is platform independent because they require only a web browser. The cross
platform language makes an application look native to the platform or the operation system of
the user. This can run on the browsers directly and hence do not require any installation, and
also, this uses multi-tier architecture which consists of, user client, middle tier, and
application server. A web application is hosted in a browser controlled environment, or it is
often programmed in a language that supports the browser. JavaScript is the most widely
used browser supported language. And also web application is not overloading as the number
of simultaneous user request increases. Following shows the some of the examples of web
applications include, Yahoo mail, Gmail, Web Office, Google Apps, Microsoft Office Live,
WebEx, etc.

 Client/Server deployment environment

An application that runs on the client side and accesses the remote server for information is
called a client/server application. The client server always makes requests to the remote
server to get some information. The user interaction with the server is always through a user
interface or application on the client side. A client server application can be platform specific
as well as cross platform depending on the programming language used. This model uses a
two tier architecture. The client/server application is always installed on the client’s computer
unlike a web application. In client/server applications, the server machine is a host that runs
single or multiple-server programs sharing their resources with clients. A client always
requests from a server information or content without sharing any of its resources. In a
client/server model, the server often gets overloaded as the number of simultaneous client
requests increases. This is the main disadvantage of this deployment environment because, if
the server stuck suddenly, data can be corrupted or erased. And also, whole system stops until
server responses again. This is an examination management system. So, system should have

L.A. Kandelekamge Programming with .NET


ability to run any time and should not be stoppable. So, this is not a suitable deployment
environment for this system.

 Desktop dedicated devices

The term "desktop software" refers to software that runs on a Mac, Windows or Linux
desktop computer that is set up for use in one place such as a desk. This is where the name
originally comes from, back before computers became portable. Laptop computer can also
use desktop software since they run the same operating systems as the less portable desktops.
Desktop application must be installed on your computer. The installation is done from a
software CD, DVD or other media. Desktop software can also be found online and
downloaded as a file that is saved on your computer. This file is then run on the desktop or
laptop computer to install the software. This kind of application runs as stand alone software.
That is, it does not require a web browser or internet connection, although some features in
the software may be limited or unavailable without access to an internet connection. Desktop
software typically does not require any other desktop software to run. As our subject, I have
to implement web based application because, using ASP.NET language, we cannot create
stand alone software. So, this one also not suitable for OEMS.

So, according to above details, I have selected the web based deployment environment to
implement this online examination management system. Because it is the best deployment
environment for this system.

L.A. Kandelekamge Programming with .NET


TASK 3. IMPLEMENT THE DESIGNED EXAMINATION SYSTEM

3.1. Implement the designed system using .Net framework. Provide important code lines
with proper comments and user interfaces filled with sample data.

Figure 10 Subject Add Interface


// Subject add function
public static void addSubject(string subject,string course,string description){
try{
DBConnection.getMyConnection();
String query = "INSERT INTO [tbl_subject] (sname,cname,description)
VALUES('" + subject + "','" + course + "','" + description + "')";
SqlCommand com = new SqlCommand(query, DBConnection.con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Saved Successfully...", "SYSTEM ALERT",
MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{

L.A. Kandelekamge Programming with .NET


MessageBox.Show("Record Saving Unsuccessful...", "SYSTEM ALERT",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();}catch(Exception ex){
MessageBox.Show(ex.Message);}}

Figure 11 Subject update and remove interface


// subject search function
public static DataTable searchSubject(string subject){
DBConnection.getMyConnection();
string qry = "SELECT * FROM tbl_subject WHERE sname LIKE'" + subject + "%'";
SqlCommand cmd = new SqlCommand(qry, DBConnection.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}

//subject update function


public static void updateSubject(string id, string subject, string course,string description)
{
try{
DBConnection.getMyConnection();

L.A. Kandelekamge Programming with .NET


String query = "UPDATE tbl_subject SET description='" + description +
"',cname='" + course + "',sname='" + subject + "' WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
com.ExecuteNonQuery();
MessageBox.Show("Record Modified Successfully...", "SYSTEM ALERT",
MessageBoxButtons.OK, MessageBoxIcon.Information);
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}

// subject remove function


public static void removeSubject(string id){
try{
DBConnection.getMyConnection();
String query = "DELETE FROM tbl_subject WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Removed Successfully...", "SYSTEM ALERT",
MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{
MessageBox.Show("Record Modifing Unsuccessful...", "SYSTEM ALERT",
MessageBoxButtons.OK, MessageBoxIcon.Information);}
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}

L.A. Kandelekamge Programming with .NET


Figure 12 Question interface
// Load Questions to the session variables
public static DataTable loadQuestion(String subject){
DBConnection.getMyConnection();
String query = "SELECT TOP 15 question FROM tbl_question WHERE subject='" +
subject + "' ORDER BY NEWID()";
SqlCommand com = new SqlCommand(query, DBConnection.con);
SqlDataAdapter sda = new SqlDataAdapter(com);
DataTable dta = new DataTable();
sda.Fill(dta);
DBConnection.overConnection();
return dta;}

// Load Selected questions to the page labels according to index


public static void addQuestion(System.Web.UI.WebControls.Label question,
System.Web.UI.WebControls.RadioButtonList answer_list, String index,
System.Web.UI.WebControls.HiddenField correct_answer){
try{
con.Open();
String query = "SELECT question,ans1,ans2,ans3,ans4,correct FROM tbl_question
WHERE question='" + index + "'";

L.A. Kandelekamge Programming with .NET


SqlCommand com = new SqlCommand(query, con);
SqlDataReader rd = com.ExecuteReader();
rd.Read();
question.Text = rd[0].ToString();
answer_list.Items.Add(rd[1].ToString());
answer_list.Items.Add(rd[2].ToString());
answer_list.Items.Add(rd[3].ToString());
answer_list.Items.Add(rd[4].ToString());
correct_answer.Value = rd[5].ToString();
con.Close();}
catch (Exception ex){
MessageBox.Show("error" + ex);}}

Control Structures
In programming, we can see the 03 kind of control structures. There are sequential, selection
and iteration. Control structure shows the program flow and without those, we can`t create
software. Any kind of control structure has various notations or symbols to show program
flow. Rectangle, parallelogram, circle, diamond and lines with arrow heads are the basic
symbols of this. In this situation, we use rectangle for showing some kind of process like
equations, function callings. We can use parallelogram for showing input and output
operations. Circles for connecting few lines and we use diamond for showing decisions.
Finally, arrow headed lines show the program flow between notations.

Following is the diagrammatic picture of control structures

Figure 13 Control structures

L.A. Kandelekamge Programming with .NET


The selection structure tests a condition, then executes one sequence of statements instead of
another, depending on whether the condition is true or false. A condition is any variable or
expression that returns a Boolean value (TRUE or FALSE). The iteration structure executes a
sequence of statements repeatedly as long as a condition holds true. The sequence structure
simply executes a sequence of statements in the order in which they occur.

Selection Control Structure

Selection control structure describes about decisions making. Decision making by a computer
is based on the same two step process. In c#, decisions are made with the if statement, also
known as the selection statement. When processing an if statement, the computer first
evaluates some criterion or condition. If it is met, the specified action is performed. 
Here are the code examples for Selection Control Structure.

If the conditional expression is true, the statements between the keywords THEN and ELSE
will be executed.  If the conditional expression is false, the statements between the keywords
ELSE and END If will be executed.

Following is the structure of if else condition.

IF (condition) {

} ELSE {

Following is the code example for if else condition.

Figure 14 Code example for If Else condition

L.A. Kandelekamge Programming with .NET


When the situation arises where you need to choose between more than two alternatives, we
can use an extended form of the selection structure. That is switch case structure.

Following is the structure of switch case.

SWITCH (expression) {

CASE constant expression 1:

statements;

break;

CASE constant expression 2:

statements;

break; }

Iteration Control Structure

Iteration control structure is a process which a set of instructions or structures are repeated in
a sequence a specified number of times or until a condition is met. When the first set of
instructions is executed again, it is called an iteration. In this situation, we can introduce this
as looping. In iteration structure, we can see 03 types of loops or iterations. There are while
loop, do-while loop, foreach loop and for loop.

We can use while loop structure when we want to repeat statements an indefinite number of
times, until condition is true. If the condition false, while loop stops it`s works and program
compiler come to end/close brace of the while loop.

Following is the structure of while loop

WHILE (condition) {

statements

L.A. Kandelekamge Programming with .NET


Foreach loop

The foreach loop in C# executes a block of code on each element in an array or a collection


of items. When executing foreach loop it traversing items in a collection or an array. The
foreach loop is useful for traversing each item in an array or a collection of items and
displayed one by one. Foreach loop operates on collections of items, for instance arrays or
other built in list types.

foreach (condition) {

statements;

Following picture is a code example for foreach loop.

Figure 15 Code example for foreach loop


Do-while is another loop which repeat statements until its condition satisfy. This loop most
like while loop but do-while loop has a different. In while loop, if the condition is false, the
loop will be terminated. In that situation, we cannot get results through while loop. But in do-
while, we can get result at least one time. Because in this situation, program compiler runs
statements before check the condition. Following is the structure of do-while loop.

DO {

} WHILE (condition);

For loop is the last loop in iteration control structure. We can create conditions, variable
declaration and initialization and increment and decrement operations in parenthesis. In while
loop and do-while loop, we can insert condition only. But in for loop we can insert many.
This is the difference between while and for loops.

L.A. Kandelekamge Programming with .NET


Following is the structure of for loop.

FOR (start expression; condition; count expression) {

Block of codes

Sequence Control Structure

Sequence control structure is a control structure like a single line. It is deferent from other
two control structures. In this control structure, we can`t use any iteration or selection. The
sequence structure indicates instructions are to be executed one statement at a time in the
order they occur from top to bottom unless a different control structure dictates otherwise.

Figure 16 Code example for sequence control structure

L.A. Kandelekamge Programming with .NET


3.2. Identify and implement opportunities for error handling and reporting to minimize
the errors that might occur. Provide evidences of the implemented techniques used to
handle the errors

Error handling refers to the anticipation, detection, and resolution of programming,


application, and communications errors. Specialized programs, called error handlers, are
available for some applications. The best programs of this type forestall errors if possible,
recover from them when they occur without terminating the application, or gracefully
terminate an affected application and save the error information to a log file. In programming,
a development error is one that can be prevented. Such an error can occur in syntax or logic.
Syntax errors, which are typographical mistakes or improper use of special characters, are
handled by rigorous proofreading. Logic errors, also called bugs, occur when
executed code does not produce the expected or desired result. Logic errors are best handled
by meticulous program debugging. This can be an ongoing process that involves, in addition
to the traditional debugging routine, beta testing prior to official release and customer
feedback after official release.

A run-time error takes place during the execution of a program, and usually happens because
of adverse system parameters or invalid input data. An example is the lack of
sufficient memory to run an application or a memory conflict with another program.

When we are coding, we have to follow an error handling method to prevent exceptions or
bugs. So, I also use 02 error handling methods when creating this library management system
called try catch block and if exception throwing.

Try catch block

"Try" and "catch" are keywords that represent the handling of exceptions due to data or
coding errors during program execution. A try block is the block of code in which exceptions
occur. A catch block catches and handles try block exceptions. The try/catch statement is
used in many programming languages, including C programming language (C++ and C#),
Java, JavaScript and Structured Query Language (SQL).

Try defines a block of statements that may throw an exception. When a specific type of
exception occurs, a catch block catches the exception. If an exception is not handled by
try/catch blocks, the exception escalates through the call stack until the exception is caught or
an error message is printed by the compiler. A try/catch block also may be nested with one or

L.A. Kandelekamge Programming with .NET


more try/catch statements. Each try statement has a matching catch statement to handle the
exception. If an exception's inner try statement does not have a matching catch statement,
subsequent try statement catch handlers are checked. This process continues until all inner try
statements are checked for a matching catch statement. If a catch statement does not match,
the runtime system handles the exception.

Following is the structure of try catch block.

try {

} catch (Exception e) {

Following is the code example for try catch block.

Figure 17 Example for try-catch block


When we are using try catch block, we can add another part to the block called finally.
‘finally’ part adds to end of the catch and we can add statement, conditions or anything like
that to this finally block.

try {

} catch(Exception) {

} finally {

L.A. Kandelekamge Programming with .NET


Throwing an exception

In this situation, I have to use ‘throw’ key word. The C# throw keyword is used to declare an
exception. It gives an information to the programmer that there may occur an exception so it
is better for the programmer to provide the exception handling code so that normal flow can
be maintained. Exception Handling is mainly used to handle the checked exceptions. If there
occurs any unchecked exception such as NullPointerException, it is programmer’s fault that
he is not performing checkup before the code being used. I didn`t use this one for my
program, but we should have to know about this this one.

L.A. Kandelekamge Programming with .NET


3.3. Provide evidences of features of the selected Integrated Development Environment
(IDE) used to implement the system effectively.

XYZ is the leading computer school. This is the very famous and well qualified school for
computer related studies. But XYZ School is using the paper base exam system for students.
This paper base manual system has many limitations and problems. So, school management
decided to switch this manual system into automated computer based system. They hope to
solve problems with this automated system. Therefore, they hired me to create a new web
based automated system. I`m using ASP programming language for creating this automated
system. ASP is a popular object oriented programming language in present. This
programming language found and modified with a framework in Microsoft Corporation. With
this programming language, they introduced an integrated development environment called
visual studio to deal with this language. Visual studio is the main IDE for the developing
ASP web based applications.

Visual Studio uses Microsoft software development platforms such as Windows


API, Windows Forms, Windows Presentation Foundation, Windows Store and Microsoft
Silverlight. It can produce both native code and managed code. Visual Studio includes a code
editor supporting the code completion component as well as code refactoring. The integrated
debugger works both as a source level debugger and a machine level debugger. Other built-in
tools include a forms designer for building GUI applications, web designer, class designer,
and database schema designer.

Visual Studio supports different programming languages and allows the code editor and
debugger to support nearly any programming language, provided a language specific service
exists. Built in languages include C, C++, VB.NET, C#, and F#. Support for other languages
such as Python, Ruby and Node.  Among others is available via language services installed
separately. It also supports XML/XSLT, HTML/XHTML, JavaScript and CSS. Java were
supported in the past.

And also, Visual studio has a user-friendly working area and because of that programmer can
interact with IDE easily and quickly. In this IDE has many designing components like text
boxes, combo boxes, buttons and so many others. With these components, designer can
design graphical user interfaces easily. Designer just want to drag and drop the components
into work space.

L.A. Kandelekamge Programming with .NET


Following figure shows the tool box in visual studio.

Figure 18 Tool Box


And also, Visual Studio IDE has more other palates like solution explorer, server explorer,
team explorer, error list, Property window, output and many others. These palates are also
very important and it does various tasks and helps designers or programmers to design or
create software.

Solution Explorer

Solution explorer is the main palette in visual studio. This helps programmer or designer to
find current project forms or resources. Solution explorer shows the all the images, forms,
and configure files in project. We can rename, remove and add new items to the project using
solution explorer. Such as forms, databases, classes and so many others. Without solution
explorer, we can`t handle project folder easily.

L.A. Kandelekamge Programming with .NET


Following figure shows the solution explorer

Figure 19 Solution Explorer


Server Explorer

Server explorer is another important and very useful palette in visual studio. Server explorer
shows the database details to users. In solution explorer, we can see the databases, datasets,
tables, constraints and others. Without server explorer, we cannot handle server components
properly. We can create tables, databases using server explorer. With server explorer, users
can handle data easily.

L.A. Kandelekamge Programming with .NET


Following figure shows the server explorer

Figure 20 Server Explorer


Properties window

Use this window to view and change the design time properties and events of selected objects
that are located in editors and designers. You can also use the Properties window to edit and
view file, project, and solution properties. You can find Properties Window on
the View menu. You can also open it by pressing F4 or by typing Properties in the Quick
Launch window. The Properties window displays different types of editing fields, depending
on the needs of a particular property. These edit fields include edit boxes, drop down lists,
and links to custom editor dialog boxes. Properties shown in gray are read only. In properties
window, alphabetically sorts all design time properties and events for selected objects. To
edit an undimmed property, click in the cell to its right and enter changes. And also, events
are viewed by visual studio using this window.

L.A. Kandelekamge Programming with .NET


Following figure shows the properties window

Figure 21 Properties Window


Breakpoint

We can set breakpoints when we want to stop debugger execution, perhaps to see the state of
code variables or to look at the call stack. They are one of the most important debugging
techniques in a developer's toolbox. You set a function breakpoint in source code by clicking
in the left margin of a source code file, or by putting your cursor on a line of code and
pressing F9. The breakpoint appears as a red dot in the left margin, and the line of code is
colored as well and after run this code in the debugger, execution stops whenever the
breakpoint is hit, before the code on that line is executed. The line of source code is colored

L.A. Kandelekamge Programming with .NET


yellow. Programmer can look at the current state of the application, including variable values
and the call stack. For more information about the call stack.

Figure 22 Breakpoint
Layout

The majority of Visual Studio dialogs are Utility dialog layout, which are the UN themed
dialogs that follow standard Windows Desktop dialog layout principles. As Visual Studio
moves to refresh its UI, some of the more prominent dialogs have a new design that
establishes them as product defining experiences. These themed dialog layouts have a themed
appearance.

 All controls within a utility dialog should start at the top left and flow downward.
 Never center controls on a dialog to fill a large area.
 Use the environment font for all dialog text. When writing a visual spec, specify the
environment font instead of selecting a particular font and size. See the environment font.
 Use consistent control spacing and placement.
 Dialogs can become more complex from a larger number of controls, a unique
combination of controls, or both. For those complex situations, allow adequate space
between control groupings to give the user a logical flow to parse.

L.A. Kandelekamge Programming with .NET


Following figure shows basic layout of visual studio.

Figure 23 Default layout of Visual studio


IntelliSense

IntelliSense is a general term for a variety of code editing features including it. There is code
completion, parameter info, quick info, and member lists. IntelliSense features are sometimes
called by other names such as code completion, content assist, and code hinting. VS Code
IntelliSense features are powered by a language service. A language service provides
intelligent code completions based on language semantics and an analysis of your source
code. If a language service knows possible completions, the IntelliSense suggestions will pop
up as you type. If you continue typing characters, the list of members like variables, methods,
etc.

Is filtered to include only members containing your typed characters.


Pressing Tab or Enter will insert the selected member. You can trigger IntelliSense in any
editor window by typing Ctrl + Space or by typing a trigger character 

L.A. Kandelekamge Programming with .NET


Figure 24 Example for Intelli Sense
Color Combination

In new versions of visual studio IDE uses the colors to indicate various types of code lines or
separate codes like methods, variables, classes, key words, comments and other types. This
color coding layout is very helpful when programming because programmer can identify
above mentioned code lines easily without mess. Because of these color codes, programmers
can create software or other solutions easier than other IDEs.

Figure 25 Example for color combination


As an ASP programmer, I have to use this because this IDE is very helpful and easy to work
with this one. Because of these facilities, I used this integrated development environment to
implement the software solution for XYZ Computer School.

L.A. Kandelekamge Programming with .NET


Task 4. Test the implemented examination management system

4.1. Critically review and test the implemented system and provide the identified
discrepancies, if any, of the application through an analysis of actual test results against
expected.

Testing is the very essential part of the software industry. Because without testing we cannot
identify the errors or something wrong. Testing is executing a system in order to identify any
gaps, errors, or missing requirements in contrary to the actual requirements. Testing process
is very essential part for software solutions because software solution gives the solutions for
any kind of tasks of particular system. Many small code parts include in a whole software.
Sometimes, these code parts not working properly due to hardware or software failures and
other matters. So, I have to test all of those code parts as a good and professional software
developer. If there is some matter in code parts, software and data can be corrupt. So, I create
the test plan to perform testing process for XYZ Institute`s online examination management
system.

Project Name Online Examination management system (XYZ Institute)


Login
Add new student, update, remove, view and search.
Add new lecturer, update, remove, view and search.
Add new course, update, remove, view and search.
Test plan objectives
Add new subject, update, remove, view and search.
Add new question, update, remove, view and search.
Access management.
Make exams
Test type White box testing / Black box testing
Test date 27nd September 2017
Tested by Lahiru Anjana Kandelekamge
Testing Process (Admin) Description
1. Login 1.1. Log to system according to username and
password.

L.A. Kandelekamge Programming with .NET


2. Student 2.1. Add new student to the system.
2.2. Update and remove entered student details.
2.3. Search book details.

3. Lecturer 3.1. Add new lecturer to the system.


3.2. Update and remove entered lecturer details.
3.3. Search lecturer details
4. Course 4.1. Add new course to the system.
4.2. Update and remove entered course details.
4.3. Search course details
5. Subject 5.1. Add new subject to the system.
5.2. Update and remove entered subject details.
5.3. Search subject details
6. Question 6.1. Add new question to the system.
6.2. Update and remove entered question details.
6.3. Search question details
7. Access Management 7.1. Create accounts for student and lecturer.
7.2. Update and remove created accounts.
7.3. Search accounts
Table 23 Admin test plan

Testing Process (Lecturer) Description


1. Question 1.1. Update and remove entered question details.
1.2. Search question details
Table 24 Lecturer test plan

Testing Process (Student) Description


1. Make exam 1.1. Load questions.
1.2. View questions
2. Results 2.1. Save results.
Table 25 Student test plan

L.A. Kandelekamge Programming with .NET


Test cases according to the test plan

1. Login

Test Case ID Test data


Case 1.1 // Login To System function
public static DataTable loginFunction(string user,string password)
{DBConnection.getMyConnection();
SqlCommand cmd = new SqlCommand("select * from tbl_User where
username='" + user + "' and password='" + password + "'", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
DBConnection.overConnection();
return dt;}
string access = "";
string name = "";
string nic = "";
String user = Txt_Login_Username.Text;
String pass = Txt_Login_Password.Text;
DataTable dt = Class_User.loginFunction(user,pass);
if (dt.Rows.Count == 1){
foreach (DataRow dr in dt.Rows){
name = dr[1].ToString();
access = dr[4].ToString();
nic = dr[5].ToString();}
MessageBox.Show("Logged as " + access);
if (access.Equals("Administrator")){
// Navigate to Main Window
Session["User"] = name;
Response.Redirect("Welcome_Admin.aspx", false);}
else if (access.Equals("Student")){
// Navigate to Main Window
Session["User"] = name;
Response.Redirect("Welcome_Student.aspx?nic=" + nic, false);}
else if (access.Equals("Lecturer")){
// Navigate to Main Window
Session["User"] = name;
Response.Redirect("Welcome_Lecturer.aspx", false);}}
else{MessageBox.Show("Please Check login credentials", "Login
Faild", MessageBoxButtons.OK, MessageBoxIcon.Warning);
Txt_Login_Username.Text = null;
Txt_Login_Password.Text = null;}
Purpose System needs to access multiple users. Without above function, user cannot
access to the system. Therefore, above code lines should be tested.
Results Show message including “Please Check login credentials” text.
Show message including “Logged as Administrator” text.
Show message including “Logged as Student” text.
Show message including “Logged as Lecturer” text.

L.A. Kandelekamge Programming with .NET


Table 26 Login test case

2. Student

Test Case ID Test data


Case 2.1 // add student to the DB
Class_Student.addStudent(title, fname, lname, nic, dob, address, gender,
mobile, home, email, course);

public static void addStudent(string title, string fname, string


lname, string nic, string dob, string address, string gender, string mobile,
string home, string email, string course)
{DBConnection.getMyConnection();
String query = "INSERT INTO tbl_student
(title,fname,lname,nic,dob,address,gender,mobile,home,email,course)
VALUES('" + title + "','" + fname + "','" + lname + "','" + nic + "','" +
dob + "','" + address + "','" + gender + "','" + mobile + "','" + home +
"','" + email + "','" + course + "')";
SqlCommand com = new SqlCommand(query, DBConnection.con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record saved successfully...", "SYSTEM ALERT",
MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{
MessageBox.Show("Record saving unsuccessful...", "SYSTEM ALERT",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();}

Purpose System needs student details to handle exams. So, admin have to add student
details. Therefore, this function should be tested.
Results Show message including “Record Saved Successfully…!” text.
Show message including “Record saving unsuccessful…!” text.
Table 27 Add student test case

Test Case ID Test data


Case 2.2 // Student update function
public static void updateStudent(string id, string fname, string
lname, string nic, string dob, string address, string mobile, string home,
string email, string course)
{DBConnection.getMyConnection();
String query = "UPDATE tbl_student SET course='" + course +
"',email='" + email + "',home='" + home + "',mobile='" + mobile +
"',address='" + address + "',dob='" + dob + "',nic='" + nic + "',lname='" +
lname + "',fname='" + fname + "' WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
com.ExecuteNonQuery();
MessageBox.Show("Record Modified Successfully...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);
DBConnection.overConnection();}
// Student remove function
public static void removeStudent(string id)
{DBConnection.getMyConnection();

L.A. Kandelekamge Programming with .NET


String query = "DELETE FROM tbl_student WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
int result = com.ExecuteNonQuery(); if (result == 1){
MessageBox.Show("Record Removed Successfully...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{MessageBox.Show("Record Removing Unsuccessful...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}DBConnection.overConnection();}
Purpose System needs to update and remove student details. So, admin have to modify
and remove student details. Therefore, these functions should be tested.
Results Show message including “Record Modified Successfully…!” text.
Show message including “Record Removed Successfully…!” text.
Show message including “Record Removing Unsuccessful…!” text.
Table 28 Update and Remove test case

Test Case ID Test data


Case 2.3 Class_Student.updateStudent(id, fname, lname, nic, dob, address, mobile,
home, email, course);
//Search by first name
public static DataTable searchByFirstName(String first_name)
{DBConnection.getMyConnection();
string qry = "SELECT * FROM tbl_student WHERE fname='" + first_name + "'";
SqlCommand cmd = new SqlCommand(qry, DBConnection.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}
//Search by last name
public static DataTable searchByLastName(String last_name)
{
DBConnection.getMyConnection();
string qry = "SELECT * FROM tbl_student WHERE lname='" +
last_name + "'";
SqlCommand cmd = new SqlCommand(qry, DBConnection.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}
//Search by NIC
public static DataTable searchByNIC(String nic)
{DBConnection.getMyConnection();
string qry = "SELECT * FROM tbl_student WHERE nic='" + nic + "'";
SqlCommand cmd = new SqlCommand(qry, DBConnection.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}
Purpose System needs to search student details. Because, without search functions
cannot update or remove. Therefore, these functions should be tested.
Results Load text boxes according to first name, last name or NIC
Table 29 Search student test case

L.A. Kandelekamge Programming with .NET


3. Lecturer

Test Case ID Test data


Case 3.1 // add lecturer to DB
public static void addLecturer(string title, string fname, string
lname, string nic, string dob, string address, string gender, string mobile,
string home, string email){
DBConnection.getMyConnection();
String query = "INSERT INTO [tbl_lecturer]
(title,fname,lname,nic,dob,address,gender,mobile,home,email) VALUES('" +
title + "','" + fname + "','" + lname + "','" + nic + "','" + dob + "','" +
address + "','" + gender + "','" + mobile + "','" + home + "','" + email +
"')";
SqlCommand com = new SqlCommand(query, DBConnection.con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Saved Successfully...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{
MessageBox.Show("Record Saving Unsuccessful...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();}
Purpose System needs lecturer details to handle questions. So, admin have to add
lecturer details. Therefore, this function should be tested.
Results Show message including “Record Saved Successfully…!” text.
Show message including “Record Saving unsuccessful…!” text.
Table 30 Add lecturer test case

Test Case ID Test data


Case 3.2 //update lecturer function
public static void updateLecturer(string id,string fname, string
lname, string nic, string dob, string address, string mobile, string home,
string email){try {DBConnection.getMyConnection();
String query = "UPDATE tbl_lecturer SET email='" + email +
"',home='" + home + "',mobile='" + mobile + "',address='" + address +
"',dob='" + dob + "',nic='" + nic + "',lname='" + lname + "',fname='" +
fname + "' WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
com.ExecuteNonQuery();
MessageBox.Show("Record Modified Successfully...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}

// remove lecturer function


public static void removeLecturer(string id){
try{DBConnection.getMyConnection();
String query = "DELETE FROM tbl_lecturer WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);

L.A. Kandelekamge Programming with .NET


int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Removed Successfully...",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{MessageBox.Show("Record Removing Unsuccessful...",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();}catch (Exception ex){
MessageBox.Show(ex.Message);}}
Purpose System needs to update and remove lecturer details. So, admin have to
modify and remove lecturer details. Therefore, these functions should be
tested.
Results Show message including “Record Modified Successfully…!” text.
Show message including “Record Removed Successfully…!” text.
Show message including “Record Removing Unsuccessful…!” text.
Table 31 Update and Remove lecturer test case

Test Case ID Test data


Case 3.3 //Search by first name
public static DataTable searchByFirstName(String first_name)
{DBConnection.getMyConnection();
string qry = "SELECT * FROM tbl_lecturer WHERE fname='" + first_name + "'";
SqlCommand cmd = new SqlCommand(qry, DBConnection.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}
//Search by last name
public static DataTable searchByLastName(String last_name){
DBConnection.getMyConnection();
string qry = "SELECT * FROM tbl_lecturer WHERE lname='" + last_name + "'";
SqlCommand cmd = new SqlCommand(qry, DBConnection.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}
//Search by NIC
public static DataTable searchByNIC(String nic){
DBConnection.getMyConnection();
string qry = "SELECT * FROM tbl_lecturer WHERE nic='" + nic + "'";
SqlCommand cmd = new SqlCommand(qry, DBConnection.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}
Purpose System needs to search lecturer details. Because, without search functions
cannot update or remove. Therefore, these functions should be tested.
Results Load text boxes according to first name, last name or NIC
Table 32 Search lecturer test case

L.A. Kandelekamge Programming with .NET


4. Course

Test Case ID Test data


Case 4.1 //add Course to DB
public static void addCoursew(string course,string description){
try{
DBConnection.getMyConnection();
String query = "INSERT INTO [tbl_course](cname,description)
VALUES('" + course + "','" + description + "')";
SqlCommand com = new SqlCommand(query, DBConnection.con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Addedd Successfully...!","SYSTEM
ALERT",MessageBoxButtons.OK,MessageBoxIcon.Information);}
else{
MessageBox.Show("Record Adding Unsuccessful...!",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();
}catch(Exception ex){
MessageBox.Show(ex.Message); }}
Purpose System needs course details to handle questions. So, admin have to add
course details. Therefore, this function should be tested.
Results Show message including “Record Saved Successfully…!” text.
Show message including “Record Saving unsuccessful…!” text.
Table 33 Add course test case

Test Case ID Test data


Case 4.2 // Update course
public static void updateCourse(string id,string course,string
description){DBConnection.getMyConnection();
String query = "UPDATE tbl_course SET description='" +
description + "',cname='" + course + "' WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
com.ExecuteNonQuery();
MessageBox.Show("Record Modified Successfully...!", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);
DBConnection.overConnection();}

// remove course
public static void removeCourse(string id){
DBConnection.getMyConnection();
String query = "DELETE FROM tbl_course WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Removed Successfully...!", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}

L.A. Kandelekamge Programming with .NET


else{
MessageBox.Show("Record Removing Unsuccessful...!", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); }
DBConnection.overConnection();}
Purpose System needs to update and remove course details. So, admin have to modify
and remove course details. Therefore, these functions should be tested.
Results Show message including “Record Modified Successfully…!” text.
Show message including “Record Removed Successfully…!” text.
Show message including “Record Removing Unsuccessful…!” text.
Table 34 Update and Remove course test case

Test Case ID Test data


Case 4.3 // Search course from DB according to course name
public static DataTable searchCourse(string course){
DBConnection.getMyConnection();
string qry = "SELECT * FROM tbl_course WHERE cname LIKE'" + course + "%'";
SqlCommand cmd = new SqlCommand(qry, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}

Purpose System needs to search course details. Because, without search functions
cannot update or remove. Therefore, these functions should be tested.
Results Load text boxes according to course
Table 35 Search course test case
5. Subject

Test Case ID Test data


Case 5.1 // Subject add function
public static void addSubject(string subject,string course,string
description){
try{DBConnection.getMyConnection();
String query = "INSERT INTO [tbl_subject]
(sname,cname,description) VALUES('" + subject + "','" + course + "','" +
description + "')";
SqlCommand com = new SqlCommand(query, DBConnection.con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Saved Successfully...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{
MessageBox.Show("Record Saving Unsuccessful...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();
}catch(Exception ex){
MessageBox.Show(ex.Message);}}
Purpose System needs subject details to handle questions. So, admin have to add
subject details. Therefore, this function should be tested.
Results Show message including “Record Saved Successfully…!” text.

L.A. Kandelekamge Programming with .NET


Show message including “Record Saving unsuccessful…!” text.
Table 36 Add subject test case

Test Case ID Test data


Case 5.2 //subject update function
public static void updateSubject(string id, string subject, string
course,string description){
try{DBConnection.getMyConnection();
String query = "UPDATE tbl_subject SET description='" +
description + "',cname='" + course + "',sname='" + subject + "' WHERE id='"
+ id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
com.ExecuteNonQuery();
MessageBox.Show("Record Modified Successfully...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}

// subject remove function


public static void removeSubject(string id){
try{DBConnection.getMyConnection();
String query = "DELETE FROM tbl_subject WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Removed Successfully...",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{
MessageBox.Show("Record Modifing Unsuccessful...",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}
Purpose System needs to update and remove subject details. So, admin have to modify
and remove subject details. Therefore, these functions should be tested.
Results Show message including “Record Modified Successfully…!” text.
Show message including “Record Removed Successfully…!” text.
Show message including “Record Removing Unsuccessful…!” text.
Table 37 Update and Remove subject test case

Test Case ID Test data


Case 5.3 // subject search function
public static DataTable searchSubject(string subject)
{DBConnection.getMyConnection();
string qry = "SELECT * FROM tbl_subject WHERE sname LIKE'" + subject + "%'";
SqlCommand cmd = new SqlCommand(qry, DBConnection.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}

L.A. Kandelekamge Programming with .NET


Purpose System needs to search subject details. Because, without search functions
cannot update or remove. Therefore, these functions should be tested.
Results Load text boxes according to subject
Table 38 Search subject test case

6. Question

Test Case ID Test data


Case 6.1 //add question function
public static void addQuestion(string subject,string question,string
ans1,string ans2,string ans3,string ans4,string correct_ans){
try{DBConnection.getMyConnection();
String query = "INSERT INTO [tbl_question]
(subject,question,ans1,ans2,ans3,ans4,correct) VALUES('" + subject + "','" +
question + "','" + ans1 + "','" + ans2 + "','" + ans3 + "','" + ans4 + "','"
+ correct_ans + "')";
SqlCommand com = new SqlCommand(query, DBConnection.con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Saved Successfully...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{
MessageBox.Show("Record Saving Unsuccessful...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}
Purpose System needs question details to handle questions. So, admin have to add
subject details. Therefore, this function should be tested.
Results Show message including “Record Saved Successfully…!” text.
Show message including “Record Saving unsuccessful…!” text.
Table 39 Add question test case

Test Case ID Test data


Case 6.2 // update question function
public static void updateQuestion(string id, string question, string
ans1, string ans2, string ans3, string ans4, string correct_ans,string
subject){try{DBConnection.getMyConnection();
String query = "UPDATE tbl_question SET subject='" + subject + "',correct='"
+ correct_ans + "',ans4='" + ans4 + "',ans3='" + ans3 + "',ans2='" + ans2 +
"',ans1='" + ans1 + "',question='" + question + "' WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
com.ExecuteNonQuery();
MessageBox.Show("Record Modified Successfully...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}

//remove question function


public static void removeQuestion(string id){
try{DBConnection.getMyConnection();
String query = "DELETE FROM tbl_question WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);

L.A. Kandelekamge Programming with .NET


int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Removes Successfully...",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{MessageBox.Show("Record removing Unsuccessful...",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}
Purpose System needs to update and remove question details. So, admin have to
modify and remove question details. Therefore, these functions should be
tested.
Results Show message including “Record Modified Successfully…!” text.
Show message including “Record Removed Successfully…!” text.
Show message including “Record Removing Unsuccessful…!” text.
Table 40 Update and Remove question test case

Test Case ID Test data


Case 6.3 // search question function
public static DataTable searchQuestion(string question){
DBConnection.getMyConnection();string qry = "SELECT * FROM
tbl_question WHERE question LIKE'" + question + "%'";
SqlCommand cmd = new SqlCommand(qry, DBConnection.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}

Purpose System needs to search question details. Because, without search functions
cannot update or remove. Therefore, these functions should be tested.
Results Load text boxes according to question
Table 41 Search question test case

7. Access Management

Test Case ID Test data


Case 7.1 // add user function
public static void addUsers(string fname,string nic,string
user,string password,string constant){
try{DBConnection.getMyConnection();
String query = "INSERT INTO [tbl_user]
(account,nic,username,password,access) VALUES('" + fname + "','" + nic +
"','" + user + "','" + password + "','" + constant + "')";
SqlCommand com = new SqlCommand(query, DBConnection.con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Account Created Successfully...!",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{
MessageBox.Show("Account Creating Unsuccessful...!",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();}

L.A. Kandelekamge Programming with .NET


catch (Exception ex){
MessageBox.Show(ex.Message);}
}
Purpose Student and lecturer need to access to the system. So, access to the system
they need user accounts. Admin can create accounts for them through this
function. Therefore, this function should be tested.
Results Show message including “Account Created Successfully…!” text.
Show message including “Account Creating unsuccessful…!” text.
Table 42 Add user test case

Test Case ID Test data


Case 7.2 // update user function
public static void updateUser(string id, string user, string
password){try{
DBConnection.getMyConnection();
String query = "UPDATE tbl_user SET password='" + password +
"',username='" + user + "' WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
com.ExecuteNonQuery();
MessageBox.Show("Account Modified Successfully...!", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}

//remove user function


public static void removeUser(string id){
try{
DBConnection.getMyConnection();
String query = "DELETE FROM tbl_user WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Account Removed Successfully...!",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{
MessageBox.Show("Account Removing Unsuccessful...!",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}
Purpose System needs to update and remove user account. So, admin have to modify
and remove accounts. Therefore, these functions should be tested.
Results Show message including “Account Modified Successfully…!” text.
Show message including “Account Removed Successfully…!” text.
Show message including “Account Removing Unsuccessful…!” text.
Table 43 Update and Remove accounts test case

Test Case ID Test data

L.A. Kandelekamge Programming with .NET


Case 7.3 // Search user function
public static DataTable searchUser(string nic){
DBConnection.getMyConnection();
string qry = "SELECT * FROM tbl_user WHERE nic LIKE'" + nic +
"%'";
SqlCommand cmd = new SqlCommand(qry, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;
}
Purpose System needs to search accounts. Because, without search functions cannot
update or remove. Therefore, these functions should be tested.
Results Load text boxes according to NIC
Table 44 Search accounts test case

Lecturer Menu

1.Question

Test Case ID Test data


Case 1.1 // update question function
public static void updateQuestion(string id, string question, string
ans1, string ans2, string ans3, string ans4, string correct_ans,string
subject){try{DBConnection.getMyConnection();
String query = "UPDATE tbl_question SET subject='" + subject + "',correct='"
+ correct_ans + "',ans4='" + ans4 + "',ans3='" + ans3 + "',ans2='" + ans2 +
"',ans1='" + ans1 + "',question='" + question + "' WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
com.ExecuteNonQuery();
MessageBox.Show("Record Modified Successfully...", "SYSTEM
ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}

//remove question function


public static void removeQuestion(string id){
try{DBConnection.getMyConnection();
String query = "DELETE FROM tbl_question WHERE id='" + id + "'";
SqlCommand com = new SqlCommand(query, DBConnection.con);
int result = com.ExecuteNonQuery();
if (result == 1){
MessageBox.Show("Record Removes Successfully...",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Information);}
else{MessageBox.Show("Record removing Unsuccessful...",
"SYSTEM ALERT", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}
Purpose System needs to update and remove question details. So, admin have to
modify and remove question details. Therefore, these functions should be
tested.
Results Show message including “Record Modified Successfully…!” text.

L.A. Kandelekamge Programming with .NET


Show message including “Record Removed Successfully…!” text.
Show message including “Record Removing Unsuccessful…!” text.
Table 45 Update and Remove question test case

Test Case ID Test data


Case 1.2 // search question function
public static DataTable searchQuestion(string question){
DBConnection.getMyConnection();string qry = "SELECT * FROM
tbl_question WHERE question LIKE'" + question + "%'";
SqlCommand cmd = new SqlCommand(qry, DBConnection.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
DBConnection.overConnection();
return dt;}

Purpose System needs to search question details. Because, without search functions
cannot update or remove. Therefore, these functions should be tested.
Results Load text boxes according to question
Table 46 Search question test case
Student Menu

1.New Exam

Test Case ID Test data


Case 1.1 // Load Questions to the session variables
public static DataTable loadQuestion(String subject){
DBConnection.getMyConnection();
String query = "SELECT TOP 15 question FROM tbl_question WHERE
subject='" + subject + "' ORDER BY NEWID()";
SqlCommand com = new SqlCommand(query, DBConnection.con);
SqlDataAdapter sda = new SqlDataAdapter(com);
DataTable dta = new DataTable();
sda.Fill(dta);
DBConnection.overConnection();
return dta;}
DataTable dta = Class_Exam.loadQuestion(subject_name);
Session["Q1"] = dta.Rows[0][0].ToString();
Session["Q2"] = dta.Rows[1][0].ToString();
Session["Q3"] = dta.Rows[2][0].ToString();
Session["Q4"] = dta.Rows[3][0].ToString();
Session["Q5"] = dta.Rows[4][0].ToString();
Session["Q6"] = dta.Rows[5][0].ToString();
Session["Q7"] = dta.Rows[6][0].ToString();
Session["Q8"] = dta.Rows[7][0].ToString();
Session["Q9"] = dta.Rows[8][0].ToString();
Session["Q10"] = dta.Rows[9][0].ToString();
Session["Q11"] = dta.Rows[10][0].ToString();

L.A. Kandelekamge Programming with .NET


Session["Q12"] = dta.Rows[11][0].ToString();
Session["Q13"] = dta.Rows[12][0].ToString();
Session["Q14"] = dta.Rows[13][0].ToString();
Session["Q15"] = dta.Rows[14][0].ToString();
Purpose System needs to load 15 questions for the exam. So, it should be random
records. Without this function, system cannot load questions. Therefore, this
should be checked.
Results Parsing the questions to the each page.
Table 47 Load questions to sessions test case

Test Case ID Test data


Case 1.2 // Load Selected questions to the page labels according to index
public static void addQuestion(System.Web.UI.WebControls.Label
question, System.Web.UI.WebControls.RadioButtonList answer_list, String
index, System.Web.UI.WebControls.HiddenField correct_answer){
try{
con.Open();
String query = "SELECT question,ans1,ans2,ans3,ans4,correct
FROM tbl_question WHERE question='" + index + "'";
SqlCommand com = new SqlCommand(query, con);
SqlDataReader rd = com.ExecuteReader();
rd.Read();
question.Text = rd[0].ToString();
answer_list.Items.Add(rd[1].ToString());
answer_list.Items.Add(rd[2].ToString());
answer_list.Items.Add(rd[3].ToString());
answer_list.Items.Add(rd[4].ToString());
correct_answer.Value = rd[5].ToString();
con.Close();
}catch (Exception ex){
MessageBox.Show("error" + ex);}}
Purpose System needs to view loaded questions in the pages. So, Without this
function, system cannot view questions. Therefore, this should be checked.
Results View loaded questions in the pages
Table 48 View loaded questions test case
2.Results
Test Case ID Test data
Case 2.1 Class_Exam.addQuestionToDB(first_name, sub, NIC);

// Add mark details to the DB


public static void addQuestionToDB(string first_name,string
sub,string NIC){
try{
DBConnection.getMyConnection();
String query = "INSERT INTO [tbl_grades]
(fname,subject,nic,marks) VALUES('" + first_name + "','" + sub + "','" + NIC
+ "','" + grade + "')";
SqlCommand com = new SqlCommand(query, DBConnection.con);
com.ExecuteNonQuery();
DBConnection.overConnection();}
catch (Exception ex){
MessageBox.Show(ex.Message);}}

L.A. Kandelekamge Programming with .NET


Purpose System needs to add student grades after the exam finished. So, this function
helps system to save grades. Therefore, this should be checked.
Results Save data in the Database.
Table 49 Add grades to database test case

Discrepancies

I was trying to load all the questions to the one page. But as the instructions of the lecturer, I
have to change my mind and add the one question per page. So, I have to use sessions to
fulfill this requirement and it took some time to implement this session. After that I have to
find retrieving methods and I have found it.

And also, I have to find the solution for the result counting, because, we can get results
easily, if the questions and answers are in same page. But in this situation, I have to find the
solution for this matter. As the solution, I have created the result count method and this
method gets 02 parameters called correct answer and selected answer. After parsing those
parameters, result count method counts the results.

So, these are the main difficulties that I have to face.

L.A. Kandelekamge Programming with .NET


4.2. Evaluate independent feedback of the users to identify the limitations of the
implemented system and make recommendations for further improvements to
overcome the limitations identified.

This online examination management application is the newly created one. Therefore, this
application wants test and identify the errors to fix them. Without testing the newly created
software solution, we cannot assure that software. It can be included many bugs or irrelevant
thing to client and as a programmer, we should handle all of them. That’s how a qualified and
error free software solution created. In testing phase, programmer wants to get details from
clients because clients should have to give accurate details to the programmers. But
sometimes, this process can be little bit hard due to many reasons like time management
issues, busyness of the clients or responsible persons and others. But this phase is the most
important and very essential one. Hence, I created the questionnaire for gather information
about this software. Because of using this method, I can gather information effectively.

When we using questionnaire, tester can identify that what should be tested and software`s
functionality. Therefore, tester can evaluate the software easily. After the testing process,
tester can fill the questionnaire and handover it to the programmer. Then programmer check
again the software and he can fix the identified bugs. This is the usual process of testing. If
we use questionnaire, we can compare the properties of software with those of hardware and
difference in their development, management and control processes understand different
activities and focuses of software development process and its work product at different
steps.

L.A. Kandelekamge Programming with .NET


Here is the questionnaire

Name/Designation/Department: - ……………………………………………………….....

Excellent Average Poor

1. Is this system easy to install?

2. Is this software user friendly?

3. Response time of the functions?

4. How is the security of the system?

5. How is the user manual?

6. How likely are you to recommend this?

7. Is it easy to go through the function?

8. Give the feedback about functions.

9. What do you think about the system (limitations)?

10. Give your idea to improve this software

L.A. Kandelekamge Programming with .NET


This online examination management system is the newly created software solution. So,
school`s staff members cannot use this system quickly. Because, they had used this system
before. So, I have to practice them to handle this system correctly. It is the one of my
responsibility. Therefore, I started parallel run program with school staff. Because of that
school staff can get a quick idea about function of the system and also, they can learn how to
operate them. So, I provide above feedback form to them when they perform parallel run
program. I have attached 02 feedback forms among of others. You can find them in appendix
B and C.

Future Improvements

XYZ School`s examination management system, the newly created software solution is well
tested and functional software solution. But sometimes, client may hope some other functions
from system. If client ask about these functions, I have to implement them as a modification
of the system. Before modify the system, we have to consider older logics and other facts like
data safety. Because, sometimes, system will crash with modifications. But I must ready to
modify the system, if client asks.

Examination management system provide access privileges within students and lecturers and
administrator also. And also, using this system, administrator can create the user accounts for
students and lecturers to access to the system. After that, students and lecturers can log in to
the system using that created user credentials and these two kinds of users have not a
privilege to modify own access credentials. Administrator can see the all of credentials and
member cannot see the even own credentials. I prevented it for security reasons. But
according to the feedback forms that I included in appendix they want to show password

L.A. Kandelekamge Programming with .NET


from the system. Lecturers want to change the own access credentials through the system.
Therefore, I will give this requirement as a version update.

Mr. Madushan pointed out the very important matter and request the solution for that matter.
The matter is data safety. Currently, user cannot get backups through this system because I
didn`t provide that facility. But, they need this function because, these details are the most
important thing in the whole system and it should be accurate. Sometimes, system data can be
corrupted due to wrong operation or external factor. At that time, they can save their stored
details if they can get a backup from system. Therefore, I will give the solution for this matter
in future.

In this system, I have hidden some data form users. Some tables don`t view some user
inputted data, because, that data doesn`t want to show to the users in the tables, because, I
have provided the search function for search all the user inputted details. Therefore, I
removed some columns when showing them to the users. But Mr. Madushan wants to show
all the user inputted date in the tables. It is very easy to me to show that data again. So, I will
create a software update for this and with this update, school staff can see all the user inputted
data in the tables.

Ms. Lakshmi requested the notification system. In current system, there is no any notification
system. According to his feedback form, she suggested the 02 methods for notification
system. First one is via email. Email is the speed method for notification and I can distribute
examination marks, received time slots, if the student have through the email. This is the
good technology for notifications. Because, emails are safe and quick. With this function,
students cannot cheat to their parents. Sometimes, student can be forgotten to time slots and
sometimes they can be forgotten the marks of the exam. When I provide this email
notification facility, administrator doesn’t want to worry about that, because, this function
will be fully automated one. The other one is SMS. Short message service is also speed way
to spread notifications. Because, in present we all have a mobile device. It has become a very
common device. So, I decided to add these facility to the library management system for
giving best solution for the OEMS.

Ms. Lakshmi faced the small problem when she is doing parallel run. She entered the
quotation mark and it is unclosed one. When submitting that data system shows the error
message. Actually, sometimes, they want to add single or double quotation signs when data

L.A. Kandelekamge Programming with .NET


adding. In any case, if they forgot to close that quotation, system shows the error message.
So, I have to fix this bug through software update.

Mr. Madushan noticed one thing about the system and they did not requested it before. But
now they wanted it to add this system. Mr. Madushan requested the pre-check function when
adding details to the system. Actually, this request is the very suitable one for this system,
because, this system is an examination management system and it should be very accurate.
So, he requested this. After this function added to the system, system can check the similarity
between newly entered details and existing details. Therefore, system allows to prevent the
wrong and existing details insertion. Because of that, system data becomes more reliable and
accurate. This function generates a warning message, if user input same details to the fields
and user can stop the data inputting process after seeing this warning message.

Ms. Lakshmi responsible for exams. So, she has monitored about the exam system and exam
related functions. In the current system, they need to monitor exam time manually. But she
needed the time calculation function for the exams. Actually, this is the most suitable
function for this system, because this is the examination management system. With this
function, they don`t need to monitor exams manually and when the time ends, the exam will
be closed by the system and it is a very accurate and reliable. After closing the exam, system
will show the exam results. So, this function should definitely add to the system.

Finally, I went to school and I met the other staff members for getting their ideas personally.
There is exist above mentioned matters actually and introduced above mentioned solutions
and time frames to them. So, they agreed. Therefore, I will provide version update soon.

L.A. Kandelekamge Programming with .NET


4.3. Prepare a user documentation to properly guide the users of the implemented
system and the technical documentation for the support and maintenance of the system.

User Document

XYZ INSTITUTE
Online Examination Management System

L.A. Kandelekamge Programming with .NET


(OEMS)

User Document

Table of Contents

1. Introduction………………………………………………….99
2. Installing the Software………………………………………99
2.1. Hardware and software
requirements………………...…99
2.2. Initial Installation....
……………………………………..100
3. User Interface Guide………………………………………...101 - 114

L.A. Kandelekamge Programming with .NET


1. Introduction

XYZ institute is the leading institute among other institutions. But XYZ institute currently
use paper based manual system to exams and to perform other day to day activities. Paper
based system has many limitations and problems. Institute staff has to face all of this
problem. So, they decided to change this manual, old system to computer based system. A
qualified web based system is always reliable and error free. So, they don`t want to worry and
web based system handle all the exams and calculations. OEMS helps them to handle all of
day to day activities like student registration for courses, add new question according to
subject, exam limitations and others.

2. Installing the software (OEMS)

XYZ Institute`s online examination management system can setup easily. Institute staff can
implement the system in few steps. Please follow the install instructions.

2.1. Hardware and software requirements

Before you install this system to your computer, you must fulfill following requirements.
This will have an impact for software`s performance.

Hardware requirements

 Dual Core (1.5Ghz minimum) Processor

L.A. Kandelekamge Programming with .NET 100


 1 GB Main Memory (2 GB Recommended)
 64 MB Video Memory
 80 GB HDD
 DVD Rom/Writer
 UPS

Software requirements

 Windows 7 or Higher
 .Net Framework 4.5
 Microsoft Visual C++ 2012 Redistributable (x86/ x64)
 Proper anti-virus
 Google Chrome or Internet Explorer (version 11 or higher)

2.2. Initial Installation

Install Visual C++ 2012 redistributable

Figure 26 VC redistributable installation

 Double click on the executable file under install/vcredist_x64.exe and Tick “I agree to the
license, terms and conditions” and then click Install button.
 It will take few minutes to install.

L.A. Kandelekamge Programming with .NET 101


Figure 27 VC redistributable installation

Figure 28 VC redistributable installation


If the installation is finished, then click restart.
3. User Interfaces Guide.

3.1. Graphical User Interfaces

 Login
 Student
o Add Student
o Change Student

L.A. Kandelekamge Programming with .NET 102


o View Student
o View Grades
 Lecturer
o Add lecturer
o Change Lecturer
o View Lecturer
 Course
o Add Course
o Change Course
o View Course

 Subject
o Add Subject
o Change Subject
o View Subject
 Question
o Add Question
o Change Question
o View Question
 Access management
o Create Student Account
o Create Lecturer Account
o Change Accounts
o View Accounts
 Exam
o New Exam

Login

L.A. Kandelekamge Programming with .NET 103


Figure 29 Login interface
Input correct access credentials to access to the system. If credentials are incorrect, you
cannot access to the system through this interface. After inputting the correct credentials, you
have to click on ‘Login’ button and system will show your access level as a system alert.

Admin Dashboard

Figure 30 Admin dashboard

L.A. Kandelekamge Programming with .NET 104


This interface has 06 choices and admin can select one of this 06 choices. For example, if
admin wants to add a new student to the system, admin wants to select ‘Add Student’ sub
category under ‘Student’.

Add Student

Figure 31 Add student interface

If admin wants to add a new student, admin needs to select this interface. After selecting this,
admin can add the student details and click on ‘Save’ button. Then system will store the
student details in the database. If admin wants to go back, click on ‘Cancel’ button.

Change Student

L.A. Kandelekamge Programming with .NET 105


Figure 32 Change student interface
If admin wants to modify or remove student details, admin needs to select this interface.
Admin can search students by using student`s first name, last name or NIC no. If admin
wants to update, click on ‘Update’ button and if admin wants to remove current record just
click on ‘Remove’ button.

View Student

Figure 33 View student interface


Admin can view all the students through this interface.

View Grades

L.A. Kandelekamge Programming with .NET 106


Figure 34 Student grades interface
This interface shows the all student grades of the exams. And also, admin can count the
attempts of the each student.

Add Lecturer

Figure 35 Add lecturer interface

L.A. Kandelekamge Programming with .NET 107


If admin wants to add a new lecturer, admin needs to select this interface. After selecting this,
admin can add the lecturer details and click on ‘Save’ button. Then system will store the
lecturer details in the database. If admin wants to go back, click on ‘Cancel’ button.

Change Lecturer

Figure 36 Change lecturer interface


If admin wants to modify or remove lecturer details, admin needs to select this interface.
Admin can search lecturers by using lecturer`s first name, last name or NIC no. If admin
wants to update, click on ‘Update’ button and if admin wants to remove current record just
click on ‘Remove’ button.

View Lecturer

Figure 37 View lecturer interface


Admin can view all the lecturer through this interface.

L.A. Kandelekamge Programming with .NET 108


Add Course

Figure 38 Add course interface


If admin wants to add a new course, admin needs to select this interface. After selecting this,
admin can add the course details and click on ‘Save’ button. Then system will store the
course details in the database. If admin wants to go back, click on ‘Cancel’ button.

Change Course

Figure 39 change course interface

L.A. Kandelekamge Programming with .NET 109


If admin wants to modify or remove course details, admin needs to select this interface.
Admin can search course by using course name. If admin wants to update, click on ‘Update’
button and if admin wants to remove current record just click on ‘Remove’ button.

View Course

Figure 40 View course Interface


Admin can view all the courses through this interface.

Add Subject

Figure 41Add subject interface

L.A. Kandelekamge Programming with .NET 110


If admin wants to add a new subject, admin needs to select this interface. After selecting this,
admin can add the subject details and click on ‘Save’ button. Then system will store the
subject details in the database. If admin wants to go back, click on ‘Cancel’ button.

Change Subject

Figure 42 Change subject interface


If admin wants to modify or remove subject details, admin needs to select this interface.
Admin can search course by using subject name. If admin wants to update, click on ‘Update’
button and if admin wants to remove current record just click on ‘Remove’ button.

View Subject

Figure 43 View subject interface


Admin can view all the subjects through this interface.

L.A. Kandelekamge Programming with .NET 111


Add Question

Figure 44 Add question interface


If admin wants to add a new question, admin needs to select this interface. After selecting
this, admin can add the question details and click on ‘Save’ button. Then system will store the
questions in the database. If admin wants to go back, click on ‘Cancel’ button.

Change Question

Figure 45 Change question interface


If admin wants to modify or remove questions, admin needs to select this interface. Admin
can search question by using question. If admin wants to update, click on ‘Update’ button and
if admin wants to remove current record just click on ‘Remove’ button.

L.A. Kandelekamge Programming with .NET 112


View Question

Figure 46 View question interface


Admin can view all the questions through this interface.
Create Student user accounts

Figure 47 Create student user account interface


If admin wants to create student accounts, admin needs to select this interface. After selecting
this, admin can add the create student accounts and click on ‘Save’ button. Then system will
store the account details in the database. If admin wants to go back, click on ‘Cancel’ button.

L.A. Kandelekamge Programming with .NET 113


Create Lecturer user accounts

Figure 48 Create lecturer user accounts


If admin wants to create lecturer accounts, admin needs to select this interface. After
selecting this, admin can add the create lecturer accounts and click on ‘Save’ button. Then
system will store the account details in the database. If admin wants to go back, click on
‘Cancel’ button.

Change User Accounts

Figure 49 Change user accounts

L.A. Kandelekamge Programming with .NET 114


If admin wants to modify or remove accounts, admin needs to select this interface. Admin
can search user by using NIC no. If admin wants to update, click on ‘Update’ button and if
admin wants to remove current record just click on ‘Remove’ button.

View User Accounts

Figure 50 View user accounts


Admin can view all the user accounts according to access level through this interface.

Lecturer Dashboard

Figure 51 Lecturer dashboard interface


This interface has 02 choices and lecturer can select one of this 02 choices.

L.A. Kandelekamge Programming with .NET 115


Student Dashboard

Figure 52 Student dashboard interface


This interface has 01 choices and student have to select that.

Exam Selection

Figure 53 Exam selection interface


When doing an exam, student have to select the subject first, because exams exist according
to subjects. This interface shows the selected course according to logged student and student
need to select the subject and click on ‘New Exam’ button to begin the exam.

L.A. Kandelekamge Programming with .NET 116


Technical Document

 purpose

This technical document describes all the features and requirements of the newly created
examination management software. I have created this for programmers in our side.
Therefore, this should be very accurate. And also, programmers can get a complete idea and
this guide to build the software solution for XYZ School. Users also use this document to get
and exact idea about system and how to interact with function in the system.

 Introduction

XYZ is the leading IT school. This is the very famous and well qualified school for higher
educations in IT. But XYZ School is using the paper base system to keep records of the
student examination details and lecturer details. This paper base manual system has many
limitations and problems. So, XYZ School management decided to switch this manual system
into automated computer based system. They hope to solve problems with this automated
system. With this newly created system, they can do their day to day activities like add
students to the courses, keep student, lecturer, modules and exam details easily.

 Functions of the system

OEMS

Admin Functions Lecturer Functions Student Functions

Manage student Manage lecturer Manage Doing exams


details details questions

Manage Course Manage subject View exam View exam


details details grades grades

Manage user Manage


access questions

Manage exam
results

Figure 54 System functions

L.A. Kandelekamge Programming with .NET 117


 Functional requirements

The Functional Requirements shows the operations and activities that a system must be able
to perform. This is designed to be read by a general audience. Readers should understand the
system, but no particular technical knowledge should be required to understand the
document. I mentioned the functions available for Administrator, Lecturer and Students in
here.

Functional requirements of Administrator

 Login
This is primary security step in this system and admin should enter valid user name and
password to go through this function. Otherwise admin cannot access to the system.

 Add students
Admin can add student details using this function.

 Update student details


Admin can modify existing student details using this function.

 Remove student
Admin can remove unwanted student details using this function.

 Search student
Admin can search student details according to first name, last name or NIC.

 View grades
Admin can view student`s exam grades using this function.

 Add lecturer
Admin can add lecturer details using this function.

 Update lecturer details


Admin can modify existing lecturer details using this function.

L.A. Kandelekamge Programming with .NET 118


 Remove lecturer
Admin can remove unwanted lecturer details using this function.

 Search lecturer
Admin can search lecturer details according to first name, last name or NIC.

 Add Course
Admin can add course details using this function.

 Update Course details


Admin can modify existing course details using this function.

 Remove Course
Admin can remove unwanted course details using this function.

 Search Course
Admin can search course details according to course name.

 Add subject
Admin can add subject details using this function.

 Update subject details


Admin can modify existing subject details using this function.

 Remove subject
Admin can remove unwanted subject details using this function.

 Search subject
Admin can search subject details according to subject name.

 View subject
View Subject according to course.

L.A. Kandelekamge Programming with .NET 119


 Add question
Admin can add question details using this function.

 Update question details


Admin can modify existing question details using this function.

 Remove question
Admin can remove unwanted question details using this function.

 Search question
Admin can search question details.

 View question
View questions according to subject.

 Create user account for student


Admin can create user accounts for students using this function.

 Create user account for lecturer


Admin can create user accounts for lecturer using this function.

 Update user account details


Admin can modify existing user account details using this function.

 Remove question
Admin can remove unwanted user accounts using this function.

 Search question
Admin can search user details according to NIC.

 Log out
Admin can logout from the system.

L.A. Kandelekamge Programming with .NET 120


Functional requirements for lecturer

 Login
Lecturer can login to the system by entering accurate username and password.

 Update question details


Lecturer can modify existing question details using this function.

 Remove question
Lecturer can remove unwanted question details using this function.

 Search question
Lecturer can search question details.

 View question
View questions according to subject.

 View grades
Lecturer can view student`s exam grades using this function.

 Log out
Lecturer can logout from the system.

Functional requirements for student

 Login
Student can login to the system by entering accurate username and password.

 Doing an exam
Student can make an exam according to subject using this function.

 View grades
Student can view own exam grades using this function.

L.A. Kandelekamge Programming with .NET 121


 Log out
Student can logout from the system.

Non-Functional Requirements

Basically, Non-functional requirements describe how the system works, while functional


requirements describe what the system should do.

Usability
 Users can work with software easily.
 User don’t want to add same details over and over again.
 User can search relevant details easily.
 All the functions are quick and simple.
 User can perform many functions in one interface.

Portability
 This is windows based system. So, this software works on windows platform only.

Operability
 Users - School authorized staff members, Students.
 Required Software – Visual C++ 2010/2013 redistributable.

Security
 All the important data adding part done by administrator. Because it prevents the
interference of unauthorized persons.
 Student can log in to the system but they have not access privileges to important tasks.
 Only administrator can access to the user access management.

Performance
 System functions and database response quickly.
 This system available in anytime.
 Because of using special techniques greatly decreases the dump file count and because of
that system will be fast starting and functioning.

L.A. Kandelekamge Programming with .NET 122


Cultural, Political and Legal requirements
 System compiles all the government rules and conditions.
 According to the agreement, provided the best solution for XYZ School.
 There are no any other religion symbols and others.

User Interfaces requirements


 Interfaces are user friendly and eye catching.
 Used good color combination.
 Reduce eye strain in long sessions.

Hardware requirements
 Dual Core (1.5Ghz minimum) Processor
 1 GB Main Memory (2 GB Recommended)
 64 MB Video Memory
 80 GB HDD
 DVD Rom/Writer
 UPS

Software requirements
 Windows 7 or Higher
 .Net Framework 4.5
 Microsoft Visual C++ 2012 Redistributable (x86/ x64)
 Proper anti-virus

Main Inputs to the system


 Student details
 Lecturer details
 Course details
 Subject details
 Question details

Main Outputs to the system


 Module wise exam papers
 View all the entered details

L.A. Kandelekamge Programming with .NET 123


Database
Database is the main storage unit in this system. All the entered data stored in database tables.
So, User and programmers want to get an exact idea about system`s database. Below tables
show the database table definition.
 Table student

Column Name Data Type Description


Id int Store batch ID, Primary Key, Not Null,
Identity
title varchar(10) Store title, Allow Null
fname varchar(50) Store first name, Allow Null
lname varchar(50) Store last name, Allow Null
nic varchar(10) Store NIC no, Allow Null
dob varchar(10) Store date of birth, Allow Null
address varchar(MAX) Store address, Allow Null
gender varchar(10) Store gender, Allow Null
mobile varchar(10) Store mobile no, Allow Null
home varchar(10) Store home no, Allow Null
email varchar(50) Store email, Allow Null
course varchar(50) Store course name, Allow Null
Table 50 table student

 Table lecturer

Column Name Data Type Description


Id int Store batch ID, Primary Key, Not Null,
Identity
title varchar(10) Store title, Allow Null
fname varchar(50) Store first name, Allow Null
lname varchar(50) Store last name, Allow Null
nic varchar(10) Store NIC no, Allow Null
dob varchar(10) Store date of birth, Allow Null
address varchar(MAX) Store address, Allow Null
gender varchar(10) Store gender, Allow Null
mobile varchar(10) Store mobile no, Allow Null
home varchar(10) Store home no, Allow Null
email varchar(50) Store email, Allow Null
course varchar(50) Store course name, Allow Null
Table 51 Table Lecturer

 Table course

Column Name Data Type Description


id int Store course ID, Primary Key, Not Null,
Identity
cname varchar(50) Store course name, Allow Null
description varchar(MAX) Store description, Allow Null
Table 52 table course

L.A. Kandelekamge Programming with .NET 124


 Table subject

Column Name Data Type Description


id int Store subject ID, Primary Key, Not Null,
Identity
sname varchar(50) Store subject name, Allow Null
cname varchar(50) Store course name, Allow Null
description varchar(MAX) Store description, Allow Null
Table 53 Table subject

 Table question

Column Name Data Type Description


id int Store question ID, Primary Key, Not Null,
Identity
question varchar(MAX) Store question, Allow Null
ans1 varchar(MAX) Store answer 1, Allow Null
ans2 varchar(MAX) Store answer 2, Allow Null
ans3 varchar(MAX) Store answer 3, Allow Null
ans4 varchar(MAX) Store answer 4, Allow Null
correct varchar(MAX) Store correct answer, Allow Null
subject varchar(MAX) Store subject name, Allow Null
Table 54 table question

 Table user

Column Name Data Type Description


id int Store user ID, Primary Key, Not Null, Identity
account varchar(MAX) Store account name, Allow Null
username varchar(50) Store username, Allow Null
password varchar(50) Store password, Allow Null
access varchar(50) Store access level, Allow Null
nic varchar(50) Store nic, Allow Null
Table 55 Table user

 Table grades

Column Name Data Type Description


id int Store user ID, Primary Key, Not Null, Identity
fname varchar(50) Store first name, Allow Null
subject varchar(50) Store subject, Allow Null
nic varchar(50) Store nic no, Allow Null
marks varchar(10) Store student marks, Allow Null
Table 56 Table grades

L.A. Kandelekamge Programming with .NET 125


 Table Admin

Column Name Data Type Description


Id int Store batch ID, Primary Key, Not Null,
Identity
title varchar(10) Store title, Allow Null
fname varchar(50) Store first name, Allow Null
lname varchar(50) Store last name, Allow Null
nic varchar(10) Store NIC no, Allow Null
dob varchar(10) Store date of birth, Allow Null
address varchar(MAX) Store address, Allow Null
gender varchar(10) Store gender, Allow Null
mobile varchar(10) Store mobile no, Allow Null
home varchar(10) Store home no, Allow Null
email varchar(50) Store email, Allow Null
course varchar(50) Store course name, Allow Null
Table 57 Table admin

L.A. Kandelekamge Programming with .NET 126


Conclusion

XYZ Institute is the leading institute for the IT education. They provide all the IT related
courses to the students with any age limit. Institute has a great exam system to award students
and measure student knowledge limit about the subjects. This exam system is currently paper
based one. So, they have to face many problems with this paper based manual system. To
solve these problems, they have decided to implement the online examination management
system to their institute and it must be very accurate one. So, they hired me to implement the
online examination management system for them. I was used ASP.net web based
programming language to implement this web application. And also, I have to follow the
instructions of the assignment. So, I am going to introduce tasks briefly.

In task 01 I have to identify the main characteristics and principles of the .net framework.
This is the very important part of this assignment, because, this is the approach of the
software developing. If we don`t know about .net framework, how can I use .net framework
to implement the web based application. So first of all I have to learn about .net framework.
And also I have compare the best suitable .net framework version to develop this web based
application. I have chosen the .net framework 4.5 version to develop this web application and
it brings many important updates for the .net framework. Finally, I have to identify the
supportive components of the .net framework. These are helped the .net framework to
working properly and efficiently. So, task 01 is the most theoretical and boring. But it gives
me to many knowledges about the .net framework and I am going to use that knowledge in
my whole future IT life.

IN task 02, I have to design the web based application. For designing, I have to draw the few
diagrams and this diagram help to get an idea about the system. In here I mentioned the class
diagram, ER diagram, activity diagrams and also, user interface designs. All the classes and
it`s variables and methods with their access modifiers are viewed by the class diagram. All
the database tables, column names and their relationships are shown by the ER diagram and
finally all the activities between user and the system are represented by the activity diagram.
In this task I also mentioned the file structures of this designed system. This is very similar to
class diagram and file structures show the variables, methods with their modifiers. Actually, I
have to mention the suitable deployment environment for this web based application.
Because, many web sites can access via mobiles, PDAs, and other hand-held devices. But I
have to prevent accessing from hand held devices. Because this is the examination

L.A. Kandelekamge Programming with .NET 127


management system. Exams must be accurate and transparent. But we cannot hold that
standards, if we give the permissions to the accessing the web application. Therefore, I
selected the web based deployment environment to deploy this web based application.

In task 03, I have to implement the system with help of designed diagrams and structures. In
here I have provided evidences to implemented system. In programming, as a programmer I
have to use main 03 control structures when implementing the any kind of software. Without
these 03, we cannot create software. Such as selection, repetition and sequence control
structures. If else block, switch case blocks are included in selection control structure. While,
do-while, foreach blocks are included in repetition structure. All of other code lines are
belongs to sequence structure. And also, I have to use error handling techniques to catch and
view the error of the web application. Without error handlers, we cannot use the system
properly, because, some errors are pop up suddenly and when it pops up, the whole system
stuck and we cannot use that software any more. But if we use error handlers, it handles the
errors without impact to the system. Finally, I have to select the suitable integration
development environment to implement the examination management system. So, I have
selected the visual studio IDE, because it has attractive features and tools for easy coding.
Break points, color combination, inteli sense are the fascinating features of this IDE and
that’s why I selected this IDE.

In task 04, I have to do the most important thing of the system called testing. Without testing
we cannot assure that software solution, because, testing part helps the identify discrepancies
and errors of the system. When testing we can identify the properly working areas also. So, as
the assignment, I have to test the developed web based application using proper test plan and
proper test cases. Proper test plan helps the perform proper testing. After my testing, I have to
perform parallel run to test the developed application with the clients. Because, they are the
users of this system and they cannot use this software suddenly. So, I have to testing the
software with them and it will be the practice for them. After that I have to get feedback from
them. With these feedbacks, I can modify the system for even better that this one. Finally, I
have provided the user manual to get an idea about the system. This is the very simple one
and it can understand every one easily. The user manual has interface guide also. I have
provided the user manual for users, and also, I provided the technical documentation for
maintenance. This document has many details about the software but these details are helps
for programmers and other maintenance staff. Because all the details of this document are
technical details. So, users don`t need them.

L.A. Kandelekamge Programming with .NET 128


Appendix A

Gantt chart for assignment

L.A. Kandelekamge Programming with .NET 129


Appendix B

Name/Designation/Department: - ……………………………………………………….....

L.A. Kandelekamge Programming with .NET 130


Excellent Average Poor

11. Is this system easy to install?

12. Is this software user friendly?

13. Response time of the functions?

14. How is the security of the system?

15. How is the user manual?

16. How likely are you to recommend this?

17. Is it easy to go through the function?

18. Give the feedback about functions.

19. What do you think about the system (limitations)?

20. Give your idea to improve this software

Appendix C

Name/Designation/Department: - ……………………………………………………….....

L.A. Kandelekamge Programming with .NET 131


Excellent Average Poor

21. Is this system easy to install?

22. Is this software user friendly?

23. Response time of the functions?

24. How is the security of the system?

25. How is the user manual?

26. How likely are you to recommend this?

27. Is it easy to go through the function?

28. Give the feedback about functions.

29. What do you think about the system (limitations)?

30. Give your idea to improve this software

Reference

L.A. Kandelekamge Programming with .NET 132


Bychkov, D. (2013). Desktop vs. web applications: a deeper look and comparison.
Seguetech. [Online] Available at: https://www. seguetech.com/ desktop- vs- web-applications/ .
[Accessed on 08 October 2017]

Dajbych, V. (2013). Overview of the .NET framework. Codeproject. [Online] Available at:
https://www.codeproject.com/Articles/680100/Overview-of-the-NET-Framework . [Accessed on
01 October 2017]

Bhujbal, S. (2012). .Net framework features from .Net 2.0 to .Net 4.5. C# Corner. [Online]
Available at: http://www.c-sharpcorner.com/UploadFile/sujit9923/net-framework-features-fro m-
net-2-0-to-4-5/. [Accessed on 03 October 2017]

Mohan, S. (2016). .NET and its advantages / disadvantages – all you need to know.
Weblineindia. [Online] Available at: https://www.weblineindia.com/blog/net-and-its-advantag
es-disadvantages-all-you-need-to-know/ . [Accessed on 03 October 2017]

Nyamweya, S. (2014). The .NET framework and its characteristics. Hubpages. [Online]
Available at: https://hubpages.com/technology/The-NET-Framework-And-Its-Characteristics .
[Accessed on 04 October 2017]

Velayudhan, J. K. (2013). Interoperability feature in .NET framework and how to


communicate with a COM component from .NET. Codeproject. [Online] Available at:
https://www. codeproject.com/Articles/588865/Interoperability-feature-in-NET . [Accessed on 01
October 2017]

Walden, C. (2017). 17 reasons to use visual studio 2017. Microsoft TechNec. [Online]
Available at: https:// blogs. technet. microsoft.com/ uktechnet/ 2017/ 03/ 14/ 17 –reasons -to-use-
visual-studio-2017/. [Accessed on 19 October 2017]

Pawar, S. (2015). .NET framework overview. C# Corner. [Online] Available at:


http://www.c-sharpcorner.com/UploadFile/cb1429/net-framework-overview/ . [Accessed on 07
October 2017]

Ramoliya, K. (2016). .NET framework evolution. C# Corner. [Online] Available at: http://
www.c-sharpcorner.com/article/net-framework-evolution/. [Accessed on 08 October 2017]

L.A. Kandelekamge Programming with .NET 133


Observation Sheet

Learnin
Activit
Activity g Feedback
y
Outcome (Pass/ Redo)
No
(LO)
Present and demonstrate the
1 implemented program features to LO 3.1
the audience.

Test run the application with sample


2 LO 4.1
data

Explain the discrepancies between LO 4.1


3 actual test results and expected and LO
results during Activity 2. 4.2

Perform a minor modification to the


4 source code to alter the functionality LO 3.2
of the system.
System is fully functional; no
5 semantic errors and System has D 3.2
proved with all required function.

Comments:

Assessor Name :…………………………………………….

Assessor Signature :…………………………………………….

L.A. Kandelekamge Programming with .NET 134


Possible
Outcomes/Criteria for PASS Page Feedback
Evidence

LO1 Understand the principles of programming using a .NET framework

1.1 discuss the principles, characteristics and features of programming Task 1.1
using a .NET framework

1.2 critically compare different types of .NET framework architectures Task 1.2

1.3 critically evaluate the components that support the .NET framework Task 1.3

LO2 Be able to design .NET solutions

2.1 design a web application to meet a given requirement Task 2.1

2.2 explain the components and data and file structures required to Task 2.2
implement a given design

2.3 evaluate potential delivery environments and interaction Task 2.3


LO3 Be able to implement .NET solutions
3.1 implement a .NET programming solution based on a prepared design Task 3.1

3.2 implement event handling using control structures to meet the design Task 3.1
algorithms

3.3 identify and implement opportunities for error handling and reporting Task 3.2

3.4 make effective use of an Integrated Development Environment (IDE) Task 3.3
including code and screen templates

LO4 Be able to test and document .NET solutions


4.1 critically review and test a .NET programming solution Task 4.1

4.2 analyze actual test results against expected results to identify Task 4.1
discrepancies

4.3 evaluate independent feedback on a developed .NET program solution Task 4.2
and make recommendations for improvements

4.4 create user documentation for the developed .NET program solution Task 4.3

4.5 create technical documentation for the support and maintenance of Task 4.3
a .NET program solution.
Grade Descriptor for MERIT Possible Evidence Feedback

M1 Identify and apply strategies to find - .Net framework features, advantages,


appropriate solutions versions and components have been
identified and explained properly with
M1.3 an effective approach to study and research examples in Task 1.1
has been applied

M2 Select / design appropriate methods / - Applied the Harvard referencing


techniques techniques.

M2.3 a range of sources of information has been


used

M3 Present and communicate appropriate - Well-structured documentation


findings - Proper academic writing
- Adhered to the documentation
M3.3 A range of methods of presentation have been formatting guidelines.
used and technical language has been accurately - Non-overlapping facts.
used - Accurate, reliable and consistent data.

Grade Descriptor for DISTINCTION Possible Evidence Feedback


D1 Use critical reflection to evaluate own work
and justify valid conclusions - Proper conclusions and justifications
have been provided in task 2.2
D1.1 conclusion have been arrived at through
synthesis of ideas and have been justified

D2 Take responsibility for managing and - On time submission of the


organizing activities assignment.
- Gantt chart is provided
D2.2 substantial activities, projects or investigations
have been planned, managed and organized

D3 Demonstrate convergent / lateral / creative - Additional functions have been added


thinking - Security features have been added
- Fully featured and error free solution
D 3.4 problems have been solved has been submitted
D 3.5 innovation and creative thought have been
applied
Strengths: Weaknesses:

Future Improvements & Assessor Comment:

Assessor: Signature: Date: ____/____/______

Internal Verifier’s Comments:

Internal Verifier: Signature: Date: ____/____/______

You might also like