You are on page 1of 38

Study Material and Syllabus

review/scope of CBGS syllabus


for T.Y.B.Sc (Computer Science)
Applied Component
(Web Design and Technologies)
w.e.f 2013 - 2014"
compiled and presented
by
Ad-hoc BOS and Syllabus Committee Members,
Computer Science (University of Mumbai)
at
Smt. C.H.M. College, Ulhasnagar 3


1

USACWD501
SEMESTER V
Course USACWD501: Principles of Web Design & Web Technologies I

Text highlighted in RED color are Newly added topics)


Unit I

Web Site Design Principles Design for the Medium, Design for the Whole
Site, Design for the User, Design for the Screen
Planning the Site Create a Site Specification, Identify the Content Goal,
Analyze your Audience, Build a Web Site Development Team, Filenames and
URLs, Directory Structure, Diagram the Site
Planning Site Navigation Creating Usable Navigation, Using Text- Based
Navigation, Using Graphics- Based Navigation
Creating Page Templates Understanding Table Basics, Table Pointers,
Creating a Page Template
References:
PWDJS Chapter 2,3,4,5

Web Typography Type Design Principles, Controlling Typography with the
<FONT> Element, Controlling Typography with Cascading Style Sheet, Styling
with CSS
Graphics and Color File Format Basics, Computer Color Basic, Choosing a
Graphics Tool, Using the <IMG> Element, Working with Hexadecimal Colors
HTML Frames Understanding Frames, Frame Syntax, Targeting in
Framesets, Planning Frame Content
Publishing and Maintaining Your Web Site Publishing Your Web Site,
Testing Your Web Site, Refining and Updating Your Content, Attracting Notice
to Your Web Site
References:
PWDJS Chapter 6,7,8,9

HTML - HTML 4.0 Tag Reference, Global Attributes, Event Handlers,
Document Structure Tags, Formatting Tags, List Tags, Hyperlinks, Image &
Image map, Table Tags, Form Tags, Frame Tags, Executable Content Tags and
Style Sheets, CSS
References:
( ELJO Chapter 3-9)

Unit II

Introduction to Java Script (Functions, Objects)
Client-Side Java Script

2

Java Script In Web Browser, Windows And Frames, The Document Object
Model, Events and Event Handling, Forms and Form Elements,
Dynamic HTML And Saving State With Cookies
References:
ELJO -19, JSDF (Ch 7, 8, 11-18)

XML- Introduction to XML, Problems with HTML & SGML, Types of XML
Markup, Document Type Definitions, Using Style Sheets with XML, Creating
XML well formed, valid Documents.
References:
ELJO(Ch 12,13)
XML Unleashed(Ch 1 to 3,5,6,8,9)
XML- Introduction to XML, Problems with HTML & SGML, Types of XML
Markup, Document Type Definitions, Using Style Sheets with XML, Creating
XML well formed, valid Documents.
References:
ELJO(Ch 12,13)
XML Unleashed(Ch 1 to 3,5,6,8,9)
Main References
1) Using HTML 4, XML & JAVA by Eric Ladd & Jim ODonnell. (Platinum
Edition) (PHI) (ELJO)
2) Principles of Web Design by Joel Sklar(PWDJS)
3) Java Script the definitive guide by David Flanagan(JSDF)
4) XML Unleashed Techmedia SAMS, Michael Morrison


Unit-III

Introduction to .NET Framework 3.5 (or above): Overview of .NET
Framework, Objectives
.NET Framework Architecture: CLR (Goal of CLR, Services, Features,
Benefits, Managed Execution Process, Automatic memory Management
CTS, CTS Overview, Type Definitions, Type members, Different types
of data such as class, delegates, pointes, arrays, interfaces
Meta Data, Structure of Metadata & Self Describing Components,
Cross Language Interoperability & CLS
Assemblies [Assembly overview, Benefits, Contents, Types
Introduction to .NET IDE:
- Note: To be done only in the Practical

Introduction to VB 2008 : Adding forms, controls, Setting Properties, Adding
code, Handling events, Displaying simple messages, Data Types, Declaring
variables, Strings & constants, Operators, Expressions, Declaring methods,
subroutines, procedures, Passing & returning Arguments, Decision Statements

3

(if, select), Loops, Adding Comments, Converting Data types
Reference: Murach

Working with Strings, Dates & Time : Char, String class & Functions,
Converting strings to numbers, DateTime class, Formatting
Window Controls and Events: Using basic window controls such as forms,
labels, buttons, text boxes, check boxes, radio buttons, list boxes, combo boxes,
Adding properties, Processing events, Using various dialog boxes such as
MessageBox, OpenDialog, SaveDialog, StreamReader & StreamWriter, Using
menus, Adding toolbars, status bars, MDI form, Processing events, Adding event
handlers for one/many events
Reference: Murach

Structured Exception Handling: try, catch, finally blocks, throwing exceptions,
Err object, Using masked textboxes
Collections: Creating & manipulating arrays, Using System.Array, ArrayLists
Collection
Reference: Murach

Unit-IV

OO Programming : Understanding objects, creating classes, adding
constructors, properties, methods & variables, access specifiers, Shared
members, Defining & using events, Implementing inheritance, Partial classes,
Creating, referencing, importing namespaces
Reference: Mastering

Building Class libraries: Understanding class libraries, using strong names,
registering assemblies, designing class Creating Assemblies, Setting Assembly
Attributes,
[Creating and Using Strong-Named Assemblies Working with Assemblies and
the Global Assembly Cache
(How to: Install an Assembly into the Global Assembly Cache using GACUTIL)
]
Reference: Wrox

Creating Custom controls : Enhancing Existing controls, Building & using
compound controls, Adding custom events
Reference: Mastering

ADO.NET : ADO.NET & Data management, Advantages of ADO.NET,
ADO.NET Object model, Data objects, Data Source Interaction objects, .NET
Data provides
Reference: Murach

Using Connection, Command, DataReader classes, Queries returning result
sets, scalars, Passing parameters in queries

4

Reference: Murach

Disconnected Data, Data Adapter, Using Data Set(Typed), Data Table, Data
Row & Data Column, Command Builder, Modifying & Updating disconnected
data
Reference: Mastering

Creating and using Data sources, Binding(Simple and Complex binding) controls
with data sources, DataGridView Control, Role of BindingSource, TableAdapter,
AdapterManager & BindingNavigator classes
Reference: Murach / Mastering

LINQ : Introduction to LINQ, Advantages of LINQ, Using From, Where, Order
By, Select
Reference: Mastering

Main References
1) Murach Visual Basic 2008, Anne Boehm, Murach
2) Mastering Visual Basic 2008, Evangelos Petroutsos, Wiley-India Edition
3) Beginning Microsoft Visual Basic 2008(Wrox) by Thearon Willis & Bryan
Newsome




5

Practicals
USACWD5P1
Category A:
Unit 1 and Unit 2
Practical 1 to 4
Category B:
Unit 3 and Unit 4
Practical 5 to 8

