Pergunta

Parece que o Silverlight/WPF é o futuro a longo prazo para o desenvolvimento de interfaces de usuário com .NET.Isso é ótimo porque posso ver a vantagem de reutilizar habilidades XAML tanto no lado do cliente quanto no lado do desenvolvimento web.Mas olhando para WPF/XAML/Silverlight, eles parecem tecnologias muito grandes e, então, onde é o melhor lugar para começar?

Gostaria de ouvir alguém que tenha um bom conhecimento de ambos e possa recomendar qual é o melhor ponto de partida e por quê.

Foi útil?

Solução

Você deveria aprender ASP.NET ou Winforms primeiro?ASP ou MFC?HTML ou VB?C# ou VB?

Deixe de lado a ideia de que existe uma progressão lógica através do que se tornou um conjunto altamente complexo de tecnologias entrelaçadas e dê um passo atrás e pergunte-se uma série de perguntas:

  • Quais são seus objetivos;como você deseja equilibrar lucro e diversão
  • Você está orientado para o curto prazo ou para o longo prazo
  • Você é o tipo de pessoa que gosta de ser bom em alguma coisa e fazer muito ou fica entediado quando entende isso completamente?

O próximo e mais difícil passo é aceitar que qualquer conselho que você receber está fadado a estar errado;e quanto maior o horizonte temporal, maior a probabilidade de estar incorreto.Se o conselho durar mais de seis a 12 meses, a probabilidade de o conselho ser totalmente incorreto se aproxima de 1.

Só posso contar minha história, rapidamente.Em 2000 eu estava feliz como consultor trabalhando lucrativamente em C++ em aplicações Windows, escrevendo sobre ASP.NET e WinForms.então eu vi C# e o mundo virou de cabeça para baixo.Eu nunca voltei.

Há dois anos tive o mesmo tipo de revelação, só que uma ordem de grandeza maior, mais forte e com mais convicção sobre o Silverlight.Sim, o WPF é magnífico, e pode ser que eu esteja todo preocupado com isso, mas acredito profundamente que o Silverlight muda tudo.Não havia dúvidas naquela época e não há dúvidas hoje de que o Silverlight é a plataforma de desenvolvimento mais importante para a Microsoft desde o .NET (certamente) e possivelmente desde a mudança para C++.

Em poucas palavras, aqui está o porquê.Não entendo onde estão suas limitações.Com a maioria das plataformas eu faço:você pode fazer isso, mas não pode fazer aquilo.O WPF é um bom exemplo, assim como o ASP.Net e o WinForms e, bem, realmente tudo até agora.
Com o Silverlight, ainda não vejo limites.O Silverlight já saltou do desktop para os telefones e não vejo razão para parar por aí.Sim, é verdade, está vinculado ao navegador, mas vejo isso menos como uma cela de prisão do que como um tanque no qual o Silverlight estará percorrendo muitos terrenos (deve ser muito tarde, devo ir para a cama).

De qualquer forma, por enquanto aprender Silverlight é um gás, tem muito material no Site Silverlight.net, e o que há de melhor em aprender o Silverlight é que, se você não encontrar o que precisa, pode gritar comigo e eu garantirei que você obtenha o que precisa rapidamente.

Aproveite, boa sorte e o segredinho sujo é que você ficará bem, seja qual for a sua escolha.É tudo apenas software.

-jesse


Jessé Liberdade"Geek da Luz Prateada"

Outras dicas

Eu diria que vá primeiro com o Silverlight!

Já programei com WPF e Silverlight antes.

Mas como o Silverlight é um subconjunto do WPF, se você se aprofundar demais e tentar mudar para a criação de aplicativos Silverlight, estará coçando a cabeça procurando aquela "tag" que aprendeu a amar no WPF, mas que não está disponível no Silverlight.

Quando você domina primeiro as coisas básicas do Silverlight, o mecanismo/gatilho/quaisquer recursos extras do WPF simplesmente adicionar para a maior parte do que você já sabe.

Silverlight no WPF difere no características nível, não apenas alguns controles ou animações ausentes.Veja o mecanismo de gatilhos do WPF, por exemplo, que não está totalmente disponível no Silverlight.

