You are on page 1of 30

.

Net
Table of contents
• Introduction to VS 2005
• Application and Page Frameworks
• GUI Controls
• Validation Server Controls
• Working with Master Pages
• Themes & Skins
• Collections & Lists
• Data Binding
• Data Management with ADO.Net
• Working with XML
• Site Navigation
• Security
• State Management
• Caching
• Debugging & Error Handling
• File I/O & Streams
• Configurations

Softsmith Infotech
Working with Master Pages

• All web application will have a master page or a


home page
• If we hit a website the default page that comes is
the home page
• It will have the name index.html or default.aspx
or home.html or some thing like that.
• From this master page, we navigate to the rest
of the pages through buttons or links
• To set a page as the master page all we need to
do is, just right click on the aspx page in the
solution explorer and select “Set as Start Page”
from the pop up menu.
Softsmith Infotech
Themes and Skins
• Themes and Skins provide a good look
and feel to our site or web application.
• We can set the theme using CSS
(Cascading Style Sheet)
• In the <HEAD> portion of our aspx page if
we give <link href=“css path” type=“text/css” rel=“stylesheet”>
then the particular style specified in the
CSS will be used for the page
Softsmith Infotech
Themes and Skins
• We can also allow the user to change the
skin (color of controls on the application)
and dynamically deliver the theme and
skin on his browser.
• This is achieved using session variables.
• Once the user selects a skin,the value is
stored in a session variable and it will be
used for the session.
Softsmith Infotech
Themes and Skins
• If the user want the same skin to be
applied whenever he logs in, there are two
ways to achieve that.
– Cookies – The information will be stored on
the client’s system and will be taken when he
logs in from the system again. But this will
work only in a particular system
– To make this global, the information need to
be stored on the server, in a table against the
user name.

Softsmith Infotech
Namespaces
• Compilation units that let you organize and
reuse code
• No relationship between namespaces and file
structure (unlike Java)
• Namespaces provide a way to uniquely identify
a type
• Provides logical organization of types
• Namespaces can span over assemblies
• Namespaces can be nested
• The fully qualified name of a type includes all
namespaces
Softsmith Infotech
Namespaces
• The fully qualified name of a type includes all namespaces
• Namespaces are mainly used to distinguish between the objects
having same names
• With-in a namespace, the names of all the objects should be unique

namespace N1 { // is referred to as N1
class C1 { // is referred to as N1.C1
class C2 { // is referred to as N1.C1.C2
} //End of N1.C1.C2
} //End of N1.C1
namespace N2 { // is referred to as N1.N2
class C2 { // is referred to as N1.N2.C2
} // End of N1.N2.C2
} //End of N1.N2
} //End of N1

Softsmith Infotech
Collections
• A collection is a specialized class that organizes and exposes a
group of objects

• Various collection classes are ArrayList, SortedList, BitArray,


HashTable, Queue and Stack

• They are all included in System.Collections namespace

• Like arrays, members of collections can be accessed by an index

• Unlike arrays, collections can be resized dynamically

Softsmith Infotech
ArrayList
• Arraylist allows to dynamically add and remove
items from a simple list
• Array List is a zero based collection
• The items in the list are retrieved by accessing
the item index
• Methods
– Add()
– Remove()
– RemoveAt()
– Count()

• Property
– Capacity

Softsmith Infotech
SortedList
• Stores elements in the collection as a key-value pair that are sorted by
the keys
• The elements in the SortedList can be accessed by key as well as by
index
• A key cannot be a null reference whereas a value can be a null
reference
• Any time when an element is added or removed from the collection,
the indexes are adjusted to keep the list in the sorted order. Hence
such operations are slower in this collection
• Methods
– Add()
– Remove()
– RemoveAt()
– Count()
• Property
– Count, Capacity, Item, Keys, Values
Softsmith Infotech
Data Binding
• Bounding values to the controls
• <<Control>>.DataBind() method binds
values for the control
• Page.DataBind() binds all the controls on
the page
• Types
– Single value data binding
– Multi value data binding
Softsmith Infotech
Single Value Data Binding
• Applicable for server controls that displays
one data at a time

• Controls like
– Textbox
– Label

Softsmith Infotech
Multi Value Data Binding
• Involves binding server controls to
ArrayList or SortedList or any collection
object
• Example
– Populating a drop down list with a collection
object or a data set
– Populating a Data grid with a data set

Softsmith Infotech
Data Management with
ADO.Net
• ADO – ActiveX Data Objects
• Namespace
– System.Data
• Types
– Odbc – For working with MySQL etc
– OleDb – For working with OLEDB (Excel etc)
– Sql – For working with MS SQL data bases
– Oracle – For working with Oracle databases

Softsmith Infotech
Data Management
• Classes used (for Sql)
– Connection - SqlConnection
– Command - SqlCommand
– DataReader - SqlDataReader
– DataAdapter – SqlDataAdapter

For other database types, we need to put


the appropriate prefix.(like
OdbcConnection and so on)
Softsmith Infotech
Connection
• OdbcConnection con = new
OdbcConnection(Connection string)