Category A: Practical 1.
HTML Tags, Tables, Image Mapping
1) Creation of a Website I
Create a website using HTML. Write code for 4 separate pages having different filenames. Use
any theme such College Profile, Company Profile, or Product Profile. Each page must contain a
hyperlink to the other three pages. All pages must have different backgrounds (colors or
images) and different titles.
1. Name the first page as Index.htm This page must contain general information about
the theme chosen and must have a heading in the largest possible size. This page must
also display at least one image, which must have alternate text as well as must act as a
hyperlink to another page.
2. The second page must include text that makes use of the below listed Physical Styles
such as Bold, Italic, Underline, Subscript, Superscript, Big and Small. If possible also
make use of a marquee that scrolls from right to left on this page.
3. The third page must include at least three paragraphs of text each having a different
alignment and each paragraph should use a different font.
4. The fourth page must contain a tiled background image and must contain two lists, one
ordered and the other unordered listing at least 4 values each. This page must also
contain an URL to at least one e-mail address.
All pages excluding the first page must have a link to the Index.htm page. Create the Web
Pages without using any pre-existing Web Pages or code.
2) Creation of a Website - II
1. Create a website based on the theme of Save the Earths Environment using HTML.
Write code for 4 separate pages having different filenames based on this theme. All
pages must have different background colors and different Titles.
2. The first page must contain a hyperlink to the other three pages in such a way that when
a hyperlink on the same is clicked, the corresponding page must open in a new window
without changing the content of the source web page. The first page must contain
general information about the given theme and must have a marquee scrolling from
right to left carrying the theme name. This page must also display at least one image
which is preferably related to the theme. The image must have alternate text.
3. The second page must give the factors responsible for environmental damage, types of
pollution etc. The page at least must include text that makes use of Physical Styles such
as Bold, Italic, Type Text, Superscript, Big and Small. The page must have a suitable
heading.

6

4. The third page must be based on what we (human beings) can do to reduce the effects of
pollution. This page must include at least three paragraphs of text each having a
different alignment and each paragraph should use a different font.
The last page must contain a background image and must contain a table having a border, 4
columns, 5 rows and one empty cell. All pages excluding the first page must have a link to the
Index.htm page. Create the Web Pages without using any pre-existing Web Pages or code.
3) Write a program in html to display the calendar for the month of April 2013 in the following
format

April 2011 ABC CORP

SUN 4 11 18 25
MON

5 12 19 26
TUE

6 13 20 27
WED

7 14 21 28
THUR 1 8 15 22 29
FRI 2 9 16 23 30
SAT 3 10 17 24
Sponsors


APRIL 2011









7

4) Prepare the table called telephone bill using html tags.

Telephone Bill

Subscribers Name and
Address
Consumer No.
P. O. Stamp
Arun Nabar
Crossin Roads
Off Haji Ali Road.,
Mumbai 400 022.
PL 0012345
Telephone
No
Type Bill Date Due Date Pay By Date
29750772
Gen. /
Res.
Permanent
01- Mar-2004 18-Mar-2004 25-Apr-2004
DETAILS ITEM PERIOD AMOUNT
Rate No. of Calls Charge Rent
10/09/97
to
31/10/98
200.00
0.80 95 76 Item
16/05/97
to
15/07/97
76.00

Surcharge After
Pay- By- Date
10
TKP/PG
Calls
16/05/97
to
15/07/97
0.00
Amount On/ Before
Pay- By- Date
290
ITX
Calls
16/05/97
to
15/07/97
0.00
TOTAL 290.00
Please pay before due date to avoid
Disconnection

E & O.E.
Please See Overleaf For Codes/
Instructions

Account Officer













8

5) Write an html page to display the following table

T.Y.B.Sc.
Department of Computer Science
Main Applied Component
System Software
Operating System
Linux
Web Design
Data Communication
Java
SSAD
Web Technology
OOAD

Data communication & Networking
Author Name price
Behrouz
Forouzan
DCN 300/-
TCP/IP 350/-
Andrew s.
Tanenbaum
Networking 400/-
William
Stallings
Computer
Communication &
Networking
400/-
Total Cost
(total 4
books)
Rs.1450/-

Operating System
Author Name Price
Andrew s.
Tanenbaum
Operating
system
500/-
William
Stallings
Operating
system
Concepts
Total Rs.1000/-


The HTML page should have an appropriate title. The data within the table should be center
aligned.






9

6) Write a HTML code to design the following using Table tags.


This is a simple table for which you have to give the code.

HTML ASP CFML
Hyper Text Markup
Language
Active Server Pages Cold Fusion Markup
Language
HTML 4.0 ASP 2.0 CFML 5.0









This is a table using Rowspan and Colspan

No. of Students
Total

288
Year
2001
Year
2002
Year
2003
58 96 154

COMPUTER SCIENCE
Category A: Practical 2.
HTML Tags- Form Tag, Frame Tags, Applying CSS(Internal and External style)
1) Create a Registration Form inside a table with no borders where people can register with you
asking for your services. Registration form should have following information about person
name, age and email ,date of birth, Gender(radio buttons), hobbies (checkboxes), address
(textarea), country (listbox), Required Service (textarea).When clicked on submit button, all the
information entered should be entered in a alert dialog box. Use appropriate images, phrases,
image maps, table format. Do appropriate formatting on every Page.
2) Create a STYLESHEET for a website to apply uniform background, forecolor, headings color,
contact details to all pages.(Use external, internal, inline stylesheets)
3) Create an HTML page with 3 frames of equal size.
The HTML page should have an appropriate title. The first frame should have 3 links namely
image link, text link1 and text link2. When you click on their image link a new window with an
image should appear. On clicking the text link1 and text link2 the text contents should be
displayed on the second and the third frame respectively. In addition to this, navigation should
be possible in all the three immovable frames. Also along with the links the tool tip should
appear. If the browser does not support frames, appropriate message should appear.
4) Create an HTML page with 3 frames of equal size. The HTML page should have an [15]
appropriate title. The first frame should have 2 links namely picture link, text link1. When you
click on their picture link a new window with an image should appear. On clicking the text
link1 the text contents should be displayed on the second frame respectively. In addition to this,
navigation should be possible in all the two immovable frames. Also along with the links the

10

tool tip should appear. If the browser does not support frames, appropriate message should
appear.
5) The HTML page should have an appropriate title. Create a form wherein you are taking
information for the creation of bill. Please make sure that valid name and e-mail id is entered.
The total cost textbox should be disabled. Here within this form as soon as he enters No. of
items the total cost should be calculated by you. Finally on click of Bill button you should give
an alert message of his total bill followed by his name. Use JavaScript and give the appropriate
message to the browser, which does not support JavaScript.


Name :

E-mail Id :

Items Rate No. of items
bought
Total Cost

Shirts 550.00

Toys 300.00

Jeans 700.00

Books 450.00


Bill


6) Create a Home page for a your college. Provide a cascading style sheet to give the following
effect

Body with some background color
h1 tag with
Background image: swirlbkg.jpg
Colorlime green
Letter-spacing-7pt
Text-align-: center
Text-decoration-underline
Text-transform--uppercase;
Word-spacing: 2pt
div tag with
border-bottom: maroon outset thin
border-left: maroon outset thin
order-right: maroon outset thin
border-top: maroon outset thin
color:yellow;filter:shadow(color=green,direction=100)
text-align:center;width:800px}

P tag with
Color magenta

11

font-family Algerian
font-size medium
font-styleitalic
font-weight--lighter

h3 tag with
Background-color--lime
Border-bottom--gray outset left
Border-left--gray outset left
Border-right--gray outset left
Border-top:gray outset left
Color--blue
font-family--Aarial
positionabsolute
li tag with
color:moroon
list-style with image green-ball.gif"
Text-transform:uppercase
Category A: Practical 3.
Representing Data using XML with CSS/XSL and Internal/External DTD
1) Create an XML document with XSL and DTD listing your favorite books .
2) Create an XML document describing your hobbies and interest and relevant activities. Link it
to above web page
3) Internal Document Type Definitions
Create a XML page with following structure apply CSS [15]

OS
Pranita Gupta
5yrs
Data communication and Networking
Neel Kumar
1yrs
SSAD
Ruchi Patil
10yrs
WD
Raj Kumar
10yrs
4) Create a XML page with following structure. Create an External DTD
<personelDetail>
<name>
<firstName>Sheetal</firstName>
<middleName>Ramesh</middleName>
<lastName>Ghadigaonkar</lastName>
</name>

