2023 Lecture Notes of Web Technology
with .NET
Web Technology with
.NET
Introduction
Dharmendra Bhatti 1
Web
lThe World Wide Web (WWW), commonly
known as the Web, is an information
system enabling information to be shared
over the Internet
Dharmendra Bhatti 2
Prof. (Dr.) Dharmendra Bhatti 1
2023 Lecture Notes of Web Technology
with .NET
History
l1996 Active Server Pages (ASP)
l1997 ASP 2.0
l2000 ASP 3.0
l2002 ASP.NET 1.0
l2005 ASP.NET 2.0
l2006 ASP.NET 3.0
l2010 ASP.NET 4.0
Dharmendra Bhatti 3
History
l2016 ASP.NET Core
l2017 ASP.NET Core 2.0
l2019 ASP.NET Core 3.0 (ONLY supports
.NET Core NOT .NET Framework)
l2020 ASP.NET Core 5.0
l2021 ASP.NET Core 6.0
l2022 ASP.NET Core 7.0
Dharmendra Bhatti 4
Prof. (Dr.) Dharmendra Bhatti 2
2023 Lecture Notes of Web Technology
with .NET
.NET Framework
lThe .NET Framework (pronounced as "dot
net") is a proprietary software framework
developed by Microsoft that runs primarily
on Microsoft Windows.
Dharmendra Bhatti 5
.NET Framework Component Stack
Dharmendra Bhatti 6
Prof. (Dr.) Dharmendra Bhatti 3
2023 Lecture Notes of Web Technology
with .NET
.NET Core
Dharmendra Bhatti 7
Everything is NuGet
lNuGet (pronounced "New Get") is a
package manager, primarily used for
packaging and distributing software written
using the .NET framework.
Dharmendra Bhatti 8
Prof. (Dr.) Dharmendra Bhatti 4
2023 Lecture Notes of Web Technology
with .NET
.NET Core Composition
Dharmendra Bhatti 9
.NET Core Composition
lCLI Tools: A set of tooling for development
and deployment.
lRoslyn: Language compiler for C# and
Visual Basic
lCoreFX: Set of framework libraries.
lCoreCLR: A JIT based CLR (Command
Language Runtime).
Dharmendra Bhatti 10
Prof. (Dr.) Dharmendra Bhatti 5
2023 Lecture Notes of Web Technology
with .NET
.NET
l.NET (formerly named .NET Core) is a
free and open-source, managed computer
software framework for Windows, Linux,
and macOS operating systems.
Dharmendra Bhatti 11
.NET
lIt is a cross-platform successor to .NET
Framework.
lThe project is mainly developed by
Microsoft employees by way of the .NET
Foundation, and released under an MIT
License.
Dharmendra Bhatti 12
Prof. (Dr.) Dharmendra Bhatti 6
2023 Lecture Notes of Web Technology
with .NET
What is ASP.NET Core?
lASP.NET Core is an open source and
cloud-optimized framework for developing
web applications
Dharmendra Bhatti 13
ASP.NET Core
lOpen Source
lCross Platform
lDependency Injection
lCloud Friendly
lFaster
Dharmendra Bhatti 14
Prof. (Dr.) Dharmendra Bhatti 7
2023 Lecture Notes of Web Technology
with .NET
Advantages of ASP.NET Core
lBuild and run cross-platform ASP.NET
apps on Windows, Mac and Linux.
lBuilt on .NET Core, which supports true
side-by-side app versioning.
lSingle aligned web stack for Web UI and
Web APIs.
lCloud-ready environment-based
configuration.
Dharmendra Bhatti 15
Advantages of ASP.NET Core
lBuilt-in support for dependency injection.
lTag Helpers which makes Razor markup
more natural with HTML.
lAbility to host on IIS or self-host in your
own process.
lIntegration with Modern UI Frameworks
¡It allows you to use and manage modern UI
frameworks such as AngularJS, ReactJS,
Umber, Bootstrap, etc. using Bower (a package
manager for the web).
Dharmendra Bhatti 16
Prof. (Dr.) Dharmendra Bhatti 8
2023 Lecture Notes of Web Technology
with .NET
Choose an ASP.NET Core web UI
lBenefits vs. costs of server and client
rendered UI
¡Apps that render UI from the server.
¡Apps that render UI on the client in the browser.
¡Hybrid apps that take advantage of both server
and client UI rendering approaches. For
example, most of the web UI is rendered on the
server, and client rendered components are
added as needed.
Dharmendra Bhatti 17
Choose an ASP.NET Core web UI
lBenefits vs. costs of server and client
rendered UI
¡Apps that render UI from the server.
¡Apps that render UI on the client in the browser.
¡Hybrid apps that take advantage of both server
and client UI rendering approaches. For
example, most of the web UI is rendered on the
server, and client rendered components are
added as needed.
Dharmendra Bhatti 18
Prof. (Dr.) Dharmendra Bhatti 9
2023 Lecture Notes of Web Technology
with .NET
Server rendered UI
lA web UI app that renders on the server
dynamically generates the page's HTML
and CSS on the server in response to a
browser request.
Dharmendra Bhatti 19
Server rendered UI
lBenefits:
¡The client requirements are minimal because
the server does the work of logic and page
generation:
lGreat for low-end devices and low-bandwidth
connections.
lAllows for a broad range of browser versions at the
client.
lQuick initial page load times.
lMinimal to no JavaScript to pull to the client.
Dharmendra Bhatti 20
Prof. (Dr.) Dharmendra Bhatti 10
2023 Lecture Notes of Web Technology
with .NET
Server rendered UI
lBenefits:
¡Flexibility of access to protected server
resources:
lDatabase access.
lAccess to secrets, such as values for API calls to
Azure storage.
¡Static site analysis advantages, such as search
engine optimization.
Dharmendra Bhatti 21
Server rendered UI
lDrawbacks:
¡The cost of compute and memory use are
concentrated on the server, rather than each
client.
¡User interactions require a round trip to the
server to generate UI updates.
Dharmendra Bhatti 22
Prof. (Dr.) Dharmendra Bhatti 11
2023 Lecture Notes of Web Technology
with .NET
Client rendered UI
lA client rendered app dynamically renders
web UI on the client, directly updating the
browser DOM as necessary.
Dharmendra Bhatti 23
Client rendered UI
lBenefits:
¡Allows for rich interactivity that is nearly instant,
without requiring a round trip to the server. UI
event handling and logic run locally on the
user's device with minimal latency.
¡Supports incremental updates, saving partially
completed forms or documents without the user
having to select a button to submit a form.
Dharmendra Bhatti 24
Prof. (Dr.) Dharmendra Bhatti 12
2023 Lecture Notes of Web Technology
with .NET
Client rendered UI
lBenefits:
¡Can be designed to run in a disconnected
mode. Updates to the client-side model are
eventually synchronized back to the server
once a connection is re-established.
¡Reduced server load and cost, the work is
offloaded to the client. Many client rendered
apps can also be hosted as static websites.
¡Takes advantage of the capabilities of the
user’s device.
Dharmendra Bhatti 25
Client rendered UI
lDrawbacks:
¡Code for the logic has to be downloaded and
executed on the client, adding to the initial load
time.
¡Client requirements may exclude users who
have low-end devices, older browser versions,
or low-bandwidth connections.
Dharmendra Bhatti 26
Prof. (Dr.) Dharmendra Bhatti 13
2023 Lecture Notes of Web Technology
with .NET
ASP.NET Core UI solutions
lServer Rendered
¡ASP.NET Core MVC
¡ASP.NET Core Razor Pages
¡Blazor Server
l
Client Rendered
¡Blazor WebAssembly
Dharmendra Bhatti 27
ASP.NET Core MVC
lASP.NET MVC renders UI on the server
and uses a Model-View-Controller (MVC)
architectural pattern.
lThe MVC pattern separates an app into
three main groups of components: Models,
Views, and Controllers.
Dharmendra Bhatti 28
Prof. (Dr.) Dharmendra Bhatti 14
2023 Lecture Notes of Web Technology
with .NET
ASP.NET Core MVC
lUser requests are routed to a controller.
The controller is responsible for working
with the model to perform user actions or
retrieve results of queries.
lThe controller chooses the view to display
to the user, and provides it with any model
data it requires.
Dharmendra Bhatti 29
ASP.NET Core Razor Pages
lRazor Pages is a page-based model.
lUI and business logic concerns are kept
separate, but within the page.
Dharmendra Bhatti 30
Prof. (Dr.) Dharmendra Bhatti 15
2023 Lecture Notes of Web Technology
with .NET
ASP.NET Core Razor Pages
l Quickly build and update UI. Code for the page
is kept with the page, while keeping UI and
business logic concerns separate.
l Testable and scales to large apps.
l Keep your ASP.NET Core pages organized in a
simpler way than ASP.NET MVC:
¡View specific logic and view models can be kept
together in their own namespace and directory.
¡Groups of related pages can be kept in their own
namespace and directory.
Dharmendra Bhatti 31
Blazor Server
l Create rich interactive UIs using C# instead of
JavaScript.
l Share server-side and client-side app logic
written in .NET.
l Render the UI as HTML and CSS for wide
browser support, including mobile browsers.
l Integrate with modern hosting platforms, such as
Docker.
l Build hybrid desktop and mobile apps with .NET
and Blazor.
Dharmendra Bhatti 32
Prof. (Dr.) Dharmendra Bhatti 16
2023 Lecture Notes of Web Technology
with .NET
Blazor WebAssembly
lBlazor WebAssembly is a single-page app
(SPA) framework for building interactive
client-side web apps
Dharmendra Bhatti 33
Blazor WebAssembly
l When a Blazor WebAssembly app is built and
run:
¡C# code files and Razor files are compiled into .NET
assemblies.
¡The assemblies and the .NET runtime are
downloaded to the browser.
¡Blazor WebAssembly bootstraps the .NET runtime
and configures the runtime to load the assemblies for
the app.
¡The Blazor WebAssembly runtime uses JavaScript
interop to handle Document Object Model (DOM)
manipulation and browser API calls.
Dharmendra Bhatti 34
Prof. (Dr.) Dharmendra Bhatti 17
2023 Lecture Notes of Web Technology
with .NET
The structure of ASP.NET Core
Dharmendra Bhatti 35
Creating an ASP.NET Core Project
lUsing Command Prompt:
¡dotnet new globaljson --sdk-version 6.0.100 --
output FirstProject
¡dotnet new mvc --no-https --output FirstProject -
-framework net6.0
¡dotnet new sln -o FirstProject
¡dotnet sln FirstProject add FirstProject
Dharmendra Bhatti 36
Prof. (Dr.) Dharmendra Bhatti 18
2023 Lecture Notes of Web Technology
with .NET
Creating an ASP.NET Core Project
lVisual Studio 2022
lOr
lVisual Studio Code
Dharmendra Bhatti 37
Opening the Project Using Visual
Studio
Dharmendra Bhatti 38
Prof. (Dr.) Dharmendra Bhatti 19
2023 Lecture Notes of Web Technology
with .NET
Opening the Project Using Visual
Studio
Dharmendra Bhatti 39
Opening the Project with Visual
Studio Code
Dharmendra Bhatti 40
Prof. (Dr.) Dharmendra Bhatti 20
2023 Lecture Notes of Web Technology
with .NET
Opening the Project with Visual
Studio Code
Dharmendra Bhatti 41
Running the ASP.NET Core
Application
lSetting the HTTP Port in the
launchSettings.json File in the Properties
Folder
Dharmendra Bhatti 42
Prof. (Dr.) Dharmendra Bhatti 21
2023 Lecture Notes of Web Technology
with .NET
Running the ASP.NET Core
Application
lOpen a new PowerShell command
prompt; navigate to the FirstProject project
folder, and run the command
¡dotnet run
lOr
lRun from VS2022 or VS Code
Dharmendra Bhatti 43
Running the ASP.NET Core
Application
Dharmendra Bhatti 44
Prof. (Dr.) Dharmendra Bhatti 22
2023 Lecture Notes of Web Technology
with .NET
Understanding Endpoints
lIn an ASP.NET Core application, incoming
requests are handled by endpoints.
lThe endpoint that produced the response
is an action, which is a method that is
written in C#.
lAn action is defined in a controller, which
is a C# class that is derived from the
Microsoft.AspNetCore.Mvc.Controller
class, the built-in controller base class.
Dharmendra Bhatti 45
Understanding Endpoints
lThe controller is defined in the class file
named HomeController.cs.
lController classes contain a name
followed by the word Controller, which
means that when you see a file called
HomeController.cs. It contains a controller
called Home, which is the default
controller that is used in ASP.NET Core
applications.
Dharmendra Bhatti 46
Prof. (Dr.) Dharmendra Bhatti 23
2023 Lecture Notes of Web Technology
with .NET
Understanding Endpoints
lFind the HomeController.cs file in the
Solution Explorer or Explorer pane and
click it to open it for editing.
Dharmendra Bhatti 47
Understanding Endpoints
lsing the code editor, replace the contents
of the HomeController.cs file
Dharmendra Bhatti 48
Prof. (Dr.) Dharmendra Bhatti 24
2023 Lecture Notes of Web Technology
with .NET
Understanding Routes
lYou can request any of the following
URLs, and they will be dispatched to the
Index action defined by the Home
controller:
l/
l/Home
l/Home/Index
Dharmendra Bhatti 49
Understanding HTML Rendering
lThe output from the previous example
wasn’t HTML—it was just the string Hello
World.
lTo produce an HTML response to a
browser request, We need a view
Dharmendra Bhatti 50
Prof. (Dr.) Dharmendra Bhatti 25
2023 Lecture Notes of Web Technology
with .NET
Understanding HTML Rendering
lCreating and Rendering a View
Dharmendra Bhatti 51
Understanding HTML Rendering
lTrying to find “MyView”
Dharmendra Bhatti 52
Prof. (Dr.) Dharmendra Bhatti 26
2023 Lecture Notes of Web Technology
with .NET
Understanding HTML Rendering
lRight-click the Views/Home folder in the
Solution Explorer and select
Add ➤ New Item from the pop-up menu.
Dharmendra Bhatti 53
Understanding HTML Rendering
lRendering a view
Dharmendra Bhatti 54
Prof. (Dr.) Dharmendra Bhatti 27
2023 Lecture Notes of Web Technology
with .NET
Understanding HTML Rendering
lAdding Dynamic Output
Dharmendra Bhatti 55
Understanding HTML Rendering
lMyView.cshtml file:
¡@model string
¡@{
¡ Layout = null;
¡}
¡…
Dharmendra Bhatti 56
Prof. (Dr.) Dharmendra Bhatti 28
2023 Lecture Notes of Web Technology
with .NET
Understanding HTML Rendering
lGenerating dynamic content
Dharmendra Bhatti 57
PartyInvites
Dharmendra Bhatti 58
Prof. (Dr.) Dharmendra Bhatti 29
2023 Lecture Notes of Web Technology
with .NET
PartyInvites
lCreate a web app that allows invitees to
electronically RSVP
¡A home page that shows information about the
party
¡A form that can be used to RSVP
¡Validation for the RSVP form, which will display
a thank-you page
¡A summary page that shows who is coming to
the party
Dharmendra Bhatti 59
PartyInvites
lCreate a project named PartyInvites.
Dharmendra Bhatti 60
Prof. (Dr.) Dharmendra Bhatti 30
2023 Lecture Notes of Web Technology
with .NET
PartyInvites
lHomeController.cs File in the Controllers
Folder
Dharmendra Bhatti 61
Index.cshtml File in the Views/Home
Folder
Dharmendra Bhatti 62
Prof. (Dr.) Dharmendra Bhatti 31
2023 Lecture Notes of Web Technology
with .NET
PartyInvites
Dharmendra Bhatti 63
Adding a Data Model
lRight-click the Models folder and select
Add ➤ Class from the pop-up menu.
lSet the name of the class to
GuestResponse.cs and click the Add
button.
Dharmendra Bhatti 64
Prof. (Dr.) Dharmendra Bhatti 32
2023 Lecture Notes of Web Technology
with .NET
Adding a Data Model
lGuestResponse.cs File in the Models
Folder
Dharmendra Bhatti 65
Creating a Second Action and View
lHomeController.cs File in the Controllers
Folder
Dharmendra Bhatti 66
Prof. (Dr.) Dharmendra Bhatti 33
2023 Lecture Notes of Web Technology
with .NET
Creating a Second Action and View
lRight-click the Views/Home folder and
select Add ➤ New Item from the pop-up
menu.
lSelect the Razor View - Empty item, set
the name to RsvpForm.cshtml, and click
the Add button to create the file
Dharmendra Bhatti 67
Creating a Second Action and View
lRsvpForm.cshtml File in the Views/Home
Folder
Dharmendra Bhatti 68
Prof. (Dr.) Dharmendra Bhatti 34
2023 Lecture Notes of Web Technology
with .NET
Linking Action Methods
lAdding a Link in the Index.cshtml File in
the Views/Home Folder
Dharmendra Bhatti 69
Linking Action Methods
lasp-action attribute is an example of a
tag helper attribute, which is an
instruction for Razor that will be performed
when the view is rendered.
lThe asp-action attribute is an instruction to
add an href attribute to the a element that
contains a URL for an action method.
Dharmendra Bhatti 70
Prof. (Dr.) Dharmendra Bhatti 35
2023 Lecture Notes of Web Technology
with .NET
Linking Action Methods
Dharmendra Bhatti 71
Building the Form
lRsvpForm.cshtml File in the Views/Home
Folder
Dharmendra Bhatti 72
Prof. (Dr.) Dharmendra Bhatti 36
2023 Lecture Notes of Web Technology
with .NET
Building the Form
lRsvpForm.cshtml File in the Views/Home
Folder
Dharmendra Bhatti 73
Building the Form
lThe @model expression specifies that the
view expects to receive a GuestResponse
object as its view model.
lWe used label and input element for each
property of the GuestResponse model
class (or, in the case of the WillAttend
property, a select element).
Dharmendra Bhatti 74
Prof. (Dr.) Dharmendra Bhatti 37
2023 Lecture Notes of Web Technology
with .NET
Building the Form
lEach element is associated with the model
property using the asp-for attribute, which
is another tag helper attribute.
lThe tag helper attributes configure the
elements to tie them to the view model
object.
Dharmendra Bhatti 75
Building the Form
Dharmendra Bhatti 76
Prof. (Dr.) Dharmendra Bhatti 38
2023 Lecture Notes of Web Technology
with .NET
Receiving Form Data
lAdd a second RsvpForm action method to
create the following:
¡A method that responds to HTTP GET
requests: A GET request is what a browser
issues normally each time someone clicks a
link. This version of the action will be
responsible for displaying the initial blank form
when someone first visits /Home/RsvpForm.
Dharmendra Bhatti 77
Receiving Form Data
lAdd a second RsvpForm action method to
create the following:
¡A method that responds to HTTP POST
requests: The form element sets the method
attribute to post, which causes the form data to
be sent to the server as a POST request. This
version of the action will be responsible for
receiving submitted data and deciding what to
do with it.
Dharmendra Bhatti 78
Prof. (Dr.) Dharmendra Bhatti 39
2023 Lecture Notes of Web Technology
with .NET
Receiving Form Data
lHomeController.cs File in the Controllers
Folder
Dharmendra Bhatti 79
Understanding Model Binding
lAdd a class file named Repository.cs to
the Models folder
Dharmendra Bhatti 80
Prof. (Dr.) Dharmendra Bhatti 40
2023 Lecture Notes of Web Technology
with .NET
Storing Responses
lHomeController.cs File in the Controllers
Folder
Dharmendra Bhatti 81
Adding the Thanks View
lThe call to the View method in the
RsvpForm action method creates a
ViewResult that selects a view called
Thanks and uses the GuestResponse
object created by the model binder as the
view model.
lAdd a Razor View named Thanks.cshtml
to the Views/Home folder
Dharmendra Bhatti 82
Prof. (Dr.) Dharmendra Bhatti 41
2023 Lecture Notes of Web Technology
with .NET
Adding the Thanks View
lThanks.cshtml File in the Views/Home
Folder
Dharmendra Bhatti 83
Adding the Thanks View
Dharmendra Bhatti 84
Prof. (Dr.) Dharmendra Bhatti 42
2023 Lecture Notes of Web Technology
with .NET
Displaying the Responses
l...
l<div>Click <a asp-
action="ListResponses">here</a> to see
who is coming.</div>
l...
Dharmendra Bhatti 85
Displaying the Responses
lHomeController.cs File in the Controllers
Folder
Dharmendra Bhatti 86
Prof. (Dr.) Dharmendra Bhatti 43
2023 Lecture Notes of Web Technology
with .NET
Displaying the Responses
lThe new action method is called
ListResponses, and it calls the View
method, using the Repository.Responses
property as the argument.
lThe view model data is filtered using LINQ
so that only positive responses are
provided to the view.
Dharmendra Bhatti 87
Displaying the Responses
lAdd a Razor View named
ListResponses.cshtml to the Views/Home
folder
Dharmendra Bhatti 88
Prof. (Dr.) Dharmendra Bhatti 44
2023 Lecture Notes of Web Technology
with .NET
Displaying the Responses
Dharmendra Bhatti 89
Displaying the Responses
Dharmendra Bhatti 90
Prof. (Dr.) Dharmendra Bhatti 45
2023 Lecture Notes of Web Technology
with .NET
Adding Validation
lIn an ASP.NET Core application,
validation rules are defined by applying
attributes to model classes, which means
the same validation rules can be applied in
any form that uses that class.
Dharmendra Bhatti 91
Adding Validation
lGuestResponse.cs File in the Models
Folder
Dharmendra Bhatti 92
Prof. (Dr.) Dharmendra Bhatti 46
2023 Lecture Notes of Web Technology
with .NET
Adding Validation
Dharmendra Bhatti 93
Validation Successful?
lHomeController.cs File in the Controllers
Folder
Dharmendra Bhatti 94
Prof. (Dr.) Dharmendra Bhatti 47
2023 Lecture Notes of Web Technology
with .NET
Adding a Validation Summary
lRsvpForm.cshtml File in the Views/Home
Folder
Dharmendra Bhatti 95
Adding a Validation Summary
Dharmendra Bhatti 96
Prof. (Dr.) Dharmendra Bhatti 48
2023 Lecture Notes of Web Technology
with .NET
Highlighting Invalid Fields
lThe convention in ASP.NET Core projects
is that static content is placed into the
wwwroot folder and organized by content
type so that CSS stylesheets go into the
wwwroot/css folder, JavaScript files go
into the wwwroot/js folder
Dharmendra Bhatti 97
Highlighting Invalid Fields
lRight-click the wwwroot/css folder and
select Add ➤ New Item from the pop-up
menu.
lLocate the Style Sheet item template, set
the name of the file to styles.css; and click
the Add button.
Dharmendra Bhatti 98
Prof. (Dr.) Dharmendra Bhatti 49
2023 Lecture Notes of Web Technology
with .NET
Highlighting Invalid Fields
Dharmendra Bhatti 99
Highlighting Invalid Fields
lstyles.css File in the wwwroot/css Folder
Dharmendra Bhatti 100
Prof. (Dr.) Dharmendra Bhatti 50
2023 Lecture Notes of Web Technology
with .NET
Highlighting Invalid Fields
lTo apply this stylesheet, add a link
element to the head section of the
RsvpForm view
Dharmendra Bhatti 101
Highlighting Invalid Fields
lRsvpForm.cshtml File in the Views/Home
Folder
Dharmendra Bhatti 102
Prof. (Dr.) Dharmendra Bhatti 51
2023 Lecture Notes of Web Technology
with .NET
Highlighting Invalid Fields
Dharmendra Bhatti 103
Styling the Welcome View
lProblem:
¡overall appearance of the application
is poor
lSolution:
¡Client-side library Bootstrap
Dharmendra Bhatti 104
Prof. (Dr.) Dharmendra Bhatti 52
2023 Lecture Notes of Web Technology
with .NET
Styling the Welcome View
lAdding Bootstrap to the Index.cshtml File
in the Views/Home Folder
Dharmendra Bhatti 105
Styling the Welcome View
Dharmendra Bhatti 106
Prof. (Dr.) Dharmendra Bhatti 53
2023 Lecture Notes of Web Technology
with .NET
Styling the Form View
lRsvpForm.cshtml File in the Views/Home
Folder
Dharmendra Bhatti 107
Styling the Form View
Dharmendra Bhatti 108
Prof. (Dr.) Dharmendra Bhatti 54
2023 Lecture Notes of Web Technology
with .NET
Styling the Form View
Dharmendra Bhatti 109
Styling the Thanks View
lThanks.cshtml File in the Views/Home
Folder
Dharmendra Bhatti 110
Prof. (Dr.) Dharmendra Bhatti 55
2023 Lecture Notes of Web Technology
with .NET
Styling the Thanks View
Dharmendra Bhatti 111
Styling the List View
lListResponses.cshtml File in the
Views/Home Folder
Dharmendra Bhatti 112
Prof. (Dr.) Dharmendra Bhatti 56
2023 Lecture Notes of Web Technology
with .NET
Styling the List View
Dharmendra Bhatti 113
Questions ???
Dharmendra Bhatti 114
Prof. (Dr.) Dharmendra Bhatti 57