• Connection string has details about which


database is to be used and what is the
user name and password are.
• Example –
“Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=test;
password=sa;user id=root;”

Softsmith Infotech
Connection Methods
• Open – Opens a connection
• Close – Closes a connection

• It is recommended to open a connection


only if it is needed and close it when it is
no longer needed. This would avoid
wastage of system resources

Softsmith Infotech
Command
• OdbcCommand cmd = new
OdbcCommand(Query, con);
• Query – SQL query like “select * from
table1”
• con is the connection object created
• Command object property
– CommandType – This can be text or stored
procedure or table

Softsmith Infotech
DataReader
• OdbcDataReader dr = new OdbcDataReader();
• Usage - dr.Method
• DataReader Methods:
– ExecuteReader – For reading one or more rows (for
select * from…)
– ExecuteScalar – For reading a scalar value like select
count(*) from …
– ExecuteNonQuery – for inserting or updating or
deleting or executing a stored procedure or function

Softsmith Infotech
DataAdapter
• This is for filling data from more than one
tables
• The data get filled into a DataSet
• OdbcDataAdapter da = new
OdbcDataAdapter(cmd)
• cmd – command object created using the
connection and SQL statement
• This will fetch the result of the command
and stores it in the adapter
Softsmith Infotech
DataAdapter
• To put the data in a dataset, use the Fill
method
• da.Fill(ds) – DataSet ds = new DataSet()
• We can also have DataTable or DataRow
or DataView instead of DataSet
• Data adapter automatically opens and
closes a connection. No need of having
explicit open and close of a connection.
Softsmith Infotech
Working with XML
• XML – eXtensible Markup Language
• Uses
– XML can be used to Store Data
– XML is used to create configuration files
for different applications
– XML is used to Exchange Data in cross-
platform applications
– Used in Web applications
Softsmith Infotech
Opening an XML
• System.Xml namespace is required
• Opening from an URL
XmlDocument myDoc = new XmlDocument();
myDoc.Load ("http://localhost/sample.xml");

• Opening from a location in the local


system
XmlDocument myDoc = new XmlDocument();
FileStream myFile = new
FileStream("myDoc.xml",FileMode.Open);
myDoc.Load(myFile);
myFile.Close();
Softsmith Infotech
Reading the XML document
• XmlElement – Class for accessing
individual elements in a xml file
– Attributes, FirstChild, LastChild, InnerText,
InnerXml, Name
• XmlAttribute – Class for accessing
attributes of the individual xml elements
– Name
– Value

Softsmith Infotech
Example
• To get the name and values of attributes in a xml file

/* Get the Attribute Collection */


XmlAttributeCollection attrs = myElement.Attributes;

/* Get the number of Attributes */


int aCount = attrs.Count;

for (i=0; i< aCount; i++)


{
Console.WriteLine (attrs[i].Name);
Console.WriteLine (attrs[i].Value);
}

Softsmith Infotech
Writing XML
• Create XML Document object
XmlDocument myDoc = new XmlDocument();

• Load the root element


myDoc.LoadXml ("<webinar></webinar>");

• Create an element and add it to the parent


element
XmlElement myChildEle =
myDoc.CreateElement(“Topic");
myChildEle.InnerText = “Dot Net";
ParentElement.AppendChild (myChildEle);

Softsmith Infotech
Writing XML
• Create an attribute
XmlAttribute myAttribute =
myDoc.CreateAttribute(“Trainer");
myAttribute.Value = “Softsmith";

• Add it to Parent element


ParentElement.SetAttributeNode (myAttribute);

XML file will be


<webinar>
<Topic Trainer=“Softsmith”>Dot Net</Topic>
</webinar>

Softsmith Infotech
XmlReader and XmlWriter
• XmlReader – To read an XML file
• XmlWriter – To write Xml to a file (creating
xml)
• XmlReader
string filename=@"books.xml";
XmlTextReader bookXmlReader = new XmlTextReader (filename);

• XmlWriter
string fileName = @"booksnew.xml";
XmlTextWriter bookXmlWriter = new XmlTextWriter(fileName,null);

Softsmith Infotech
XmlReader Example
public void ReadDocument (XmlReader xmlR)
{
try {
// read (pull) the next node in document order
while (xmlR.Read()) {
// print the current node's name & type
Console.WriteLine(xmlR.NodeType + " " + xmlR.Name);
}
}
catch(XmlException e) {
Console.WriteLine ("Error: " + e.Message);
}
}

Softsmith Infotech
XmlWriter Example
public void WriteDocument(XmlWriter writer)
{
writer.WriteStartDocument();
writer.WriteStartElement ("Person");
writer.WriteAttributeString ("Gender", "Male");
writer.WriteAttributeString ("Name", "Abc");
writer.WriteElementString ("Phone", "111-222-3333");
writer.WriteElementString ("Phone", "111-222-4444");
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
}
Output:
<?xml version=“1.0”?>
<Person>
<Phone>111-222-3333</Phone>
<Phone>111-222-4444</Phone>
</Person>

Softsmith Infotech