No creo que haya problema con c# en tanto logres controlar el puerto paralelo...
Como te decia, .net trae la referencia:
Imports System.IO.Ports ' para manejo de puertos SERIAL
(no necesitas agregrar un control).
Para uno de mis sistemas que requierne comuniacion x puerto ethernet use el Winsock (bajo la carpeta "components"
Estas DLLS funcionan dentro del .net asi que se integran bien con VB o C#
Yo prefiero siempre codificar con VB que con C#, pero ya es cuestion de gustos creo yo.. cosas que de plano no hay mas que con C# lo hago asi.
No podria recomendarte especificamente un tutorial de .net... prueba a buscar en
www.lawebdelprogramador.com seccion "cursos" alli he leido mas de una vez en busca de tutoriales.
Si conoces Java, .net debiera no ser tan complicado en entender.. quiza unicamente x la sintaxis y el manejo de funciones, pero nada que google no pueda aclararte.