Transcript ppt

A Walkthrough .NET
ADO.NET
• Microsoft ActiveX Data Objects
• One of the ways that .NET provides to access Database
servers
• You can also use Entity SQL language or LINQ provided
by Microsoft to query entities from databases
ADO.NET contd…
Database providers that can be used with ADO.NET
–
–
–
–
Data Provider for SQL Server (System.Data.SqlClient)
Data Provider for OLEDB (System.Data.OleDb).
Data Provider for ODBC (System.Data.Odbc).
Data Provider for Oracle (System.Data.OracleClient)
Key features to remember
Important Objects: DataSet: Container to Store the result set
Connection: Standard connection string to create a connection commandsto be executed remotely on database
Data Reader: Reads stored Data Set
ADO.NET data provider objects
•
•
•
•
the Connection object (SqlConnection, OleDbConnection,
OdbcConnection, OracleConnection)
the Command object (SqlCommand, OleDbCommand, OdbcCommand,
OracleCommand)
the DataReader object (SqlDataReader, OleDbDataReader,
OdbcDataReader, OracleDataReader)
and the DataAdapter object (SqlDataAdapter, OleDbDataAdapter,
OdbcDataAdapter, OracleDataAdapter)
Connection Strings( MS Access example)
Open connection to Access database:
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\App1\Your_Database_Name.mdb; User
Id=admin; Password="
Open connection to Access database using Workgroup (System database):
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\App1\Your_Database_Name.mdb; Jet
OLEDB:System Database=c:\App1\Your_System_Database_Name.mdw"
Open connection to password protected Access database:
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\App1\Your_Database_Name.mdb; Jet
OLEDB:Database Password=Your_Password"
Open connection to Access database located on a network share:
"Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=\\Server_Name\Share_Name\Share_Path\Your_Database_Name.mdb"
Open connection to Access database located on a remote server:
"Provider=MS Remote; Remote Server=http://Your-Remote-Server-IP; Remote
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\App1\Your_Database_Name.mdb"
Data Adapter
The DataAdapter includes three main methods:
– Fill (populates a DataSet with data).
– FillSchema (queries the database for schema information that is
necessary to update).
– Update (to change the database, DataAdapter calls the
DeleteCommand, the InsertCommand and the UpdateCommand
properties).
Entity Schema XML
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
<EntityType Name="Employee" Key="EmployeeID">
<Property Name="EmployeeID" Type="Int32" Nullable="false" />
<Property Name="LoginID" Type="String" Nullable="false"
MaxLength="256" />
<Property Name="Title" Type="String" Nullable="false"
MaxLength="50" />
<Property Name="BirthDate" Type="DateTime" Nullable="false" />
<Property Name="HireDate" Type="DateTime"
Nullable="false"/>
<Property Name="SalariedFlag" Type="Boolean"
Nullable="false" />
<Property Name="VacationHours" Type="Int16"
Nullable="false" />
<Property Name="SickLeaveHours" Type="Int16"
Nullable="false" />
<Property Name="CurrentFlag" Type="Boolean"
Nullable="false" />
<!--Other properties-->
<NavigationProperty Name="Contact"
Relationship="AdventureWorksModel.FK_Employee_Contact_ContactID"
FromRole="Employee" ToRole="Contact" />
<NavigationProperty Name="Managed_Employees"
Relationship="AdventureWorksModel.FK_Employee_Employee_ManagerID"
FromRole="Employee" ToRole="ManagedEmployee" />
</EntityType>
.NET Remoting
• The latest replacement for .NET remoting in the new framework is
Windows Communication Foundation
•
Channels are objects that transport messages between applications across remoting boundaries, whether
between application domains, processes, or computers. A channel can listen on an endpoint for inbound
messages, send outbound messages to another endpoint, or both. This enables you to plug in a wide range of
protocols, even if the common language runtime is not at the other end of the channel.
• Channels available are Tcp and Http Channel Objects
• Remotable Type Objects: Create a Remotable type which is derived
from MarshalByRefObject
.NET Remoting (Client)
• Host Tasks
– Design the service
• Build a hosting application
• Activate Remote objects via server or client
• Choose a channel of communication
– Remoting hosts can be windows applications, console applications, windows
form applications, and Internet Information Services or ASP.NET
– Register the channel in the host/ or If you use configuration file, you must load
the file into the system by calling RemotingConfiguration.Configure
• Client Tasks
– Either programatically configure or use a configure file similar to Host
– Configure the channel
– Design the service
Sample Schema files for
Host/Client Applications
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="Singleton" type="RemotableType, RemotableType"
objectUri="RemotableType.rem" />
</service>
<channels>
<channel ref="http" port="8989"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>
Configure using:
RemotingConfiguration.Configure("Listener.exe.config", false);
Activation of an obj
•
In a remoting application it is important to know when and how a remote
object is created and initialized and how it is activated.
•
Server activation:
– Server activated objects are created by the server only when needed.
– Singleton objects are objects that will have only one instance and a default
lifetime.
– Single call are given memory at each client method invocation call, hence no
lifetime lease.
– For server side activation use: Activator.GetObject
•
Client activation
– Similar to local objects, lifetimes controlled by calling application domain
– The server instantiates a remote obj and returns a reference back to the client.
The client uses that objRef to create proxy to the remote Obj
– For client side activation: Activator.CreateInstance
Lifetime Leases
•
PropertyDescriptionInitialLeaseTimeSpecifies the initial span of time that an object remains in
memory before the lease manager begins the process of deleting the object. In the configuration
file, this is the leaseTime attribute of the <lifetime> Element configuration element. The default is
5 minutes. A lease time of 0 sets the lease to an infinite lifetime.
•
CurrentLeaseTimeSpecifies the span of time left before the lease expires. When a lease is
renewed, its CurrentLeaseTime is set to the maximum of theCurrentLeaseTime or the
•
RenewOnCallTime.RenewOnCallTimeSpecifies the maximum time span that
the CurrentLeaseTime is set to after each remote call to the object. The default is 2 minutes.
•
SponsorshipTimeoutSpecifies the time that the lease manager waits for the sponsor to respond
when notified that a lease has expired. If the sponsor does not respond in the specified time, the
sponsor is removed and another sponsor is called. If there are no more sponsors, the lease
expires and the remote object is marked for garbage collection. If the value is 0 (TimeSpan.Zero),
the lease does not register sponsors. The default is 2 minutes.
•
LeaseManagerPollTimeSpecifies the amount of time that the lease manager sleeps after
checking for expired leases. The default is 10 seconds.