12

<address>
<city>Mumbai</city>
<country>India</country>
</address>
</personelDetail>
5) Create a XML page with following structure apply CSS.
<?xml version="1.0"?>

<vehicles>

<vehicle year = "1916" make = "handrover" model="discovery">
<mileage>3650</mileage>
<color>Black</color>
<price>$22100</price>
</vehicle>

<vehicle year = "1918" make = "handrover" model = "jazzy">
<mileage>3880</mileage>
<color>Blue</color>
<price>$24100</price>
</vehicle>

<vehicle year = "1915" make = "handrover" model = "deluxe">
<mileage>3200</mileage>
<color>Golden</color>
<price>$20300</price>
</vehicle>

<vehicle year = "1926" make = "handrover" model = "super deluxe">
<mileage>3850</mileage>
<color>Silver</color>
<price>$25500</price>
</vehicle>

</vehicles>
Category A: Practical 4.
Executing Client Side Scripts using JavaScript
1) Add JavaScript validations in registration form .Name text field should not accept any digit,
age text field should not accept characters ,perform validations on email on lost focus of text
field.
a. Empty fields should not be allowed.
b. Redo above validations using regular expressions.
2) Design a Login Form containing User Name and password. The password should contain max
8 characters. When user name and password matches with predefined values, a welcome
message should be displayed otherwise error message should be displayed. Maximum 3
attempts should be allowed for wrong passwords otherwise the application should end[Use If]

13

3) Create a html page that accepts Principle Amount, No. of Years & Rate of Interest from 3 text
fields, when you click Calculate Interest button, the data is sent to a function that returns the
simple interest. When you click on Final Amount button, the final amount by adding
principle amount and interest should be displayed. [ Use Functions]
4) Study of String object and various methods.
5) Write code to detect browser.
6) Design a web page to change the background color on mouseover.
7) Write a javascript code to find sum of first n numbers. Accept the value for n in
prompt dialog box.
Find factorial of a given number.
Write a javascript program to evaluate any given expression entered in prompt dialog
box.
Write a javascript program to find all prime numbers from 1 100.
Write a javascript program to find whether the number entered in the prompt dialog box
is a prime or not.
8) Form validation

To validate the data before sending it to server so that wrong data is not send to the server.

Create a page for accepting user inputs for a Registration and validate the entered data with the
help of JavaScript.

Check all fields are entered
Check email id is valid.
Fields should not be blank.
Number should not be allowed in name field.
Characters not allowed in telephone field.
9) Dynamic HTML
1. Create Dynamic Html page to animate an object.
2. Create a page, which changes its style dynamically.
3. Create a page with three buttons Normal, Spooky and Silly. Define different
three styles. On click of the buttons apply the styles to page.
Category B: Practical 5.
Study of basic & advanced VB.NET Programming alongwith controls, Data Conversion &
Message box
1) Design a Login Form containing User Name and password. The password should contain max
8 characters. When user name and password matches with predefined values, a welcome
message should be displayed otherwise error message should be displayed. Maximum 3
attempts should be allowed for wrong passwords otherwise the application should end[Use If]
2) Create a form that accepts 2 numbers from 2 text fields, an operation(+,-,*,/) from third text
field. When you click Result button, the result of the expression should be displayed in 4rth
disabled text-field. Include a radio button to choose whether the result should be integer or
float. [Use Select]

14

3) Create a VB.NET Project that accepts Principle Amount, No. of Years & Rate of Interest from
3 text fields, when you click Calculate Interest button, the data is sent to a function that
returns the simple interest. When you click on Final Amount button, the final amount by
adding principle amount and interest should be displayed. [ Use Functions]
4) Create a reservation form for Mumbai-Pune journey, containing 3 text-fields to enter names, 3
text-fields to enter age and a text field to show final bill. It should also contain a check box
showing the type of journey(AC or NonAC). Charges of AC/NonAC mode of journey is fixed.
But only for children(age <5) and senior citizens(age>60), the rates are half. 4% service
charges are applied on final amount. As per the passengers entered by user, display the final
bill.
5) Create a form containing a list box with names of Indian cricket players. From this list, two
teams should be formed called Royal Challengers & Knight Riders. The players of these
teams should be shown in combo boxes which are initially empty. For each of these combo-
box, two buttons Add & Delete should be used that allow to make changes When you
click on Add button of a particular team, the selected players from the main list box, should be
added in the combo box. The same players should be removed from the main list box. Make
sure that the number of players should not exceed 11. When you click on the delete button, a
particular player from the combo-box should be deleted and added to the main list box.
6) Write a program to enter information about customer with name, age and email in 3 text fields.
Name text field should not accept any digit, age text field should not accept characters and
perform validations on email on lost focus of text field.
7) Write a program to accept information of customer for an investment policy such as Name,
Date of Birth and Address. The amount to be invested should be selected from a combo box.
A customer can invest from min. age of 21 to 60. According to Date of birth, determine current
age of customer, total number of years remaining and accordingly find & display the premium
that customer will have to pay.
Category B: Practical 6.
MDI, Menus, Toolbars, Dialog boxes & Collection
1) Create a form containing 2 buttons to open color dialog and font dialog box. The form should
contain a label. The labels font and color should be set as per the options selected in the font
and color dialog box.
2) Create a form containing a text area and two buttons Read & Write. When you click on
Read button, File-open dialog box is opened in which when you select a text file its contains
should be displayed in text area. When you click on Write Button, Save-File dialog box is
opened in which you can select a text file in which the contents of text area will be written.
3) Create a MDI form containing 2 menus Current Releases & Events. Current Releases opens a
form containing some list of specific films in combo-box. When you select the name of the
film, its information such as movie type(comedy/suspense/action/drama etc), producer should
be displayed in labels. It should also show its ratings in the status bar. When you click on
Events, it should open a form containing list of events in list box. The list of films & events
should be read from an array-list.





15

Category B: Practical 7.
Implementing OOP concepts in VB.NET, Creating Custom Controls
1) Design a custom control called FileSelector containing a TextBox and Browse button. When
you click on the button, file dialog should be opened using which one can select a file whose
name is displayed in text box. Add three properties in the custom control called File, Ext
that selects files with specific extension and DefaultDir that sets initial directory of file
dialog. File property should be read-only. Also include an event called FileSelected which
is fired when user selects a file using Browse button.
2) Create a class Account containing 3 variables accno, name, curbal. Add suitable constructors
to create Account objects. Add 3 properties AccNo, Name and CurBal. AccNo should be
read-only property whose value should be automatically assigned by using static variable. Add
a function called CheckStatus that returns account number along with current balance. Design
a suitable application (Console/GUI) to test the above class. Note that the Account class should
be in BankApp namespace.
3) Use Account class created in previous practical. Add 2 functions in it called withdraw and
deposit which have integer parameter. Function deposit adds amount in current balance.
Function withdraw is an abstract function. Create 2 subclasses of account SavingsAcc &
CurrentAcc. SavingsAcc should contain a variable representing minimum balance and a
constructor to initialize it. It overrides withdraw function which deducts some amount from
current balance only if remaining balance is greater than minimum balance. CurrentAcc should
contain a variable representing overdraft and a constructor to initialize it. It should also override
withdraw function which deducts some amount from current balance only if remaining balance
is greater than 0 or money that you want to withdraw is greater than current balance plus
overdraft. Design a suitable form to test the above two classes.
Category B: Practical 8.
ADO.NET Programming & Data Binding
1) For an Employee table containing EmpNo, EmpName & EmpSal, design a form that allows
user to go through all employees using suitable button. Also include buttons that show total
number of employees and maximum salary. [ Use Data Reader]
2) For students table, containing Roll, Name and Marks, design a form that allows add, modify
and delete operations using suitable buttons. Provide navigation facility to access First, Last,
Next & Previous records. Also add searching & sorting facilities on specified columns. [Use
BindingSource and BindingNavigator feature]
3) Assuming 2 tables - Dept(DeptNo, DeptName) and Employee(EmpNo, EmpName, EmpSal,
DeptNo) where each employee belongs to a department. Display list of departments in combo
box using complex data binding. When user selects a department, all employees from that
department should be displayed in Grid. Also add a Print button that displays the list of
employees in selected department using crystal report. [Use BindingSource and
BindingNavigator feature]




