Up_Report_final_201902049
Up_Report_final_201902049
Industrial Training
On
Dot.Net Full-stack Development
Submitted by
Md Asif Mahmud ( 201902049 )
I state clearly that the only foundation for this training report is the product of my
own research.I understand that the only things that can make this industrial training
successful are my own performance and effort. It was through my own hard work and
talent that I finished my industrial training. Without a sure, I should give this industrial
training paper my full attention, skill, and understanding. I’ve also been informed that
this internship opportunity is unique.
Md Asif Mahmud
ID: 201902049
i
Certificate
This is to confirm that Md. Asif Mahmud completed and filed the industrial training
report, Acquired Pragmatic Knowledge of Software Development, on Aug 7, 2024, in
partial fulfilment of the requirements for the degree of Bachelor of Science in Computer
Science and Engineering.
Dr.Md.Mostafijur Rahman
Academic Supervisor
Accepted and approved in partial fulfillment of the requirement for the degree Bach-
elor of Science in Computer Science and Engineering.
ii
Acknowledgments
I sincerely appreciate the assistance and guidance I received from a number of peo-
ple during the training session, which ran from May 25, 2024, to July 7, 2024. They
provided direction and encouragement, which helped me finish the course success-
fully—especially when I ran across issues. Initially, I would want to express my grati-
tude to my faculty mentor, Dr.Md.Mostafijur Rahman (Associate professor, depart-
ment of CSE), who was always available to assist me. He has always helped me out
with my internship. Lastly, I would want to express my gratitude to Rizve Rahman
Reza (IT), my industrial supervisor, for his assistance and counsel in answering any
questions I had during my internship. He had been my mentor since the first day of
training. He was really willing to offer his experience, IT know-how, and expertise in
cutting-edge technology and business culture. I had a lot of issues during my train-
ing period, and he wasted time trying to help me with them.In conclusion, I express
my gratitude to Allah, my parents, and my relatives for their unwavering provision of
emotional, material, and other forms of support. They motivated and supported me to
quickly finish the training session, especially when I was having difficulties.
iii
Abstract
Within the framework of my industrial training course. I was employed as a trainee soft-
ware developer at Object Canvas Technology. I was able to learn about development
and how to handle actual.NET program during the training term. Numerous develop-
ment tools, such as SQL, SQL Server, Visual Studio, Git, and others, were presented
to me. I have experience working on several project components, such as creating the
menu and front page, testing, and troubleshooting the software. Additionally, I got to
work with other developers, which helped me become a better communicator and team
player.Thus, the information and abilities I have acquired from this training are likewise
emphasised and covered. The challenges we’ve encountered and how we’ve addressed
them. Thanks to this training, I am now fully qualified to work as a.NET developer in
the real world.
iv
TABLE OF CONTENTS
Declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
Certificate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Introduction of object canvas technology . . . . . . . . . . . . 1
1.2 Company Profile . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Mission . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 Vission . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.3 Company Values . . . . . . . . . . . . . . . . . . . 2
1.3 Motivation of Training . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Graphical representation of an organisation’s structure . . . . . 4
1.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
v
2.3.2 Practical knowledge: . . . . . . . . . . . . . . . . . 8
2.4 First Week . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 9
2.4.2 Orientation and Onboarding . . . . . . . . . . . . . 9
2.4.3 Training Sessions . . . . . . . . . . . . . . . . . . . 10
2.4.4 Version Control with Git: . . . . . . . . . . . . . . . 10
2.4.5 Database Management with SQL Server: . . . . . . 11
2.4.6 Bug Fixing and Code Refactoring: . . . . . . . . . . 11
2.5 Learning Outcomes . . . . . . . . . . . . . . . . . . . . . . . 11
2.5.1 Technical Familiarity: . . . . . . . . . . . . . . . . 11
2.5.2 Adaptation to Workplace Culture: . . . . . . . . . . 11
2.6 Second Week . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6.1 Cloning the Project Repository . . . . . . . . . . . . 15
2.6.2 Creating a Model, View, and Controller (MVC) . . . 16
2.6.3 HTML Helpers in MVC . . . . . . . . . . . . . . . 16
2.6.4 ViewBag in MVC . . . . . . . . . . . . . . . . . . . 16
2.7 Third Week . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.7.1 Creating Models, Controllers, and Views Using Tem-
pData Creating Models, Controllers, and Views: . . 18
2.7.2 Using TempData for Data Transfer: . . . . . . . . . 19
2.7.3 Implementing Routing in MVC Understanding Rout-
ing: . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.7.4 Passing Data from View to Controller Data Flow
from View to Controller: . . . . . . . . . . . . . . . 21
2.7.5 Learning Outcomes Mastery of MVC Data Handling: 23
2.8 Fourth Week . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.8.1 Creating Layouts in MVC Understanding Layouts
in MVC: . . . . . . . . . . . . . . . . . . . . . . . 23
2.8.2 Creating a Basic Layout: . . . . . . . . . . . . . . . 23
2.8.3 Creating Multiple Layouts in MVC . . . . . . . . . 24
vi
2.9 Fifth Week . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.9.1 Creating Entity Framework in MVC . . . . . . . . . 26
2.9.2 Connect with Database and Save Data in Database . 27
2.9.3 Overall Conclusion . . . . . . . . . . . . . . . . . . 27
4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1 Summary of the Training Experience . . . . . . . . . . . . . . 34
4.2 Achieved Learning Outcomes . . . . . . . . . . . . . . . . . . 35
4.3 Challenges and Overcoming Them . . . . . . . . . . . . . . . 37
4.4 Impact on Future Career Plans . . . . . . . . . . . . . . . . . 37
4.5 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 37
4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
vii
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
viii
List of Figures
1.1 ORGANOGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
ix
Chapter 1
Introduction
1
self-improvement. The team embraces growth by establishing targets and achieving
them. Our vision is to remain flexible and adaptable at all times,accepting change as
inevitable. Treating all our partners (customers, suppliers, and employees) like we want
to be treated, with respect and dignity is our axiom. We maintain profitability without
sacrificing our reputation and relationships. We are ensuring you that our products and
services are delivered as promised. At the end of the day our aspiration is to be the
number 1 provider of software development and IT supports in the field of Information
and Technology in Bangladesh.
1.2.1 Mission
The main vision of Object Canvas Technology is to offer the realistic knowledge for
software development and touch the milestone of creativity. Beside local market, Object
Canvas Technology successfully filling up the demand of international market. After
establishing Object Canvas Technology, the company quickly became one of the most
popular and well-respected makers of software development. By focusing on creating
well-designed, highly creative experiences, Object Canvas Technology has maintained
an unparalleled reputation for quality since its inception.
1.2.2 Vission
Object Canvas Technology has a rich number of clients who are really pleased with its
creativity, strength, quality, and service. The company has been designed on integrated
system of software development and website development wherein all the required in-
stallations / facilities are available within the company for producing the jobs up to final
stage uninterrupted power supply, favorable environment and ILO standard facilities,
and sufficient bandwidth for quick download and upload with another ISP as a backup.
Object Canvas Technology always keeps it in the heart of its motto. Keeping its motto
in the right way, Object Canvas Technology continued its journey through shine and
2
showers, through pain and pleasure, barrier after barrier were crossed, and challenge
after challenge were faced and overcome to transform the Company from the small-
scale operation that was in 2014 to what it is today a conglomerate in its field with a
gang of creative personnel.
• Networking: Through internships, you can meet people in your sector and build
professional networks.
• Potential Job Offers : A lot of internships serve as a launching pad for future job
opportunities. Businesses often select exceptional interns who have exceptional
talents, dedication, and cultural fit.
• Skill Development: People can acquire new skills and talents through internships
that employers are interested in hiring.
1.4 Services
Object Canvas Technology serves clients globally as a leading supplier of IT services
and solutions. Within its hierarchical structure, Object Canvas Technology runs a
3
number of divisions, including software development, website development, and e-
commerce website creation, all in accordance with the business practices of top in-
ternational IT service providers.
4
• Software Development : Includes Software Engineers and Assistant Software
Engineers.
• Website Development : Includes Chief Web Designer and Assistant Web De-
signer.
Each department has specific roles and responsibilities, indicating the reporting
structure and distribution of tasks within the company.
1.6 Conclusion
We looked at the specifics of the training in the previous chapter, including the goals,
the information that was learnt, and the difficulties that were faced.
5
Chapter 2
2.1 Introduction
The industrial training program at Object Canvas Technology provided an immersive
experience in .NET Full-stack Development, with a focus on C# programming.The cur-
riculum was designed to provide me with a thorough understanding of software de-
velopment’s front-end and back-end components. By means of a blend of supervised
instruction, practical assignments, and group projects, I improved my technical abilities
and acquired important knowledge about how an expert software development environ-
ment functions.
This chapter discusses the precise tasks I completed during the training, the goals of
the internship, and the information I gained from the program’s theoretical and practical
components.[1]
6
technology with practical coding assignments.
• To Learn Industry Best Practices: I will become familiar with industry standard
practices such as version control, coding standards, and testing protocols.
7
• Database Theory: Relational database administration and optimisation using
SQL Server involved the application of concepts such as normalisation, indexing,
and transaction management.
8
• Version Control with Git: I gained knowledge of branching techniques, merg-
ing conflict resolution, and working with teammates on shared repositories while
managing codebases with Git.
2.4.1 Introduction
The first week of my industrial training at Object Canvas Technology served as an es-
sential introduction to the working environment, tools, and technologies I would be
using throughout the internship.This initial phase was crucial for laying the foundation
of my learning and ensuring that I was well-prepared to contribute to the projects as-
signed to me. The week involved onboarding processes, preliminary training sessions,
and initial hands-on tasks that set the stage for more advanced work in the following
weeks.
9
• Onboarding Process: I received assistance setting up my workspace, configur-
ing the required software, and obtaining access to company systems during the
onboarding process. Installing Visual Studio, SQL Server Management Studio,
Git, and other necessary development tools was part of this process.
• Basic Git commands such as clone, commit, push, pull, and merge.
10
2.4.5 Database Management with SQL Server:
Another key area of focus was SQL Server, where I was introduced to the database
schema used in the project. The training covered:
I had to address little flaws in the codebase as part of my first practical experience. My
goal in doing this exercise was to contribute to the project and help me become more
comfortable with the coding. I also followed the company’s coding standards while
restructuring the code to make it easier to read and maintain.
I gained a strong foundation on the tools and technology I would use for the duration of
the internship during the first week. Through theoretical seminars and practical work, I
gained a strong understanding of C#, ASP.NET Core, SQL Server, and Git.
The process of orientation and onboarding aided me in adjusting to the work environ-
ment at Object Canvas Technology. I learnt about the channels of communication and
team dynamics, which are essential for productive teamwork in a work environment.
11
Figure 2.1: Visual Studio Installation
12
Figure 2.3: New Project Creation
13
Figure 2.5: SQL Server Connection
14
Figure 2.6: SQL Server
Cloning the project repository from the company’s version control system was the first
task of the week. This was necessary in order to prepare to add new features and set up
my local development environment using the most recent version of the project.I used
Git to clone the repository, which involved fetching the entire project codebase from the
remote repository to my local machine.I cloned the repository and made a new branch
just for the feature I was going to work on. By following this procedure, I can be sure
that my work may be produced separately from the main codebase and then merged
later on without interfering with current work.After cloning the repository, I configured
the database connection, restored dependencies, and ran the application to make sure
everything was working properly before launching the project in my local development
environment.
15
2.6.2 Creating a Model, View, and Controller (MVC)
• Model Creation: Defining a model that serves as the application’s data struc-
ture was the first step in putting the new feature into practice. A model in this
context usually maps to a database table, with characteristics mapping to ta-
ble columns.The Entity Framework was then coupled with the model to make
database operations easier. To enable CRUD activities on the relevant table, this
required changing the DbContext class to add a DbSet for the new model.
• Controller Creation: The next step was to create a controller that would han-
dle HTTP requests related to the new model. The controller serves as an inter-
mediary between the view (user interface) and the model (data), processing in-
coming requests, performing operations on the model, and returning appropriate
responses.The controller included actions for handling GET and POST requests,
ensuring that data could be retrieved from the database, displayed to the user, and
modified as needed.
• View Creation: The final component was the creation of views, which are re-
sponsible for displaying data to the user and capturing user input. In ASP.NET
Core, views are typically written in Razor, a markup syntax that allows embed-
ding of C# code within HTML.
In ASP.NET MVC, HTML Helpers are functions that provide HTML content for a view.
By making the process of constructing form elements, links, and other HTML elements
simpler, these tools guarantee consistency and lower the possibility of errors in manual
code.
In ASP.NET MVC, a dynamic object called ViewBag is used to transfer data from a
controller to a view. It is helpful in situations when basic ad hoc data transfer is required
16
since it permits the temporary storing of data without the need for model binding.
17
Figure 2.9: Create Model,View,Controller
This week, I focused on creating new models, controllers, and views from scratch,
reinforcing my understanding of the MVC architecture. The process involved:
• Model Creation: Using models to define the data’s structure. As part of this,
classes representing the application’s data entities and their properties matching
18
database fields had to be created.
• Controller Creation: Creating controllers to control the logic of the program and
react to user input. Request management, data processing, and view selection fell
under the purview of controllers.
• View Creation: creating views that show the user data. The models and con-
trollers were closely incorporated with these views, enabling the creation of dy-
namic content.
19
Figure 2.11: Using TempData to pass data
20
2.7.3 Implementing Routing in MVC Understanding Routing:
• Default Routing: I began by learning about the ASP.NET MVC default routing
configuration, which uses established patterns to link URLs to the HomeCon-
troller and related operations.
2.7.4 Passing Data from View to Controller Data Flow from View
to Controller:
• Form Data Submission: Form submissions are one of the main ways that data
is sent from the view to the controller.constructing forms that send information to
particular controller actions.Using model binding helps ease data processing by
automatically mapping form data to action method parameters or model objects.
• Using Query Strings: putting into practice scenarios where query strings were
used to transfer data from the view to the controller, giving users direct control
over URL parameters to filter or search data.Realising how crucial it is to validate
and clean query string data in order to guard against security flaws like SQL
injection and cross-site scripting.
21
Figure 2.13: Data Flow from View to Controller
22
2.7.5 Learning Outcomes Mastery of MVC Data Handling:
Creating models, controllers, and views was thoroughly covered in the third week, es-
pecially as it related to routing, controlling data flow with TempData, and directly sub-
mitting data from views to controllers.
In Web Forms, a layout is comparable to a master page. It’s employed to specify a uni-
fied appearance and feel for various viewpoints. Sections that are constant throughout
the program, such headers, footers, and navigation bars, are typical components of a
layout.
• Header Section
• Footer Section
23
Figure 2.15: Create layout
various areas of an application may occasionally need various design. For instance,
the navigation structure of an admin area and a user-facing section of the website may
differ. This is the point at which different layouts are useful.
24
Figure 2.16: Admin layout
• User Layout: The front-facing portion of your program that normal users engage
with is what the user layout is meant for. Usually more straightforward, this
layout emphasises the user experience with elements like headings, footers, and
navigation menus.
25
2.9 Fifth Week
Entity Framework (EF) is a framework for ORM (Object-Relational Mapping) that en-
ables developers to use.NET objects to interact with databases. By allowing you to
communicate with your database using strongly-typed objects rather than plain SQL
queries, it streamlines data access.
• Install the Entity Framework NuGet packages in your ASP.NET Core project.
• Et up a DbContext class that manages the connection to the database and provides
access to the data.
26
2.9.2 Connect with Database and Save Data in Database
The next step is to link your application to the database and carry out CRUD operations
after setting up Entity Framework.Make sure the DbContext class is set up properly
to establish a connection to your database. You can inject the DbContext into your
controllers by using dependency injection.In your MVC view, you can create a form that
receives user input. After submitting the form, the data is transferred to the controller,
where Entity Framework is used to validate and save it to the database.
This report’s second chapter gave a detailed rundown of the training exercises and the
particular jobs completed during the internship. ASP.NET Core MVC was the main
topic of the course, with a focus on connecting and communicating with databases,
comprehending and utilising the Entity Framework, and adding navigation components
to improve the application’s user interface.The main learning goals of this chapter were
accomplished through real-world examples and practical applications. A thorough con-
text was provided in the introduction, which prepared the ground for the technical inves-
tigation. The activities were in line with the aims of creating dependable, and effective
online applications with the.NET framework since the objectives were well-defined.
27
Chapter 3
3.1 Introduction
I gained a wide range of abilities that are essential for a full-stack developer at Ob-
ject Canvas Technologies throughout my industrial training in.NET Full-stack devel-
opment. These abilities are divided into three categories: industry-specific knowledge,
soft skills, and technical capabilities. The.NET framework and the C# programming
language are highlighted.
• C# Programming:
Throughout the course, I was mostly focused on C#, a strong and flexible lan-
guage that is essential to the.NET framework. Working on several web appli-
cation back-end components helped me become more proficient in C#.I wrote
object-oriented code, worked with Language Integrated Query (LINQ) for data
manipulation, and implemented design patterns like Model-View-Controller (MVC).
28
Creating a RESTful API was a major effort in which I used C# to make endpoints
that operated on a SQL Server database and carried out CRUD functions.[2]
• JavaScript:
I did a lot of front-end programming work with JavaScript in addition to C#.
Using frameworks like Angular or React, depending on the situation, I created
dynamic and responsive web sites that are often combined with.NET backends.
My knowledge of the interactions between front-end elements and back-end ser-
vices has enhanced as a result of this encounter.
• SQL Server:
During my training, I worked a lot with Microsoft SQL Server. I gained knowl-
edge on how to create intricate SQL queries, maintain relational databases, and
enhance database performance. In order to automate processes and enforce busi-
ness rules inside the database, I also worked on developing stored procedures and
29
triggers.
• Visual Studio:
Throughout the training, my main Integrated Development Environment (IDE)
was Visual Studio. I discovered how to take advantage of its robust code naviga-
tion and debugging tools, as well as its Git integration for version management. I
also used a variety of Visual Studio extensions and tools to increase the effective-
ness of my project management and coding.
• JIRA:
JIRA was a tool I used a lot for tracking and managing tasks. I gained knowl-
edge on how to draft and oversee user stories, monitor development via sprint
30
boards, and produce reports to evaluate the effectiveness of teams. This tool was
crucial for maintaining project focus and making sure that everyone in the team
understood the importance of meeting deadlines and goals.
3.3.1 Communication:
Regular contact with stakeholders, project managers, and team members was es-
sential to my job. It was via routinely providing project updates, talking about
technical difficulties, and documenting my work that I developed great commu-
nication skills. Through these experiences, I have learnt how to communicate
verbally and in writing about difficult technical subjects in an understandable and
succinct manner.
3.3.2 Teamwork:
31
project objectives. I also improved at projecting how long projects would take
and making sure I completed them on schedule without sacrificing quality.
3.3.4 Problem-Solving:
Due to the nature of the task, it was frequently necessary to solve challenging
issues including code debugging, speed optimisation, and the implementation of
new features under tight deadlines. I created a methodical process for handling
problems that included figuring out the underlying reason, looking into possi-
ble fixes, putting theories to the test, and putting the best workable answer into
practice. This technique improved my capacity for critical thought and problem-
solving.
32
Best practices for deploying apps to production environments, such as logging,
monitoring, and preserving high availability, were also covered to me.
3.5 Conclusion
My professional development has been greatly aided by the abilities and infor-
mation I gained while completing my industrial training in.NET Full-stack De-
velopment at Object Canvas Technologies. I now have the market knowledge,
soft skills, and technical proficiency necessary to succeed as a full-stack devel-
oper thanks to these experiences. I now have a strong foundation in C# and.NET
technologies from the training, which will help me take advantage of future pos-
sibilities and challenges in the software development sector.[5]
33
Chapter 4
Conclusion
34
4.2 Achieved Learning Outcomes
c. Soft Skills Enhancement:My soft skills have also improved greatly as a re-
sult of the training. My communication and teamwork skills have increased
as a result of regular contacts with cross-functional teams. My ability to
manage many jobs and fulfil project deadlines has improved my organi-
sational and time management skills. In addition, taking on challenging
tasks and debugging code have improved my analytical and problem-solving
skills.
35
ing the training, particularly through the use of Azure DevOps, introduced
me to Continuous Integration and Continuous Deployment (CI/CD) pipelines.
I learned how to automate build and deployment processes, reducing man-
ual errors and speeding up the release cycle. This understanding of DevOps
has broadened my perspective on the importance of operational efficiency
and continuous delivery in modern software development.
36
4.3 Challenges and Overcoming Them
During the training time, I faced a number of challenges that put my skills and
fortitude to the test. It was initially intimidating to adjust to new technologies
and frameworks within constrained project schedules. But with perseverance,
mentorship, and self-directed study, I was able to get past these obstacles and
produce high-caliber work. Through these experiences, I’ve learnt the value of
flexibility, never-ending education, and tenacity in the rapidly changing world of
technology.
My ambitions and aspirations for my career have been greatly impacted by this
industrial training. My extensive skill set and expertise put me in a strong posi-
tion to succeed in a full-stack development job. My passions and areas of interest
for specialisation are now more apparent to me. In order to keep up with new
developments in software development, I’ve been motivated to pursue additional
certifications and graduate coursework by being exposed to cutting-edge technol-
ogy and industry practices.
4.5 Acknowledgments
I want to thank Object Canvas Technology from the bottom of my heart for giving
me this chance to develop. I want to express my gratitude in especially to my
teammates and mentors for their constant help, direction, and inspiration during
the training. Their knowledge and desire to impart it to me have been invaluable
to my growth.
I would also like to express my gratitude to my university and the faculty for
organising this industrial training program, realising its value in bridging the gap
37
between academic knowledge and industry demands.
4.6 Conclusion
38
References
[1] Ricardo Peres. Modern Web Development with ASP. NET Core 3: An end
to end guide covering the latest features of Visual Studio 2019, Blazor and
Entity Framework. Packt Publishing Ltd, 2020.
[2] Jon Smith. Entity Framework core in action. Simon and Schuster, 2021.
[3] Anthony Giretti. Import and display data with asp. net core razor pages,
hosted services, and grpc. In Beginning gRPC with ASP. NET Core 6: Build
Applications using ASP. NET Core Razor Pages, Angular, and Best Practices
in. NET 6, pages 299–385. Springer, 2022.
[4] Annanda Rath, Bojan Spasic, Nick Boucart, and Philippe Thiran. Security
pattern for cloud saas: From system and data security to privacy case study
in aws and azure. Computers, 8(2):34, 2019.
[5] Andrew Troelsen and Phillip Japikse. Pro C# 9 with. NET 5: Foundational
Principles and Practices in Programming. Springer, 2021.
39