58
Mergulhando no ecossistema .NET Por Paulo Ortins

Mergulhando no ecossistema .NET

Embed Size (px)

DESCRIPTION

Slides da palestra que fiz na SEMCOMP 2013 sobre o ecossistema .NET, seus pontos fortes, seus pontos fracos, como ele se situa no atual mercado e quais são as oportunidades de trabalho para os que escolherem essa plataforma.

Citation preview

Page 1: Mergulhando no ecossistema .NET

Mergulhando no ecossistema .NET

Por Paulo Ortins

Page 2: Mergulhando no ecossistema .NET

SEMCOMP + Palestrantes + Galera = ROCKS

Page 3: Mergulhando no ecossistema .NET

Quem é Paulo Ortins ?

Vamos fazer algo um pouco diferente...

Page 4: Mergulhando no ecossistema .NET

Montando o Slide Vitae 2010/2011

Page 5: Mergulhando no ecossistema .NET

Montando o Slide Vitae 2011/2012

Page 6: Mergulhando no ecossistema .NET

Montando o Slide Vitae 2012/2013

#DevInBahia

Churrasco Agile

Page 7: Mergulhando no ecossistema .NET

Montando o Slide Vitae 2012/2013

Page 8: Mergulhando no ecossistema .NET

Sócio/Fundador da OnceDev

• Diversão

• Amigos

• Código de Qualidade

• Comunidade

Page 9: Mergulhando no ecossistema .NET

Mas o que isso tem haver com o ecossistema .NET ?

• Pessoas com backgrounds diferentes

• Linguagens de programação diferentes

• Ecossistemas diferentes

Page 10: Mergulhando no ecossistema .NET

Mas o que isso tem haver com o ecossistema .NET ?

Java C#

Javascript

Ruby

Clojure PythonElixir

Go

Objective-C Scala

PHP

C C++

Page 11: Mergulhando no ecossistema .NET

Mas o que isso tem haver com o ecossistema .NET ?

Page 12: Mergulhando no ecossistema .NET

Aprender com a diversidade

Page 13: Mergulhando no ecossistema .NET

O que é legal e o que não é legal na linguagem que a gente trabalha ?

• Features da linguagem

• Generalista/Nicho

• Ferramental

• Custos

• Mercado

• Comunidade/Open Source

• Futuro

Page 14: Mergulhando no ecossistema .NET

E o que há de bom e de ruim no C#?

Page 15: Mergulhando no ecossistema .NET

E o que há de bom e de ruim no C#?

• Features da linguagem

• Generalista/Nicho

• Ferramental

• Custos

• Mercado

• Comunidade/Open Source

• Futuro

Page 16: Mergulhando no ecossistema .NET

Tipagem Estática

• C# é uma linguagem tipada

• Melhor suporte para Intellisense

• Type Checking

• Erros em tempo de desenvolvimento/compilação

Page 17: Mergulhando no ecossistema .NET

Tipagem Estática

// Javascriptvar aluno = {

Idade: 17,Nome: 'Paulo Ortins'

};

function imprimirAlunoAdulto(aluno) {if (aluno.Idade > 18) {

console.message(aluno.Nome);}

}

Page 18: Mergulhando no ecossistema .NET

Tipagem Estática

public class Aluno{

public int Idade { get; set; }public string Nome { get; set; }

}

Aluno aluno = new Aluno(){

Idade = 17,Nome = "Paulo Ortins"

};

public void ImprimirAlunoAdulto(Aluno aluno){

if (aluno.Idade > 18){

Console.WriteLine(aluno.Nome);}

}

Page 19: Mergulhando no ecossistema .NET

Suporte a variáveis dinâmicas

• Suporte a programação dinâmica através da variável dynamic

• Nos permite escolher como iremos programar

Page 20: Mergulhando no ecossistema .NET

Suporte a variáveis dinâmicas

dynamic aluno = new ExpandoObject();

aluno.Nome = "Paulo Ortins";

aluno.Idade = 18;

public void ImprimirAlunoAdulto(dynamic aluno)

{

if (aluno.Idade > 18)

{

Console.WriteLine(aluno.Nome);

}

}

