Mergulhando no ecossistema .NET
-
Upload
paulo-cesar-ortins-brito -
Category
Documents
-
view
244 -
download
1
description
Transcript of Mergulhando no ecossistema .NET
![Page 1: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/1.jpg)
Mergulhando no ecossistema .NET
Por Paulo Ortins
![Page 2: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/2.jpg)
SEMCOMP + Palestrantes + Galera = ROCKS
![Page 3: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/3.jpg)
Quem é Paulo Ortins ?
Vamos fazer algo um pouco diferente...
![Page 4: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/4.jpg)
Montando o Slide Vitae 2010/2011
![Page 5: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/5.jpg)
Montando o Slide Vitae 2011/2012
![Page 6: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/6.jpg)
Montando o Slide Vitae 2012/2013
#DevInBahia
Churrasco Agile
![Page 7: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/7.jpg)
Montando o Slide Vitae 2012/2013
![Page 8: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/8.jpg)
Sócio/Fundador da OnceDev
• Diversão
• Amigos
• Código de Qualidade
• Comunidade
![Page 9: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/11.jpg)
Mas o que isso tem haver com o ecossistema .NET ?
![Page 12: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/12.jpg)
Aprender com a diversidade
![Page 13: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/14.jpg)
E o que há de bom e de ruim no C#?
![Page 15: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/24.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/25.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/26.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/27.jpg)
Outras Features
• Programação Funcional
• Computação Paralela
• Computação Assíncrona
![Page 28: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/28.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/29.jpg)
C# é linguagem interpretada
![Page 30: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/30.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/31.jpg)
C# no Unix
![Page 32: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/32.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/33.jpg)
![Page 34: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/34.jpg)
E galera se empolgou, C# no iOS
![Page 35: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/35.jpg)
C# no iOS
![Page 36: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/36.jpg)
C# no iOS
![Page 37: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/37.jpg)
C# no Android
![Page 38: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/38.jpg)
C# no Windows 8/Windows Phone
![Page 39: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/39.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/40.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/41.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/42.jpg)
Natural User Interface - Kinect
![Page 43: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/43.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/44.jpg)
Ferramental
![Page 45: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/45.jpg)
Ferramental
![Page 46: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/46.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/47.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/48.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/49.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/50.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/51.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/52.jpg)
Médias Salariais - USA
![Page 53: Mergulhando no ecossistema .NET](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/53.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/54.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/55.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/56.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/57.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022051016/559d0d391a28abd5238b45d0/html5/thumbnails/58.jpg)
Meus Contatos
• Blog: Pauloortins.com
• Newsletter sobre .NET: dotnetpills.apphb.com
• Twitter: @pauloortins
• Email: [email protected]
Perguntas ?