16

Study Material for
Dot Net Framework 3.5 from MSDN
1 .NET Framework Conceptual Overview
The .NET Framework is an integral Windows component that supports building and running the next
generation of applications and XML Web services. The .NET Framework is designed to fulfill the following
objectives:
To provide a consistent object-oriented programming environment whether object code is stored
and executed locally, executed locally but Internet-distributed, or executed remotely.
To provide a code-execution environment that minimizes software deployment and versioning
conflicts.
To provide a code-execution environment that promotes safe execution of code, including code
created by an unknown or semi-trusted third party.
To provide a code-execution environment that eliminates the performance problems of scripted
or interpreted environments.
To make the developer experience consistent across widely varying types of applications, such as
Windows-based applications and Web-based applications.
To build all communication on industry standards to ensure that code based on the .NET
Framework can integrate with any other code.
The .NET Framework has two main components: the common language runtime and the .NET Framework
class library. The common language runtime is the foundation of the .NET Framework. You can think of
the runtime as an agent that manages code at execution time, providing core services such as memory
management, thread management, and remoting, while also enforcing strict type safety and other forms
of code accuracy that promote security and robustness. In fact, the concept of code management is a
fundamental principle of the runtime. Code that targets the runtime is known as managed code, while
code that does not target the runtime is known as unmanaged code. The class library, the other main
component of the .NET Framework, is a comprehensive, object-oriented collection of reusable types that
you can use to develop applications ranging from traditional command-line or graphical user interface
(GUI) applications to applications based on the latest innovations provided by ASP.NET, such as Web
Forms and XML Web services.
The .NET Framework can be hosted by unmanaged components that load the common language runtime
into their processes and initiate the execution of managed code, thereby creating a software environment
that can exploit both managed and unmanaged features. The .NET Framework not only provides several
runtime hosts, but also supports the development of third-party runtime hosts.
1.1 Features of the Common Language Runtime

The common language runtime manages memory, thread execution, code execution, code safety
verification, compilation, and other system services. These features are intrinsic to the managed code that
runs on the common language runtime.

17

With regards to security, managed components are awarded varying degrees of trust, depending on a
number of factors that include their origin (such as the Internet, enterprise network, or local computer).
This means that a managed component might or might not be able to perform file-access operations,
registry-access operations, or other sensitive functions, even if it is being used in the same active
application.
The runtime enforces code access security. For example, users can trust that an executable embedded in a
Web page can play an animation on screen or sing a song, but cannot access their personal data, file
system, or network. The security features of the runtime thus enable legitimate Internet-deployed
software to be exceptionally feature rich.
The runtime also enforces code robustness by implementing a strict type-and-code-verification
infrastructure called the common type system (CTS). The CTS ensures that all managed code is self-
describing. The various Microsoft and third-party language compilers generate managed code that
conforms to the CTS. This means that managed code can consume other managed types and instances,
while strictly enforcing type fidelity and type safety.
In addition, the managed environment of the runtime eliminates many common software issues. For
example, the runtime automatically handles object layout and manages references to objects, releasing
them when they are no longer being used. This automatic memory management resolves the two most
common application errors, memory leaks and invalid memory references.
The runtime also accelerates developer productivity. For example, programmers can write applications in
their development language of choice, yet take full advantage of the runtime, the class library, and
components written in other languages by other developers. Any compiler vendor who chooses to target
the runtime can do so. Language compilers that target the .NET Framework make the features of the .NET
Framework available to existing code written in that language, greatly easing the migration process for
existing applications.
While the runtime is designed for the software of the future, it also supports software of today and
yesterday. Interoperability between managed and unmanaged code enables developers to continue to
use necessary COM components and DLLs.
The runtime is designed to enhance performance. Although the common language runtime provides
many standard runtime services, managed code is never interpreted. A feature called just-in-time (JIT)
compiling enables all managed code to run in the native machine language of the system on which it is
executing. Meanwhile, the memory manager removes the possibilities of fragmented memory and
increases memory locality-of-reference to further increase performance.
Finally, the runtime can be hosted by high-performance, server-side applications, such as Microsoft SQL
Server and Internet Information Services (IIS). This infrastructure enables you to use managed code to
write your business logic, while still enjoying the superior performance of the industry's best enterprise
servers that support runtime hosting.



18

1.2 .NET Framework Class Library

The .NET Framework class library is a collection of reusable types that tightly integrate with the common
language runtime. The class library is object oriented, providing types from which your own managed
code can derive functionality. This not only makes the .NET Framework types easy to use, but also reduces
the time associated with learning new features of the .NET Framework. In addition, third-party
components can integrate seamlessly with classes in the .NET Framework.
For example, the .NET Framework collection classes implement a set of interfaces that you can use to
develop your own collection classes. Your collection classes will blend seamlessly with the classes in the
.NET Framework.
As you would expect from an object-oriented class library, the .NET Framework types enable you to
accomplish a range of common programming tasks, including tasks such as string management, data
collection, database connectivity, and file access. In addition to these common tasks, the class library
includes types that support a variety of specialized development scenarios. For example, you can use the
.NET Framework to develop the following types of applications and services:
Console applications. See Building Console Applications.
Windows GUI applications (Windows Forms). See Windows Forms.
Windows Presentation Foundation (WPF) applications. See Introduction to Windows Presentation
Foundation.
ASP.NET applications. See Creating ASP.NET Web Pages.
Web services. See Creating Web Services in Managed Code.
Windows services. See Introduction to Windows Service Applications.
.NET Framework architecture
.NET
Framework 3.5
Provides the first additions to the base class libraries to the .NET Framework since
version 2.0. The following technologies are introduced in the .NET Framework 3.5:
Language Integrated Query (LINQ).
New compilers for C#, Visual Basic, and C++.
ASP.NET AJAX.
For a complete list of features, see
What's New in the .NET Framework Version 3.5





19

