O C # (e a plataforma .net em geral) parece estar se tornando uma boa opção para aplicativos com vários destinos:
- estrutura oficial do MS .net: desenvolvimento completo do windows, asp.net dev, Windows phone Dev, etc.
mono e todos os seus derivados: monotouch, monodroid: o resto do mundo. Hoje essas ferramentas são RTM.
Isso significa que o C # está se tornando uma boa linguagem para segmentar as plataformas mais populares: desktop, web e móvel?
- Ainda é melhor usar a linguagem "nativa" das plataformas de destino (objetivo C, Java, etc.)
- É apenas uma tela de fumaça e apenas linguagem de marketing?
Observe que estou realmente consciente de que não poderei copiar / colar o código entre plataformas. Mas tenho certeza de que as camadas inferiores dos aplicativos (modelos, negócios etc.) podem ser reutilizadas, mas sei que terei que adaptar as camadas superiores (Gui etc.) à plataforma. Meu objetivo é mais focado nas habilidades necessárias do que no compartilhamento de código técnico.
[edit] Eu sou desenvolvedor em uma empresa que usa massivamente c #. É por isso que falei sobre c # em um plano para expandir a gama de plataformas de destino na minha empresa.
Microsoft .NET é a implementação oficial do CLR, DLR, BCL, CLI e CLS. Outras empresas, grupos, comunidades ou grupos de trabalho não estão associados à Microsoft de uma maneira que eles possam ter uma implementação 1: 1 da versão mais recente da estrutura e idioma.
Basicamente, você precisa revisar quais idiomas e recursos da estrutura você gostaria de aproveitar em um projeto concreto e verificar se eles estão presentes em implementações .NET não oficiais.
Se você espera uma solução compiladora única e a distribui em todos os lugares, está errado: você precisa fazer um estudo de caso.
fonte
Uso C # em jogos executados em máquinas XBOX e Windows, uso em aplicativos do Compact Framework para soluções de robótica, uso o MonoTouch para desenvolvimento de iPad, tenho alguns aplicativos da Web em execução no Linux e algumas outras soluções. Geralmente, há uma maneira de fazer suas coisas em uma determinada plataforma. A camada principal é praticamente a mesma para a maioria deles (é necessário um estudo de caso). O problema - e eu o considero uma série - é o ambiente de desenvolvimento. Estou acostumado ao Visual Studio e seus recursos. Mas o MonoDevelop, por exemplo, me deixa maluco.
fonte