What is the difference between installing the full Oracle Client and an Oracle Odac install? Which will I need to do .NET development on my dev workstation and which will I need on the web application server that will connect with the Oracle database on another server?
It's pretty confusing, and writing this down again helped me.
My summary:
So for most .net people, 'Oracle Client' means OUI-installed ODAC Instant Client + .Net drivers, possibly also ODT.
For the nugets, it's worth pointing out that even now (Jan 2017) the Oracle.ManagedDataAccess driver still can't do a bunch of stuff[#2], so Oracle.DataAccess + InstantClient is not a totally obsolete option. If you are just reading and writing with SELECT/INSERT, or vanilla ADO.Net you will be fine. I'm told the EF support is much better than it used to be also. DevArt's dotConnect drivers are another (very good) option here.
There's also a nuget package for the Oracle instant client, but I have no idea what that is for. Presumably Win32/.Net native-OCI apps that want a zero-install Instant Client via nuget. Both of them.
[#1] SQL*Plus would presumably be little used at runtime, though there is a separate installer listed on the Instant Client download page if you want to to add it to an existing ODAC install.
[#2] eg: call oracle stored procedures with table-valued UDTs