Para quem mexe com Java, C# é mais fácil de aprender que ASP.NET e VB.NET?

Para uma pessoa que programa mais em Java, C# seria mais fácil de aprender do que ASP.NET e VB.NET, ou não tem muita diferença no aprendizado?

Cara si vc aprende C# , os outros ficam facil…
pois vc integra C# ao ASP.NET, caso seja Projeto Web :!:

:slight_smile:

Pra vc entender melhor ASP.NET - JSP e C# ou VB - Java.

[quote=jbmsegundo]Pra vc entender melhor ASP.NET - JSP e C# ou VB - Java.
[/quote]

Oi,

Gostaria de entender o que vc quis dizer… :roll:

Eu tbm…
Acho que ele quiz fazer uma expressão numerica com as linguagens…

O que eu quis dizer é que ASP.NET tem quase o mesmo papel dos JSPs dentro do JAVA. ASP.NET não é uma linguagem é um framework. Você não ficará de livre de conhecer C# ou VB se precisar trabalhar com ASP.NET. Uma linguagem você precisará conhecer.

A pergunta certa seria : é mais fácil aprender C# ou VB

[quote]
Acho que ele quiz fazer uma expressão numerica com as linguagens… [/quote]

Sim, pelo fato de você não ser tão bom em português, então decidi tentar outras técnica, DAVID.

O C# é muito parecido com o Java. Você praticamente já sai programando.

Só leva um tempinho para aprender os recursos extras, como os extension methods, sobrecarga de operadores e o LINQ.

Não acho que valha a pena usar o VB.Net hoje em dia, a menos que você já seja um programador VB e não queria aprender C#.

[quote=ViniGodoy]O C# é muito parecido com o Java. Você praticamente já sai programando.

Só leva um tempinho para aprender os recursos extras, como os extension methods, sobrecarga de operadores e o LINQ.

Não acho que valha a pena usar o VB.Net hoje em dia, a menos que você já seja um programador VB e não queria aprender C#.[/quote]

Sempre ouvi dizer que o C# é mais parecido com o VB.Net do que com Java…Mas pelo que vc descreveu, é o contrario?

Difícil responder.

A estrutura da linguagem em si, é mais parecida com o Java.
Mas o C# e o VB.net compartilham a mesma biblioteca de classes, e é isso que torna os códigos muito similares.

Agora, a biblioteca do C# foi bastante inspirada na do Java.

O fato é que alguns códigos C# vão ser extremamente parecidos com java. Se usar uma biblioteca mais diferente, como a de acesso a dados, com muito LINQ, aí o código C# vai parecer mais com um VB.Net, justamente pelo uso da biblioteca não pela estrutura da linguagem em si.

Bom, Java e C# tem uma origem em comum: C !!

Mas apesar de sintaticamente serem muito semelhantes, elas tem vertentes diferentes. A Microsoft “adotou” o C# e englobou outras linguagens como VB, J#, F# C++ e até Cobol para se enquadrarem no framework .Net . Eles utilizam o chamado CLR (Commom Language Runtime ), onde apesar das direfenças de linguagem, todas tem acesso igual aos componentes .Net.

Então traçando um paralelo muito a grosso modo:

Java -> C#
ByteCode -> CLR - dll
JVM -> .Net Framework

