The document provides an overview of the training organization Zone24x7. It describes Zone24x7 as a technological company that provides hardware and software solutions. It details Zone24x7's organizational structure, products and services, partners and clients, and an assessment of its current position including strengths, weaknesses and suggestions. The training experience involved working on various software development projects at Zone24x7 to gain exposure to tools, technologies and company practices.
University of Moratuwa Training Report: Water Conservation System
1. UNIVERSITY OF MORATUWA
Faculty of Engineering
Non-GPA Module 399: Industrial Training
TRAINING REPORT
M. W. Edirisooriya
070115U
Computer Science and Engineering
Zone24x7 (Pvt) Ltd
6 Months
4th of August 2010
2. Preface
The report includes the engineering experiences, professional best practices and both technical
and non technical knowledge and skill development gained by me during the industrial training
internship program during Level 3 in second semester in company Zone24x7 (Pvt) Ltd.
The document format follows the format provided by the university at the beginning of the
training program.
This report contains three main sections. First chapter contains it describes a summarization
about the general information, organizational structure, performance, profitability, strengths and
weaknesses of the company.
In second chapter it consists of details about the internship experiences at the training location. In
this section it describes details about projects I have involved, difficulties and problems I faced,
management, financial and office practices that I have exposed etc.
Third chapter consists of the conclusion of the report. This is a self measurement about the
training experience and about industrial training program, references, abbreviations are in this
section.
ii
3. Acknowledgement
I would like to express my sincere gratitude to all the parties who contributed me to success in
the industrial training program who helped me in various ways in technical, management and all
sort of guidance given me to improve my professional and technical knowledge.
First I would like to thank the parties who contributed and organized this program. So I would
like to thank all the staff members of the National Apprentice and Industrial Training Authority
(NAITA) for organizing this program and accepting the Zone24x7 as a company who helped me
a lot for gaining training experience. Then I would like to thank all the staff members of
Industrial training division of University of Moratuwa including the Director, for organizing this
important program.
I must give my special thank to Head of Department of Computer Science and Engineering
University of Moratuwa, Ms. Vishaka Nanayakkara, then Dr. Malaka Walpola -Senior Lecturer,
Dr. Shehan Perera-Lecturer, Mr. Shanaka Ransiri -Lecturer, Mr. Chulaka Gunasekara -Lecturer
and who did all the coordination between students and the companies, also from the Department
of Computer Science and Engineering, University of Moratuwa together with all the other
Academic Staff members for their great effort of providing and coordinating Industrial
Placements at suitable places and also for monitoring our internship experience throughout the
training period in order to ensure that we gain the maximum out of it.
I would like to extend my thanks to Mr. Ruwan Pradeepa the Technical Project Manager of
Water Demand Division System at Zone24x7, Mr. Lakmal Molligoda, Senior Software Engineer
at Zone24x7, Mr. Priyal Walpita Senior Software Engineer at Zone24x7, Ms. Sonali Jayasooriya
QA Software Engineer at Zone24x7, Ms. Kalani Tennakoon Software Engineer at Zone24x7
Tech for instructing and guiding my Internship Program throughout the training period without
any issue.
I would also like to appreciate the great contribution provided by Mr Llavan Fernando, CEO and
President of Zone24x7, Mr. Manjula Dissanayake, Vice President of Zone24x7, Ms Nenuka, HR
Manager of Zone24x7 at Zone24x7 - in the Management of on conducting an excellent Training
Program for all the interns.
iii
4. My special thanks go to all the others developers who helped me by spending their valuable time
and teaching me to resolve problems which I encountered while I was developing. These
technical advices not only helped me to resolve my problems but also improved my technical
knowledge.
At last but not least, I would like to thank all my fellow colleagues who have made my
Internship Experience at Zone24x7 a pleasant & enjoyable one and for helping me to overcome
the challenges I faced during this period.
iv
5. Contents
Preface ii
Acknowledgement iii
Contents v
List of Figures ix
List of Tables ix
1. Introduction to the Training Organization 1
1.1 About Zone24x7 1
1.1.1 Introduction 1
1.1.2 Top Research Areas of Zone24x7 1
1.1.1 Vision Mission 1
1.2 Organizational Structure 2
1.3 Products and Services 2
1.3.1 Retail 2
1.3.2 Embedded Systems 3
1.3.3 Payment Security & Biometrics 3
1.3.4 Banking and Finance 3
1.3.5 Healthcare 3
1.3.6 Water Conservation & Distribution System (The Project I involved) 3
1.3.7 Energy Conservation 4
1.4 Partners and Clients 4
1.5 Current Position of Zone24x7 5
1.5.1 Current Performance 5
1.5.2 Strengths and Weaknesses 5
1.5.3 Suggestions for Further Development 6
1.5.4 Possible Constraints to My Suggestions 6
1.5.5 Economy and Profitability 7
1.5.6 Usefulness to Sri Lankan Community 7
2. Training Experience 8
v
6. 2.1 Company Related Experience 8
2.1.1 First Experiences 8
2.1.2 Daily Life in Zone24x7 8
2.1.3 Work Measurement System 9
2.1.4 Freedom in the Company 9
2.1.5 Entertaining Activities 9
2.1.6 Common Development Procedure 10
2.2 Overview to Work Done during the Industrial Training 11
2.2.1 Introduction 11
2.2.2 Project work overview and schedule 12
2.3 Experience with Tools and Technologies 13
2.3.1 Experience with Tools 13
2.3.1.1 ASP.NET 13
2.3.1.2 C# 13
2.3.1.3 Dot Net Framework 13
2.3.1.4 Internet Information Service 7 13
2.3.1.5 Microsoft Visual Studio 2005 development platform 14
2.3.1.6 Microsoft SQL Server Management Studio 2005 14
2.3.1.7 Adobe Flex 14
2.3.1.8 Internet Explorer Developer Tools 14
2.3.1.9 SqlAssistant 15
2.3.1.10 RegexBuddy 15
2.3.1.11 JQuery 15
2.3.2 Technology Exposure 15
2.3.2.1 ASP.NET Web design 15
1.1.1.1 User Interface Designing 16
1.1.1.2 Web application validation 17
1.1.1.3 Regular Expressions 18
1.1.1.4 Web Hosting in IIS7 18
1.1.1.5 Developing Flex Application 18
1.1.1.6 Web Service Handling 18
vi
7. 1.1.1.7 Report Generation using Visual Studio 19
1.1.1.8 Creating SQL databases 19
1.1.1.9 SQL Database Querying 19
1.1.1.10 Online Debugging With Developer Tools 20
2.4 Project Involvement 20
2.4.1 School System, a sample project 20
2.4.1.1 Usage of Grid Views 21
2.4.1.2 Usage of Validations 22
2.4.2 E-mail sending component (Multiselect web control) 22
2.4.3 Inspections viewing and editing using PastInspections web control and
PastInspectionsPopup 23
2.4.4 Chart Of Account report generator 23
2.4.5 Online Application 24
2.4.6 EventAPNChange, APN changing web control 24
2.4.7 WESControl, Water Efficiency Standard Control 25
2.4.8 WDSData, Well Distribution System 25
2.4.8.1 GUI Designing 26
2.4.8.2 Overall Logic of WDSData 27
2.4.8.3 Validation of WDSData 29
2.4.9 Adobe Flex application 29
2.4.10 WDD-CDV, County Data View for WDDS 30
2.4.10.1 Introduction to WDD-CDV 30
2.4.10.2 Form View control 31
2.4.10.3 New SQL Logic Used 31
2.4.10.4 Adding Role Permission 32
2.4.10.5 Debugging with Developer Tools 32
2.4.10.6 Validation in WDD-CDV 32
2.4.11 BottomModulePanel, Create New Modules in WDD-DBS 33
2.4.12 Client requested changes in WDD-DBS 33
2.5 Problems and Difficulties Encountered 33
2.4.1 Work Related Problems and Difficulties 33
vii
8. 2.4.2 Training Personal Related Problems and Difficulties 34
2.4.3 Other Personal Difficulties 34
2.6 Solution Found 34
2.7 Company Practices Exposed 35
2.7.1 Information on Production Processes 35
2.7.2 Administrative and Office Practices 35
2.7.3 Financial Procedures 35
2.7.4 Safety Procedures 35
2.7.5 Management Practices 36
3.1.1 Operational Techniques 36
3.2 Machines and Equipments encountered 36
4. Conclusion 37
4.1 About Training Program 37
4.2 Technical Improvements 37
4.3 Soft Skill Improvements 38
4.4 Overall Conclusion 38
References 39
Abbreviations 40
viii
9. List of Figures
Figure 1.1 Organizational Structure 2
Figure 1.2 Zone24x7 Clients 4
Figure 2.1 Insert a new student 20
Figure 2.2 Invalid entry validation 22
Figure 2.3 Mail sender 22
Figure 2.4 PastInspectionsPopup 23
Figure 2.5 One wizard step of Online Application 24
Figure 2.6 APN change prompt 24
Figure 2.7 Well Distribution System tab 25
Figure 2.8 Other Information tab 26
Figure 2.9 Adding a new Well System 26
Figure 2.10 Foot Note tab 26
Figure 2.11 CAW Central Division Data tab 26
Figure 2.12 Editing Well System table 27
Figure 2.13 Searching with Master ID 27
Figure 2.14 When data related to WDS Edit is clicked 27
Figure 2.15 When Water Production is clicked to be edited 28
Figure 2.16 When WDS Letters are edited 28
Figure 2.17 Letter generation 29
Figure 2.18 Property Information of a selected APN number 30
Figure 2.19 Editing Location data of a selected APN number 31
Figure 2.20 Validation message when tried to save changes 32
Figure 2.21 BottomModulePanel 33
List of Tables
Table 2.1 Development Summary 12
ix
10. 1. Introduction to the Training Organization
1.1 About Zone24x7
1.1.1 Introduction
Zone24x7 is a technological company that provides a variety of technological solutions in a
broader range of hardware and software applications in electronics and software world. A Head
quarter of Zone24x7 is located in San Jose, California.
Zone24x7 has technology development and research centers located in United States, Sri Lanka
and Malaysia. About one hundred of employees are employing in the company. The team in
Zone24x7 consists of engineers in both software and electronics fields expert in various
technologies. They are involved in activities that will enable them to employ solutions to meet
growing business demands of customers and to develop the company by using the cutting edge
technology.
Most of its customers are not local but from United States. Zone24x7 research and develop
solutions for their requirements with use of broad background of various technologies using
hardware and software solutions.
1.1.2 Top Research Areas of Zone24x7
Zone24x7 is basically targeted on the following research areas.
1. Surface Computing – With touch sensitive computer screens
2. Computer Vision and Gesture Recognition
3. Bio Feedback – Fingerprint recognition etc.
4. Embedded Agent Technologies
1.1.1 Vision Mission
“Global Research Locally” is the vision of the organization. Zone24x7’s mission is to provide
next generation technology and innovation services to our clients.
1
11. 1.2 Organizational Structure
This is the organizational structure of Zone24x7 according to my knowledge. There may be more
sections that are related to QA and other laborers. But this is the structure I understood.
President (CEO)
Vice President
Operational Manager
Project Manager (TR) Project Manager (QAR) Project Manager (CMR)
SSE (Leader)
Software Engineer
Associate Software
Engineer
Figure 1.1 Organizational Structure
1.3 Products and Services
Because there are many areas that the company has many expert areas on only the names of
domain expert areas are mentioned below.
1.3.1 Retail
Hand-Held Application Suite for Store Operations – Easy electronic equipment for stores
Real Time Inventory System – Online solution for inventory requirements
Customer Loyalty Management Systems – Customer data management system
Cloud Computing and Mash-up Services – Cutting edge technology in web based
software and networking
2
12. 1.3.2 Embedded Systems
Hardware Design – Designing hardware for embedded devices.
Firmware and OS Porting – Designing lower level software (e.g.: Device Drives)
SDK Development – Developing SDK for hardware and software requirements
1.3.3 Payment Security & Biometrics
Signature Capture and Verification Applications – Patented technology from Zone24x7
Finger Print Verification Applications – Bio matrix based application
Computer Vision Based Applications – Image recognition technology
Biofeedback Based Applications – Nerve pulses and brain waves based technology
1.3.4 Banking and Finance
Secure Cheque Clearance – User authentication system
Image & Transaction Management Systems (ITMS)
End–to-end Receipt Management and Dispute Resolution – Patented technology from
Zone24x7
Banking Facility Management – Queue Management, Staff Scheduling, Management
Reporting
1.3.5 Healthcare
Healthcare Suite for Operation Room Scheduling, Staffing, Inventory Management,
Reporting
Next generation Staff-less Office System
Unique interactive capabilities for diagnosis
1.3.6 Water Conservation & Distribution System (The Project I involved)
Permit issuing and monitoring – Issuing permits from the software system
Inspection scheduling – Online scheduling technology
Dynamic report generation – Generate reports from database data
Dynamic work flow creation for business rules – Workflow manager in the system
3
13. 1.3.7 Energy Conservation
Monitoring and Alerts – Monitoring energy requirements and control the supply, alert on
energy waste
Smart controlling – Embedded system based solutions for energy conservation
1.4 Partners and Clients
Zone24x7 has more than 500 companies and technology leaders around the world as clients.
Some of them are as follows.
Figure 1.2 Zone24x7 Clients
Following are the technology partners of Zone24x7.
Microsoft Gold Certified MSC Status Windows Embedded Partner
Sun Microsystems Motorola ISV Partner Freescale (Motorola)
4
14. 1.5 Current Position of Zone24x7
1.5.1 Current Performance
At present Zone24x7 has an identity of providing all types of business solution in both software
and by using embedded systems. This is a very unique specialty in Zone24x7 when compared to
similar software companies in Sri Lanka.
The company provides the services based on the target of satisfaction of the client more than or
equal to the expectation of the client. Zone team has the responsibility to be flexible accordingly
with the requirements of the customer. This is an advantage when it comes to interact with
clients in United States.
1.5.2 Strengths and Weaknesses
The company hires the best people from the University of Moratuwa. As embedded systems
related job opportunities are rare in Sri Lankan job market there is a higher tendency in
electronic engineers pass out from UOM to join Zone24x7. This is the main strength I could
observe as the strength of Zone24x7. As the intelligence of the engineers from UOM is above the
average Zone24x7 has a valuable human resource. The other strength is its international
relationship. As most clients of Zone24x7 are from United States of America the income to the
company and the exposure to the newest technology are very high for the company. And also the
business stability is very high as the economy in USA is very stable and there are lot of
customers can be found from the USA. This leads to prevent dependency upon little number of
clients which would reduce the stability of the company.
There were few weaknesses I could observe existing in the company. Some employees think
their salary is not sufficient. This would reduce the staff satisfaction and would result poor output
from the staff. And also I could observe many engineers are leaving the company after they
obtain several years of experience in Zone24x7. This would reduce the number of experienced
engineers who has worked in many important projects. After they leave it becomes difficult to
track the project for the new engineers join the project. In the project I worked, I found very little
or no comments in source code. This makes very difficult for new people like me to understand
the structure of the structure and functionality of source code.
5
15. 1.5.3 Suggestions for Further Development
It is very difficult to give suggestions for complex companies without doing a proper research in
other similar companies. But according to my personal observations I can give the following
suggestions for the benefit of the company.
In software, the employees should be made to write codes with comments. Each function that
may be important should be commented accordingly with sufficient words and it is better if each
project could maintain a separate set of documents for the benefit of new comers to the project
about the structure of the system and its operational functionality. This type of system may
useful to identify the overall structure of the project without talking to a previous engineer
involved in the project.
And one of the other major problems I observed in my project is its architecture. Though it used
the programming language C Sharp, the system very rarely used its object oriented properties.
This has created an unusual amount of redundant code for similar functions without using the
inheritance. When a change had to made all the locations it was applied had to be modified and
finally each location had to be tested separately. This is a very high disadvantage in terms of
resource allocation, time to code and accuracy. If a project use an object oriented programming
language like C# or Java it must be designed in an object oriented manner.
1.5.4 Possible Constraints to My Suggestions
Writing comments is one of the main hated practices for almost all programmers. They will be
very unhappy if the writing comments for all the code they write is stated as mandatory. They
will try to copy and paste the same comment for many codes. Programmers will complain they
would not have enough time to complete the project due to comments.
For software architects who had programming experience only with languages like C++ or C, it
will not be a good idea to suggest designing in the object oriented manner as they are not familiar
and interested with OO concepts. The company may need to find good OO experts to design
project if they wish to programming languages like C# or Java.
And also it will be a hard work to teach OO concepts to old programmers who were only fluent
with non OO languages.
6
16. 1.5.5 Economy and Profitability
I was not given access to the internal accounts of the company. Therefore the information knows
are what the company says. According to them the company has a good income and could
achieve the business targets they expected to have. As the company interacts with the United
States, past few days they also had to face some effects of the global economic crisis which
badly affected mainly on United States economy. Anyway the company could maintain its
economic growth without a critical problem.
Recently the company could obtain some valuable recognition from technology giants in world
which helped them a lot for marketing purposes as well as technical support.
1.5.6 Usefulness to Sri Lankan Community
Because Zone24x7 has most of its market outside Sri Lanka, the technical advantages affected
on Sri Lankan community is negligible. Anyway their technological researches are valuable for
the country. Zone24x7 has a research centre inside the University of Moratuwa which makes a
high contribution to the Sri Lankan technology given to local university students.
However this company contributes a lot to the Sri Lankan economy by taking in a lot of foreign
exchange. And the company provides a number of job opportunities to Sri Lankans inside the
country and in abroad. This helps to reduce the unemployment in the country and to avoid the
brain drain from the country which indirectly helps the technological development of the
country.
7
17. 2. Training Experience
2.1 Company Related Experience
2.1.1 First Experiences
First day I in Zone24x7 we recognized our fellow colleges including the interns from University
of Moratuwa. Only I was from the CSE of UOM who was selected there. Others are from
ENTC. In my floor there is none of our people. That may be because of the differences of our
engineering disciplines. On the first day I felt so lonely. But from second day it was better. The
company provided me a powerful desktop computer with CRT monitor. Then they were kind to
my request of a LCD monitor and gave a 21 inch one. They installed software in my computer
including Skype and Microsoft Outlook which were new for me. Not only them but all the
Microsoft related developing tools new for me.
Next they organized a small presentation for all of us from University of Moratuwa by the
Human Resource Manager of Zone24x7. There they introduced their products, career in the
company, international connections and their strengths and specializations in the technology
field.
In the first week they organized another meeting with presentations that described the procedure
in Zone24x7 which is said as unique to Zone24x7 known as “Zone Way”. The presenter
explained the standards that are maintained by the company to maintain international standards
that is very important for the marketing purposes.
2.1.2 Daily Life in Zone24x7
As Associate Software Engineers we should present in the company on 8.30 a.m. in morning.
We get biscuits two times a day and tea two times a day. We get our lunch at about 12.30 p.m.
Normally we are allowed to leave the company at 5.30 p.m.
We are required to wear a formal (professional) dress in first four days of week. On Friday it can
be changed.
8
18. 2.1.3 Work Measurement System
There is an online system that tracks the number of hours spend for each module of development
by each employee in each day which is called “XPlanner”. At the end of the month data collected
from this system is used to charge customer for the development of software.
Each employee should enter the work he has done in relevant module with the number of hours
he spent on during each day. I used my daily diary as the source to update this data at the end of
the month.
2.1.4 Freedom in the Company
There are no hard restrictions for the employees in Zone24x7. Absence can be appealed by the
project manager. The time to come to the company can vary from 8.30 to about one hour without
any problem. If more than one hour late was happened, it should be informed to the project
manager.
Entrance and exit times are automatically monitored by a card with a radio tag provided to each
employee. So there is no requirement to sign a present sheet.
2.1.5 Entertaining Activities
There is a welfare society named “ClubZone” that organizes entertaining activities. In special
occasions like birthdays, weddings and farewells etc cards are sent for sign around the company
and give the person at the relevant day. Working table of the employee is decorated in the
birthday and the birthday song is sung.
At each month a party called “Birthday Bash” is held by the expense of the employees who had
birthdays in that month. And parties are organized for specials festivals like New Year festival.
At each year night parties are organized by the ClubZone.
ClubZone maintains a DVD library that lends movie DVDs for Rs.30. There may be more events
organize by ClubZone than I have mentioned.
9
19. 2.1.6 Common Development Procedure
According to ZoneWay there are common steps that I have identified as the practicing procedure
in Zone24x7.
1. Requirements are gathered from the customer.
2. Prepare SRS document.
3. Prepare design document by development team.
4. Prepare test cases by the QA team.
5. Send test cases to the development team for review.
6. Development team adds drops and modifies test cases and sends review report back to
QA while creating the design document.
7. QA team correct test cases and send back to development team for review.
8. If the development team agrees with those test cases they send confirmation.
9. Otherwise this recursively happen until both parties come to a compromise.
10. Finally confirmed test cases are taken as Round 0 test cases.
11. After creating the design document, development team starts to develop the system.
12. After the design process the developer has to test Round 0 testing by him as a unit test.
13. After this test unit test responsible person sends back the confirmed Round 0 test UTS to
QA mentioning if there are any changes to be done in test cases.
14. QA consider the changes mentioned by the development person and do the Round 0 test
and if there are any bugs existing, QA prepare the Round 1 test case and send back to the
development team.
15. This process continues until QA find no error in software.
16. After the system is completely tested a customer release is issued.
In this process there exists freedom to the developer to identify new requirements during the
development process and change unsuitable requirements mentioned in the SRS document.
These changes can be negotiated with the QA team first and if required can talk to the customer
to clarify his requirements.
Because the first unit testing part is done according to the QA requirements, it reduces the time
the QA spend to identify errors as the developer know the test cases prior to the development.
10
20. 2.2 Overview to Work Done during the Industrial Training
2.2.1 Introduction
During my whole training period I was only involved in a single project, Water Demand
Division System, a water resource allocation and charging database based system for a state in
United States of America. Anyway this system consists of many technologies including
following major technologies mainly products of Microsoft.
1. ASP.NET
2. C#
3. .NET Framework
4. IIS 7
5. Microsoft Visual Studio 2005 development platform
6. Microsoft SQL Server Management Studio 2005
7. Adobe Flex
8. Internet Explorer Developer Tools
9. JQuery
10. JavaScript
This project was already started before I joined the company. Therefore it was a slower process
of understanding the system and its architecture. As I was not familiar with all the above
mentioned technologies I was given a simple prototype project of a database system for a school
to identify the structure and all basic standards related to the main system. For about three to four
weeks I was involved with this project and then I was joined to the real Water Demand Division
System.
During the pilot project I learned the coding standards expected by the company. I got special
software “SoftTree SQL Assistant” that helped a lot to generate SQL code in appropriate coding
standard.
In WDDDBS project I used to learn “TortoiseSVN” the version management system that is
useful to add changes from various locations by various programmers. Until the end of training I
had many practices to learn with this tool.
11
21. 2.2.2 Project work overview and schedule
In first few weeks I was learning the technology and developing the pilot system for a school.
Then I joined the WDDDBS, the main project. In the last month the development of WDD-DBS
was announced finished and then another project “Water Demand Division County Data View”
(WDD-CDV) was started which was a new version for the older system that uses the web
services of the older system. In the WDD-DBS system I was involved in several components and
major part of the training was spent on the WDD-DBS system.
The Table 21 shows the time period I was involved in each component of the project. Some time
periods coincides as some components were started before others were ended or testing was
performed after another component was started to develop.
Table 2.1 Development Summary
Component Developed Started Completed
Date Date
1 School System, a sample project 10/02/2010 03/03/2010
2 E-mail sending component (Multiselect web control) 02/03/2010 08/03/2010
3 Inspections viewing and editing using PastInspections web 09/03/2010 17/03/2010
control and PastInspectionsPopup
4 Chart Of Account report generator 17/03/2010 19/03/2010
5 Online Application 19/03/2010 07/04/2010
6 EventAPNChange, APN changing web control 07/04/2010 08/04/2010
7 WESControl, Water Efficiency Standard Control 08/04/2010 18/04/2010
8 WDSData, Well Distribution System 22/04/2010 03/06/2010
9 Adobe Flex application 0705/2010 03/06/2010
10 WDD-CDV, County Data View for WDDS 04/06/2010 23/07/2010
11 BottomModulePanel, Create New Modules in WDD-DBS 23/06/2010 29/06/2010
12 Client requested changes in WDD-DBS 08/07/2010 21/07/2010
12
22. 2.3 Experience with Tools and Technologies
2.3.1 Experience with Tools
2.3.1.1 ASP.NET
ASP.NET is a web development framework which is a product of Microsoft and is used to
develop Dynamic web pages, web applications as well as web services. It uses C#.NET or
VB.NET adds its dynamic behavior. ASP.NET comes with standard .NET bundle. In our Water
Demand Division System we used ASP.NET 3.5 version as it contains new features to support
some other features like Ajax.
2.3.1.2 C#
C sharp is a Java like object oriented programming language based on Microsoft dot net
framework. All logic behind ASP.NET web pages is written using C# language. C# is a product
of Microsoft. In our application ASP.NET pages uses functionality provided by the Dynamic
Link Library files in the lower layer, (Library Layer) which executes the SQL Stored Procedures
in the data base.
2.3.1.3 Dot Net Framework
.NET Framework is a product of Microsoft which is a service providing layer providing runtime
files to C# and ASP.NET programs. It is a Virtual Machine for Windows application and
contains libraries that support GUI design, database access and cryptography etc. We used .NET
Framework version 3.5 which is bundled in default with Windows 7 operating system.
2.3.1.4 Internet Information Service 7
Internet Information Service (IIS) is web server software comes with Windows 7 as optional
packages. ASP.NET developed web sites can be hosted in IIS in local host after installing IIS in
the local machine. Web site can be even debugged in ASP.NET code while the site is in its
runtime.
13
23. 2.3.1.5 Microsoft Visual Studio 2005 development platform
This is the basic development platform for Microsoft products including ASP.NET and C# that
we used in our project. It is a designing and compiling package of these programming languages.
Visual Studio 2010 was available on that time but due to compatibility issues we used 2005
version for development of this old versioned system.
2.3.1.6 Microsoft SQL Server Management Studio 2005
Microsoft SQL Server is a relational database management system developed by Microsoft and it
uses ANSI SQL as its main query language. There are many versions of SQL Server and we used
MS SQL Server 2005. It stores data as databases in the DBMS. SQL commands are saved in as
Stored Procedures as SQL files that are used by the above layer files (Library Layer) of our
system.
2.3.1.7 Adobe Flex
Adobe Flex is a rich web application development technology by Adobe. Web page like
interfaces with beautiful user interfaces can be generated easily with almost all database
functionalities that can be included in ASP.NET web page. The component is developed in
developer environment, Flex Builder and produces a “swf” file as the executable version. In Flex
Builder there are facilities like debugging are available like in Visual Studio Development
environment.
2.3.1.8 Internet Explorer Developer Tools
Developer Tools is another optional package comes with Internet Explorer for Windows 7
operating system. This is used to debug JavaScript and CSS properties in a loaded web page to
the Internet Explorer web browser. This is similar to “FireBug” add on available for Mozilla
Firefox in behavior and functionality. This is useful for identifying bugs in JavaScript as in
Visual Studio there is no proper way to debug JavaScript in runtime. And this is very useful for
identifying UI errors in a web page in different resolutions.
14
24. 2.3.1.9 SqlAssistant
SqlAssistant is an extension to Microsoft SQL management Studio developer that automatically
generates SQL code and automatically prompts a list of words while typing to ease the process of
SQL code writing. According to the coding standers SQL key words should be capital and
aliases should be used for statements like select statements. This extension helps a lot to generate
such code.
2.3.1.10 RegexBuddy
RegexBuddy is a simple but very useful tool for developing regular expressions for various
applications. Using this software we can get the meaning of a regular expression in words and
can be used to generate new regular expressions. And also this tool can be used to test regular
expressions against the text to be searched or to be validated.
2.3.1.11 JQuery
JQuery is an open source powerful JavaScript library that is useful for developing complex
widely used JavaScript function based web sites in lesser time. In our project it is used in later
stage and was used for validation purposes that give user friendly tooltips for invalid data entered
to a control object. (e.g.: Text Field) And also JQuery supports to create visually rich user
interfaces such as confirmation boxes with the help of CSS.
2.3.2 Technology Exposure
2.3.2.1 ASP.NET Web design
Almost all the time I spent during my training program is with web design using ASP.NET. This
is a modified programming language of ASP. It has a similar programming design to the
programming language JSP. In ASP.NET there are three files related to a single web page. One
is the .aspx file which is the HTML like file full of tags. It contains both server side and client
side web controls used in the web page. The second file is the .aspx.cs file that is a C# class full
of C sharp code that contains all the server side logic related to the web page. All the events that
are to be handled in server and page load events are coded in this file. If required the attributes in
15
25. the components of .aspx file can be changed using C# logic. The third file of the web page is the
.design.cs file that contains all the components logically mentioned in the .aspx file.
In my programming experience I got a good knowledge on data binding, accessing, editing,
adding, removing and paging operations on Grid View web control and Form View web control.
And further I gathered knowledge on data binding to inner components of Grid View such as
Dropdown Lists. And also I learned about CSS application usage in Grid View and Form View
controls.
In our application we worked on an application with several logical layers. The top layer is the
actual ASP.NET based web layer. All the pages are inherited from a single web page, “Base
Page” that handled all user information, privileges, session state and all the commonly needed
functions that are commonly used in all web pages.
For the reusable purposes the application used ASP.NET web controls. A web controls is an
.ascx file that can be independently developed can be used in web pages which provides a certain
functionality common for many web pages.
In our project sometimes we needed to show only certain parts of a web page. In such situations
we used several different techniques according to the requirement, complexity and performance.
1. Used a div section and changed its visibility. Sometimes we u
2. Used a panel and changed its visibility.
3. In some cases we used TR of a HTML table to hide and display appropriately. There we
assigned IDs for each table row and changed its visibility accordingly.
All the configuration information such as IP addresses and such changeable information are
included in a configuration file and can be changed by the user accordingly.
1.1.1.1 User Interface Designing
I designed some user interfaces for the web application in ASP.NET. It was not a major design
but I could learn a lot on HTML tables, div sections, panels etc. I could learn CSS from this
design and could understand the application techniques of Style sheets to web controls in the
form of a class and the direct assignments.
16
26. The requirements design was given me in the form of a Visio document which is known as
“Wireframe”. At first I tried to blindly get the all values from the wireframe and make the UI
design but then I found that they are not visible properly when developed according to the given
specification and started to assign appropriate values as required. Then I was instructed that only
the font sizes and font styles should be according to the specification and the rest can and should
be changed as required. I included some CSS properties into the imported CSS file and used
them throughout the design process which was very easy and fast when developing.
1.1.1.2 Web application validation
In the earlier stage when I was involved in the WDD-DBS system, the validation convention
used was changes when it came to WDD-CDV which was based on jQuery.
In the earlier version it was a star mark next to the text field or drop down list. Mandatory fields
had a red colored star mark next to the input field (text field/dropdown list). So we had to
manually include them in a single HTML table which was a time wasting process when it comes
to a web page with a lot of input fields. And also all the required fields to be validated had
another hidden red star next to the input field. In the .aspx file required type of validator (e.g.:
Required Field Validator, Regular Expression Validator, Custom Valiadator etc.) was assigned to
each input control. All the validators in a single form (or single submit section) were given a
single validation group. Under the form (or single submit section) it was a validation summary
dedicated for the particular validation group. When the submit button is pressed the validity of
the validation group is checked and submit process is done only if the validation is correct.
Otherwise the validation errors are displayed in the validation summary under the form and red
star marks are displayed next to the input field (text field/dropdown list). Whole process is done
in server side so the response time was a problem.
In the new application we used only jQuery totally in client side. So there was no server
validation was required. The process is easy and adding a validation can easily be done by just
changing the validation statement at the class attribute of the input field. The validation can be
done in both onblur event of a text field or at the submit button click event. The error message
will be popped up as tooltip at the input field. In the WDD-CDV application we could reduce the
response time by using such techniques.
17
27. 1.1.1.3 Regular Expressions
Regular expressions are very useful and powerful tools when it comes to text processing. In our
systems we used regular expressions mainly for validating e-mail addresses, dates, APN numbers
and Zip codes. It was also useful for extracting the first APN number from OCRed text in WDD-
CDV application.
1.1.1.4 Web Hosting in IIS7
All the web sites developed using the language ASP.NET was hosted in IIS7 web server. We
learnt IP assigning site naming and database allocation to web site using IIS7. For test purposes
we hosted it in the local machine and the debugging was possible in Visual Studio development
environment in the run time after attaching the process for debugging. Not only for ASP.NET
pages but for Adobe Flex pages we could debug using Flex Builder with the help of IIS web
server. Even multiple web sites were possible to host in a single web server.
1.1.1.5 Developing Flex Application
“Flex Builder” was the development environment for Flex applications. In Adobe Flex a
beautiful UI can be developed with all the validation facilities in an easy way as readymade
components are available for the UI designing. And also similar to the ASP.NET we can develop
tables like Grid Views in ASP.NET and handle data similar to the way they are handled in
ASP.NET application. Unlike in ASP.NET there is no need to design CSS or use other functions
to handle web services or to implement animations, in Adobe Flex we can easily call existing
web services and perform insert, edit and delete operations to a database via the web services
with a UI containing default animations.
1.1.1.6 Web Service Handling
Web service is a well known service layer that provides database services to the web application
layer in our system. Under the web service layer it is the library layer that executes SQL
commands on the data base and perform operations like insert records to the database, edit record
in the database and delete records in the database. All the data are sent to the database side in
many data types and data from the database comes as Dataset objects. Web service layer
communicate with web layer using XML objects.
18
28. 1.1.1.7 Report Generation using Visual Studio
Report generation is a basic need for almost all commercial software systems. Microsoft visual
studio provides a very useful report generator design tool. Using these tools it is easy to get a
report from the database by executing stored procedures and displaying the results in tables and
text fields. The report is generated according to the “Report Parameters” entered by the user.
Then the user can print the report if required.
1.1.1.8 Creating SQL databases
During the development of new database tables and from “School System” application I could
gather knowledge on the database design according to the Relational Schema provided. There I
could learn the use of foreign keys, primary keys and data types used to create databases.
According to the requirements of the client when deleting a record from a database table, instead
of permanently removing its content from the database, a special Boolean attribute, “IsArchived”
is set to true. When inserting, insert date and time is recorded in another attribute. When the
record is modified, old record is archived and a new record is added to the database with new
values with new modified date into the attribute, “Modified Date”.
1.1.1.9 SQL Database Querying
In systems I developed in the company, all the SQL queries and commands are all saved in
separate .sql files and all of them are written such that once executes a new stored procedure with
the same name of the stored procedure is included into the MS SQL DBMS if it is a new name.
Otherwise the new execution will overwrite the existing stored procedure. And also a short
description, the author and the created date is included in the head of the .sql file.
Stored procedures are written for either write or read operation of the database. When more than
one database table is accessed join operations are used. All the data retrieving SPs send data in
alias names from the database. All the data saving SPs has a Boolean parameter “IsDelete” that
is true in value only when the record is deleted. Otherwise (i.e.: When modifying existing
record) it has value false. (In SQL true and false values are denoted by 1 and 0) And also when
saving records a special attribute “UserID” is set from the value of the user’s ID value from the
session state in web application.
19
29. Considering the whole transaction there is a mechanism to preserve the consistency of the
transaction. And if the SP is too complex to implement, temporary tables are used for storing
intermediate output values while processing. Sometimes cursor keyword is used to implement
iterative operations during a single SQL operation execution.
Knowledge on SQL is a very important type of knowledge I could obtain from the training
experience I followed.
1.1.1.10 Online Debugging With Developer Tools
Debugging capability of a web page from the client side is a very important experience as it
helps to solve many problems that can never identified by examining or debugging only the
ASP.NET web page. And also this is very important to identify and error tracking the UI
problems caused by CSS errors. This technology also helps to identify values in each attribute as
a snapshot and helps a lot to track bugs.
2.4 Project Involvement
From here onwards the work I did on the project WDD-DBS and its newer version, WDD-CDV
are mentioned. The order of these sub topics are according to the order of timeline I worked on
them.
2.4.1 School System, a sample project
At the beginning of the training I was aware with any knowledge on almost all technologies I
have mentioned earlier. Therefore my senior engineers have decided to give me a pilot project to
make me familiar with the tools and technologies that are going to be used on WDD-DBS
project.
Figure 2.1 Insert a new student
In the database system there were three
relationship sets namely “Student”, “Class”
and “Subject”. Each relationship set was
20
30. given unique ID’s as primary key for the efficiency purposes. Each was accessed using two
stored procedures for the use of querying and storing information from and to the database.
Stored procedures were written in SQL. These stored procedures are accessed by the functions
written in the Library layer of the system which is a collection of C# classes.
As the system is web based the next higher layer is the web service layer which uses the dll files
of the library layer and provide web services to the web server where the web site is hosted. The
web service layer is written in C#.
Web server uses the web services from the web service layer and provides services to the user at
the client side. Here the web site is developed using ASP.NET. Web site contains three main
pages, home page, add classes and page that enables adding, updating, deleting students from the
database and search students from name and class.
Webpage view is improved by using a user friendly “Master Page” and “Link Buttons” are
displayed in the left side of the Master Page which links to each “Content Page”. In the Content
Page AJAX based script “Update Panel” which only updates the table with Grid View when
refreshed which reduces overhead of updating whole web page.
Maximum number of records appears at each time in the Grid View is limited by “Page Binding”
which avoids very large tables appearing in the web page.
2.4.1.1 Usage of Grid Views
“Grid view” is used as the table that views data as table. “Footer Template” enables adding a
new student to the database. Except class name other fields contains text boxes in the Footer
Template. As the class name is a selection from the given set of classes it appears as a
“Dropdown List”. In the body of the Grid View data is appeared in labels located in the “Item
Template”. “Edit Item Template” is used to edit data of an already existing student. In Edit Item
Template, Dropdown List is used as the entering control for the Class Name and Text Box as the
entering control for the other fields. Column of “Command Field” used to change each record to
edit mode and column of “Link Button” used to delete each entry.
21
31. 2.4.1.2 Usage of Validations
“Required Field Validator” and
“Range Validator” are validations
used in the server side to avoid
entering invalid inputs as inputs to the
database. When invalid data are
entered to an input control a star mark
is displayed in front of relevant field
Figure 2.2 Invalid entry validation and a description of invalidity is
displayed for each control in the
validation summary as mentioned earlier.
2.4.2 E-mail sending component (Multiselect web control)
My first task in WDD-DBS
project was to modify and fix
bugs in an online e-mail
sending ASP.NET control that
is used by the staff of the
authority. In that application I
added names of the recipients
in front of their e-mail address
using the stored procedures of
the data of recipients in the MS
Figure 2.3 Mail sender SQL 2005 database. And also I
added functionality of
manually adding custom e-mail addresses as recipients using JavaScript and ASP.NET. I had to
correct some logical errors behind the “OK” button which sends e-mails and had to correct
logical errors that occur when it changes between two states of selection of recipients and
sending e-mails which used the same “OK” button.
22
32. 2.4.3 Inspections viewing and editing using PastInspections web control and
PastInspectionsPopup
Then I worked on an
ASP.NET control called
“PastInspections” that
displays many types of
inspections done by the
authority in several Grid
Views that enables to
view only two records in
each Grid View and
facilitates to navigate
independent from each
Figure 2.4 PastInspectionsPopup other. For navigation
two buttons “Previous”
and “Next” are used. This was developed using an existing code used in the system. Then I had
to implement that control into appropriate modules. Using that control I created a popup control,
“PastInspectionsPopup” that pops in a semi transparent black background disabling all other
parts of the web page. That had a close button to close the popup window.
2.4.4 Chart Of Account report generator
Then I designed a stored procedure for a report generator, “Chart Of Account” in MS SQL to
output some details (e.g. Description of transaction, Reference number, Amount etc.) related to a
money transaction, either an invoice or a receipt. I referred the ER diagram of the database table
structure and obtained the output from a temporary table which was added records to the
temporary table in two steps (for invoices and receipts) each using the inner join operation. The
filter parameters are the required bounds of dates of transaction and some other details.
23
33. 2.4.5 Online Application
I did some maintenance work with
the ASP.NET control that contains
most of the wizard steps of the
online application form filling at
the customer end and updating
them at the staff end. Some steps
contain Grid Views and some of
them are “dev” sections of the
Figure 2.5 One wizard step of Online Application control. They are displayed
sequentially after each step is
validated. (E.g.: Required Field Validation, Regular Expression Validation etc.) Different
validation logics are used for different input types such as single Grid View, multiple Grid View
and “dev” sections. When it comes to multiple Grid Views, they should be validated
independently as well as simultaneously when “Next” button is clicked. Because there were two
modes of operation each mode has to be developed separately. And special attention was paid for
customer side application than the staff mode application which would be used by trained staff
officials.
2.4.6 EventAPNChange, APN changing web control
I developed an ASP.NET web control
“EventAPNChange” which is used to change the
APN number that uniquely identifies a property. A
“Modal Popup Extender” was used to request the
APN number to be inserted and it was validated by
reusing the existing validators. It was developed
Figure 2.6 APN change prompt
from the web service layer of the system.
This web control was used in modules like Permits, Rebates, Conservation and WUC. This was
developed for fulfilling the customer’s requirement for changing the APN number of a record
without re-entering all the data in tables of the modules mentioned above.
24
34. 2.4.7 WESControl, Water Efficiency Standard Control
Next I developed a web control “WESControl” which has two modes View mode and Edit mode
that is used to tick the approved standards of fixtures inspected by an inspector. Here the set of
standards are taken from a separate table, “WaterEfficiencyStandards” and should be saved as
records to the table, “ModuleWaterEfficiencyStandards”. When data are taken from the database
at first it takes the right outer join of the above 2 tables and after once saved, every time a record
is modified, older record is not removed from the database but one of the table’s attribute,
“IsArchieved” is set to true. Valid record is that attribute value of false. In the edit mode the
labels are set hide and data are displayed in text boxes that enables editing and check boxes of
approve are enable to change. In the View mode data loading process is similar but labels are set
visible instead of text boxes and check boxes are disabled. When the data are saved all the tables
with data are saved at once by uniquely identified attributes, “ModuleId” and “RefId”. This
control uses separate codes for both get data and save data from stored procedure layer.
2.4.8 WDSData, Well Distribution System
This was the next item I
had to add to the WDD-
DBS system which was
the longest and most
complete set of work I
got during my training
program. I got a very
good knowledge on the
existing system and also a
lot of knowledge on all
types of controls and
Figure 2.7 Well Distribution System tab logics I learned during
my training program. I
started the design from the scratch from a wireframe document I was provided on the system.
The very first job was to design the GUI of web application.
25
35. 2.4.8.1 GUI Designing
Figure 2.8 Other Information tab
Figure 2.11 CAW Central Division Data tab
Figure 2.10 Foot Note tab
Then I was given to
design GUIs
according to a
specification given as
a Visio document.
Font styles were
assigned using CSS
style sheets and
Figure 2.9 Adding a new Well System
specific design
parameter changes were done to each UI control according to the specification. There is a kind of
freedom to select appropriate distances from each control but font sizes and styles had to be
according to the specifications. The GUI was originally designed in tab panels but after some
unrecognized error was aroused I was asked to develop in a new web page without tab panels.
26
36. 2.4.8.2 Overall Logic of WDSData
First display part of the
system is used to insert
and edit “Well
Systems” and “Wells”.
According to the
specification every
well used to fetch
Figure 2.12 Editing Well System table
water is charged according to the
amount of water used. A set of wells
are grouped to a “Well System” and
a well system is uniquely identified
by a “Master ID”. The design
consists of two HTML table rows
that are displayed only one at a time
and there are two table rows inside
the second table row that will visible Figure 2.13 Searching with Master ID
only when the water production is to be
edited.
The first row is loaded when the page loaded
and it displays a Grid View table of all the
well systems. It also facilitates to search by
“Master Id” or to filter records by parameters,
“Report Method” and “Source Area”. This
table contains logic get and save logics from
stored procedure level, insert, edit delete well
systems and to validate entered data before
Figure 2.14 When data related to WDS Edit is clicked
saved in the database. More than previously
27
37. done Grid Views this has a label at the top
of the table indicating the number of
records and if the table is empty only the
header is showed and a message is
displayed saying there are not data
records.
The first TR inside the second TR is
showed when the icon related to edit data
of the well system is clicked. It contains a
Grid View that shows the water
production of the well system for each
year and an “Add New” button. That table
also has the facility of editing and
Figure 2.15 When Water Production is clicked to be edited
deleting records related to each year.
When the edit is clicked the second
TR in the current TR is displayed.
But if the Add New button is clicked
we can insert a new year that does
not already exist in the table. If the
entered year already exists another
pop up is showed asking for editing
the data of existing year. Second TR
of second TR accepts data into text
fields and store into the database.
When there are existing data, they
Figure 2.16 When WDS Letters are edited
are loaded to text fields from the
database. There is a text field and a button called “Next WDS Master Id” that is automatically
loaded from the Well Systems Grid View and can go to the next WDS Master Id to save data.
28
38. 2.4.8.3 Validation of WDSData
Validation was a very important when it comes to usability and is highly considered in Quality
Assurance. For the “Well Distribution System” tab panel the validation was used as usual but for
other tab panels I had lack in time. So I included “OnClick” and “OnBlur” functions of text
fields to some client side JavaScript functions to easily do the validation of number only and the
correct decimal format. Maximum length was also useful to easily include maximum length of a
text field.
2.4.9 Adobe Flex application
One of the important technologies I
used to send letters in this application
was Adobe Flex. Adobe Flex coding
style is similar to JavaScript but it
had many advanced functionalities
like communicating with web
services directly, declaring Grid View
like beautiful tables and other user
interface design similar to ASP.NET.
Figure 2.17 Letter generation Because its complexity of the flex
code I downloaded and installed the
debugger supplied by Adobe to debug Flex applications. It was very useful to correct errors and
to correct them.
When data are bound to Data Grids or Drop Downs in Flex we had to use an Array Collection
data object type. So I had to get Array List type data instead of Data Set type. For that I
introduced a new transfer object type object in library layer and had to assign each attribute in
each data row in the Data Table to appropriate attributes of the Transfer Object.
My task was to add a new Data Grid for Well Systems to the interface by binding data from the
web service. First I implemented the event correctly and set the data bind functionalities from the
web service layer. Then I had to include a letter sending mechanism and letter printing
mechanism with the help of an earlier code. It was written in WDD-DBS application in C#.
29
39. 2.4.10 WDD-CDV, County Data View for WDDS
2.4.10.1 Introduction to WDD-CDV
The project WDDDBS was
announced as completed and
another project that continues the
functionality of the project was
started named WDD-CDV.I
contributed to design the system
and prepare design document for
the system. Initially it was decided
to use Visual Studio 2010 to Figure 2.18 Property Information of a selected APN number
program and implement from the library layer but due to limitations of time and other constraints
it was decided to continue with Visual Studio 2005 and use the web services that are already
implemented in WDDDBS for the web applications in WDDCDV. Anyway the new project has
some modifications in user interface by using new CSS standards and new validation techniques.
In new project “workflow manager” is not used. In earlier project it was a red astrict mark next
to each text field or dropdown list and there was a validation summary that indicates the
Validation error. This was validated at the server so it took time to correct the error at the user’s
point of view. In new system every validation is done at the client side and validated most of
them on “OnBlur” event of text fields. New system uses “jQuery” JavaScript libraries and the
validation error is displayed as a red tooltip at the relevant control. These also ease the
programmer’s work to develop the system.
I wrote almost all stored procedures to the required system initially. After the login to the system
the user can search the property by using the APN number or by other parameters like owner
name and address data of property. The results are displayed in a grid view and the user can
search the property and all the data related to the property such as Location data, Owner data and
Recordation data are displayed to the user. This also uses an online map system to show the
location of the property in the system. In previous system these functions were not available.
And also the system facilitates to modify the displayed data as Form View control is used to
display the data.
30
40. 2.4.10.2 Form View control
Figure 2.19 Editing Location data of a selected APN number
Functions of Form View control is close to the functions of Grid View control. More than the
Grid View Form View has Insert Item Template to insert new records to the form view. Paging,
editing, cancel editing and updating functions are similar to that were in Grid View. In this
system data fields of Form View are bound to the record fields of the data table. And in the
special case of “Owner Type” the records are left joined with the Owner Type to bind dropdown
list “Owner Type”.
2.4.10.3 New SQL Logic Used
There was a new technique I had to use when inserting and editing data in database tables like
“CountyProperty” that had more fields than the number of fields inserted or edited at a time by
the system. There I checked the condition of inserting and then I placed the given data to the SP
into relevant fields and filled remaining fields with null values or default values. When the
edit/modify condition is found the existing record is copied to a new record by substituting given
fields of data to the SP. Then the original record is deleted. Not only that I had to modify two
other tables “CountyOwners” and “OwnerAddress” when I change the table “CountyProperty”
because they are interrelated. In such cases each table is considered separately and their primary
keys are captured and used for foreign keys as other tables. This system gained me a lot of
knowledge regarding the user interface design and SQL language. Here I learned the special
iteration technique “Cursor” in SQL that was used to copy all records related to Property Data in
single SQL execution when a modification is done to a Property.
31
41. 2.4.10.4 Adding Role Permission
After that I got the opportunity to learn about the system permission level handling. In the
WDDDBS system there is a sub system in module, “Utilities” to add, edit and delete role
permissions. Each role can assign privileges of each section of permissions of the system. Finally
we can add, edit and delete users to a created Role Permission. In the web page in the
application, buttons like Edit, Add New and Delete are enabled from the Page Load from server
side only if the permissions are valid to the user in the current session. I assigned permissions
and tested them in WDD-CDV system for buttons such as mentioned above.
2.4.10.5 Debugging with Developer Tools
I learned and worked with Internet Explorer Developer Tools to identify CSS bugs existed in the
Calendar Extender that was very important to debug a web page in its online stage. Developer
tools can be used to identify the CSS inherited and overridden by each CSS script and can test
while changing its values. I could identify the UI problem was due to an inheritance from higher
CSS and could correct it. One problem was regarding the style of the “Calendar Extender” in
“AjaxToolkit” and the other was on the transparency issue on another div section. I could
successfully fix these bugs with the help of IE Developer Tools.
2.4.10.6 Validation in WDD-CDV
In the new system the validation mechanism was changed and replaced with a JQuery validation.
The new validation pops up a tooltip showing the error message at the input field. The validation
process is fast as the validation occurs in the client side. This validation can also be implemented
on the “OnBlur” event of a text field.
Figure 2.20 Validation message when tried to save changes
32
42. 2.4.11 BottomModulePanel, Create New Modules in WDD-DBS
Figure 2.21 BottomModulePanel
I involved with some work to invoke modules like “Permits” in the WDD-DBS system by
automatically login to the old system by using URLs that are included in the PropertyData.aspx
page in WDD-CDV system. There we used a method of adding the JavaScript codes to the client
side from the page load of server side. The login in WDD-DBS was modified and set to start a
new session without a password. Then according to the value in redirected URL, a new module
is created. (e.g.: New Permit)
Then I worked with a new controller, “BottomModulePanel”, which was a new web control
containing the above mentioned login and starting new module functionality.
2.4.12 Client requested changes in WDD-DBS
I got to add functionalities to WDD-DBS system which were client’s requests. Added restrictions
to “Add New” button when redirected by a module, added control “EventAPNChange” (change
APN number of an existing record in the Grid View.) to modules WUP and WUC and added
“Water Released Date” to reports. In last modification I clear my knowledge on Report
generation and data binding to reports using stored procedures and some other information
regarding Microsoft report generation designing.
2.5 Problems and Difficulties Encountered
2.4.1 Work Related Problems and Difficulties
The first problem I faced was the unfamiliar technology. I was never worked with technologies
like ASP.NET and Flex. I was not that much familiar with the new tools and developer
environments such as Visual Studio. I had to work in a pilot project, “School System” only to
learn the technologies they used for WDD-DBS. However when I started to work in Adobe Flex
in the WDD-DBS project, I had never used that technology before.
33
43. The other major difficulty was to understand the existing system of WDD-DBS. Initially I had to
blindly do only whatever my senior said me to do. It took a long time to familiarize me to the
system.
I was not familiar with the subversion system the company used which aroused many updating
committing problems with the subversion system. And also Skype and Outlook e-mail client was
not familiar with me. Anyhow I could overcome these difficulties rapidly.
2.4.2 Training Personal Related Problems and Difficulties
I had no any considerable problem with my training personal. All the senior staff members
including the project manager were kind and friendly. They even did not pressure me to
complete quickly by remembering deadlines and did not ask me to work after hours.
Anyway there were very small problems like not giving sufficient information to solve the
problem. I had to continuously ask questions sometimes to understand the problem to be solved.
And also they did not give me a proper knowledge about technology needed and instead asked
me to search me in the Internet. However I think it is good for me to learn to learn by self.
2.4.3 Other Personal Difficulties
The temperature was too low due to the air conditioner and I felt so uncomfortable during my
first few days. And also I felt lonely after I started to work with unknown set of people. There
were no major personal difficulties I had to face during my internship.
2.6 Solution Found
The problems I mentioned earlier are not major problems I had to think so much on solutions.
Most problems became natural with time and I could manage self studying using the Internet.
Sometimes I could change the air conditioner temperature using the remote control and no major
problem encountered during my training period.
34
44. 2.7 Company Practices Exposed
2.7.1 Information on Production Processes
All the software development process and its life cycle are described in a set of instructions
known as ZoneWay. It is an internal document and prepared to maintain the CMM 3 standards.
And all the other day to day office work are according to 5S specifications.
2.7.2 Administrative and Office Practices
Employers should come to work at 8.30 a.m. in morning. But the time is not very strict and the
number of working hours may vary depending on the project he involved in. All the entrance
doors access card to be opened and all the data regarding to them are stored in a database which
may be used to calculate the number of working hours. Leave should be applied from the project
manager. And the employers should wear a formal dress suitable for their profession and
exception is allowed in all Fridays.
2.7.3 Financial Procedures
Employees enter time they spent on the each project in each day in an online system called
XPlanner. At end of each month the project manager send these data to the client and the client is
charged according to the time spent on each software component.
Employers are paid on 25th of each month. Salaries are automatically sent to the bank account
provided by the employer previously. Then a salary pay sheet can be obtained from the
accountant after the money is deposited in the account.
2.7.4 Safety Procedures
Every computer in the company has a dedicated UPS to prevent losing data and to prevent harm
caused by lightning. And there is a fire extinguishing system connecting each floor of the
company as a precaution to a sudden fire.
However because there are no dangerous hardware located inside the company almost there is no
need for safety procedures.
35
45. 2.7.5 Management Practices
The company has a very flat management hierarchy. All engineers, project managers and top
level management talk each other with their first names. Management practices are only visible
in formal project processing.
Each project has three mangers as follows to maintain its consistency well.
1. Technical Responsibility (TR)
2. Quality Assurance Responsibility (QAR)
3. Configuration Management Responsibility (CMR)
3.1.1 Operational Techniques
The software development process consists of few phases such as design, development,
deployment, testing and etc. In each time of development we issue a release note to QA and it
will test and procedure continues. Requirements gathering and making the SRS document are the
initial stages done by visiting the client and contacting via video conferencing.
3.2 Machines and Equipments encountered
From the beginning I got a full feature desktop computer with following configurations.
Processor – Intel® Core™2 Duo E7400 @ 2.80 GHz
Installed memory (RAM) – 4.00 GB (3.24 GB usable)
VGA – Inbuilt
HDD capacity – 160 GB
Operating system – Windows7 32-Bit
36
46. 4. Conclusion
4.1 About Training Program
I could complete my training period in Zone24x7 as an intern successfully. I would like to thank
all the people who contributed this program to make this one a success story. I could obtain both
technical and non technical skills in a professional environment among experienced
professionals. I could gather knowledge on basically database handling and web development
associated with such database system in the technical stream. And in soft skill perspective I got
knowledge on inter communication, team work and professional responsible behavior required in
a professional organization.
4.2 Technical Improvements
I was involved in a project called “Water Demand Division System” which is a database based
web system with many technologies like ASP.NET, Ajax, jQuery, SQL and Adobe Flex. I got a
firm knowledge and an experience on these technologies and tools. And also I could be familiar
with subversion management system TotoiseSVN, interacting with Skype, mailing with MS
Outlook and updating work done in a system called XPlanner. I could also get some knowledge
on the life cycle of a software system, Quality Assurance process, iterative development and
testing processes which are very important technical practices when it comes to professionalism.
When I joined the company the above subjects (database systems and web application) were very
unusual for me and I was expecting the knowledge even before I joined the company. I was very
happy to fulfill my expectations from my internship. These subjects need a more practical
experience than a theoretical knowledge which I got enough from the training program.
Another important thing I learnt was the skill that needed to find the appropriate technical details
in a lesser time and correctly using search engines. The details I am looking are there in the
internet in almost all cases which is an important point I understood.
I also gathered knowledge on report writing, technical writing, time allocation and management
that are subordinate knowledge required for professionalism. I learned that without this
knowledge regarding common sense it is impossible to be a good engineer.
37
47. 4.3 Soft Skill Improvements
In today commercial world soft skills are very important. I could a good experience of soft skills
when I was working in Zone24x7. Communication was very important when involved in a group
project. Team members should have a good understanding with their fellow members that is
basic requirement for synergy.
Team spirit is another soft skill I learned from the internship. Large systems must need a large
number of programmers, QA engineers and all other work together to achieve the common goal.
This created the work division among the team members and I understood the contribution that
should be given behalf of an individual for benefit of the whole team.
I observed the leadership given by our project manager to maintain the stability of the process of
development even among the constraints like resources and time was challenging him. Friendly
leadership motivated the team to go on without an extra stress.
4.4 Overall Conclusion
After a considerable period of time I looked back into my training program. It was not as
stressful as I expected before I started the training program. It may depend on the level of
emergency of the project. Fortunately it helped me a lot to improve my level of knowledge while
maintaining my mind in a comparatively low stress condition. The training organization was near
to my permanent residence which made me comfortable to stay at work until late afternoon.
Anyway the knowledge I gathered was not that much broad in the sense of technology. I think it
would have been better if I could involve in some other projects related to some other theories
and technologies such as intelligent systems, embedded systems and computer vision. When I
selected this company for section of interviews I expected that sort of experience as well.
However according to my knowledge I need a long term exposure to theories and technologies to
get a proper understanding. So it was good for me to understand the subjects, database system
and web systems with a lot of experience to realize the technology other than working with many
technologies and not getting the insight of any technology.
38
48. References
1. Training Handbook
2. Entries of Daily Diary
3. Monthly Reports of training
4. ZoneWay, internal resource of Zone24x7
5. Online web tutorials : http://www.w3schools.com
6. Development resources site : http://www.codeproject.com
7. Wikipedia : http://en.wikipedia.org
8. Official ASP.NET web site : http://www.asp.net
9. The official Microsoft developer web site : www.msdn.com
39
49. Abbreviations
AJAX - Asynchronous JavaScript and XML
ANSI - American National Standards Institute
APN – Assessor's Parcel Number
CEO – Chief Executive Officer
CMM – Capability Maturity Model
CMR – Configuration Management Responsibility
CRT – Cathode Ray Tube
CSE – Computer Science and Engineering
CSS – Cascading Style Sheets
DBMS – Database Management System
DVD – Digital Versatile Disc
ENTC – Electronic and Telecommunication
GB – Giga Byte
GUI – Graphical User Interface
HDD – Hard Disk Drive
HR – Human Resource
HTML – Hyper Text Marking Language
ID – Identity
IDE – Integrated Development Environment
IE – Internet Explorer
IIS – Internet Information Service
IP – Internet Protocol
JS – JavaScript
JSP – Java Server Pages
LCD – Liquid Crystal Display
NAITA - National Apprentice and Industrial Training Authority
MS – Microsoft
MSDN - Microsoft Developer Network
OCR – Optical Character Recognition
40
50. OO – Object Oriented
PR – Project Responsibility
QA – Quality Assurance
QAR – Quality Assurance Responsibility
RAM – Random Access Memory
RegEx – Regular Expression
SOAP – Simple Object Access Protocol
SP – Stored Procedure
SQL - Structured Query Language
SRS – System Requirement Specification
SSE – Senior Software Engineer
TR – Table Row, Technical Responsibility
UI – User Interface
UML – Unified Modeling Language
UOM – University of Moratuwa
UPS – Uninterrupted Power Supply
URI – Uniform Resource Identifier
USA – United States of America
UTS – Unit Test Specification
VB – Visual Basic
VGA – Video Graphics Array
WDD-DBS – Water Demand Division - Database System
WDD-CDV – Water Demand Division - County Data View
WUC – Water Use Credit
WUP – Water Use Permit
XML – Extensible Markup Language
41