Weather Forcasting Report 1
Weather Forcasting Report 1
On
“ WEATHER FORCASTING ”
Submission in Partial Fulfillment of the
requirement of the degree of
Bachelor of Technology in Computer
Science and Engineering
1
DECLARATION
This is to certify that this project report entitled “Weather Forcasting” which is
submitted by me in partial fulfilment of the requirement for the award of Bachelor
of Technology in Computer Science and engineering to MERI college of
Engineering and Technology, Haryana comprises only my original work and due
acknowledgement has been made in text to all material used.
SUBMITTED TO:
2
CERTIFICATE
3
ACKNOWLEDGEMENT
4
INDEX
CHPTER 1__________________________________
INTRODUCTION
CHAPTER 2_________________________________
Review of Literature
CHAPTER 3_________________________________
HARDWARE AND SOFTWARE REQUIRED
HARDWARE REQUIRED*…………………………………………………...
SOFTWARE REQUIRED*…………………………………………………….
CHAPTER 4_________________________________
IMPLEMENTING TOOLS FOR THE PROJECT
FULL EXPLAIN VISUAL STUDIO………………………………………...
FULL EXPLAIN HTML……………………………………………………..
FULL EXPLAIN CSS………………………………………………………..
FULL EXPLAIN JAVASCRIPT…………………………………………….
FULL EXPLAIN API………………………………………………………..
CHAPTER 5_________________________________
DESIGNING OF LAYOUT*…………………………………………………….
CODING*…………………..…………………………………………………….
CHAPTER6__________________________________
CONCLUSION*…………………………………………………………………..
RECOMMENDATION*.……..…………………………………………………..
APPENDIX
Bibliography
5
CHAPTER 1
1. INTROUCTION
Weather forecasting is the application of science and technology to predict the conditions
of the atmosphere for a given location and time. People have attempted to predict the
weather informally for millennia and formally since the 19th century.
Weather forecasts are made by collecting quantitative data about the current state of the
atmosphere, land, and ocean and using meteorology to project how the atmosphere will
change at a given place. Once calculated manually based mainly upon changes
in barometric pressure, current weather conditions, and sky conditions or cloud cover,
weather forecasting now relies on computer-based models that take many atmospheric
factors into account. Human input is still required to pick the best possible model to base the
forecast upon, which involves pattern recognition skills, teleconnections, knowledge of
model performance, and knowledge of model biases.
The inaccuracy of forecasting is due to the chaotic nature of the atmosphere; the massive
computational power required to solve the equations that describe the atmosphere, the land,
and the ocean; the error involved in measuring the initial conditions; and an incomplete
understanding of atmospheric and related processes. Hence, forecasts become less accurate
as the difference between the current time and the time for which the forecast is being made
(the range of the forecast) increases. The use of ensembles and model consensus helps
narrow the error and provide confidence in the forecast.
There is a vast variety of end uses for weather forecasts. Weather warnings are important
because they are used to protect lives and property. Forecasts based on temperature
6
and precipitation are important to agriculture, and therefore to traders within commodity
markets. Temperature forecasts are used by utility companies to estimate demand over
coming days. On an everyday basis, many people use weather forecasts to determine what
to wear on a given day. Since outdoor activities are severely curtailed by heavy rain, snow
and wind chill forecasts can be used to plan activities around these events, and to plan ahead
and survive them.
Weather forecasting is a part of the economy. For example in 2009, the US spent
approximately $5.8 billion on it, producing benefits estimated at six times as much.
Ancient forecasting
In 650 BC, the Babylonians predicted the weather from cloud patterns as well as astrology. In
about 350 BC, Aristotle described weather patterns
in Meteorologica. Later, Theophrastus compiled a book on weather forecasting, called the Book
of Signs. Chinese weather prediction lore extends at least as far back as 300 BC, which was also
around the same time ancient Indian astronomers developed weather-prediction methods. In
the New Testament, Jesus is quoted as referring to deciphering and understanding local weather
patterns, by saying, "When evening comes, you say, 'It will be fair weather, for the sky is red',
and in the morning, 'Today it will be stormy, for the sky is red and overcast.' You know how to
interpret the appearance of the sky, but you cannot interpret the signs of the times."
In 904 AD, Ibn Wahshiyya's Nabatean Agriculture, translated into Arabic from an
earlier Aramaic work, discussed the weather forecasting of atmospheric changes and signs from
the planetary astral alterations; signs of rain based on observation of the lunar phases; and
weather forecasts based on the movement of winds.
Ancient weather forecasting methods usually relied on observed patterns of events, also termed
pattern recognition. For example, it was observed that if the sunset was particularly red, the
following day often brought fair weather. This experience accumulated over the generations to
produce weather lore. However, not all of these predictions prove reliable, and many of them
have since been found not to stand up to rigorous statistical testing.
Modern methods
It was not until the invention of the electric telegraph in 1835 that the modern age of weather
forecasting began. Before that, the fastest that distant weather reports could travel was around
160 kilometres per day (100 mi/d), but was more typically 60–120 kilometres per day (40–
75 mi/day) (whether by land or by sea). By the late 1840s, the telegraph allowed reports of
weather conditions from a wide area to be received almost instantaneously, allowing forecasts to
be made from knowledge of weather conditions further upwind.
7
The two men credited with the birth of forecasting as a science were an officer of the Royal
Navy Francis Beaufort and his protégé Robert FitzRoy. Both were influential men
in British naval and governmental circles, and though ridiculed in the press at the time, their
work gained scientific credence, was accepted by the Royal Navy, and formed the basis for all of
today's weather forecasting knowledge.
Beaufort developed the Wind Force Scale and Weather Notation coding, which he was to use in
his journals for the remainder of his life. He also promoted the development of reliable tide
tables around British shores, and with his friend William Whewell, expanded weather record-
keeping at 200 British coast guard stations.
Robert FitzRoy was appointed in 1854 as chief of a new department within the Board of Trade to
deal with the collection of weather data at sea as a service to mariners. This was the forerunner
of the modern Meteorological Office. All ship captains were tasked with collating data on the
weather and computing it, with the use of tested instruments that were loaned for this purpose.
Artificial intelligence
Initial attempts to use artificial intelligence began in the 2010s. Huawei's Pangu-Weather
model, Google's GraphCast, WindBorne's WeatherMesh model, Nvidia's FourCastNet, and
the European Centre for Medium-Range Weather Forecasts' Artificial Intelligence/Integrated
Forecasting System, or AIFS all appeared in 2022–2023. In 2024, AIFS started to publish real-
time forecasts, showing specific skill at predicting hurricane tracks, but lower-performing on the
intensity changes of such storms relative to physics-based models.
Such models use no physics-based atmosphere modeling or large language models. Instead, they
learn purely from data such as ERA5. These models typically require far less compute than
physics-based models.
Microsoft's Aurora system offers global 10-day weather and 5-day air pollution(CO
2, NO, NO
2, SO
8
2, O
3, and particulates) forecasts with claimed accuracy similar to physics-based models, but at
orders-of-magnitude lower cost. Aurora was trained on more than a million hours of data from
six weather/climate models.
An example of a two-day weather forecast in the visual style that an American newspaper might
use. Temperatures are given in Fahrenheit.
Most end users of forecasts are members of the general public. Thunderstorms can create strong
winds and dangerous lightning strikes that can lead to deaths, power outages, and widespread
hail damage. Heavy snow or rain can bring transportation and commerce to a stand-still, as well
as cause flooding in low-lying areas. Excessive heat or cold waves can sicken or kill those with
inadequate utilities, and droughts can impact water usage and destroy vegetation.
A major part of modern weather forecasting is the severe weather alerts and advisories that the
national weather services issue in the case that severe or hazardous weather is expected. This is
done to protect life and property. Some of the most commonly known of severe weather
advisories are the severe thunderstorm and tornado warning, as well as the severe
thunderstorm and tornado watch. Other forms of these advisories include winter weather, high
wind, flood, tropical cyclone, and fog Severe weather advisories and alerts are broadcast
9
through the media, including radio, using emergency systems as the Emergency Alert
System,which break into regular programming.
The low temperature forecast for the current day is calculated using the lowest temperature found
between 7 pm that evening through 7 am the following morning. So, in short, today's forecasted
low is most likely tomorrow's low temperature.
Air traffic
Ash cloud from the 2008 eruption of Chaitén volcano stretching across Patagonia from the
Pacific to the Atlantic Ocean
See also: Terminal aerodrome forecast
Because the aviation industry is especially sensitive to the weather, accurate weather forecasting
is essential. Fog or exceptionally low ceilings can prevent many aircraft from landing and taking
off. Turbulence and icing are also significant in-flight hazards. Thunderstorms are a problem for
all aircraft because of severe turbulence due to their updrafts and outflow boundaries, icing due
to the heavy precipitation, as well as large hail, strong winds, and lightning, all of which can
cause severe damage to an aircraft in flight. Volcanic ash is also a significant problem for
aviation, as aircraft can lose engine power within ash clouds. On a day-to-day basis airliners are
routed to take advantage of the jet stream tailwind to improve fuel efficiency. Aircrews are
briefed prior to takeoff on the conditions to expect en route and at their destination. Additionally,
airports often change which runway is being used to take advantage of a headwind. This reduces
the distance required for takeoff, and eliminates potential crosswinds.
10
Marine
See also: Marine weather forecasting
Commercial and recreational use of waterways can be limited significantly by wind direction and
speed, wave periodicity and heights, tides, and precipitation. These factors can each influence the
safety of marine transit. Consequently, a variety of codes have been established to efficiently
transmit detailed marine weather forecasts to vessel pilots via radio, for example
the MAFOR (marine forecast).] Typical weather forecasts can be received at sea through the use
of RTTY, Navtex and Radiofax.
Agriculture
Farmers rely on weather forecasts to decide what work to do on any particular day. For example,
drying hay is only feasible in dry weather. Prolonged periods of dryness can ruin cotton,
wheat, and corn crops. While corn crops can be ruined by drought, their dried remains can be
used as a cattle feed substitute in the form of silage. Frosts and freezes play havoc with crops
both during the spring and fall. For example, peach trees in full bloom can have their potential
peach crop decimated by a spring freeze. \ Orange groves can suffer significant damage during
frosts and freezes, regardless of their timing.
Forestry
11
CHAPTER 2
Review of Literature
Weather forecasting has undergone significant advancements over the past century, with
contributions from various scientific fields, technological innovations, and modeling techniques.
This literature review explores key studies, developments, and breakthroughs in weather
forecasting, focusing on the evolution of methodologies, tools, and their practical applications.
Weather forecasting dates back to ancient civilizations, where people relied on observations of
the sky, natural phenomena, and animal behavior to predict weather. Early meteorological
records from ancient Egypt, Greece, and China documented the first known weather observations
(Schultz, 1999). However, it was only in the 19th century that weather forecasting emerged as a
scientific discipline. The development of instruments like the barometer, thermometer, and
anemometer allowed for more systematic measurements, leading to the creation of the first
meteorological stations.
In the late 19th century, British meteorologist Francis Beaufort introduced the Beaufort scale,
which categorized wind speed based on its effects (Beaufort, 1805). Meanwhile, weather maps
began to be used in the early 20th century to visualize and interpret weather patterns.
One of the most significant advancements in weather forecasting came with the development of
numerical weather prediction (NWP) methods in the mid-20th century. NWP uses mathematical
12
models to simulate atmospheric processes and predict future conditions. The pioneering work by
the mathematician and meteorologist John von Neumann, along with others at the University of
Pennsylvania and the US Army Air Forces, led to the first successful numerical weather
prediction model in 1950 (Charney et al., 1950).
Satellite technology has played a crucial role in advancing weather forecasting by providing real-
time data on atmospheric conditions across the globe. The launch of the first weather satellite,
TIROS-1, in 1960 marked a significant leap in observing the Earth's weather systems from space
(Schultz, 1999). Satellites enable meteorologists to monitor cloud cover, temperature, humidity,
and wind patterns across vast areas, improving the accuracy of forecasts, especially for remote
and oceanic regions where ground-based observations are limited.
The development of geostationary and polar-orbiting satellites has further enhanced the
capabilities of weather forecasting. These satellites provide continuous, high-resolution images
and data that are critical for understanding and predicting weather phenomena, such as storms,
cyclones, and temperature variations.
The complexity of weather systems requires sophisticated computational models to simulate and
predict weather events. The increasing power of supercomputers, such as the Cray XT5 and IBM
Blue Gene, has allowed meteorologists to run more detailed and higher-resolution models,
improving forecast accuracy. Models now incorporate a range of atmospheric variables,
13
including pressure, wind speed, precipitation, and cloud formation, to simulate the evolution of
weather patterns over time (Stensrud, 2007).
Recent developments in ensemble forecasting, which involves running multiple simulations with
slightly varied initial conditions, have helped account for the inherent uncertainty in weather
systems and provided probabilistic forecasts. These advancements have made weather
predictions more reliable, particularly for severe weather events, such as tornadoes, hurricanes,
and blizzards.
In recent years, machine learning (ML) and artificial intelligence (AI) have begun to play an
increasingly important role in weather forecasting. Studies like those by Yadav et al. (2019) have
shown that AI can enhance the accuracy of predictions by identifying patterns in large datasets,
improving the modeling of complex weather systems. Machine learning algorithms are now
being used to optimize weather models, refine data assimilation processes, and automate the
interpretation of satellite imagery.
AI techniques, such as deep learning, have been applied to forecast short-term weather patterns,
such as thunderstorms and rainfall, with promising results. Furthermore, AI-based models are
increasingly being used to complement traditional numerical models, allowing meteorologists to
create hybrid systems that combine the strengths of both approaches (Rasp et al., 2020).
Despite significant advancements, challenges remain in weather forecasting. One of the primary
obstacles is the unpredictability of certain weather phenomena, such as tornadoes, lightning, and
cloud formation. These events often involve complex, chaotic interactions that are difficult to
model accurately. Moreover, while short-term forecasts (up to 72 hours) have become relatively
accurate, long-term forecasting (over several weeks or months) remains a significant challenge.
14
The limitations of observational data also pose a challenge. Gaps in data coverage, particularly in
remote or oceanic regions, can impact the accuracy of forecasts. Inaccurate or sparse data inputs
can lead to errors in predictions, especially for fast-developing weather events.
Weather forecasting plays a crucial role in many sectors of society, from disaster management to
agriculture. Accurate weather predictions help mitigate the risks associated with extreme weather
events by providing early warnings for hurricanes, tornadoes, and floods. In agriculture, farmers
rely on forecasts to optimize planting and harvesting schedules, reducing the risk of crop loss due
to adverse weather conditions. In transportation, accurate forecasts are vital for ensuring the
safety of air, road, and maritime travel.
As the global climate changes, the need for accurate and reliable weather forecasting is expected
to grow, with particular focus on understanding and predicting extreme weather events and shifts
in long-term climate patterns.
15
CHAPTER 3
1. HARDWARE REQUIREMENT*
Hardware and the software plays the important role in the development cycle of any system,
right from the planning phase to the end of the development process and then in the
implementation of the system. The Hardware and the Software requirements are the key factors
during the feasibility of the candidate system.
This section describes the hardware components and software requirements needed for effective
and efficient running of the system
Hardware Required*
Software Required*
16
3. Local Host : XAMPP/WAMP/LAMP/MAMP
CHAPTER 4
Visual Studio includes a code editor supporting IntelliSense (the code completion component) as
well as code refactoring. The integrated debugger works as both a source-level debugger and as a
machine-level debugger. Other built-in tools include a code profiler, designer for
building GUI applications, web designer, class designer, and database schema designer. It
accepts plug-ins that expand the functionality at almost every level—including adding support
for source control systems (like Subversion and Git) and adding new toolsets like editors and
visual designers for domain-specific languages or toolsets for other aspects of the software
development lifecycle (like the Azure DevOps client: Team Explorer).
Visual Studio supports 36 different programming languages and allows the code editor and
debugger to support (to varying degrees) nearly any programming language, provided a
language-specific service exists. Built-in languages include C,[6] C++, C++/CLI, Visual Basic
.NET, C#, F#,[7] JavaScript, TypeScript, XML, XSLT, HTML, and CSS. Support for other
languages such as Python,[8] Ruby, Node.js, and M among others is available via plug-
ins. Java (and J#) were supported in the past.
The most basic edition of Visual Studio, the Community edition, is available free of charge. The
slogan for Visual Studio Community edition is "Free, fully-featured IDE for students, open-
source and individual developers". As of February 19, 2024, Visual Studio 2022 is a current
production-ready version. Visual Studio 2013, 2015 and 2017 are on Extended Support, while
2019 is on Mainstream Support
17
Architecture
Visual Studio does not support any programming language, solution or tool intrinsically; instead,
it allows the plugging of functionality coded as a VSPackage. When installed, the functionality is
available as a Service. The IDE provides three services: SVsSolution, which provides the ability
to enumerate projects and solutions; SVsUIShell, which provides windowing and UI
functionality (including tabs, toolbars, and tool windows); and SVsShell, which deals with
registration of VSPackages. In addition, the IDE is also responsible for coordinating and
enabling communication between services.[10] All editors, designers, project types and other tools
are implemented as VSPackages. Visual Studio uses COM to access the VSPackages. The Visual
Studio SDK also includes the Managed Package Framework (MPF), which is a set
of managed wrappers around the COM-interfaces that allow the Packages to be written in
any CLI compliant language.[11] However, MPF does not provide all the functionality exposed by
the Visual Studio COM interfaces.[12] The services can then be consumed for creation of other
packages, which add functionality to the Visual Studio IDE.
Support for programming languages is added by using a specific VSPackage called a Language
Service. A language service defines various interfaces which the VSPackage implementation can
implement to add support for various functionalities. [13] Functionalities that can be added this
way include syntax coloring, statement completion, brace matching, parameter information
tooltips, member lists, and error markers for background compilation. [13] If the interface is
implemented, the functionality will be available for the language. Language services are
implemented on a per-language basis. The implementations can reuse code from the parser or the
compiler for the language.[13] Language services can be implemented either in native
code or managed code. For native code, either the native COM interfaces or the Babel
Framework (part of Visual Studio SDK) can be used. [14] For managed code, the MPF includes
wrappers for writing managed language services. [15]
Visual Studio does not include any source control support built in but it defines two alternative
ways for source control systems to integrate with the IDE. [16] A Source Control VSPackage can
provide its own customised user interface. In contrast, a source control plugin using
the MSSCCI (Microsoft Source Code Control Interface) provides a set of functions that are used
to implement various source control functionality, with a standard Visual Studio user
interface.[17][18] MSSCCI was first used to integrate Visual SourceSafe with Visual Studio 6.0 but
was later opened up via the Visual Studio SDK. Visual Studio .NET 2002 used MSSCCI 1.1, and
Visual Studio .NET 2003 used MSSCCI 1.2. Visual Studio 2005, 2008, and 2010 use MSSCCI
Version 1.3, which adds support for rename and delete propagation, as well as asynchronous
opening.[18]
Visual Studio supports running multiple instances of the environment (each with its own set of
VSPackages). The instances use different registry hives (see MSDN's definition of the term
"registry hive" in the sense used here) to store their configuration state and are differentiated by
their AppId (Application ID). The instances are launched by an AppId-specific .exe that selects
the AppId, sets the root hive, and launches the IDE. VSPackages registered for one AppId are
integrated with other VSPackages for that AppId. The various product editions of Visual Studio
18
are created using the different AppIds. The Visual Studio Express edition products are installed
with their own AppIds, but the Standard, Professional, and Team Suite products share the same
AppId. Consequently, one can install the Express editions side-by-side with other editions,
unlike the other editions which update the same installation. The professional edition includes a
superset of the VSPackages in the standard edition, and the team suite includes a superset of the
VSPackages in both other editions. The AppId system is leveraged by the Visual Studio Shell in
Visual Studio 2008.
History
97
Microsoft first released Visual Studio (codenamed Boston,[59] for the city of the same name, thus
beginning the VS codenames related to places) [59] in 1997, bundling many of its programming
tools together for the first time. Visual Studio 97 came in two editions: Visual Studio
Professional and Visual Studio Enterprise, the professional edition has three CDs, and the
enterprise four CDs. It included Visual J++ 1.1 for Java programming and introduced Visual
InterDev for creating dynamically generated web sites using Active Server Pages. [citation needed] There
was a single companion CD that contained the Microsoft Developer Network library. Visual
Studio 97 is only compatible with Windows 95 and Windows NT 4.0. It is the last version to
support Windows NT 4.0 before SP3.
Visual Studio 97 was an attempt at using the same development environment for multiple
languages. Visual J++, InterDev, and the MSDN Library had all been using the same
'environment', called Developer Studio. [118]
Visual Studio was also sold as a bundle with the separate IDEs used for Visual C++, Visual
Basic and Visual FoxPro.[19]
6.0 (1998)
The next version, version 6.0 (codenamed Aspen, after the ski resort in Colorado),[citation needed] was
released in June 1998 and is the last version to support the Windows 9x platform, as well
as Windows NT 4.0 before SP6, but after SP2.[119] Each version of each language in part also
settled to v6.0, including Visual J++ which was prior v1.1, and Visual InterDev at the first
release. The v6 edition of Microsoft was the core environment for the next four releases to
provide programmers with an integrated look-alike platform. This led Microsoft to transition the
development on the platform independent .NET Framework.
19
Visual Studio 6.0 was the last version to include Visual J++, [120][121] which Microsoft removed as
part of a settlement with Sun Microsystems that required Microsoft Internet Explorer not to
provide support for the Java Virtual Machine.
Visual Studio 6.0 came in two editions: Professional and Enterprise. [122] The Enterprise edition
contained extra features not found in Professional edition, including:
.NET 2002
The default start page of Visual Studio .NET 2002, running on Windows XP
Microsoft released Visual Studio .NET (VS.NET), codenamed Rainier (for Washington's Mount
Rainier),[citation needed] in February 2002 (the beta version was released via Microsoft Developer
Network in 2001). The biggest change was the introduction of a managed code development
environment using the .NET Framework. Programs developed using .NET are not compiled
to machine language (like C++ is, for example) but instead to a format called Microsoft
Intermediate Language (MSIL) or Common Intermediate Language (CIL). When a CIL
application executes, it is compiled while being executed into the appropriate machine language
for the platform it is being executed on, thereby making code portable across several platforms.
Programs compiled into CIL can be executed only on platforms which have an implementation
of Common Language Infrastructure. It is possible to run CIL programs in Linux or Mac OS
X using non-Microsoft .NET implementations like Mono and DotGNU.
This was the first version of Visual Studio to require an NT-based Windows platform.[123] The
installer enforces this requirement, and is the last version to support Windows NT 4.0 SP6 or
later and Windows 2000 before SP3.
20
Visual Studio .NET 2002 shipped in four editions: Academic, Professional, Enterprise
Developer, and Enterprise Architect. Microsoft introduced C# (C-sharp), a new programming
language, that targets .NET. It also introduced the successor to Visual J++ called Visual J#.
Visual J# programs use Java's language-syntax. However, unlike Visual J++ programs, Visual J#
programs can only target the .NET Framework, not the Java Virtual Machine that all other Java
tools target.
Visual Basic changed drastically to fit the new framework, and the new version was called
Visual Basic .NET. Microsoft also added extensions to C++, called Managed Extensions for
C++, so .NET programs could be created in C++.
Visual Studio .NET can produce applications targeting Windows (using the Windows Forms part
of the .NET Framework), the Web (using ASP.NET and Web Services) and, with an add-in,
portable devices (using the .NET Compact Framework).
The internal version number of Visual Studio .NET 2002 is version 7.0. Microsoft released
Service Pack 1 for Visual Studio .NET 2002 in March 2005. [124]
.NET 2003
In April 2003, Microsoft introduced a minor upgrade to Visual Studio .NET called Visual Studio
.NET 2003, codenamed Everett (for the city of the same name).[citation needed] It includes an upgrade to
the .NET Framework, version 1.1, and is the first release to support developing programs for
mobile devices, using ASP.NET or the .NET Compact Framework. The Visual C++ compiler's
standards-compliance improved, especially in the area of partial template specialization. Visual
C++ Toolkit 2003 is a version of the same C++ compiler shipped with Visual Studio .NET 2003
without the IDE that Microsoft made freely available. As of 2010 it is no longer available and the
Express Editions have superseded it. Visual Studio .NET 2003 also supports Managed C++,
which is the predecessor of C++/CLI. The internal version number of Visual Studio .NET 2003
is version 7.1 while the file format version is 8.0. [125] Visual Studio .NET 2003 drops support for
Windows NT 4.0, and is the last version to support Windows 2000 SP3 and Windows XP before
SP2 and the only version to support Windows Server 2003 before SP1.
Visual Studio .NET 2003 shipped in five editions: Academic, Standard, Professional, Enterprise
Developer, and Enterprise Architect. The Visual Studio .NET 2003 Enterprise Architect edition
21
includes an implementation of Microsoft Visio 2002's modeling technologies, including tools for
creating Unified Modeling Language-based visual representations of an application's
architecture, and an object-role modeling (ORM) and logical database-modeling solution.
"Enterprise Templates" were also introduced, to help larger development teams standardize
coding styles and enforce policies around component usage and property settings.
2005
Visual Studio 2005, codenamed Whidbey (a reference to Whidbey Island in Puget Sound
region),[citation needed] was released online in October 2005 and to retail stores a few weeks later.
Microsoft removed the ".NET" moniker from Visual Studio 2005 (as well as every other product
with .NET in its name), but it still primarily targets the .NET Framework, which was upgraded to
version 2.0. It requires Windows 2000 with Service Pack 4, Windows XP with at least Service
Pack 2 or Windows Server 2003 with at least Service Pack 1. It is the last version to run
on Windows 2000 and also the last version able to target Windows 98 and Windows Me for C++
applications.[127][128]
Visual Studio 2005's internal version number is 8.0 while the file format version is
9.0.[125] Microsoft released Service Pack 1 for Visual Studio 2005 on December 14, 2006. [129] An
additional update for Service Pack 1 that offers Windows Vista compatibility was made available
on June 3, 2007.[130]
Visual Studio 2005 was upgraded to support all the new features introduced in .NET Framework
2.0, including generics and ASP.NET 2.0. The IntelliSense feature in Visual Studio was
upgraded for generics and new project types were added to support ASP.NET web services.
Visual Studio 2005 additionally introduces support for a new task-based build platform called
Microsoft Build Engine (MSBuild) which employs a new XML-based project file
format.[131] Visual Studio 2005 also includes a local web server, separate from IIS, that can host
22
ASP.NET applications during development and testing. It also supports all SQL Server 2005
databases. Database designers were upgraded to support the ADO.NET 2.0, which is included
with .NET Framework 2.0. C++ also got a similar upgrade with the addition of C++/CLI which
is slated to replace the use of Managed C++.[132] Other new features of Visual Studio 2005
include the "Deployment Designer" which allows application designs to be validated before
deployments, an improved environment for web publishing when combined with ASP.NET 2.0
and load testing to see application performance under various sorts of user loads. Starting with
the 2005 edition, Visual Studio also added extensive 64-bit support. While the host development
environment itself is only available as a 32-bit application, Visual C++ 2005 supports compiling
for x86-64 (AMD64 and Intel 64) as well as IA-64 (Itanium).[133] The Platform SDK included 64-
bit compilers and 64-bit versions of the libraries.
Microsoft also announced Visual Studio Tools for Applications as the successor to Visual Basic
for Applications (VBA) and VSA (Visual Studio for Applications). VSTA 1.0 was released to
manufacturing along with Office 2007. It is included with Office 2007 and is also part of the
Visual Studio 2005 SDK. VSTA consists of a customized IDE, based on the Visual Studio 2005
IDE, and a runtime that can be embedded in applications to expose its features via the .NET
object model. Office 2007 applications continue to integrate with VBA, except for InfoPath 2007
which integrates with VSTA. Version 2.0 of VSTA (based on Visual Studio 2008) was released
in April 2008.[134] It is significantly different from the first version, including features such as
dynamic programming and support for WPF, WCF, WF, LINQ, and .NET 3.5 Framework.
2008
Visual Studio 2008,[135] and Visual Studio Team System 2008[136][137] codenamed Orcas (a
reference to Orcas Island, also an island in Puget Sound region, like Whidbey for the previous
2005 release), were released to MSDN subscribers on November 19, 2007, alongside .NET
Framework 3.5. The source code for the Visual Studio 2008 IDE is available under a shared
source license to some of Microsoft's partners and ISVs.[84] Microsoft released Service Pack 1 for
Visual Studio 2008 on August 11, 2008. [138] The internal version number of Visual Studio 2008 is
version 9.0 while the file format version is 10.0. Visual Studio 2008 requires Windows XP
Service Pack 2 plus Windows Installer 3.1, Windows Server 2003 Service Pack 1 or later. It is
the last version available for Windows XP SP2, Windows Server 2003 SP1, as well as the only
version to support Windows Vista before SP2 and Windows Server 2008 before SP2 and the last
version to support targeting Windows 2000 for C++ applications.[139]
Visual Studio 2008 is focused on development of Windows Vista, 2007 Office system, and Web
applications. For visual design, a new Windows Presentation Foundation visual designer and a
new HTML/CSS editor influenced by Microsoft Expression Web are included. J# is not
included. Visual Studio 2008 requires .NET 3.5 Framework and by default configures compiled
assemblies to run on .NET Framework 3.5, but it also supports multi-targeting which lets the
developers choose which version of the .NET Framework (out of 2.0, 3.0, 3.5, Silverlight
CoreCLR or .NET Compact Framework) the assembly runs on. Visual Studio 2008 also includes
new code analysis tools, including the new Code Metrics tool (only in Team Edition and Team
Suite Edition).[140] For Visual C++, Visual Studio adds a new version of Microsoft Foundation
Classes (MFC 9.0) that adds support for the visual styles and UI controls introduced
with Windows Vista.[141] For native and managed code interoperability, Visual C++ introduces
23
the STL/CLR, which is a port of the C++ Standard Template Library (STL) containers and
algorithms to managed code. STL/CLR defines STL-like containers, iterators and algorithms that
work on C++/CLI managed objects.[142][143]
Visual Studio 2008 features include an XAML-based designer (codenamed Cider), workflow
designer, LINQ to SQL designer (for defining the type mappings and object encapsulation for
SQL Server data), XSLT debugger, JavaScript Intellisense support, JavaScript Debugging
support, support for UAC manifests, a concurrent build system, among others.[144] It ships with an
enhanced set of UI widgets, both for Windows Forms and WPF. It also includes a multithreaded
build engine (MSBuild) to compile multiple source files (and build the executable file) in a
project across multiple threads simultaneously. It also includes support for
compiling icon resources in PNG format, introduced in Windows Vista. An updated XML
Schema designer was released separately some time after the release of Visual Studio 2008. [145]
2010
On April 12, 2010, Microsoft released Visual Studio 2010, codenamed Dev10,[89] and .NET
Framework 4.[150][151] It is available for Windows Server 2003 SP2, Windows XP SP3, Windows
Vista SP2 and Windows Server 2008 SP2 and has support for Windows Server 2008 R2, as well
as for Windows 7. It is the last version to support Windows XP SP3, Windows Server 2003
SP2, Windows Server 2003 R2, Windows Vista SP2 and Windows Server 2008 SP2, and the
only version to support Windows 7 before SP1 and Windows Server 2008 R2 before SP1.
The Visual Studio 2010 IDE was redesigned which, according to Microsoft, clears the UI
organization and "reduces clutter and complexity." [152] The new IDE better supports multiple
document windows and floating tool windows, [152] while offering better multi-monitor support.
The IDE shell has been rewritten using the Windows Presentation Foundation (WPF), whereas
the internals have been redesigned using Managed Extensibility Framework (MEF) that offers
more extensibility points than previous versions of the IDE that enabled add-ins to modify the
behavior of the IDE.[153]
Visual Studio 2010 comes with .NET Framework 4 and supports developing applications
targeting Windows 7.[152] It supports IBM Db2 and Oracle databases, in addition to Microsoft
SQL Server.[152] It has integrated support for developing Microsoft Silverlight applications,
24
including an interactive designer.[152] Visual Studio 2010 offers several tools to make parallel
programming simpler: in addition to the Parallel Extensions for the .NET Framework and
the Parallel Patterns Library for native code, Visual Studio 2010 includes tools for debugging
parallel applications. The new tools allow the visualization of parallel Tasks and their
runtime stacks.[155] Tools for profiling parallel applications can be used for visualization of thread
wait-times and thread migrations across processor cores. [156] Intel and Microsoft have jointly
pledged support for a new Concurrency Runtime in Visual Studio 2010 [157] and Intel has launched
parallelism support in Parallel Studio as an add-on for Visual Studio.[158]
The Visual Studio 2010 code editor now highlights references; whenever a symbol is selected,
all other usages of the symbol are highlighted. [159] It also offers a Quick Search feature
to incrementally search across all symbols in C++, C# and VB.NET projects. Quick Search
supports substring matches and camelCase searches.[159] The Call Hierarchy feature allows the
developer to see all the methods that are called from a current method as well as the methods that
call the current one.[159] IntelliSense in Visual Studio supports a consume-first mode which
developers can opt into. In this mode, IntelliSense does not auto-complete identifiers; this allows
the developer to use undefined identifiers (like variable or method names) and define those later.
Visual Studio 2010 can also help in this by automatically defining them, if it can infer their types
from usage.[159] Current versions of Visual Studio have a known bug which makes IntelliSense
unusable for projects using pure C (not C++).[160]
Visual Studio 2010 features a new Help System replacing the MSDN Library viewer. The Help
System is no longer based on Microsoft Help 2 and does not use Microsoft Document Explorer.
Dynamic help containing links to help items based on what the developer was doing at the time
was removed in the final release,[161] but can be added back using a download from Microsoft. [162]
Visual Studio 2010 no longer supports development for Windows Mobile prior to Windows
Phone 7. Visual Studio 2010 Service Pack 1 was released in March 2011. [163]
Ultimate 2010
Visual Studio Ultimate 2010 replaces Visual Studio 2008 Team Suite. [164] It includes new
modeling tools,[165] such as the Architecture Explorer, which graphically displays projects and
classes and the relationships between them. [166][167] It supports UML activity diagram, component
diagram, (logical) class diagram, sequence diagram, and use case diagram. [167] Visual Studio
Ultimate 2010 also includes Test Impact Analysis which provides hints on which test cases are
impacted by modifications to the source code, without actually running the test cases. [168] This
speeds up testing by avoiding running unnecessary test cases.
Visual Studio Ultimate 2010 also includes a historical debugger for managed
code called IntelliTrace. Unlike a traditional debugger that records only the currently active
stack, IntelliTrace records all events, such as prior function calls, method parameters, events and
exceptions. This allows the code execution to be rewound in case a breakpoint was not set where
the error occurred.[169] Debugging with IntelliTrace causes the application to run more slowly than
debugging without it, and uses more memory as additional data needs to be recorded. Microsoft
allows configuration of how much data should be recorded, in effect, allowing developers to
balance the speed of execution and resource usage. The Lab Management component of Visual
25
Studio Ultimate 2010 uses virtualization to create a similar execution environment for testers and
developers. The virtual machines are tagged with checkpoints which can later be investigated for
issues, as well as to reproduce the issue.[170] Visual Studio Ultimate 2010 also includes the
capability to record test runs that capture the specific state of the operating environment as well
as the precise steps used to run the test. These steps can then be played back to reproduce issues.
2012
The final build of Visual Studio 2012 was announced on August 1, 2012, and the official launch
event was held on September 12, 2012. [172]
Unlike prior versions, Visual Studio 2012 cannot record and play macros and the macro editor
has been removed.[173] Also unlike prior versions, Visual Studio 2012 require Windows 7 SP1
and Windows Server 2008 R2 SP1.
New features include support for WinRT and C++/CX (Component Extensions) and C++
AMP (GPGPU programming) Semantic Colorization.[174]
On September 16, 2011, a complete 'Developer Preview' of Visual Studio 11 was published on
Microsoft's website. Visual Studio 11 Developer Preview requires Windows 7, Windows Server
2008 R2, Windows 8, or later operating systems. [175] Versions of Microsoft Foundation Class
Library (MFC) and C runtime (CRT) included with this release cannot produce software that is
compatible with Windows XP or Windows Server 2003 except by using native multi-targeting
and foregoing the newest libraries, compilers, and headers. [176] However, on June 15, 2012, a blog
post on the VC++ Team blog announced that based on customer feedback, Microsoft would re-
introduce native support for Windows XP targets (though not for XP as a development platform)
in a version of Visual C++ to be released later in the fall of 2012. [177] "Visual Studio 2012 Update
1" (Visual Studio 2012.1) was released in November 2012. This update added support for
Windows XP targets and also added other new tools and features (e.g. improved diagnostics and
testing support for Windows Store apps).[178]
On August 24, 2011, a blog post by Sumit Kumar, a Program Manager on the Visual C++ team,
listed some of the features of the upcoming version of the Visual Studio C++ IDE:[179]
Semantic colorization: Improved syntax coloring, various user-defined or default colors for C++
syntax such as macros, enumerations, typenames and functions.[179]
26
Reference highlighting: Selection of a symbol highlights all of the references to that symbol within
scope.[179]
New Solution Explorer: The new Solution Explorer allows for visualization of class and file
hierarchies within a solution/project. It can search for calls to functions and uses of classes. [179]
Automatic display of IntelliSense list: IntelliSense is automatically displayed whilst typing code, as
opposed to previous versions where it had to be explicitly invoked through use of certain operators
(i.e. the scope operator (::)) or shortcut keys (Ctrl-Space or Ctrl-J).[179]
Member list filtering: IntelliSense uses fuzzy logic to determine which functions/variables/types to
display in the list.[179]
Code snippets: Code snippets are included in IntelliSense to automatically generate relevant code
based on the user's parameters, custom code snippets can be created. [179]
The source code of Visual Studio 2012 consists of approximately 50 million lines of code. [180]
Interface backlash
During Visual Studio 11 beta, Microsoft eliminated the use of color within tools except in cases
where color is used for notification or status change purposes. However, the use of color was
returned after feedback demanding more contrast, differentiation, clarity and "energy" in the user
interface.[181][182]
In the Visual Studio 2012 release candidate (RC), a major change to the interface is the use of
all-caps menu bar, as part of the campaign to keep Visual Studio consistent with the direction of
other Microsoft user interfaces, and to provide added structure to the top menu bar area. [183] The
redesign was criticized for being hard to read, and going against the trends started by developers
to use CamelCase to make words stand out better.[184] Some speculated that the root cause of the
redesign was to incorporate the simplistic look and feel of Metro programs. [185] However, there
exists a Windows Registry option to allow users to disable the all-caps interface.[186]
2013
The preview for Visual Studio 2013 was announced at the Build 2013 conference and made
available on June 26, 2013.[187] The Visual Studio 2013 RC (Release Candidate) was made
available to developers on MSDN on September 9, 2013. [188]
The final release of Visual Studio 2013 became available for download on October 17, 2013,
along with .NET 4.5.1.[189] Visual Studio 2013 officially launched on November 13, 2013, at a
virtual launch event keynoted by S. Somasegar and hosted
on events.visualstudio.com.[190] "Visual Studio 2013 Update 1" (Visual Studio 2013.1) was
released on January 20, 2014.[191] Visual Studio 2013.1 is a targeted update that addresses some
key areas of customer feedback.[192] "Visual Studio 2013 Update 2" (Visual Studio 2013.2) was
released on May 12, 2014.[193] Visual Studio 2013 Update 3 was released on August 4, 2014.
With this update, Visual Studio provides an option to disable the all-caps menus, which was
introduced in VS2012.[194] "Visual Studio 2013 Update 4" (Visual Studio 2013.4) was released on
November 12, 2014.[195] "Visual Studio 2013 Update 5" (Visual Studio 2013.5) was released on
July 20, 2015.[196]
27
Visual Studio 2013 also adds support for Windows 8.1 and Windows Server 2012 R2.
2015
[edit]
Initially referred to as Visual Studio "14", the first Community Technology Preview (CTP) was
released on June 3, 2014[197] and the Release Candidate was released on April 29, 2015; Visual
Studio 2015 was officially announced as the final name on November 12, 2014. [198]
Visual Studio 2015 RTM was released on July 20, 2015. [196] Visual Studio 2015 Update 1 was
released on November 30, 2015.[196] Visual Studio 2015 Update 2 was released on March 30,
2016.[196] Visual Studio 2015 Update 3 was released on June 27, 2016. [196] Visual Studio 2015 is
the first version to support Windows 10 and the last version to support Windows 8, Windows
Server 2008 R2 SP1 and Windows Server 2012; it's also the last version to support
targeting Windows XP SP3, Windows Server 2003 SP2, Windows Vista SP2 and Windows
Server 2008 SP2 for C++ applications.
2017
Initially referred to as Visual Studio "15", it was released on March 7, 2017. [199] The first Preview
was released on March 30, 2016.[200] Visual Studio "15" Preview 2 was released May 10,
2016.[201][202] Visual Studio "15" Preview 3 was released on July 7, 2016. [203][204] Visual Studio "15"
Preview 4 was released on August 22, 2016. [205][206] Visual Studio "15" Preview 5 was released on
October 5, 2016.[207]
On November 14, 2016, for a brief period of time, Microsoft released a blog post revealing
Visual Studio 2017 product name version alongside upcoming features. [208]
On November 16, 2016, "Visual Studio 2017" was announced as the final name, [209] and Visual
Studio 2017 RC was released.[210]
On March 7, 2017, Visual Studio 2017 was released for general availability. [210] It
requires Windows 7 SP1, Windows 8.1 with KB2919355 or Windows Server 2012 R2 with
KB2919355 at the minimum, and also added support for Windows Server 2016.
On March 14, 2017, first fix was released for Visual Studio 2017 due to failures during
installation or opening solutions in the first release. [210]
On April 5, 2017, Visual Studio 2017 15.1 was released and added support for targeting the
.NET Framework 4.7.
28
On May 10, 2017, Visual Studio 2017 15.2 was released and added a new workload, "Data
Science and Analytical Applications Workload". An update to fix the dark color theme was
released on May 12, 2017.
On August 14, 2017, Visual Studio 2017 15.3 was released and added support for targeting .NET
Core 2.0. An update (15.3.1) was released four days later to address a Git vulnerability with
submodules (CVE 2017-1000117).
On December 4, 2017, Visual Studio 15.5 was released. This update contained major
performance improvements, new features, as well as bug fixes. [212]
On March 6, 2018, Visual Studio 15.6 was released. It includes updates to unit testing and
performance.[213]
On May 7, 2018, Visual Studio 15.7 was released. It included updates across the board including,
the installer, editor, debugger among others. Almost all point releases, the latest of which
is 15.7.6 released August 2, 2018, include security updates. With the release of Visual Studio
2017 15.7, Visual C++ now conforms to the C++17 standard.[39]
On September 20, 2018, Visual Studio 15.8.5 was released. Tools for Xamarin now supports
Xcode 10.[214]
On November 15, 2018, Visual Studio 2017 15.9 was released and support for targeting ARM64
for Windows 10 was provided. Previously only ARM32 was supported as a target. [215]
Visual Studio 2017 offers new features like support for EditorConfig (a coding style enforcement
framework), NGen support, .NET Core and Docker toolset (Preview), and Xamarin 4.3
(Preview).[210] It also has a XAML Editor, improved IntelliSense, live unit testing, debugging
enhancement and better IDE experience and productivity. Additionally, it is the last version of
Visual Studio to support maintaining Windows 10 Mobile projects. [216]
2019
On June 6, 2018, Microsoft announced Visual Studio 2019 (version 16). [217]
On January 24, 2019, Visual Studio 2019 Preview 2 was released. [219]
On February 13, 2019, Visual Studio 2019 Preview 3 was released. [220]
29
On February 27, 2019, Visual Studio 2019 RC was released while setting April 2, 2019 for its
general availability.[221]
It is generally available (GA) since April 2, 2019 and available for download. [108]
On September 23, 2019, Visual Studio 2019 16.3 was released and added support for targeting
the .NET Framework 4.8.
Visual Studio 2019 is the first version of Visual Studio to support Windows 11, and also
requires Windows 7 SP1, Windows 8.1 with KB2919355, Windows Server 2012 R2 with
KB2919355 or Windows 10, version 1703 at the minimum. It is the last 32-bit version of Visual
Studio as later versions are only 64-bit. It is also the last version to support Windows 7 SP1,
Windows 8.1 and Windows Server 2012 R2, with later versions requiring at least Windows 10
and Windows Server 2016.
2022
On April 19, 2021, Microsoft announced Visual Studio 2022 (version 17). [222][223] It is the first
version to run as a 64-bit process allowing Visual Studio main process to access more than 4 GB
of memory, preventing out-of-memory exceptions which could occur with large projects.
On July 14, 2021, Visual Studio 2022 Preview 2 was released. [225]
On September 14, 2021, Visual Studio 2022 Preview 4 was released. [227]
On October 12, 2021, Visual Studio 2022 RC and Preview 5 was released while setting
November 8, 2021 for its general availability. [228]
It is generally available (GA) since November 8, 2021 and available for download. [229]
It is available only for Windows 10 and Windows Server 2016 or later, and also
supports Windows Server 2022.
On August 9, 2022, Visual Studio 17.3 was released and added support for targeting the .NET
Framework 4.8.1.
On November 8, 2022, Visual Studio 17.4 was released and provided an ARM64 native version
of the compiler itself, not just the ability to target ARM from x86/x64 (real or emulated on
ARM64). [230]
30
FULL EXPLAIN HTML
HTML (HyperText Markup Language) is the code that is used to structure a web page and its
content. For example, content could be structured within a set of paragraphs, a list of bulleted
points, or using images and data tables. As the title suggests, this article will give you a basic
understanding of HTML and its functions.
HTML is a markup language that defines the structure of your content. HTML consists of a
series of elements which you use to enclose, or wrap, different parts of the content to make it
appear a certain way, or act a certain way. The enclosing tags can make a word or image
hyperlink to somewhere else, can italicize words, can make the font bigger or smaller, and so on.
For example, take the following line of content:
1. The opening tag: This consists of the name of the element (in this case, p), wrapped in opening
and closing angle brackets. This states where the element begins or starts to take effect — in
this case where the paragraph begins.
31
2. The closing tag: This is the same as the opening tag, except that it includes a forward
slash before the element name. This states where the element ends — in this case where the
paragraph ends. Failing to add a closing tag is one of the standard beginner errors and can lead to
strange results.
3. The content: This is the content of the element, which in this case, is just text.
4. The element: The opening tag, the closing tag, and the content together comprise the element.
Elements can also have attributes that look like the following:
Attributes contain extra information about the element that you don't want to appear in the actual
content. Here, class is the attribute name and editor-note is the attribute value. The class attribute
allows you to give the element a non-unique identifier that can be used to target it (and any other
elements with the same class value) with style information and other things. Some attributes have
no value, such as required.
1. A space between it and the element name (or the previous attribute, if the element already has
one or more attributes).
2. The attribute name followed by an equal sign.
3. The attribute value wrapped by opening and closing quotation marks.
That wraps up the basics of individual HTML elements, but they aren't handy on their own. Now
we'll look at how individual elements are combined to form an entire HTML page. Let's revisit
the code we put into our index.html example (which we first met in the Dealing with files article):
<!DOCTYPE html>
<html lang="en-US">
32
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>My test page</title>
</head>
<body>
<img src="images/firefox-icon.png" alt="My test image" />
</body>
</html>
<!DOCTYPE html> — doctype. It is a required preamble. In the mists of time, when HTML was
young (around 1991/92), doctypes were meant to act as links to a set of rules that the HTML
page had to follow to be considered good HTML, which could mean automatic error checking
and other useful things. However, these days, they don't do much and are basically just needed to
make sure your document behaves correctly. That's all you need to know for now.
<html></html> — the <html> element. This element wraps all the content on the entire page and
is sometimes known as the root element. It also includes the lang attribute, setting the primary
language of the document.
<head></head> — the <head> element. This element acts as a container for all the stuff you
want to include on the HTML page that isn't the content you are showing to your page's viewers.
This includes things like keywords and a page description that you want to appear in search
results, CSS to style our content, character set declarations, and more.
<meta charset="utf-8"> — This element sets the character set your document should use to UTF-
8 which includes most characters from the vast majority of written languages. Essentially, it can
now handle any textual content you might put on it. There is no reason not to set this, and it can
help avoid some problems later on.
33
<meta name="viewport" content="width=device-width"> — This viewport element ensures the
page renders at the width of viewport, preventing mobile browsers from rendering pages wider
than the viewport and then shrinking them down.
<title></title> — the <title> element. This sets the title of your page, which is the title that
appears in the browser tab the page is loaded in. It is also used to describe the page when you
bookmark/favorite it.
<body></body> — the <body> element. This contains all the content that you want to show to
web users when they visit your page, whether that's text, images, videos, games, playable audio
tracks, or whatever else.
Images
As we said before, it embeds an image into our page in the position it appears. It does this via
the src (source) attribute, which contains the path to our image file.
We have also included an alt (alternative) attribute. In the alt attribute, you specify descriptive
text for users who cannot see the image, possibly because of the following reasons:
1. They are visually impaired. Users with significant visual impairments often use tools called screen
readers to read out the alt text to them.
2. Something has gone wrong causing the image not to display. For example, try deliberately changing the
path inside your src attribute to make it incorrect. If you save and reload the page, you should see
something like this in place of the image:
Headings
Heading elements allow you to specify that certain parts of your content are headings — or
subheadings. In the same way that a book has the main title, chapter titles, and subtitles, an
34
HTML document can too. HTML contains 6 heading levels, <h1> - <h6>, although you'll
commonly only use 3 to 4 at most:
Lists
A lot of the web's content is lists and HTML has special elements for these. Marking up lists
always consists of at least 2 elements. The most common list types are ordered and unordered
lists:
1. Unordered lists are for lists where the order of the items doesn't matter, such as a shopping list. These are
wrapped in a <ul> element.
2. Ordered lists are for lists where the order of the items does matter, such as a recipe. These are wrapped
in an <ol> element.
Each item inside the lists is put inside an <li> (list item) element.
For example, if we wanted to turn the part of the following paragraph fragment into a list
<p>
At Mozilla, we're a global community of technologists, thinkers, and builders
working together…
</p>
<ul>
<li>technologists</li>
<li>thinkers</li>
<li>builders</li>
</ul>
35
<p>working together…</p>
Links
Links are very important — they are what makes the web a web! To add a link, we need to use a
simple element — <a> — "a" being the short form for "anchor". To make text within your
paragraph into a link, follow these steps:
You might get unexpected results if you omit the https:// or http:// part, called the protocol, at the
beginning of the web address. After making a link, click it to make sure it is sending you where
you wanted it to.
What is CSS?
CSS (Cascading Style Sheets) allows you to create great-looking web pages, but how does it
work under the hood? This article explains what CSS is with a simple syntax example and also
covers some key terms about the language.
In this article, we will take a simple HTML document and apply CSS to it, learning some
practical things about the language along the way.
36
Now that you have an idea about what CSS is and the basics of using it, it is time to look a little
deeper into the structure of the language itself. We have already met many of the concepts
discussed here; you can return to this one to recap if you find any later concepts confusing.
We have learned the basics of CSS, what it is for, and how to write simple stylesheets. In this
article, we will take a look at how a browser takes CSS and HTML and turns that into a
webpage.
First, let's examine three methods of applying CSS to a document: with an external stylesheet,
with an internal stylesheet, and with inline styles.
External stylesheet
An external stylesheet contains CSS in a separate file with a .css extension. This is the most
common and useful method of bringing CSS to a document. You can link a single CSS file to
multiple web pages, styling all of them with the same CSS stylesheet. In the Getting started with
CSS, we linked an external stylesheet to our web page.
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="utf-8" />
<title>My CSS experiment</title>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<h1>Hello World!</h1>
<p>This is my first CSS example</p>
</body>
</html>
37
h1 { The href attribute of the <link> element needs to reference a file on your file system. In the
example above, the CSS file is in the same folder as the HTML document, but you could place it
somewhere else and adjust the path. Here are three examples:
<!-- Inside a subdirectory called styles inside the current directory -->
color: blue;
background-color: yellow;
border: 1px solid black;
}
p{
color: red;
}
<link rel="stylesheet" href="styles/style.css" />
<!-- Inside a subdirectory called general, which is in a subdirectory called styles, inside the
current directory -->
<link rel="stylesheet" href="styles/general/style.css" />
<!-- Go up one directory level, then inside a subdirectory called styles -->
<link rel="stylesheet" href="../styles/style.css" />
Internal stylesheet
An internal stylesheet resides within an HTML document. To create an internal stylesheet, you
place CSS inside a <style> element contained inside the HTML <head>.
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="utf-8" />
<title>My CSS experiment</title>
<style>
h1 {
color: blue;
background-color: yellow;
border: 1px solid black;
}
p{
38
color: red;
}
</style>
</head>
<body>
<h1>Hello World!</h1>
<p>This is my first CSS example</p>
</body>
</html>
Inline styles
Inline styles are CSS declarations that affect a single HTML element, contained within
a style attribute. The implementation of an inline style in an HTML document might look like
this:
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="utf-8" />
<title>My CSS experiment</title>
</head>
<body>
<h1 style="color: blue;background-color: yellow;border: 1px solid black;">
Hello World!
</h1>
<p style="color:red;">This is my first CSS example</p>
</body>
</html>
Avoid using CSS in this way, when possible. It is the opposite of a best practice. First, it is the
least efficient implementation of CSS for maintenance. One styling change might require
multiple edits within a single web page. Second, inline CSS also mixes (CSS) presentational
code with HTML and content, making everything more difficult to read and understand.
Separating code and content makes maintenance easier for all who work on the website.
There are a few circumstances where inline styles are more common. You might have to resort to
using inline styles if your working environment is very restrictive. For example, perhaps your
CMS only allows you to edit the HTML body. You may also see a lot of inline styles in HTML
email to achieve compatibility with as many email clients as possible.
39
Playing with the CSS in this article
For the exercise that follows, create a folder on your computer. You can name the folder
whatever you want. Inside the folder, copy the text below to create two files:
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>My CSS experiments</title>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<p>Create your test HTML here</p>
</body>
</html>
styles.css:
p{
color: red;
}
Specificity
You may encounter scenarios where two selectors select the same HTML element. Consider the
stylesheet below, with a p selector that sets paragraph text to blue. However, there is also a class
that sets the text of selected elements to red.
.special {
color: red;
}
p{
color: blue;
}
40
The CSS language has rules to control which selector is stronger in the event of a conflict. These
rules are called cascade and specificity. In the code block below, we define two rules for
the p selector, but the paragraph text will be blue. This is because the declaration that sets the
paragraph text to blue appears later in the stylesheet. Later styles replace conflicting styles that
appear earlier in the stylesheet. This is the cascade rule.
p{
color: red;
}
p{
color: blue;
}
Properties: These are human-readable identifiers that indicate which stylistic features you want
to modify. For example, font-size, width, background-color.
Values: Each property is assigned a value. This value indicates how to style the property.
The example below highlights a single property and value. The property name is color and the
value is blue.
When a property is paired with a value, this pairing is called a CSS declaration. CSS declarations
are found within CSS Declaration Blocks. In the example below, highlighting identifies the CSS
declaration block.
41
Finally, CSS declaration blocks are paired with selectors to produce CSS rulesets (or CSS rules).
The example below contains two rules: one for the h1 selector and one for the p selector. The
colored highlighting identifies the h1 rule.
Setting CSS properties to specific values is the primary way of defining layout and styling for a
document. The CSS engine calculates which declarations apply to every single element of a
page.
CSS properties and values are case-insensitive. The property and value in a property-value pair
are separated by a colon (:).
42
FULL EXPLAIN JAVASCRIPT
JavaScript is a versatile, dynamically typed programming language used for interactive web
applications, supporting both client-side and server-side development, and integrating
seamlessly with HTML, CSS, and a rich standard library.
Client-Side Scripting: JavaScript runs on the user’s browser, so has a faster response time
without needing to communicate with the server.
Versatile: JavaScript can be used for a wide range of tasks, from simple calculations to
complex server-side applications.
Event-Driven: JavaScript can respond to user actions (clicks, keystrokes) in real time.
Asynchronous: JavaScript can handle tasks like fetching data from servers without
freezing the user interface.
Rich Ecosystem: There are numerous libraries and frameworks built on JavaScript, such
as React, Angular, and Vue.js, which make development faster and more efficient.
<html>
<body>
<h1 id="header">
</h1>
43
<button id="btn">
</button>
<script>
document.getElementById("btn").onclick = function () {
document.getElementById("header").textContent =
? "Welcome to GFG"
};
</script>
</body>
</html>
Client-side: It supplies objects to control a browser and its Document Object Model
(DOM). Like if client-side extensions allow an application to place elements on an HTML
form and respond to user events such as mouse clicks, form input, and page navigation.
Useful libraries for the client side are AngularJS, ReactJS, VueJS and so many others.
Server-side: The server side work involves things like communicating with database,
manipulating files and generating response. With runtime environment Node.js that allows
JavaScript to run outside a browser and Frameworks like Express.JS, JavaScript is now
being widely used on the Server side.
Imperative language – In this type of language we are mostly concerned about how it is to
be done. It simply controls the flow of computation. The procedural programming
44
approach, object, oriented approach comes under this as async await we are thinking about
what is to be done further after the async call.
Declarative programming – In this type of language we are concerned about how it is to
be done, basically here logical computation requires. Here main goal is to describe the
desired result without direct dictation on how to get it as the arrow function does.
For a more structured approach to learning JavaScript, our JavaScript Course offers a
complete guide, from the basics to advanced features. Whether you’re just starting or looking
to refine your skills, this course will help you become proficient in JavaScript.
Applications of JavaScript
Web Development: JavaScript adds interactivity and dynamic behavior to static websites,
with popular frameworks like AngularJS enhancing development.
Web Applications: JavaScript powers robust web applications, leveraging APIs, React,
and Electron to create dynamic user experiences like Google Maps.
Server Applications: Node.js brings JavaScript to the server side, enabling powerful
server applications and full-stack development.
Game Development: JavaScript, combined with HTML5 and libraries like Ease JS,
enables the creation of interactive games for the web.
Smartwatches: Pebble JS allows JavaScript to run on smartwatches, supporting apps that
require internet connectivity.
Digital Art: JavaScript enables artists to create interactive art with HTML5 Canvas and
libraries like p5.js.
Machine Learning: With ml5.js, JavaScript can integrate machine learning into web
applications.
Mobile Applications: React Native allows developers to build cross-platform mobile apps
using JavaScript, streamlining development for both iOS and Android.
Limitations of JavaScript
Security risks: JavaScript can be used to fetch data using AJAX or by manipulating tags
that load data such as <img>, <object>, <script>. These attacks are called cross-site script
attacks. They inject JS that is not part of the site into the visitor’s browser thus fetching the
details.
Performance: JavaScript does not provide the same level of performance as offered by
many traditional languages as a complex program written in JavaScript would be
comparatively slow. But as JavaScript is used to perform simple tasks in a browser, so
performance is not considered a big restriction in its use.
Complexity: To master a scripting language, programmers must have a thorough
knowledge of all the programming concepts, core language objects, and client and server-
side objects otherwise it would be difficult for them to write advanced scripts using
JavaScript.
Weak error handling and type checking facilities: It is a weakly typed language as there
is no need to specify the data type of the variable. So wrong type checking is not performed
by compile
45
FULL EXPLAIN API
Everyone is in search of the highest-paying job so as to get into it. And, in the list, the web
developer has been on the top for years and will remain in the same place due to its
demand. If you’re the one who’s looking to get into it. you must be aware of the most
important terms used in it. Out of all the terms, API is yet another term that plays a very
important role in building a website. Now, what is an API – (Application Programming
Interface)
To make you clear with the diagram of what is API , let’s take a real-life example of an
API, you can think of an API as a waiter in a restaurant who listens to your order request,
goes to the chef, takes the food items ordered and gets back to you with the order. Also, if
you want to look for the working of an API with the example, here’s one. You’re searching
for a course (let’s say DSA-Self Paced) on the XYZ website, you send a request(product
search requested) through an API, and the database searches for the course and checks if
it’s available, the API is responsible here to send your request to the database (in search
of the course) and responds with the output(best DSA courses).
46
A developer extensively uses APIs in his software to implement various features by using an
API call without writing complex codes for the same. We can create an API for an operating
system , database system , hardware system, JavaScript file , or similar object-oriented
files. Also, an API is similar to a GUI(Graphical User Interface) with one major difference.
Unlike GUIs, an application program interface helps software developers to access web tools
while a GUI helps to make a program easier to understand for users.
APIs are the building blocks for the todays websites in which heavy data is transferred from
the client to server and vice versa. If you want to learn such more concepts of the websites then
you should enrol in our Full Stack Node Development Course
The working of an API can be clearly explained with a few simple steps. Think of a client-
server architecture where the client sends the request via a medium to the server and receives
the response through the same medium. An API acts as a communication medium between two
programs or systems for functioning. The client is the user/customer (who sends the request),
the medium is the application interface programming , and the server is the backend (where
the request is accepted and a response is provided). Steps followed in the working of APIs –
The client initiates the requests via the APIs URI (Uniform Resource Identifier)
The API makes a call to the server after receiving the request
Then the server sends the response back to the API with the information
Finally, the API transfers the data to the client
APIs are considered safe in terms of attacks as it includes authorization credentials and an API
gateway to limit access so as to minimize security threats. To provide additional security layers
to the data, HTTP headers, query string parameters, or cookies are used.
If we talk about the architectures, API’s architectures are:
REST (Representational State Transfer)
SOAP (Simple Object Access Protocol)
Both define a standard communication protocol for the exchange of messages
in XML (Extensible Markup Language).
Types of APIs
There are three basic forms of API –
1. WEB APIs
A Web API also called Web Services is an extensively used API over the web and can be
easily accessed using the HTTP protocols. A Web application programming interface is an
open-source interface and can be used by a large number of clients through their phones,
tablets, or PCs.
2. LOCAL APIs
In this type of API, the programmers get the local middleware services. TAPI (Telephony
Application Programming Interface), and .NET are common examples of Local APIs.
3. PROGRAM APIs
It makes a remote program appear to be local by making use of RPCs (Remote Procedural
Calls). SOAP is a well-known example of this type of API.
47
CHAPTER 5
“WEATHER FORCASTING”
48
49
CODING*
INDEX*
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>WEATHER FORECAST APP / HIMANSHU</title>
<link rel="stylesheet" href="E:\Internship tasks\weather-app-project-html-
javascript\Weather App Project\style.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="E:\Internship tasks\weather-app-project-html-javascript\Weather
App Project\script.js" defer></script>
</head>
<body>
<h1>WEATHER FORECAST </h1>
<div class="container">
<div class="weather-input">
<h3>Enter a City Name</h3>
<input class="city-input" type="text" placeholder="E.g., New York,
London, Tokyo">
<button class="search-btn">Search</button>
<div class="separator"></div>
<button class="location-btn">Use Current Location</button>
</div>
<div class="weather-data">
<div class="current-weather">
<div class="details">
<h2>_______ ( ______ )</h2>
<h6>Temperature: __°C</h6>
<h6>Wind: __ M/S</h6>
<h6>Humidity: __%</h6>
</div>
</div>
<div class="days-forecast">
<h2>5-Day Forecast</h2>
<ul class="weather-cards">
<li class="card">
<h3>( ______ )</h3>
<h6>Temp: __C</h6>
50
<h6>Wind: __ M/S</h6>
<h6>Humidity: __%</h6>
</li>
<li class="card">
<h3>( ______ )</h3>
<h6>Temp: __C</h6>
<h6>Wind: __ M/S</h6>
<h6>Humidity: __%</h6>
</li>
<li class="card">
<h3>( ______ )</h3>
<h6>Temp: __C</h6>
<h6>Wind: __ M/S</h6>
<h6>Humidity: __%</h6>
</li>
<li class="card">
<h3>( ______ )</h3>
<h6>Temp: __C</h6>
<h6>Wind: __ M/S</h6>
<h6>Humidity: __%</h6>
</li>
<li class="card">
<h3>( ______ )</h3>
<h6>Temp: __C</h6>
<h6>Wind: __ M/S</h6>
<h6>Humidity: __%</h6>
</li>
</ul>
</div>
</div>
</div>
<center>
<footer style="background-color:black; padding: 10px;text-
align:center;color:white;">
<div class="author-text">
<p> © Made by <a href="https://github.com/Himgpt0068/CODTECK-
TASK1" target="_blank"><b>HIMANSHU</b></a></p>
</div>
</footer>
</center>
</body>
</html>
51
CSS*
52
}
.weather-input input {
height: 46px;
width: 100%;
outline: none;
font-size: 1.07rem;
padding: 0 17px;
margin: 10px 0 20px 0;
border-radius: 4px;
border: 1px solid #ccc;
}
.weather-input input:focus {
padding: 0 16px;
border: 2px solid #5372F0;
}
.weather-input .separator {
height: 1px;
width: 100%;
margin: 25px 0;
background: #BBBBBB;
display: flex;
align-items: center;
justify-content: center;
}
.weather-input .separator::before{
content: "or";
color: #6C757D;
font-size: 1.18rem;
padding: 0 15px;
margin-top: -4px;
background: #E3F2FD;
}
.weather-input button {
width: 100%;
padding: 10px 0;
cursor: pointer;
outline: none;
border: none;
border-radius: 4px;
font-size: 1rem;
color: #fff;
background: #aab9f7;
transition: 0.2s ease;
}
.weather-input .search-btn:hover {
53
background: #2c52ed;
}
.weather-input .location-btn {
background: #6C757D;
}
.weather-input .location-btn:hover {
background: #5c636a;
}
.weather-data {
width: 100%;
}
.weather-data .current-weather {
color: #fff;
background: #5372F0;
border-radius: 5px;
padding: 20px 70px 20px 20px;
display: flex;
justify-content: space-between;
}
.current-weather h2 {
font-weight: 700;
font-size: 1.7rem;
}
.weather-data h6 {
margin-top: 12px;
font-size: 1rem;
font-weight: 500;
}
.current-weather .icon {
text-align: center;
}
.current-weather .icon img {
max-width: 120px;
margin-top: -15px;
}
.current-weather .icon h6 {
margin-top: -10px;
text-transform: capitalize;
}
.days-forecast h2 {
margin: 20px 0;
font-size: 1.5rem;
}
.days-forecast .weather-cards {
display: flex;
54
gap: 20px;
}
.weather-cards .card {
color: #fff;
padding: 18px 16px;
list-style: none;
width: calc(100% / 5);
background: #6C757D;
border-radius: 5px;
}
.weather-cards .card h3 {
font-size: 1.3rem;
font-weight: 600;
}
.weather-cards .card img {
max-width: 70px;
margin: 5px 0 -12px 0;
}
55
@media (max-width: 750px) {
h1 {
font-size: 1.45rem;
padding: 16px 0;
}
.container {
flex-wrap: wrap;
padding: 15px;
}
.weather-input {
width: 100%;
}
.weather-data h2 {
font-size: 1.35rem;
}
}
JAVASCRIPT*
56
<img
src="https://openweathermap.org/img/wn/${weatherItem.weather[0].icon}@4x.png"
alt="weather-icon">
<h6>${weatherItem.weather[0].description}</h6>
</div>`;
} else { // HTML for the other five day forecast card
return `<li class="card">
<h3>(${weatherItem.dt_txt.split(" ")[0]})</h3>
<img
src="https://openweathermap.org/img/wn/${weatherItem.weather[0].icon}@4x.png"
alt="weather-icon">
<h6>Temp: ${(weatherItem.main.temp -
273.15).toFixed(2)}°C</h6>
<h6>Wind: ${weatherItem.wind.speed} M/S</h6>
<h6>Humidity: ${weatherItem.main.humidity}%</h6>
</li>`;
}
}
57
weatherCardsDiv.insertAdjacentHTML("beforeend", html);
}
});
}).catch(() => {
alert("An error occurred while fetching the weather forecast!");
});
}
// Get entered city coordinates (latitude, longitude, and name) from the API
response
fetch(API_URL).then(response => response.json()).then(data => {
if (!data.length) return alert(`No coordinates found for ${cityName}`);
const { lat, lon, name } = data[0];
getWeatherDetails(name, lat, lon);
}).catch(() => {
alert("An error occurred while fetching the coordinates!");
});
}
58
alert("Geolocation request denied. Please reset location
permission to grant access again.");
} else {
alert("Geolocation request error. Please reset location
permission.");
}
});
}
locationButton.addEventListener("click", getUserCoordinates);
searchButton.addEventListener("click", getCityCoordinates);
cityInput.addEventListener("keyup", e => e.key === "Enter" &&
getCityCoordinates());
59
CHAPTER 6
CONCLUSION*
An assessment towards the end of the project (and prior to the final drafting of the Project
report ) should result in two conclusion (or sets of conclusions), one on the product ie. What the
project achieved against the objectives set at the start of the project, and a second on the process
ie. How the outcome of the project was achieved with an indication of the lessons to be learned
from success or failure (as measured by achievement against objectives).
(The balance in terms of time and importance of the activities outlined above is a matter for
discussion between student and supervisor.
However, the project report needs to provide evidence of the attention paid to all 6chapter
of activities)
60
RECOMMENDATIONS*
1. suggest practical uses of the forcasting model.
1. Agriculture:
Forecasting rainfall to optimize irrigation and crop planting schedules.
2. Disaster Management:
Early warning systems for severe weather events like storms, hurricanes, or heatwaves.
4. Energy Sector:
Optimizing renewable energy generation (e.g., wind and solar) by forecasting weather
conditions.
5. Urban Planning:
61
Supporting city management in handling extreme events, such as heatwaves or heavy
rainfall.
6. Health Sector:
Alerting populations about potential health risks like heatstroke, frostbite, or allergies due
to changing weather conditions.
Incorporate real-time data from IoT weather stations and satellite imagery.
2. Model Optimization:
Include additional predictors such as vegetation indices, soil moisture, or air quality data
for specific applications.
4. Regional Customization:
62
Include localized weather patterns like monsoons or El Niño effects.
Provide actionable insights alongside raw forecasts (e.g., suggestions for farmers or
utility managers).
63
APPENDIX
64
Transmission control
protocol
8 TCP
65
BIBLIOGRAPHY
For successfully completing my project file. I have taken help from the
following website links:-
www.google.com
www.wikipedia.com
www.geekforgeeks.org
www.openweather.com
66