2 Common Language Runtime Overview
Compilers and tools expose the runtime's functionality and enable you to write code that benefits from
this managed execution environment. Code that you develop with a language compiler that targets the
runtime is called managed code; it benefits from features such as cross-language integration, cross-
language exception handling, enhanced security, versioning and deployment support, a simplified model
for component interaction, and debugging and profiling services.
To enable the runtime to provide services to managed code, language compilers must emit metadata that
describes the types, members, and references in your code. Metadata is stored with the code; every
loadable common language runtime portable executable (PE) file contains metadata. The runtime uses
metadata to locate and load classes, lay out instances in memory, resolve method invocations, generate
native code, enforce security, and set run-time context boundaries.
The runtime automatically handles object layout and manages references to objects, releasing them when
they are no longer being used. Objects whose lifetimes are managed in this way are called managed data.
Garbage collection eliminates memory leaks as well as some other common programming errors. If your
code is managed, you can use managed data, unmanaged data, or both managed and unmanaged data
in your .NET Framework application. Because language compilers supply their own types, such as primitive
types, you might not always know (or need to know) whether your data is being managed.
The common language runtime makes it easy to design components and applications whose objects
interact across languages. Objects written in different languages can communicate with each other, and
their behaviors can be tightly integrated. For example, you can define a class and then use a different
language to derive a class from your original class or call a method on the original class. You can also pass
an instance of a class to a method of a class written in a different language. This cross-language
integration is possible because language compilers and tools that target the runtime use a common type
system defined by the runtime, and they follow the runtime's rules for defining new types, as well as for
creating, using, persisting, and binding to types.
As part of their metadata, all managed components carry information about the components and
resources they were built against. The runtime uses this information to ensure that your component or
application has the specified versions of everything it needs, which makes your code less likely to break
because of some unmet dependency. Registration information and state data are no longer stored in the
registry where they can be difficult to establish and maintain. Rather, information about the types you
define (and their dependencies) is stored with the code as metadata, making the tasks of component
replication and removal much less complicated.
Language compilers and tools expose the runtime's functionality in ways that are intended to be useful
and intuitive to developers. This means that some features of the runtime might be more noticeable in
one environment than in another. How you experience the runtime depends on which language compilers
or tools you use. For example, if you are a Visual Basic developer, you might notice that with the common
language runtime, the Visual Basic language has more object-oriented features than before. Following are
some benefits of the runtime:
Performance improvements.
The ability to easily use components developed in other languages.

20

Extensible types provided by a class library.
New language features such as inheritance, interfaces, and overloading for object-oriented
programming; support for explicit free threading that allows creation of multithreaded, scalable
applications; support for structured exception handling and custom attributes.
If you use Microsoft Visual C++ .NET, you can write managed code using Visual C++, which provides
the benefits of a managed execution environment as well as access to powerful capabilities and expressive
data types that you are familiar with. Additional runtime features include:
Cross-language integration, especially cross-language inheritance.
Garbage collection, which manages object lifetime so that reference counting is unnecessary.
Self-describing objects, which make using Interface Definition Language (IDL) unnecessary.
The ability to compile once and run on any CPU and operating system that supports the runtime.
You can also write managed code using the C# language, which provides the following benefits:
Complete object-oriented design.
Very strong type safety.
A good blend of Visual Basic simplicity and C++ power.
Garbage collection.
Syntax and keywords similar to C and C++.
Use of delegates rather than function pointers for increased type safety and security. Function
pointers are available through the use of the unsafe C# keyword and the /unsafe option of the C#
compiler (Csc.exe) for unmanaged code and data.
2.1 Managed Execution Process
The managed execution process includes the following steps:
1. Choosing a compiler.
To obtain the benefits provided by the common language runtime, you must use one or more
language compilers that target the runtime.
2. Compiling your code to Microsoft intermediate language (MSIL).
Compiling translates your source code into MSIL and generates the required metadata.
3. Compiling MSIL to native code.
At execution time, a just-in-time (JIT) compiler translates the MSIL into native code. During this
compilation, code must pass a verification process that examines the MSIL and metadata to find
out whether the code can be determined to be type safe.
4. Running code.

21

The common language runtime provides the infrastructure that enables execution to take place as
well as a variety of services that can be used during execution.
2.2 Automatic Memory Management
Automatic memory management is one of the services that the common language runtime provides
during Managed Execution. The common language runtime's garbage collector manages the allocation
and release of memory for an application. For developers, this means that you do not have to write code
to perform memory management tasks when you develop managed applications. Automatic memory
management can eliminate common problems, such as forgetting to free an object and causing a
memory leak, or attempting to access memory for an object that has already been freed. This section
describes how the garbage collector allocates and releases memory.
Allocating Memory

When you initialize a new process, the runtime reserves a contiguous region of address space for the
process. This reserved address space is called the managed heap. The managed heap maintains a pointer
to the address where the next object in the heap will be allocated. Initially, this pointer is set to the
managed heap's base address. All reference types are allocated on the managed heap. When an
application creates the first reference type, memory is allocated for the type at the base address of the
managed heap. When the application creates the next object, the garbage collector allocates memory for
it in the address space immediately following the first object. As long as address space is available, the
garbage collector continues to allocate space for new objects in this manner.
Allocating memory from the managed heap is faster than unmanaged memory allocation. Because the
runtime allocates memory for an object by adding a value to a pointer, it is almost as fast as allocating
memory from the stack. In addition, because new objects that are allocated consecutively are stored
contiguously in the managed heap, an application can access the objects very quickly.
Releasing Memory

The garbage collector's optimizing engine determines the best time to perform a collection based on the
allocations being made. When the garbage collector performs a collection, it releases the memory for
objects that are no longer being used by the application. It determines which objects are no longer being
used by examining the application's roots. Every application has a set of roots. Each root either refers to
an object on the managed heap or is set to null. An application's roots include global and static object
pointers, local variables and reference object parameters on a thread's stack, and CPU registers. The
garbage collector has access to the list of active roots that the just-in-time (JIT) compiler and the runtime
maintain. Using this list, it examines an application's roots, and in the process creates a graph that
contains all the objects that are reachable from the roots.
Objects that are not in the graph are unreachable from the application's roots. The garbage collector
considers unreachable objects garbage and will release the memory allocated for them. During a

22

collection, the garbage collector examines the managed heap, looking for the blocks of address space
occupied by unreachable objects. As it discovers each unreachable object, it uses a memory-copying
function to compact the reachable objects in memory, freeing up the blocks of address spaces allocated
to unreachable objects. Once the memory for the reachable objects has been compacted, the garbage
collector makes the necessary pointer corrections so that the application's roots point to the objects in
their new locations. It also positions the managed heap's pointer after the last reachable object. Note that
memory is compacted only if a collection discovers a significant number of unreachable objects. If all the
objects in the managed heap survive a collection, then there is no need for memory compaction.
To improve performance, the runtime allocates memory for large objects in a separate heap. The garbage
collector automatically releases the memory for large objects. However, to avoid moving large objects in
memory, this memory is not compacted.
3 Common Type System
The common type system defines how types are declared, used, and managed in the runtime, and is also
an important part of the runtime's support for cross-language integration. The common type system
performs the following functions:
Establishes a framework that helps enable cross-language integration, type safety, and high
performance code execution.
Provides an object-oriented model that supports the complete implementation of many
programming languages.
Defines rules that languages must follow, which helps ensure that objects written in different
languages can interact with each other.
Common Type System Overview
Describes concepts and defines terms relating to the common type system.
Type Definitions
Describes user-defined types.
Type Members
Describes events, fields, nested types, methods, and properties, and concepts such as member
overloading, overriding, and inheritance.
Value Types in the Common Type System
Describes built-in and user-defined value types.
Classes in the Common Type System
Describes the characteristics of common language runtime classes.

23

Delegates in the Common Type System
Describes the delegate object, which is the managed alternative to unmanaged function pointers.
Arrays in the Common Type System
Describes common language runtime array types.
Interfaces in the Common Type System
Describes characteristics of interfaces and the restrictions on interfaces imposed by the common
language runtime.
Pointers in the Common Type System
Describes managed pointers, unmanaged pointers, and unmanaged function pointers.
3.1 Common Type System Overview
This section describes concepts and defines terms that will help you understand and work with your
language's implementation of the common type system.
Classification of Types