Page 21: Mergulhando no ecossistema .NET

Inferência de Tipos

Aluno aluno = new Aluno();

var aluno = new Aluno();

Dictionary<string, List<Aluno>> alunos = newDictionary<string, List<Aluno>>();

var alunos = new Dictionary<string, List<Aluno>>();

Page 22: Mergulhando no ecossistema .NET

Extension Methods

public class StringUtil {

public static String ObterUltimosCaracteres(String string, int numeroCaracteres)

{

int ultimaPosicao = string.length();

return string.substring(ultimaPosicao - numeroCaracteres , ultimaPosicao);

}

}

StringUtil.ObterUltimosCaracteres("testando", 3);

Page 23: Mergulhando no ecossistema .NET

Extension Methods

static string ObterUltimosCaracteres(this string s, int numeroCaracteres)

{

return s.Substring(s.Length - numeroCaracteres, numeroCaracteres);

}

"testando".ObterUltimosCaracteres(3);

Page 24: Mergulhando no ecossistema .NET

LINQ

• Language Integrated Query

• Feature que nos permite fazer consultas sql-like em coleções:

– Em memória

– Em SQL

– Em XML

Page 25: Mergulhando no ecossistema .NET

Exemplos de Uso do LINQ

• Agrupar pessoas por idade

// Query Expressions

var pessoas = from pessoa in people

group pessoa by pessoa.Idade;

// Lambda Expressions/Dot Notation

var peopleGroupedByAge = people.GroupBy(x => x.Idade);

Page 26: Mergulhando no ecossistema .NET

Exemplos de Uso do LINQ

• Ordenar uma coleção de pessoas pela idade

// Query Expressions

var ordered = from pessoa in people

orderby pessoa.Idade

select pessoa;

// Lambda Expressions/Dot Notation

var ordered = people.OrderBy(x => x.Idade);

Page 27: Mergulhando no ecossistema .NET

Outras Features

• Programação Funcional

• Computação Paralela

• Computação Assíncrona

Page 28: Mergulhando no ecossistema .NET

E o que há de bom e de ruim no C#?

• Features da linguagem

• Generalista/Nicho

• Ferramental

• Custos

• Mercado

• Comunidade/Open Source

• Futuro

Page 29: Mergulhando no ecossistema .NET

C# é linguagem interpretada

Page 30: Mergulhando no ecossistema .NET

C# é uma linguagem generalista

• Web• Desktops

– Windows– Unix/MacOS

• Mobile– Windows 8/ Windows Phone– Android– iOS

• Cloud/Big Data– Azure/HDInsight

• Natural User Interfaces– Kinect

Page 31: Mergulhando no ecossistema .NET

C# no Unix

Page 32: Mergulhando no ecossistema .NET

C# for MacOS

• Usa o interface builder para desenhar telas com componentes nativos do Cocoa.

• Sincroniza esses componentes com o Xamarin For Mac

• Temos uma App Nativa na Mac Store feita com C#

Page 33: Mergulhando no ecossistema .NET
Page 34: Mergulhando no ecossistema .NET

E galera se empolgou, C# no iOS

Page 35: Mergulhando no ecossistema .NET

C# no iOS

Page 36: Mergulhando no ecossistema .NET

C# no iOS

Page 37: Mergulhando no ecossistema .NET

C# no Android

Page 38: Mergulhando no ecossistema .NET

C# no Windows 8/Windows Phone

Page 39: Mergulhando no ecossistema .NET

C# no Windows 8/Windows Phone

• Windows Phone já passou o iOS em vendas na América Latina.

• Está prestes a ultrapassar o iOS no Brasil.

Page 40: Mergulhando no ecossistema .NET

Azure/HDInsight

• Mundo produz cada vez mais dados.

• Dados devem ser processados e armazenados

• Cada vez mais soluções de cloud são necessárias.

• Azure e HDInsight trazem essa possibilidade pro ecossistema .NET.

Page 41: Mergulhando no ecossistema .NET

Natural User Interface - Kinect

• Comunicação natural homem-maquina sem o auxilio de outros dispositivos

