Cognizant Technology Solutions: Programmer Analyst
Cognizant Technology Solutions: Programmer Analyst
A TRAINING REPORT
Submitted to
PHAGWARA, PUNJAB
SUBMITTED BY:
SUBMITTED TO:
1
Annexure-IX (b): Student Declaration
I , Prachi Agrawal, 11702289, hereby declare that the work done by me as a Programmer Analyst Trainee
From March , 2021 to August, 2021 , under the supervision of Abhishek Sharma, Project Manager ,
Cognizant Group and Prachi Agrawal ,Team Leader , Cognizant Group , Lovely Professional University
, Phagwara ,Punjab , is a record of original work for the partial fulfilment of the requirements for the
award of the degree B.Tech.
2
Annexure-IX (c): Declaration by the supervisors
This is to certify that Prachi Agrawal, 11702289 from Lovely Professional University, Phagwara,
Punjab, has worked as a trainee in Cognizant Technology Solutions in Dot Net domain under my
supervision from March 2021 to July 2021. It is further stated that the work carried out by the student is
a record of original work to the best of my knowledge for the partial fulfilment of the requirements for
the award of the degree, B. Tech.
Dated :
Dated :
3
ACKNOWLEDGEMENT
The time I spent in Cognizant Technology Solutions Private Limited as an intern from March 2021 to
July 2021 was a memorable one for me as it was rich in experience sharing and helped me discover my
potential. I have had so many rich experiences and opportunities that I personally believe it will forever
shape and influence my professional life while fostering personal growth and development. I would
like to thank both Lovely Professional University and Cognizant Technology Solutions Private Limited
for giving me this wonderful opportunity to learn how technology is being used in the real world. I
would also like to Cognizant Technology Solutions Private Limited for providing me with the domain
technology. Besides, I would like to thank Mr. Abhishek Sharma (Project Manager) and Ms.Aparna
Sekar( Team Coach) for giving me this opportunity to work with their esteemed team.
Yours Sincerely,
Prachi Agrawal
4
Table of Contents:
S. No Title Page No.
1 Student Declaration 2
2 Supervisor Declaration 3
3 ACKNOWLEDGEMENT 4
4 Chapter – 1 6-14
5 Chapter – 2 15-31
6 Chapter – 3 32
7 Chapter – 4 33
Conclusion
8 Chapter – 5 34
Conclusion
10 Chapter – 6 35
References
5
Chapter-1
Cognizant is led by Brian Humphries (CEO), Karen McLoughlin (CFO) and Malcolm Frank
(President, Cognizant Digital Business). Mr. Lakshmi Narayan has been the vice-president of
Cognizant India since 2007.
Cognizant has three key areas of expertise which makes up their business —
• Digital Business
• Digital Operations
• Digital Systems & Technology.
The company has 291,700 employees globally, of which over 150,000 are in India across 10 locations
with a plurality in Chennai. The other centers of the company are in Bangalore, Chennai, Coimbatore,
Gurgaon, Noida, Hyderabad, Kochi, Kolkata, Mangalore, Mumbai, and Pune. The company has local,
regional, and global delivery centers in the Britain, Hungary, The Netherlands, Spain, China,
Philippines, Canada, Brazil, Argentina, Mexico etc. Cognizant is organized into several verticals and
horizontal units. The vertical units focus on specific industries such as Banking & Financial Services,
Insurance, Healthcare, Manufacturing and Retail. The horizontals focus on specific technologies or
process areas such as Analytics, mobile computing, BPO and Testing. Both horizontal and vertical
units have business consultants, who together form the organization-wide Cognizant Consulting team.
6
Cognizant is among the largest recruiters of MBAs in the industry; they are involved in business
development and business analysis for IT services projects.
Cognizant is acquiring partnerships with many companies, which help it to develop these technologies,
and help the clients give the best experience. Cognizant has a list of strategic partners who are
industrial giants like Adobe, Amazon Web Services (AWS), Cisco, Dell Technologies, Hitachi, IBM,
Informatica, Microsoft, Google, Oracle and list of many more. Cognizant also has one of the world’s
most famous organizations as their clients.
Cognizant is a huge multinational company that has its expertise of manufacturing in many industries
like
Manufacturing Utilities
• Artificial Intelligence
• Digital Engineering
7
• Digital Strategy
• Interactive
• Internet Of Things
• Application Services
• Cloud Enablement
• Cognizant Infrastructure Services
• Cognizant Security
• Core Modernization
• Digital Engineering
• Enterprise Application Services
• Quality Engineering & Assurance
8
Cognizant has a well-organized employee management system, which take of every employee, so no
one feels left out. Cognizant has one of the world’s best cultural values when it comes to workplace. It
has total assets of approximately 16.2 billion USD.
❖ Achievements of Cognizant:
Cognizant has been named to the 2009 Fortune 100 Fastest-Growing Companies List for the seventh
consecutive year. Cognizant has also been named to the Fortune 1000 and Forbes Global 2000 lists for
2009. It has consistently ranked among the fastest growing companies including the 2009 Business week
50 list of the top-performing U.S. companies, the Business week Hottest Tech Companies 2009, and the
Forbes Fast Tech 2009 list of 25 Fastest Growing Technology Companies in America
Cognizant has won 22 HCM Excellence Awards from Brandon Hall, including nine Gold, four Silver
and nine bronze awards. A research and analyst firm, the Brandon Hall Group focuses on improving the
workplace through its findings. The Excellence Awards recognize those organizations “that have
successfully deployed programs, strategies, modalities, processes, systems, and tools that have achieved
measurable results” in the field of human capital management (HCM). Below is a list of the Gold awards
Cognizant received for 2019.
Often called the “Academy Awards” by learning, talent, and business executives, the Excellence Awards
have become the most prestigious awards program in the industry.
Dedicating cognizant global reorganization, industry intelligence and systems expertise to working
with cognizant clients to make their businesses stronger. Cognizant is leading the market from the last
few years.89% of client’s rate overall cognizant Customer Experience as “Much Better, Better or
About the Same as Competition”. Cognizant’s growth record in ‘07 to ’08 was amazing. That was
Employee growth was +11.4%, Revenues with +32% and the net income +23% (GAAP) systematically
nurtured Growth.
Cognizant is the only big offshore company organised on verticals and horizontals rather than regions
and development centres. With strong domain knowledge in key verticals and large-scale horizontal
solutions, the highly project-oriented company can manage full responsibility for large development
and integration projects while also offering bottom-line results. from application management.
Cognizant has a great track record of successfully delivering very large scale, complex,
transformational development and integration projects offshore. These are the types of initiatives that
have traditionally not been termed "off-shore." Cognizant offers extensive technical experience across
a wide variety of disciplines. Technology competency and the quality of cognizant people are the
highest-rated attributes in cognizant Customer Satisfaction Survey.
Cognizant has a blue-chip client base with many industry leaders that are proud to partner with and
contribute to the growth of their businesses. The clients go to extensive lengths to serve as references
10
and champions of cognizant growth and innovation. Cognizant people model attracts talented, highly
motivated, client- focused individuals with a "can-do" attitude.
The flexibility, responsiveness, ownership and the assurance that they will never let you down is core
to cognizant delivery model. Cognizant Technology Solutions Corp. NASDAQ, a leading provider of
custom software development, integration and management services, employees are the most satisfied
among Indian IT services companies.
Cognizant has acquired Info pulse, a leading software company in the Benelux region. The acquisition
allows Cognizant to better serve customers in the region by adding local client partners, industry
expertise and local language capability. Infosys "The quality of the people that cognizant attracts will
remain a strong competitive edge as the demand for IT professional worldwide continues to increase".
The acquisition further strengthens Cognizant’s industry leading 4th generation offshore delivery
model, which has senior executives based close to clients in the US and Europe who are tightly
integrated with a robust SEI CMMI Level 5 offshore capability. “Customers in banking and financial
services have been among the first European companies to adopt a large-scale offshore strategy, and
Info pulse helps Cognizant further strengthen its position in this vertical.” “This acquisition will help
cognizant current customers because they will get large scale offshore capabilities as cognizant as
industry specific IT services,” which has for several years’ leveraged offshore development in Eastern
Europe.
“Cognizant has a strong track record in the financial sector and also values customer focus, has very
high customer satisfaction, and a culture that provides an excellent balance between business and
technology.”
Cognizant is leading with 50 global delivery centres and approximately over 64,000 associates, cognizant
combine a unique onsite/offshore delivery model infused by a distinct culture of customer satisfaction.
A member of the NASDAQ-100 Index and S&P 500 Index, Cognizant is a Forbes Global 2000 company
11
and a member of the Fortune 1000 and is ranked among the top information technology companies in
Business Week’s, Hot Growth and Top 50 Performers listings.
Cognizant is the pioneer in Offshore Outsourcing. They bring their clients the economic advantages,
with the industry experience and the local expertise. Today, Cognizant’s clients are benefiting from 4th
Generation services. Operating as their technology partner, Cognizant provides the expertise to help
Cognizant’s clients realize their objectives. 4th Generation Offshore Outsourcing provides seamless
integration between the customer and Cognizant.
Cognizant go far beyond the established onsite/offshore model by offering in-depth local consulting
presence, onsite teams focused on the customer’s business applications, and the management depth that
partners closely with cognizant clients. The business culture is either India-centric or exclusively
Cognizant in style, striking the best balance of all the offshore firms.
Most of cognizant management team has extensive US or European experience and understands
cognizant clients’ culture. In India, Cognizant is considered a ‘local’ player with a very strong reputation
for excellence. Clients benefit from cognizant non-hierarchical, responsive “can-do” approach to
business. Cognizant has deep technology expertise across a wide range of competencies. Technology
competency and the quality of cognizant people are the highest-rated attributes in cognizant Customer
Satisfaction Survey.
Cognizant brings a strong project culture to every engagement. They did not start as a staffing company,
but instead as the development arm of Dun & Bradstreet. Their development heritage has given us an
edge on delivering larger, complex, end-to-end projects. Their project expertise is reflected in a strong
methodology and the development and use of cognizant proprietary tools. They track the progress of
projects and programs with eCockpit, the proprietary engagement management tool that is available to
all of cognizant clients.
E-Cockpit provides a graphic representation of project-related status, such as productivity, effort, cash
flow, and defects density. It also looks at personal metrics such as targets and individual progress.
12
Organization Chart:
Figure 1.1
13
Chapter-2
Intern training at Cognizant is divided into Academic training and Business unit training which is
normally referred as BU training. The main difference between both types is that the academic
training is relatively slow paced compared to BU training and the interns in BU are allowed to work
on the projects that the company is working on currently. There was a test in order to categorize
students into two groups and I got into BU training. The BU training is a fast-paced learning
training, which is of two stages of academic training and BU training.
In the first stage of academic training, we were trained on mainly on front-end development
technologies like Hyper Text Markup Language (HTML), Cascading Style Sheets (CSS) and
JavaScript (JS), on a programming language C# or CSharp and on database concepts like Structured
Query Language (SQL) and ADO.Net.
HTML is the most important part of the web designing as it gives the structure of the website or web
application that we are developing. Using different tags, we usually define how the content should
appear on out web page. The tags include different attributes, which helps the developer to uniquely
define a particular tag. These tags include
➢ Html tag: The whole website content like different tags and text is enclosed in between the
opening and closing html tags.
Ex: < html> </html>
➢ Head tag: This head tag consists of main links for our website page like title of the page, CSS
stylesheet links, script links, any links of font API(s) that are used in the web page.
Ex: <head> </head>
➢ Title tag: This tag contains the title of the web page and a favicon, which is displayed
alongside title.
Ex: <title> </title>
➢ Body tag: This contains all the code that the website is able to show to us like text in
different sizes, images, hyperlinks, buttons etc.
14
Ex: <body> </body>
➢ Heading tags: The heading tags are of six types namely h1, h2, h3, h4, h5, h6 and these are in
decreasing order of bolded font size.
Ex: <h1> </h1>, <h2> </h2> ........... <h6> </h6>
➢ Paragraph tags: These tags are used to write text, which is, may be of more than one line.
Ex: <p>This is a paragraph </p>
➢ Image tags: The image tag must be used with src (source) attribute which is the path where
image that is to be displayed. Alternate (alt) is the optional attribute, which can be used if
the image does not exist in the specified path.
Ex: <img src=”/images/image.jpg” alt=”image”>
➢ Anchor tags: This tag helps the user to navigate to another page from the existing page.
The main attribute in this tag is the href tag that is used to give the path to another page.
Ex: <a href=”www.google.com”> Google </a>
➢ Script tags: These tags are used to reference any JavaScript files that can be accessed using
src attribute.
Ex: <script src=” ”>
➢ Form tags: This tag is very useful if we want to take input from the user and build forms and
it contains input tags that help us specify the type of input we are expecting from the user.
Ex: <form>
<input type=”text” id=”name”>
</form>
➢ Unordered/ ordered lists and list item tags: These are used to create any bullet points or a
navigation bar.
Ex: <ul>
<li> </li>
</ul>
➢ Other tags include button tags, table tags, span tags, div tags, and header and footer tags.
➢ Class and Id: These tags are used to access that particular tag for formatting.
➢ Name: This optional attribute can be very useful while using JavaScript.
15
HTML code example:
<head>
<meta charset="utf-8">
<title>Prachi Agrawal</title>
</head>
<body>
<h1>I’m Prachi</h1>
<p>A student</p>
<ul>
<li>Watching KDramas</li>
<li>Listening Music</li>
</ul>
<form>
<button type="submit">Submit</button>
</form>
<a href="www.google.com">Google</a>
</body>
</html>
16
Cascading Style Sheets (CSS):
The CSS files are used to give the formatting for our webpage like a background color to the
website, changing font type, font size, font color, line spacing etc.
These styling sheets are called cascaded because the sheets sit on each other like the child sheet sits
on top of the parent sheet. This CSS styling is based on a box model, which is a very important thing
to remember as we can position our elements according to our interest.
There are different items in a box model like margin, padding and border, which separates them from
other html elements. We can also change the colors of these items without altering the content, which
is embedded in them. Any type of tag can be accessed by directly using their names, but to use a
specific tag we already define a id or class attribute in that tag and that Id can be used by adding ‘#’
sign in before the name and if the html element has class defined, then it can be accessed using ‘.’
Operator.
body{
padding: 3%;
background-color: #d8ebb5;
h1{
color: Red;
font-family: serif;
p{
color: blue;
font-size: 3rem;
}
17
JavaScript:
JavaScript is an interpreted language and is one of the worlds in demand programming language. As
html gives structure and CSS styling to the website, JavaScript provides behavior to the website like
what should happen when a button is clicked or mouse hovers over an html element. JavaScript is
also easy to learn and is used in many high- end web development technologies. For example,
world’s biggest open source technology NodeJs is based on JavaScript.
By using JavaScript, we can specify what should happen if we click a button on the page or when we
press a key on our keyboard. By using certain attributes in the html elements, we can trigger an event
and thus invoke a function that is written in java script. The following example demonstrates the
JavaScript function which shows an alert box when we click a button on the web page.
<html>
<body>
<h1>Alert Message</h1>
<script>
function myFunction() {
</script>
</body>
</html>
18
C# or CSharp:
In the previous sections, I have created an html webpage, given some styling to it using CSS and added
some functionality to the page using JavaScript. The changes that are made on the data displayed is not
permanent, as the data is not saved in an external server or a database in order for the code to fetch the
details. In order to make the webpage store the data entered by the user and load the expected details
that have been saved in the database, we need to make use of a backend technology. There are many
backend technologies available for us to work, but the most famous are, Dot Net and NodeJs. In this
training, I have learnt Dot Net based backend technology. Dot Net is of two types – Dot Net
Framework and Dot Net Core. The main difference between both is the system compatibility as
framework applications can only be loaded on windows operation and core support cross platform
application development.
In order to work with Dot Net, we should be familiar with a programming language that can help us
use the technology. C# is one of the most used programming language by the developers worldwide.
C# is object-oriented language like C++ and Java, but comes with some extra features. A sample
“Hello World” example in C# code has been given below
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
1. C# support events and delegates which is very helpful as we discussed early how events
could be triggered using click and keyboard key press events.
2. C# comes with an in house facility than we can use to connect database and do CRUD
(Create, Read, Update and Delete) operations.
19
3. C# offers different types of datatypes like dataset and data tables in order to store data in a
defined variable.
4. The most important feature of C# that separates it from other programming languages is a
concept called Linq
• Linq is a query-based concept where we can fetch particular details from a collection
like array list, Enumerable, IQueryable variables.
• The syntax for a Linq query is similar to that of SQL query, so anyone who has
experience with SQL feel it very comfortable to work with it.
• One of the important advantage with Linq is that it is database independent, so we
can use it with SQL, oracle or any database.
5. C# is compiled in visual studio and this compiler provides web from creation using simple C#
code.
6. We can also debug a code using visual studio like if we receive any exception from the code
we can debug the code and can see exactly where we are getting error.
7. Another additional advantage using C# is that we can develop unity games using C#, so if
anyone is interested in both web development and game development then C# is a perfect
choice.
One of the important features of using C# as we discussed earlier is the connection of the code
with database. This database connection is generally called as ADO.Net. ADO stands for Activex
Data Object, which can be used to query a SQL database. It is a module of .Net Framework that is
used to establish connection between application and data sources. Data sources can be such as
SQL Server and XML. ADO.NET consists of classes that can be used to connect, retrieve, insert
and delete data. All the ADO.NET classes are located into System.Data.dll and integrated with
XML classes located into System.Xml.dll. ADO.NET has two main components that are used for
accessing and manipulating data are the .NET Framework data provider and the Data Set.
These components are designed for data manipulation and fast access to data. It provides various
objects such as Connection, Command, Data Reader and Data Adapter that are used to
20
perform database operations. We will have a detailed discussion about Data Providers in new
topic.
Data provider for SQL Server is a lightweight component. It provides better performance
because it directly access SQL Server without any middle connectivity layer. In early versions, it
interacts with ODBC layer before connecting to the SQL Server that created performance issues.
The .NET Framework Data Provider for SQL Server classes is located in the
System.Data.SqlClient namespace.
Important Classes used in ADO.Net
Class Description
SqlConnection It is used to create SQL Server connection. This class cannot be inherited.
SqlDataAdapter It represents a set of data commands and a database connection that are used to fill the
DataSet. This class cannot be inherited.
SqlDataReader It is used to read rows from a SQL Server database. This class cannot be inherited.
SqlException This class is used to throw SQL exceptions. It throws an exception when an error is
occurred. This class cannot be inherited.
Table 2.1
21
Example of ADO.Net database connection and CRUD Operation
Database Connection:
using System;
using System.Data.SqlClient;
namespace AdoNetConsoleApplication
{
class Program
{
static void Main(string[] args)
{
new Program().Connecting();
}
public void Connecting()
{
using (SqlConnection con = new SqlConnection("data source=.; database=student; int
egrated security=SSPI"))
{
con.Open();
Console.WriteLine("Connection Established Successfully");
}
}
}
}
By using ADO.Net we can insert and fetch data from the database, but we have to manually open
and close database connections. If we forget close data connection then that might lead to loss of
data or anything more disastrous. In order to overcome this problem, I used ASP.Net which is a
more advanced version for database connection handling.
ASP.NET is used to produce interactive, data-driven web applications over the internet. It consists
of a large number of controls such as text boxes, buttons, and labels for assembling, configuring,
and manipulating code to create HTML pages. A typical ASP.NET application consists of many
items: the web content files (.aspx), source files (.cs files), assemblies (.dll and .exe files), data
source files (.mdb files), references, icons, user controls and miscellaneous other files and folders.
All these files that make up the website are contained in a Solution.
The most used and renowned framework with ASP.Net is MVC which stands for Model-View-
Controller. Here Model is the database or the class that we define for our application to use, View
stands is the html page that is shown to the end user and the controller is the part which works as
a bridge to the front-end html and back-end database.
There are few important terms that are needed to be known in MVC framework
• Routing: Routing is the process of directing an HTTP request to a controller and the
functionality of this processing is implemented in System.Web.Routing. This assembly is
not part of ASP.NET MVC. It is actually part of the ASP.NET runtime. MVC applications
use the ASP.NET routing system, which decides how URLs map to controllers and
23
actions. In the below examples, home means home controller and index is the index action
in home controller. This is how MVC knows the route of a specific functionality.
Ex: http://localhost:63664/Home/
http://localhost:63664/Home/Index
• Controllers: Controllers are essentially the central unit of your ASP.NET MVC
application. It is the 1st recipient, which interacts with incoming HTTP Request. So, the
controller decides which model will be selected, and then it takes the data from the model
and passes the same to the respective view, after that view is rendered. Actually,
controllers are controlling the overall flow of the application taking the input and rendering
the proper output.
• Actions: ASP.NET MVC Action Methods are responsible to execute requests and generate
responses to it. By default, it generates a response in the form of ActionResult. Actions
typically have a one-to-one mapping with user interactions. For example, enter a URL into
the browser, click on any particular link, and submit a form, etc. Each of these user
interactions causes a request to be sent to the server. The one restriction on action method
is that they have to be instance method, so they cannot be static methods. Also there is no
return value restrictions. So you can return the string, integer, etc.
• Selectors: Action selectors are attributes that can be applied to action methods and are used
to influence which action method gets invoked in response to a request. It helps the routing
engine to select the correct action method to handle a particular request.
• Views: In an ASP.NET MVC application, there is nothing like a page and it also doesn’t
include anything that directly corresponds to a page when you specify a path in URL. The
closest thing to a page in an ASP.NET MVC application is known as a View. In ASP.NET
MVC application, all incoming browser requests are handled by the controller and these
requests are mapped to controller actions. A controller action might return a view or it
might also perform some other type of action such as redirecting to another controller
action.
24
• Data Models: A model stores data that is retrieved according to the commands from the
Controller and displayed in the View. Model is a collection of classes wherein you will be
working with data and business logic. Hence, basically models are business domain-
specific containers. It is used to interact with database. It can also be used to manipulate
the data to implement the business logic.
• Helpers: In ASP.NET MVC application, if you want to create a view it should contain
HTML code. So those developers who are new to MVC especially with web forms
background finds this a little hard to overcome this problem, ASP.NET MVC provides
HtmlHelper class which contains different methods that help you create HTML controls
programmatically. All HtmlHelper methods generate HTML and return the result as a
string. The final HTML is generated at runtime by these functions. The HtmlHelper class
is designed to generate UI and it should not be used in controllers or models.
• Model Binding: ASP.NET MVC model binding allows you to map HTTP request data
with a model. It is the process of creating .NET objects using the data sent by the browser
in an HTTP request. It makes it easy for developers to work with data on forms (views),
because POST and GET is automatically transferred into a data model you specify.
ASP.NET MVC uses default binders to complete this behind the scene.
• Razor Pages: Razor is a markup syntax that lets you embed server-based code into web
pages using C# and VB.Net. It is not a programming language. It is a server side markup
language. Razor has no ties to ASP.NET MVC because Razor is a general-purpose
templating engine. You can use it anywhere to generate output like HTML. It's just that
ASP.NET MVC has implemented a view engine that allows us to use Razor inside of an
MVC application to produce HTML.
• Data Annotations: DataAnnotations is used to configure your model classes, which will
highlight the most commonly needed configurations. These are also understood by a
number of .NET applications, such as ASP.NET MVC, which allows these applications to
leverage the same annotations for client-side validations. DataAnnotation attributes
override default Code-First conventions.
Main attributes: Key, Required, StringLength, MaxLength etc.
25
• Web Api: ASP.NET Web API is a framework that makes it easy to build HTTP services
that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web
API is an ideal platform for building RESTful applications on the .NET Framework.When
you're building APIs on the Web, there are several ways you can build APIs on the Web.
These include HTTP/RPC, and what this means is using HTTP in Remote Procedure Call
to call into things, like Methods, across the Web.The verbs themselves are included in the
APIs, like Get Customers, Insert Invoice, Delete Customer, and that each of these
endpoints end up being a separate URI.
Entity Framework:
Prior to .NET 3.5, we (developers) often used to write ADO.NET code or Enterprise Data Access
Block to save or retrieve application data from the underlying database. We used to open a
connection to the database, create a DataSet to fetch or submit the data to the database, convert
data from the DataSet to .NET objects or vice-versa to apply business rules. This was a
cumbersome and error prone process. Microsoft has provided a framework called "Entity
Framework" to automate all these database related activities for your application.
26
• Querying: EF allows us to use LINQ queries (C#/VB.NET) to retrieve data from the
underlying database. The database provider will translate this LINQ queries to the
database-specific query language (e.g. SQL for a relational database). EF also allows us to
execute raw SQL queries directly to the database.
• Change Tracking: EF keeps track of changes occurred to instances of your entities
(Property values) which need to be submitted to the database.
• Saving: EF executes INSERT, UPDATE, and DELETE commands to the database based
on the changes occurred to your entities when you call the SaveChanges() method. EF also
provides the asynchronous SaveChangesAsync() method.
• Concurrency: EF uses Optimistic Concurrency by default to protect overwriting changes
made by another user since data was fetched from the database.
• Transactions: EF performs automatic transaction management while querying or saving
data. It also provides options to customize transaction management.
• Caching: EF includes first level of caching out of the box. So, repeated querying will return
data from the cache instead of hitting the database.
• Built-in Conventions: EF follows conventions over the configuration-programming
pattern, and includes a set of default rules, which automatically configure the EF model.
• Configurations: EF allows us to configure the EF model by using data annotation
attributes or Fluent API to override default conventions.
• Migrations: EF provides a set of migration commands that can be executed on the NuGet
Package Manager Console or the Command Line Interface to create or manage underlying
database Schema.
The context class is a most important class while working with EF 6 or EF Core. It represent a
session with the underlying database using which you can perform CRUD (Create, Read, Update,
Delete) operations. An entity in Entity Framework is a class that maps to a database table. This
class must be included as a DbSet<TEntity> type property in the DbContext class. EF API maps
each entity to a table and each property of an entity to a column in the database. Entity framework
supports mainly two types of approaches
• Code-First Approach
• Database-First Approach
27
Structured Query Language (SQL):
SQL is Structured Query Language, which is a computer language for storing, manipulating and
retrieving data stored in a relational database.SQL is the standard language for Relational Database
System. All the Relational Database Management Systems (RDMS) like MySQL, MS Access,
Oracle, Sybase, Informix, Postgres and SQL Server use SQL as their standard database language.
Also, they are using different dialects, such as
• MS SQL Server using T-SQL,
• Oracle using PL/SQL,
• MS Access version of SQL is called JET SQL (native format) etc.
SQL is widely popular because it offers the following advantages
• Allows users to access data in the relational database management systems.
• Allows users to describe the data.
• Allows users to define the data in a database and manipulate that data.
• Allows to embed within other languages using SQL modules, libraries & pre-compilers.
• Allows users to create and drop databases and tables.
• Allows users to create view, stored procedure, functions in a database.
• Allows users to set permissions on tables, procedures and views.
When you are executing an SQL command for any RDBMS, the system determines the best way
to carry out your request and SQL engine figures out how to interpret the task. There are various
components included in this process.
• Query Dispatcher
• Optimization Engines
• Classic Query Engine
• SQL Query Engine, etc.
A classic query engine handles all the non-SQL queries, but a SQL query engine won't handle
logical files.
SQL Commands
The standard SQL commands to interact with relational databases are CREATE, SELECT,
INSERT, UPDATE, DELETE and DROP. These commands can be classified into the following
groups based on their nature
28
DDL - Data Definition Language
Sr. No. Command & Description
1 CREATE
Creates a new table, a view of a table, or other object in the database.
Ex: CREATE TABLE table_name(column1 datatype, ... columnN datatype,
PRIMARY KEY( one or more columns ));
2 ALTER
Modifies an existing database object, such as a table.
Syntax: ALTER TABLE table_name ADD column_name datatype;
3 DROP
Deletes an entire table, a view of a table or other objects in the database.
Syntax: DROP TABLE table_name;
Table 2.2
DML - Data Manipulation
Language
Sr.No. Command & Description
1 SELECT
Retrieves certain records from one or more tables.
Syntax: SELECT column1, column2, columnN FROM table_name;
2 INSERT
Creates a record.
Syntax: INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
3 UPDATE
Modifies records.
Syntax: UPDATE table_name SET column1 = value1, column2 = value2. .. , columnN
= valueN WHERE [condition];
4 DELETE
Deletes records.
Syntax: DELETE FROM table_name WHERE [condition];
Table 2.3
DCL - Data Control
Language
Sr. No. Command & Description
1 GRANT
Gives a privilege to user.
Syntax: GRANT privileges ON object TO user;
2 REVOKE
Takes back privileges granted from user.
Syntax: REVOKE privileges ON object FROM user;
Table 2.4
29 | P a g e
Challenges Faced during Training:
➢ One of the main challenge I have faced during this training is the learning of new
technology
.Net as I have never worked or even learned it.
➢ The online assessment platform that we were given has several courses that had to
be done in order to complete the hands-on, but the learning provided with those
courses is not enough to complete the hands-on as not every detail that needed. In
order to overcome this challenge I have done research through many online websites
to figure out the solution for the respective hands-on.
Learning Outcomes:
➢ During this training, I was able to learn new technologies like, front-end web
development, Dot Net.
➢ I was able to gather knowledge on how an industrial level projects are designed and
developed in order to meet the client needs.
➢ I am also able to learn how important teamwork is and how every member of a team
is important for a project to complete in a scheduled timeline.
➢ I learned that I need to keep learning no matter how far I reach to a position in a
company, in fact I learned that I need to learn more than my fellow colleagues in
order to keep my career graph inclining
➢ Most importantly, I have learned about work place ethics, time management, social
responsibility as Cognizant has taught me throughout the intern training.
30 | P a g e
Chapter-3
Objective:
It is a system designed specially for large, premium and small car rental
business. The car rental system provides complete functionality of listing and booking car. In
this system, Tourism and Travelling facilities also provided.
Project Details:
• System provides features like time efficiency to show car details, user profiles and
whatever the customer will give the feedback to the admin. This system provides tourism
and travelling facilities.
• Customers must have an account i.e., customer should have a username and password
to login to the system and if an invalid password is given, the system gives an error.
• User can view the availability and can rent a car based on his preferences; user can also
check the rating and the condition of the car before renting it.
• The system provides ease of access to the user as customer can rent a car from wherever
customer wants.
Future Scope:
Web application development or commonly known as full stack development is one of the
present world’s in-demand skill and through this project I have gained some amount of
working experience with it. In today’s world as well as in future, every company needs a
web application to enroll new customers and subscribers, so they need something can
efficiently work on that and provide great user experience. HTML, CSS and JS have been
the building blocks of web development for a long time and with the help of razor pages in
ASP.Net we can prevent the hackers from hacking into our system and collect the
confidential information.
31 | P a g e
Using ASP.Net we can prevent hacker hack into our servers as Microsoft provides a lot of
packages and frameworks which can help us with this problem. For example while defining
a POST API we can include ‘ValidateAntiForgery’ data annotation to prevent system from
logging in if it suspects the input entered by the user is malicious. Microsoft has made .Net
Core an open source platform so that developers can contribute to their framework. This is
where I can use my skills to develop new packages or simply shorten a code which is used
by many. The only problem in this situation is how do I plan to identify that code and how
do I make it work efficiently on almost every platform. There will be a lot of offering in
learning for me in the future regarding web development.
32 | P a g e
Chapter- 5
Conclusion
This internship has been an excellent and rewarding experience. I have been able to meet
and network with so many people that I am sure will be able to help me with opportunities
in the future. I learnt verbal communication, non-verbal communication, problem
solving, time management skills, observation, self-motivation and team management. I
learnt to motivate myself by getting encouragement from senior staff in the office. I have
also learned about work ethics and behaving in a professional world.
When I first started, I did not think that I was going to be able to make myself sit in an
office for eight hours a day, five days a week. Once I realized what I had to do I organized
my day and work so that I was not overlapping or wasting my hours. During task given
by company, I interacted with my interns and senior employees to determine the
problems. Along with all of these, internship indirectly helps to improve my
communication skills, and strengthening inter- personal skills when communicating with
others. During my internship period, I have received advice from senior employees and
coaches when I made mistakes; I took their advices in positive way to improve my
carrier.
Company provided me good experience and exposure on understanding the about the
projects they were currently working on, how they provide services to the client and how
they resolve problems when it is faced by the users of the client. Before joining this
internship, I thought that maintenance is not as challenging as developing, so I had less
opinion on that, but when I knew about the work they have to put into it I have huge respect
for them. This internship taught me that if I want to get success in my career, I have to be
team player respect every domain of my team and contribute well to my team completing
the project before given deadline.
33 | P a g e
References
https://docs.microsoft.com/en-us/dotnet/csharp/
https://docs.microsoft.com/en-us/azure/guides/developer/azure-developer-
guide
https://docs.microsoft.com/en-us/aspnet/core/getting-started/?view=aspnetcore-
3.1&tabs=windows
https://docs.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-
core?view=aspnetcore- 3.1
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-
api?view=aspnetcore- 3.1&tabs=visual-studio
https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-
dotnet
https://docs.microsoft.com/en-us/azure/azure-functions/
https://docs.microsoft.com/en-us/azure/iot-hub/
https://cognizant.udemy.com/course/master-aspnet-core-3-
advanced/learn
https://cognizant.udemy.com/course/the-complete-aspnet-mvc-5-
course/learn/
https://cognizant.udemy.com/course/entity-framework-tutorial/learn/
https://cognizant.udemy.com/course/the-complete-sql-
bootcamp/learn/
https://cognizant.udemy.com/course/html-css-more/learn/
https://docs.microsoft.com/en-us/azure/?product=featured
https://cognizant.udemy.com/course/complete-csharp-
masterclass/learn/
https://www.c-sharpcorner.com/article/introduction-to-asp-net-mvc2/
https://www.entityframeworktutorial.net/
34 | P a g e