The common type system supports two general categories of types, each of which is further divided into
subcategories:
Value types
Value types directly contain their data, and instances of value types are either allocated on the
stack or allocated inline in a structure. Value types can be built-in (implemented by the runtime),
user-defined, or enumerations. For a list of built-in value types, see the .NET Framework Class
Library.
Reference types
Reference types store a reference to the value's memory address, and are allocated on the heap.
Reference types can be self-describing types, pointer types, or interface types. The type of a
reference type can be determined from values of self-describing types. Self-describing types are
further split into arrays and class types. The class types are user-defined classes, boxed value
types, and delegates.
Variables that are value types each have their own copy of the data, and therefore operations on one
variable do not affect other variables. Variables that are reference types can refer to the same object;
therefore, operations on one variable can affect the same object referred to by another variable.

24

All types derive from the System.Object base type.
Type classification


Types and Assemblies

The runtime uses assemblies to locate and load types. The assembly manifest contains the information
that the runtime uses to resolve all type references made within the scope of the assembly.
A type name in the runtime has two logical parts: the assembly name and the name of the type within the
assembly. Two types with the same name but in different assemblies are defined as two distinct types.
Assemblies provide consistency between the scope of names seen by the developer and the scope of
names seen by the runtime system. Developers author types in the context of an assembly. The content of
the assembly a developer is building establishes the scope of names that will be available at run time.
4 Metadata and Self-Describing Components
In the past, a software component (.exe or .dll) written in one language could not easily use a software
component written in another language. COM provided a step forward in solving this problem. The .NET
Framework makes component interoperation even easier by allowing compilers to emit additional
declarative information into all modules and assemblies. This information, called metadata, helps
components to seamlessly interact.
4.1 Metadata Overview

25

Metadata is binary information describing your program that is stored either in a common language
runtime portable executable (PE) file or in memory. When you compile your code into a PE file, metadata
is inserted into one portion of the file, while your code is converted to Microsoft intermediate language
(MSIL) and inserted into another portion of the file. Every type and member defined and referenced in a
module or assembly is described within metadata. When code is executed, the runtime loads metadata
into memory and references it to discover information about your code's classes, members, inheritance,
and so on.
Metadata describes every type and member defined in your code in a language-neutral manner.
Metadata stores the following information:
Description of the assembly.
o Identity (name, version, culture, public key).
o The types that are exported.
o Other assemblies that this assembly depends on.
o Security permissions needed to run.
Description of types.
o Name, visibility, base class, and interfaces implemented.
o Members (methods, fields, properties, events, nested types).
Attributes.
o Additional descriptive elements that modify types and members.
4.3 Structure and Use of Metadata
Although most developers do not need to know the implementation details of metadata, some might
want a deeper understanding. This section provides an overview of how metadata is stored in a .NET
Framework portable executable (PE) file and an explanation of metadata's role in managed execution. You
do not need to read this section to understand .NET programming or how to use attributes.

Metadata and the PE File Structure
Metadata is stored in one section of a .NET Framework portable executable (PE) file, while Microsoft
intermediate language (MSIL) is stored in another section of the PE file. The metadata portion of the file
contains a series of table and heap data structures. The MSIL portion contains MSIL and metadata tokens
that reference the metadata portion of the PE file. You might encounter metadata tokens when you use
tools such as the MSIL Disassembler (Ildasm.exe) to view your code's MSIL or the Runtime Debugger
(Cordbg.exe) to perform a memory dump.


26

Metadata within a PE File

When a program is compiled for the common language runtime, it is converted to a PE file that consists
of three parts. The following table describes the contents of each part.
PE section Contents of PE section
PE header The index of the PE file's main sections and the address of the entry point.
The runtime uses this information to identify the file as a PE file and to determine where
execution starts when loading the program into memory.
MSIL
instructions
The Microsoft intermediate language instructions (MSIL) that make up your code. Many
MSIL instructions are accompanied by metadata tokens.
Metadata Metadata tables and heaps. The runtime uses this section to record information about
every type and member in your code. This section also includes custom attributes and
security information.

5. Cross-Language Interoperability
The common language runtime provides built-in support for language interoperability. However, this
support does not guarantee that code you write can be used by developers using another programming
language. To ensure that you can develop managed code that can be fully used by developers using any
programming language, a set of language features and rules for using them, called the Common
Language Specification (CLS), has been defined. Components that follow these rules and expose only CLS
features are considered CLS-compliant.
This section describes the common language runtime's built-in support for language interoperability and
explains the role that the CLS plays in enabling guaranteed cross-language interoperability. CLS features
and rules are identified, and CLS compliance is discussed.
5.1 Common Language Specification
To fully interact with other objects regardless of the language they were implemented in, objects must
expose to callers only those features that are common to all the languages they must interoperate with.
For this reason, the Common Language Specification (CLS), which is a set of basic language features
needed by many applications, has been defined. The CLS rules define a subset of the Common Type
System; that is, all the rules that apply to the common type system apply to the CLS, except where stricter
rules are defined in the CLS. The CLS helps enhance and ensure language interoperability by defining a set
of features that developers can rely on to be available in a wide variety of languages. The CLS also
establishes requirements for CLS compliance; these help you determine whether your managed code

27

conforms to the CLS and to what extent a given tool supports the development of managed code that
uses CLS features.
If your component uses only CLS features in the API that it exposes to other code (including derived
classes), the component is guaranteed to be accessible from any programming language that supports
the CLS. Components that adhere to the CLS rules and use only the features included in the CLS are said
to be CLS-compliant components.
Most of the members defined by types in the .NET Framework Class Library are CLS-compliant. However,
some types in the class library have one or more members that are not CLS-compliant. These members
enable support for language features that are not in the CLS. The types and members that are not CLS-
compliant are identified as such in the reference documentation, and in all cases a CLS-compliant
alternative is available. For more information about the types in the .NET Framework class library, see the
.NET Framework Class Library.
The CLS was designed to be large enough to include the language constructs that are commonly needed
by developers, yet small enough that most languages are able to support it. In addition, any language
construct that makes it impossible to rapidly verify the type safety of code was excluded from the CLS so
that all CLS-compliant languages can produce verifiable code if they choose to do so. For more
information about verification of type safety, see Compiling MSIL to Native Code.
6. Assemblies Overview
Assemblies are a fundamental part of programming with the .NET Framework. An assembly performs the
following functions:
It contains code that the common language runtime executes. Microsoft intermediate language
(MSIL) code in a portable executable (PE) file will not be executed if it does not have an associated
assembly manifest. Note that each assembly can have only one entry point (that is, DllMain,
WinMain, or Main).
It forms a security boundary. An assembly is the unit at which permissions are requested and
granted. For more information about security boundaries as they apply to assemblies, see
Assembly Security Considerations.
It forms a type boundary. Every type's identity includes the name of the assembly in which it
resides. A type called MyType loaded in the scope of one assembly is not the same as a type
called MyType loaded in the scope of another assembly.
It forms a reference scope boundary. The assembly's manifest contains assembly metadata that is
used for resolving types and satisfying resource requests. It specifies the types and resources that
are exposed outside the assembly. The manifest also enumerates other assemblies on which it
depends.
It forms a version boundary. The assembly is the smallest versionable unit in the common
language runtime; all types and resources in the same assembly are versioned as a unit. The
assembly's manifest describes the version dependencies you specify for any dependent
assemblies. For more information about versioning, see Assembly Versioning.
It forms a deployment unit. When an application starts, only the assemblies that the application
initially calls must be present. Other assemblies, such as localization resources or assemblies
containing utility classes, can be retrieved on demand. This allows applications to be kept simple

28

