O using em questão é a instrução using e não o namespaces que vai no topo do código como o using System;.
Para que serve o using?
Basicamente o using serve para fazer o dispose automático de um objeto.
Por que não usar apenas o método Dispose() no final em vez de usar o using?
Questão de preferência, como pode-se observar em meus artigos, uso muito o using.
Uma das vantagens ao meu ver é que o código fica bem estruturado, mais bonito e não preciso usar try/finaly. Pois o compilador traduz o using para a instrução try/finaly.
Outra vantagem de usar o using é que tudo acontece automaticamente, ou seja, o objeto é liberado automaticamente, sem o risco de esquecer de colocar o Dispose().
Veja abaixo dois exemplos, ambos tem o mesmo papel.
using
using (SqlConnection conn = new SqlConnection("connectionstring"))
{
...
}
try/finally
SqlConnection conn = null;
try
{
conn = new SqlConnection("connectionstring");
...
}
finally
{
conn.Dispose();
}
Agora fica a seu critério qual vai adotar.