Já o ASP.NET é linguagem servidor, por isso o jbmsegundo disse que se parece com JSP. A diferença é que o ASP.NET tem o conceito de CodeBehind, onde você tem classes .NET(C# e VB), e as páginas .aspx tem acesso à elas.

Então, novamente a grosso modo:

ASP.NET (code behind) -> JSF (managed bean)

Confuso, né?

Espero ter ajudado…

Interessante…Obrigada!

[quote=luiz.portnoy]Bom, Java e C# tem uma origem em comum: C !!

Mas apesar de sintaticamente serem muito semelhantes, elas tem vertentes diferentes. A Microsoft “adotou” o C# e englobou outras linguagens como VB, J#, F# C++ e até Cobol para se enquadrarem no framework .Net . Eles utilizam o chamado CLR (Commom Language Runtime ), onde apesar das direfenças de linguagem, todas tem acesso igual aos componentes .Net.

Então traçando um paralelo muito a grosso modo:

Java -> C#
ByteCode -> CLR - dll
JVM -> .Net Framework

Já o ASP.NET é linguagem servidor, por isso o jbmsegundo disse que se parece com JSP. A diferença é que o ASP.NET tem o conceito de CodeBehind, onde você tem classes .NET(C# e VB), e as páginas .aspx tem acesso à elas.

Então, novamente a grosso modo:

ASP.NET (code behind) -> JSF (managed bean)

Confuso, né?

Espero ter ajudado…[/quote]

Muito confuso…não leve a mal,mas vou ficar com a explicação do Vini…rsrs…desculpe :wink:

[quote=Anime][quote=luiz.portnoy]Bom, Java e C# tem uma origem em comum: C !!

Mas apesar de sintaticamente serem muito semelhantes, elas tem vertentes diferentes. A Microsoft “adotou” o C# e englobou outras linguagens como VB, J#, F# C++ e até Cobol para se enquadrarem no framework .Net . Eles utilizam o chamado CLR (Commom Language Runtime ), onde apesar das direfenças de linguagem, todas tem acesso igual aos componentes .Net.

Então traçando um paralelo muito a grosso modo:

Java -> C#
ByteCode -> CLR - dll
JVM -> .Net Framework

Já o ASP.NET é linguagem servidor, por isso o jbmsegundo disse que se parece com JSP. A diferença é que o ASP.NET tem o conceito de CodeBehind, onde você tem classes .NET(C# e VB), e as páginas .aspx tem acesso à elas.

Então, novamente a grosso modo:

ASP.NET (code behind) -> JSF (managed bean)

Confuso, né?

Espero ter ajudado…[/quote]

Muito confuso…não leve a mal,mas vou ficar com a explicação do Vini…rsrs…desculpe :wink: [/quote]

Heheh. Tudo bem. Vou dar um exemplo:

Vamos supor que você quer criar uma classe chamada LerArquivo em .Net.

Em C# você usará um método assim:


 FileStream fs=new FileStream("c:\\Variables.txt", FileMode.Append, FileAccess.Write, FileShare.Write);
        fs.Close();

Sua classe fica com o nome LerArquivo.cs

Em Vb.Net :


 Dim fs As New FileStream("c:\Variables.txt", FileMode.Append, FileAccess.Write, FileShare.Write)
        fs.Close()

Sua classe fica com o nome LerArquivo.vb

Perceba que a forma de escrever é diferente, mas o acesso a classe FileStream é igual por causa do CLR!

Na hora de compilar, tanto o arquivo LerArquivo.cs como o LerArquivo.vb viram… LerArquivo.dll !!

O .Net framework faz esse “meio de campo”, entendeu?

É como eu falei, a biblioteca é a mesma, então, os códigos que usam a biblioteca vão ficar parecidos.

Se forem trechos da biblioteca parecidos com o Java, o C# irá lembrar mais o Java, pois a estrutura da linguagem é a mesma. Veja:

[code]public String gerarTexto(int a, int b, int c) {
int soma = (a + b + c);
int media = soma / 3;
int resto = soma % 3;

StringBuilder sb = new StringBuilder();
sb.Append("Número 1:").AppendLine(a);
sb.Append("Numero 2:").AppendLine(b);
sb.Append("Numero 3:").AppendLine(c);
sb.Append("Soma:").AppendLine(soma);
sb.Append("Média:").AppendLine(media);
sb.Append("Resto:").AppendLine(resto);

return sb.toString();

}[/code]

Note que esse código é muitíssimo similar a um código Java. O mesmo código em VB.Net:

[code]Function gerarTexto(a as Integer, b as Integer, c as Integer) as String {
Dim soma As Integer
soma = (a + b + c)

Dim media As Integer
media = soma / 3

Dim media As Integer
media = soma mod 3

Dim sb As StringBuilder
sb = StringBuilder()

sb.Append("Número 1:").AppendLine(a)
sb.Append("Numero 2:").AppendLine(b)
sb.Append("Numero 3:").AppendLine(c)
sb.Append("Soma:").AppendLine(soma)
sb.Append("Média:").AppendLine(media)

Return sb.toString()

}[/code]

Nem tanto.

A estrutura da linguagem C# lembra muito o Java. O local onde as variáveis são declaradas, a estrutura da função, usar ponto-e-vírgula no final da linha. Tudo isso é muito parecido. Isso no VB.Net fica bem diferente.

Entretanto, o uso da biblioteca StringBuilder é mais parecido no C# e no VB.net do que no C# e no Java, pois todas as linguagem da MS compartilham a mesma biblioteca de classes.

No caso StringBuilder é muito parecida com a classe de mesmo nome do java (por isso escolhi essa classe em particular), mas não é idêntica, mas, graças a estrutura da linguagem esse código ficou mais próximo do Java do que do VB.Net.

Em outros trechos, você pode não ter essa sorte, o que deixará o código VB e C# ainda mais parecidos. Por exemplo, no caso da função usar uma LINQ Query.

C#

public IList<String> nomesDosAlunos(IList<Aluno> alunos) { return (from aluno in alunos orderby aluno.Media select aluno.Nome).toList(); }

VB.Net

Public Function nomesDosAlunos(alunos as IList<Aluno>) as IList<String> { return (from aluno in alunos _ orderby aluno.Media _ select aluno.Nome).toList() }

Java:

public List<String> nomesDosAlunos(List<Aluno> alunos) { List<Aluno> alunosOrdenados = new List<Aluno>(alunos); Collections.sort(alunosOrdenados, new Comparator<Aluno>() { public void compare(Aluno a1, Aluno a2) { return a1.getMedia() - a2.getMedia(); } }); List<String> nomes = new ArrayList<String>(); for (Aluno a : alunos) { nomes.add(a.getNome()); } return nomes; }

Entendi…Obrigada Vini e luiz…

Desculpe Roger,pela invasão…é que gostei desse tema…

[quote=Anime]Entendi…Obrigada Vini e luiz…

Desculpe Roger,pela invasão…é que gostei desse tema…[/quote]

Opa, pode invadir quando quiser. :slight_smile:

Quanto à linguagem F#, do que se trata? Para que situações eu a usaria? Atualmente tem sido muito usada?

F# é uma linguagem funcional.


Se é no contexto de emprego. Ela não é muito usada aqui no brasil. Mas se você conhece ela e outras é uma skill a mais pra você no seu CV.

[]s

tanto C#, VB.net usam o mesmo framework o .net e tem as mesmas bibliotecas… a diferença seria mais em sintaxe… C# e java usam o padrão ECMA de sintaxe… ja o VB usa um padrão diferente… para quem ta acostumado com ECMA não é muito familiar… porem do mesmo jeito facil de aprender… todas são linguagens comuns com sintaxe comuns porem de familias distintas: uma é ECMA a outra não é… mas não existe uma mais facil de aprender e sim mais familiar… ambas são faceis de aprender… se vc conhece java domina qualquer uma delas…

Só para quem queira entender de VB, vai a correção do código para VB.NET:

Public Function ListarNomesDosAlunos(Alunos as IList&lt;Aluno&gt;) as IList&lt;String&gt;
   
   Dim ListaAlunos As List&lt;Aluno&gt;
   ListaAlunos = (from Aluno in Alunos _
                  orderby Aluno.Media _
                  select new { Aluno.Nome, Aluno.Media }).ToList()

   Return ListaAlunos
End Function

O resultado é um IList<String> então vc não pode fazer aquele new no select, nicolas.
Aliás, você também não é obrigado a fazer o dim explicitamente, pode fazer o return direto.

Acho que ali atrás só esqueci mesmo da palavra function e os caracteres de pular linha _
E que em VB é tudo em letra maiúscula (não é case sensitive, mas é uma convenção de código), hehehe.

Meu VB tá meio enferrujado. Tem um bom tempo que não programo com ele.