and thin when first downloaded. For more information about deploying assemblies, see
Deploying Applications.
It is the unit at which side-by-side execution is supported. For more information about running
multiple versions of an assembly, see Assemblies and Side-by-Side Execution.
Assemblies can be static or dynamic. Static assemblies can include .NET Framework types (interfaces and
classes), as well as resources for the assembly (bitmaps, JPEG files, resource files, and so on). Static
assemblies are stored on disk in portable executable (PE) files. You can also use the .NET Framework to
create dynamic assemblies, which are run directly from memory and are not saved to disk before
execution. You can save dynamic assemblies to disk after they have executed.
There are several ways to create assemblies. You can use development tools, such as Visual Studio 2005,
that you have used in the past to create .dll or .exe files. You can use tools provided in the Windows
Software Development Kit (SDK) to create assemblies with modules created in other development
environments. You can also use common language runtime APIs, such as Reflection.Emit, to create
dynamic assemblies.
6.1 Assembly Benefits
Assemblies are designed to simplify application deployment and to solve versioning problems that can
occur with component-based applications.
End users and developers are familiar with versioning and deployment issues that arise from today's
component-based systems. Some end users have experienced the frustration of installing a new
application on their computer, only to find that an existing application has suddenly stopped working.
Many developers have spent countless hours trying to keep all necessary registry entries consistent in
order to activate a COM class.
Many deployment problems have been solved by the use of assemblies in the .NET Framework. Because
they are self-describing components that have no dependencies on registry entries, assemblies enable
zero-impact application installation. They also simplify uninstalling and replicating applications.
Versioning Problems

Currently two versioning problems occur with Win32 applications:
Versioning rules cannot be expressed between pieces of an application and enforced by the
operating system. The current approach relies on backward compatibility, which is often difficult
to guarantee. Interface definitions must be static, once published, and a single piece of code must
maintain backward compatibility with previous versions. Furthermore, code is typically designed
so that only a single version of it can be present and executing on a computer at any given time.
There is no way to maintain consistency between sets of components that are built together and
the set that is present at run time.

29

These two versioning problems combine to create DLL conflicts, where installing one application can
inadvertently break an existing application because a certain software component or DLL was installed
that was not fully backward compatible with a previous version. Once this situation occurs, there is no
support in the system for diagnosing and fixing the problem.
An End to DLL Conflicts

Microsoft Windows 2000 began to fully address these problems. It provides two features that partially
fix DLL conflicts:
Windows 2000 enables you to create client applications where the dependent .dll files are located
in the same directory as the application's .exe file. Windows 2000 can be configured to check for a
component in the directory where the .exe file is located before checking the fully qualified path
or searching the normal path. This enables components to be independent of components
installed and used by other applications.
Windows 2000 locks files that are shipped with the operating system in the System32 directory so
they cannot be inadvertently replaced when applications are installed.
The common language runtime uses assemblies to continue this evolution toward a complete solution to
DLL conflicts.
The Assembly Solution

To solve versioning problems, as well as the remaining problems that lead to DLL conflicts, the runtime
uses assemblies to do the following:
Enable developers to specify version rules between different software components.
Provide the infrastructure to enforce versioning rules.
Provide the infrastructure to allow multiple versions of a component to be run simultaneously
(called side-by-side execution).
Assembly Contents
In general, a static assembly can consist of four elements:
The assembly manifest, which contains assembly metadata.
Type metadata.
Microsoft intermediate language (MSIL) code that implements the types.
A set of resources.
Only the assembly manifest is required, but either types or resources are needed to give the assembly any
meaningful functionality.

30

There are several ways to group these elements in an assembly. You can group all elements in a single
physical file, which is shown in the following illustration.
Single-file assembly


Alternatively, the elements of an assembly can be contained in several files. These files can be modules of
compiled code (.netmodule), resources (such as .bmp or .jpg files), or other files required by the
application. Create a multifile assembly when you want to combine modules written in different languages
and to optimize downloading an application by putting seldom used types in a module that is
downloaded only when needed.
In the following illustration, the developer of a hypothetical application has chosen to separate some
utility code into a different module and to keep a large resource file (in this case a .bmp image) in its
original file. The .NET Framework downloads a file only when it is referenced; keeping infrequently
referenced code in a separate file from the application optimizes code download.
Multifile assembly


Note:
The files that make up a multifile assembly are not physically linked by the file system. Rather, they are
linked through the assembly manifest and the common language runtime manages them as a unit.
In this illustration, all three files belong to an assembly, as described in the assembly manifest contained
in MyAssembly.dll. To the file system, they are three separate files. Note that the file Util.netmodule was
compiled as a module because it contains no assembly information. When the assembly was created, the
assembly manifest was added to MyAssembly.dll, indicating its relationship with Util.netmodule and
Graphic.bmp.

31

As you currently design your source code, you make explicit decisions about how to partition the
functionality of your application into one or more files. When designing .NET Framework code, you will
make similar decisions about how to partition the functionality into one or more assemblies.


32

USACWD601
SEMESTER VI
Course USACWD501: Principles of Web Design & Web Technologies II

Text highlighted in RED color are Newly added topics)


Unit I

Introduction to Ajax Working of Ajax from a users perspective and a
developers perspective, Applications of Ajax : Searching in real time with live
searches, Getting the answer with auto complete Chatting with friends ,Dragging
and dropping with Ajax, Getting instant login feedback, Ajax-enabled pop-up
menus, Modifying Web pages on the fly, Google Maps and Ajax.

Ajax and PHP : Starting with PHP ,Getting a Handle on Variables ,Handling
Your Data with Operators, Making Choices with the if Statement ,Round and
Round with Loops, Handling HTML Controls, Getting data from text fields.
Checking out data from check boxes, Tuning in data from radio buttons ,Sending
Data to the Server, Reading Files, Writing Files, Working with Databases

XML and Ajax: Creating and opening the XMLHttpRequest object., Handling
asynchronous downloads, relative versus absolute URLs, Interactive Mouseovers
Using Ajax ,Server-Side Scripting ,Choosing a server-side scripting language
,Connecting to a script on a server, Setting up a Web page to read XML,
Handling the XML you read from the server, Extracting data from XML, Passing
Data to the Server with GET, Passing Data to the Server with POST.

Ajax in Depth : Returning JavaScript from the Server, Calling a Different
Domain , Reversing the Roles: Performing Validation on the Server, Getting
Data with HEAD Requests., Returning all the header data you can get ,Finding
the last-modified date, Debugging Ajax, Using GET to get text ,Using GET to
get XML ,Using POST to post data and get text ,Using POST to post data
and get XML.
Unit References:
Code : Ajax for Dummies (Ch.1, 3, 4, 5*, 10)

Unit II

Handling XML in Ajax Applications
Requesting XML Data in Ajax., Extracting XML Data Using Properties ,Right
on the node ,Introducing the JavaScript properties, Navigating an XML
document using JavaScript properties, Extracting with node Value, Accessing
XML Elements by Name, Accessing Attribute Values in XML Elements,
Validating XML Documents in Ajax Applications


33

Working with Cascading Style Sheets in Ajax Applications
An Ajax-Driven Menu System, Setting up the styles, Handling mouse events,
Displaying a menu ,Hiding a menu ,Handling the menu items ,Displaying Text
That Gets Noticed ,Styling text, Handling colors and backgrounds, Positioning
using styles

Ajax Design Issues
Breaking the Back Button and Bookmarks, Giving Visual, Cues, Leaving the
User in Control, remembering All the Different Browsers, Showing Users When
Text Changes, Avoiding a Sluggish Browser ,Handling Sensitive Data, Creating
a Backup Plan., Showing Up in Search Engines, Sidestepping a Browsers Cache

Unit References
Code: Dummies( Ch. 8,9,11)

Unit III