Portanto, aprendendo primeiro o subconjunto menor, você poderá estender esse conhecimento para o conjunto completo mais tarde, mas se você começou com o conjunto completo e ficou viciado em algumas das sutilezas disponíveis, terá problemas no futuro quando alguém lhe pedir para portar seus aplicativos WPF projetados para o Silverlight.

Vou contra a corrente e digo para aprender o WPF primeiro.

Aqui está meu raciocínio:

  • Muito mais recursos estão disponíveis para o WPF do que para o Silverlight, como livros, blogs e documentação do MSDN.

  • Você não está lidando com um alvo beta em movimento

  • Você não precisa trabalhar apenas com chamadas assíncronas

  • Não limitado pela falta de recursos como dicionários mesclados, gatilhos, TileBrushes, etc.

  • Você não precisa se preocupar em reaprender a fazer as coisas corretamente por causa da falta de recursos no SL

Silverlight é uma versão simplificada do WPF, portanto deve conter menos coisas para aprender.Por outro lado, as duas plataformas têm alvos diferentes (web e rich client), então acho que depende de qual aplicativo você vai construir.
Se você quiser apenas aprender por si mesmo (nenhum aplicativo em um futuro próximo), eu escolheria o Silverlight porque seria menos assimilado.Ainda assim, o Silverlight é praticamente um alvo móvel, muito mais que o WPF, então você terá que acompanhar algumas mudanças de tempos em tempos (as alegrias de ser um dos primeiros a adotar :)).
O WPF tem muito mais coisas que você provavelmente desejará usar em algum momento, mas eu esperaria que as necessidades surgissem primeiro.

Todos os especialistas do setor que ouvi em podcasts, blogs e entrevistas recomendam aprender Silverlight primeiro e depois mudando gradualmente para o WPF, que é uma enorme estrutura de UI.

O Silverlight é leve e permite que você trabalhe em subconjuntos menores de controles e recursos para que você possa entender esse novo paradigma de construção de IU baseado em,

  1. Modelagem
  2. Ligação de dados
  3. Estilos

Atualizar:07/2011

Detesto mencionar isso, mas nos últimos tempos a Microsoft colocou mais foco em HTML5, Javascript e CSS, trazendo os poderes do IE 9 e IE 10, bem como do próximo Windows 8.

Cada vez mais desenvolvedores e CTOs estão céticos em relação ao Silverlight como uma plataforma de aplicativos LOB. À medida que o tempo passa, suspeitamos que o Silverlight será limitado ao Windows Phone e a nichos, áreas de domínio como saúde de aplicativos relacionados a gráficos, em vez de um aplicativo LOB normal.

Como parece agora, a partir do verão de 2011, o futuro poderá parecer fragmentado, com mais oportunidades para tecnologias web puras (HTML5, JS e CSS) em oposição a um plugin e tecnologia de interface do usuário específica do sistema operacional.

Eu começaria aprendendo XAML, lendo alguns tutoriais e brincando com o XAMLPad.Isso lhe dará uma ideia do básico antes de realmente criar um aplicativo.

Eu começaria com o WPF e faria amostras de familiarização de controle muito simples.Seu objetivo deve ser aprender XAML e Binding.Portanto, se você apenas criar alguns aplicativos básicos de janela WPF, aumentará sua velocidade de aprendizado.Então, eventualmente, você pode passar para o Silverlight.Sim, como mencionado aqui, o Silverlight é um subconjunto do WPF.

Bem, depende no que você vai trabalhar.Se você estiver trabalhando em cliente/servidor, eu usaria o WPF.Se você está trabalhando em um ambiente onde pode garantir que o .Net está instalado em todas as máquinas, então eu também usaria o WPF, porque você pode usar o que é chamado de XBAP, que é um aplicativo WPF executado através de o navegador.

Depende realmente de você.No entanto, eu diria que o Silverlight ainda não é RTM e o WPF é.O WPF tem muitos livros sobre o assunto, o que o Silverlight não tem.Pode ser mais fácil obter todo o Zen do WPF lendo alguns desses livros e, em seguida, mergulhar em qual deles você gostaria de brincar.

Apenas tenha em mente que o Silverlight possui um subconjunto de controles do WPF, uma estrutura .Net emparelhada, e não faz chamadas síncronas.Contanto que você saiba disso desde o início, poderá começar a aprender o núcleo de toda a base e adaptar sua experiência prática posteriormente à tecnologia que for melhor para você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top