using System.Data.OracleClient directive means that this namespace should be considered when trying to determine what incomplete names mean.
Adding a link means that you are adding a link to this assembly, in this case System.Data.OracleClient.dll. From VisualStudio, SharpDevelop, or MonoDevelop, you will see a folder with links in the project explorer view. Right-click and Add Link (VisualStudio and SharpDevelop) or Edit Links (MonoDevelop) and add to System.Data.OracleClient.dll
When using nant, you will need to edit your nant script.
Assemblies and namespaces overlap, but not exactly the same. A link means you can use, for example. System.Data.OracleClient.OracleDataReader , because the project now knows which assembly contains the code for this. The using directive means that you only need to enter OracleDataReader . There is usually a complex match between assemblies and namespaces, as this makes life easier for everyone, but there are times when an assembly has classes from more than one namespace and when the namespace is divided into more than one assembly. A classic example is that mscorlib has many classes from System , System.Collections , System.IO , etc. that you really cannot hope to create a .NET project without (including some of them that .NET uses) , while System.dll has a bunch of more of the same namespaces that you could get without using (but you will still be 99% of the time).
If you are not writing an absolutely massive library, but with thousands of classes covering overlapping use cases, your own assemblies should work with one namespace or, at most, with one other namespace inside this, for example, JaredksGreatCode with JaredksGreatCode.UserInterface inside it - one Dll.
source share