ASP.NET Applications - Evolution of Web Development
[Ref1:Pg1- 9 10]
Creating ASP.NET Applications, Designing Web pages, Anatomy of web form
[Ref1:Pg 81-99]
Writing Code-behind and event handlers,
[Ref1:Pg105-118] <May not be for theory exam>
ASP.NET Files, Application Directories, Server Controls, HTML Control classes
[Ref1:121-132,135-137,145-146]
<HTML server controls are only to give idea, focus more on web controls >
Page Class, Global.asax files and application events, ASP.NET Configuration
files
[Ref1:Pg148-159]
Web Controls Advantages of web controls, Web control classes,
AutoPostBack & Web control events
[Ref 1 : Pg 163-199]
State Management Maintaining state using ViewState
[Ref1:Pg201-203206],
Query String, Cross Page Posting, URL Encoding, Cookies, Sessions State
[Ref1:Pg209-230],
Application State
[Ref1:Pg235-236]
Validation & rich controls Validations & Validator controls, Undertaking
regular expressions
[Ref1:Pg321-335340],
Calendar control, AdRotator, Advertisement file, AdRotator class
[Ref1: Pg343-345, 351-353 ]
Unit-IV

ADO.NET & Data Binding ADO.NET Fundamentals
[Ref1:486-493, 497-522],
Single-value, Repeated-Value Data Binding, Data binding with ADO.NET, Data

34

source controls
[Ref1:-525-558],
GridView, Defining columns, Selecting, Sorting & Paging GridView
[Ref1:Pg565-571, 578-579,584-589]
Using XML XML Role in .NET, XML Classes
[Ref1:Pg635-636,642-658]
Protection & Performance : Determining security requirements, ASP.NET
Security model
[Ref1:Pg 679-683686],
Caching, Types of caching, Example of output caching, data caching,
[Ref1:Pg 809-813,819-822]
AJAX in ASP.NET Using ScriptManager, Partial refreshes, UpdatePanel,
Triggers, Timed Refreshes
[Ref1-843-849, 852-857, 861-863]
Web Service What is web service, ASP.NET Web services, Creating a simple
web service, Consuming Web service
[Ref2-Pg 981-982,984-993]
(Ref - Mastering VB 2008 Chapter 27)

Main References
1) Beginning ASP.NET 3.5 in VB 2008, From Novoice to professional, Second
edition, Mathew Mcdonald
2) Mastering Visual Basic 2008, Evangelos Petroutsos, Wiley-India Edition
Some books for Web projects
Building Web Applications with UML Jim Connalen
ASP.NET 3.5 Application Architecture & Design Vivek Thakur



35

Practicals
USACWD6P1
Category A:
Unit 1 and Unit 2
Practical 1 to 4
Category B:
Unit 3 and Unit 4
Practical 5 to 8

Category A: Practical 1.
Retrieving data from server & Sending data to server using AJAX
1)
Retrieving data from server using AJAX
a. Study of XMLHttp object to capture data entered by user in a text field and display
it in the webpage in a span element.
b. Create a webpage to fetch and display the contents of a text file on click of a button
using XMLHttpRequestObject.
c. Create a web page using ajax to fetch text file contents on mouseover.
2)
Sending the Data to the Server & Working with XML and AJAX
a. Create a web page to fetch the matching name from the namearray stored in a php
file using ajax when you enter the starting alphabet in a textfield.
b. Create a html file to fetch the contents of cataglog.xml (CD details) using ajax and
display them in a table.
Category A: Practical 2.
Retrieving data from HTML form using PHP
1)
Create a PHP script that would retrieve and the display the data entered by a user in the
Registration Form
Category A: Practical 3.
Retrieving Employee Details/ Registration Details from the database using Ajax and PHP
1)
Create a web form with a drop down list containing the department ids. As soon as the user
selects a particular department id the employees of the department should be fetched from the
database and listed in a tabular format.
Category A: Practical 4.
Adding ,Modifying and Deleting data from Client side to into table in MySql
1)
Design a login system such that:
i. User registers himself.
ii. User can log in and is redirected to a specific page
iii. User can change the password
iv. User can unregister himself.



36

Category B: Practical 5.
Fundamentals of ASP.NET such as using HTML/Web Controls, Autopostback, Application
events, configuration files
1) Create a web site of your name that shows your information. (http://localhost/UserName)
2) A software company wants to conduct placements for graduates in Mumbai or Pune. Design a
web form to input student details such as name using textbox, course name such as BSc Comp
Sci/IT/Phy/Maths using radio button, Marks in SSC,HSC, FY & SY along with Year of Passing
using text boxes & Location such as Mumbai/Pune using combo box. The student is shortlisted
only if he/she has min 60% in SSC & HSC, FY & SY average should be min 55% & there
should not be any gap in education. When student clicks on Register button, the data is
submitted to ASP.NET page which informs the student whether he/she qualifies and place of
interview in Mumbai or Pune as given by the student.
3) A bank wants to keep an enquiry page for inquiring about home loan. The rates of these loans
are stored in configuration file and the rates are different for various span of years(5/10/15).
The user types the loan amount & selects the number of years for repayment of loan(5/10/15)
from combo box. In return, the user gets information of the rate of loan, monthly installment
for the specified number of years and total number of enquiries since the server started[Use
configuration files and application events].
4) Design ticket enquiry form for a theater. Select location (Mumbai/Pune) using radio button.
When user clicks a location, it fills a combo box with names of theaters in that city. When
user selects the name of the theatre, the list of films currently shown and their show timings
should be displayed in table[Use autopostback].
Category B: Practical 6.
State management, Validation & Rich controls
1) A news channel wants to conduct a survey of some famous personalities of the year. The user
initially inputs his/her name, age and email. The survey will be valid only if user is above 18
years of age and has an email id. First page allows user to select Best Sportsperson, 2
nd
page
asks Best Writer and the third Best Minister. At the end, it shows a thank you message with
users name and shows all the choices made by him/her.
2) For above program , add validations name should not be null, age should be within (21 to
100) & Email should be in specific format.
3) For above program, show advertisements of any 3 popular products/companies
Category B: Practical 7.
ADO.NET in ASP.NET with Data Binding, Interacting with XML documents
1) Assuming that there are 2 tables Cust(AccNo, AccName, Passwd, CurrBal) &
Transactions(TransId, AccNo, Date, Amt, TransType, Client) where TransType can be Debit or
Credit. User should input AccNo and password. For successful login, it should show welcome
message with the users name, current balance and transactions of the current month in table. [
Use Reader]
2) Develop a web page for a real estate firm. The user after visiting the site, selects the name of
city from combo-box. In return, the user gets information about all the flats from that city such
as No. of Rooms, Expected Price in a grid. At a time, information of only 5 flats should be
visible. [Use data binding and sql data source].



37

3) A Cable TV provider stores the list of channels in an XML File. For each Channel, there is an
attribute Name. The Channel element consists of sub-elements such as Language(such as
Hindi, English, Marathi etc), Category(Sports, Movies, Cartoon etc). Design an ASP.NET
page that displays, the list of languages and categories in 2 combo boxes. When user clicks on a
button, all the channels matching the selected criteria should be displayed.
Category B: Practical 8.
Performance improvement using Caching, Creating & Consuming web services
1) Design a page that contains some list of theaters of Famous Cinemas in list box. It should also
contain a link button that navigates to a page that displays time table of movies of selected
theatre. Store the output of the first page in cache. When user selects theatre, the time table
should be read from cache if it exists(Use Output & Data Cache).
2) A channel displays online news. Latest news should be shown as scrolling marquee. It also
shows score of current days cricket match which gets updated after every 60 seconds[Use
AJAX].
3) Create a web service that gives (i) NSE Index, (ii) BSE Index, (iii) Gold Rate. Also create a
web form for a share trading firm that displays these values on its home page.

You might also like