Tuesday, December 22, 2009

Overview of ADO.NET

ADO.NET provides consistent access to data sources such as Microsoft SQL Server, as well as data sources exposed through OLE DB and XML. Data-sharing consumer applications can use ADO.NET to connect to these data sources and retrieve, manipulate, and update data.

ADO.NET cleanly factors data access from data manipulation into discrete components that can be used separately or in tandem. ADO.NET includes .NET Framework data providers for connecting to a database, executing commands, and retrieving results. Those results are either processed directly, or placed in an ADO.NET DataSet object in order to be exposed to the user in an ad-hoc manner, combined with data from multiple sources, or remoted between tiers. The ADO.NET DataSet object can also be used independently of a .NET Framework data provider to manage data local to the application or sourced from XML.

The ADO.NET classes are found in System.Data.dll, and are integrated with the XML classes found in System.Xml.dll. When compiling code that uses the System.Data namespace, reference both System.Data.dll and System.Xml.dll. For an example of compiling an ADO.NET application using a command line compiler, see ADO.NET Sample Application.

ADO.NET provides functionality to developers writing managed code similar to the functionality provided to native COM developers by ADO. For a discussion of the differences between ADO and ADO.NET, see "ADO.NET for the ADO Programmer" at http://msdn.microsoft.com/library/en-us/dndotnet/html/ADONETProg.asp

Wednesday, December 16, 2009

Protocols in Networking.

In computing, a protocol is a set of rules which is used by computers to communicate with each other across a network. A protocol is a convention or standard that controls or enables the connection, communication, and data transfer between computing endpoints. In its simplest form, a protocol can be defined as the rules governing the syntax, semantics, and synchronization of communication. Protocols may be implemented by hardware, software, or a combination of the two. At the lowest level, a protocol defines the behavior of a hardware connection.


Typical properties

While protocols can vary greatly in purpose and sophistication, most specify one or more of the following properties:
  • Detection of the underlying physical connection (wired or wireless), or the existence of the other endpoint or node
  • Handshaking
  • Negotiation of various connection characteristics
  • How to start and end a message
  • Procedures on formatting a message
  • What to do with corrupted or improperly formatted messages (error correction)
  • How to detect unexpected loss of the connection, and what to do next
  • Termination of the session and/or connection.


Common protocols

  • IP (Internet Protocol)
  • UDP (User Datagram Protocol)
  • TCP (Transmission Control Protocol)
  • DHCP (Dynamic Host Configuration Protocol)
  • HTTP (Hypertext Transfer Protocol)
  • FTP (File Transfer Protocol)
  • Telnet (Telnet Remote Protocol)
  • SSH (Secure Shell Remote Protocol)
  • POP3 (Post Office Protocol 3)
  • SMTP (Simple Mail Transfer Protocol)
  • IMAP (Internet Message Access Protocol)
  • SOAP (Simple Object Access Protocol)
  • PPP (Point-to-Point Protocol)
  • RFB (Remote Framebuffer Protocol)

[edit]Protocol testing

In general, protocol testers work by capturing the information exchanged between a Device Under Test (DUT) and a reference device known to operate properly. In the example of a manufacturer producing a new keyboard for a personal computer, the Device Under Test would be the keyboard and the reference device, the PC. The information exchanged between the two devices is governed by rules set out in a technical specification called a "communication protocol". Both the nature of the communication and the actual data exchanged are defined by the specification. Since communication protocols are state-dependent (what should happen next depends on what previously happened), specifications are complex and the documents describing them can be hundreds of pages.
The captured information is decoded from raw digital form into a human-readable format that permits users of the protocol tester to easily review the exchanged information. Protocol testers vary in their abilities to display data in multiple views, automatically detect errors, determine the root causes of errors, generate timing diagrams, etc.
Some protocol testers can also generate traffic and thus act as the reference device. Such testers generate protocol-correct traffic for functional testing, and may also have the ability to deliberately introduce errors to test for the DUT's ability to deal with error conditions.
Protocol testing is an essential step towards commercialization of standards-based products. It helps to ensure that products from different manufacturers will operate together properly ("interoperate") and so satisfy customer expectations.