Mas as mudanças de sintaxe são minimas.
Os namespace são os mesmos nas duas linguagens.
Em C# fazes Console.Write e em VB.NET tb.
Tens mudanças especificas da linguagem em si, por exemplo a forma como fazes um "for" em C# é diferente da forma como fazes em vb.net. Mas essa diferença é própria da linguagem e não tem nada a haver com o framework.
Quando dizes que o teu background é variado, o meu também o é. Não é à toa que trabalho com programação à quase 10 anos e já me passaram pela mão projectos em VB 3 e 6, Delphi, C++ e até asm. Agora estou com C# tanto para Winforms e WebForms.
rosas Escreveu:se vieres de vb, vais notar grande dif. para o vb.net, por isso ires para vb.net ou c# vai dar ao mesmo. vais ter de voltar a re-aprender tudo.
Tudo não, apenas a sintaxe da linguagem. A localização das classes é a mesma. O namespace de Data tem a mesma estrutura e as mesmas classes tanto em C# como VB.NET ou qualquer outro linguagem .NET based.
rosas Escreveu:a grande dif entre o c# e o c++ e a nao necessidade de ter de voltar a trabalhar com apontadores de memoria. esse aspecto eh tratado pelo proprio c#.
Grande verdade, não preciso de fazer malocs, agora isso não é tratado pelo C# e sim pelo Framework que possui uma feature interessante que é o GC(Garbage Collector) que analisa o que está em memória e através de uns algoritmos avalia se esse espaço pode ser reclamado como espaço livre ou não. Pena que isto, apesar de dar grandes ganhos de produtividade e velocidade, tem graves problemas de performance.
rosas Escreveu:dependendo tb do q pretendes, e no meu caso q so trabalho para mobile, o .net pode nao ser porventura a melhor opçao. a ms ainda nao conseguiu fornecer um web service q funcione "off-line", enquanto q com o java por exemplo, tenho tomcat.
A ideia de um webservice, nunca foi nem será trabalhar offline. No java não tens webservices offline, no máximo transportas contigo um server web no device mobile que faz essa tarefa, e depois deve guardar de alguma forma o que tem feito para mais tarde sincronizar com o "servidor". No .NET a alternativa não é apresentada na forma de WebService offline (pq a própria definição de WS pelo W3C nunca foi ter offline), mas sim numa BD mobile, que é o SQL CE. Existe tb o Oracle e até DB2 para mobile devices. Em que o principio é o mesmo, executas as transações dentro destas DBs e depois sincronizas com o servidor quando estiveres online.
O meu primeiro projecto de VB.NET foi um em que o cliente já tinha algumas coisas feitas em VB.NET (era a Presentation Layer) e queria o resto em C#. Como já sabia C#, a curva de aprendizado foi minima, apenas aprender as nuances do vb.net. Agora dúvidas sobre como consultar os dados e afins, é a mesma coisa em C# e em VB.NET. Resumindo, em 3 dias estava a programar em VB.NET quase à mesma velocidade que programava em C#.
Mais uma vez, reforço que a grande dificuldade para um programador (não um caramelo que compra um livro "aprende VB em 21 dias") é conhecer o Framework. Depois as eventuais diferenças entre linguagens são minimas (leia-se C# e VB.NET).
Abraços