• Kinect é um sistema de detecção de movimentos desenvolvido inicialmente para video games mas que tem sido expandido para outras áreas.

Page 42: Mergulhando no ecossistema .NET

Natural User Interface - Kinect

Page 43: Mergulhando no ecossistema .NET

E o que há de bom e de ruim no C#?

• Features da linguagem

• Generalista/Nicho

• Ferramental

• Custos

• Mercado

• Comunidade/Open Source

• Futuro

Page 44: Mergulhando no ecossistema .NET

Ferramental

Page 45: Mergulhando no ecossistema .NET

Ferramental

Page 46: Mergulhando no ecossistema .NET

E o que há de bom e de ruim no C#?

• Features da linguagem

• Generalista/Nicho

• Ferramental

• Custos

• Mercado

• Comunidade/Open Source

• Futuro

Page 47: Mergulhando no ecossistema .NET

Custos• Windows 8.1

– Standard: $120

– Pro : $200

• VS 2013 – Upgrade: $99 até 2014, depois $299

– Full Price: $499

• Xamarin Studio– Indie: $299/ano, por plataforma

– Business: $999/ano, por plataforma

Page 48: Mergulhando no ecossistema .NET

Custo – Estudantes/Startups

• Microsoft oferece licenças de graça para estudantes ou empresas em fase inicial, através do Dream Spark e o BizSpark.

• Xamarin também possui desconto para estudantes. O preço cai para $99/ano por plataforma.

Page 49: Mergulhando no ecossistema .NET

E o que há de bom e de ruim no C#?

• Features da linguagem

• Generalista/Nicho

• Ferramental

• Custos

• Mercado

• Comunidade/Open Source

• Futuro

Page 50: Mergulhando no ecossistema .NET

Mercado

• Há um deficit de programadores C# em Salvador, no Brasil e no mundo.

• A grande maioria dessas vagas é pra trabalhar em ambientes enterprise.

Page 51: Mergulhando no ecossistema .NET

Médias Salariais - Salvador

• Programador Jr: R$ 900 – R$1400

• Programador Pl: R$1300- R$1700

• Programador Sr: R$1600 – R$ 2000

• Analista Jr: R$1800 – R$ 2600

• Analista Pl: R$ 2600 – R$ 3500

• Analista Sr: R$3500+

Page 52: Mergulhando no ecossistema .NET

Médias Salariais - USA

Page 53: Mergulhando no ecossistema .NET

E o que há de bom e de ruim no C#?

• Features da linguagem

• Generalista/Nicho

• Ferramental

• Custos

• Mercado

• Comunidade/Open Source

• Futuro

Page 54: Mergulhando no ecossistema .NET

Open Source/Comunidade

• A Microsoft tem aberto muito dos seus códigos para a comunidade, embora o seu desenvolvimento não seja aberto a mesma.

• Ferramentas, em sua maioria, são:

– São desenvolvidas pela Microsoft

– Desenvolvidas por funcionários da Microsoft (Open)

– Desenvolvidas por outras pessoas porém pagas.

• É difícil concorrer com os “insiders”.

Page 55: Mergulhando no ecossistema .NET

Incentivos a comunidade

• Incentivos as pessoas que mais contribuem com a comunidade

– Licensas gratuitas

– Acesso a discussões sobre o futuro da plataforma

Page 56: Mergulhando no ecossistema .NET

E o que há de bom e de ruim no C#?

• Features da linguagem

• Performance

• Ferramental

• Custos

• Mercado

• Comunidade/Open Source

• Futuro

Page 57: Mergulhando no ecossistema .NET

Vale a pena apostar no .NET/C#?

• Na minha opinião, sim, e eu estou apostando.

– Linguagem em constante evolução.

– Ecossistema evoluindo para atender as demandas do mercado atual e do mercado futuro.

• Cabe a vocês decidirem onde vocês vão apostar.

Page 58: Mergulhando no ecossistema .NET

Meus Contatos

• Blog: Pauloortins.com

• Newsletter sobre .NET: dotnetpills.apphb.com

• Twitter: @pauloortins

• Email: [email protected]

Perguntas ?