SlideShare uma empresa Scribd logo
Mergulhando no ecossistema
.NET
Por Paulo Ortins
SEMCOMP + Palestrantes + Galera = ROCKS
Quem é Paulo Ortins ?

Vamos fazer algo um pouco diferente...
Montando o Slide Vitae 2010/2011
Montando o Slide Vitae 2011/2012
Montando o Slide Vitae 2012/2013

#DevInBahia
Churrasco Agile
Montando o Slide Vitae 2012/2013
Sócio/Fundador da OnceDev
•
•
•
•

Diversão
Amigos
Código de Qualidade
Comunidade
Mas o que isso tem haver com o
ecossistema .NET ?
• Pessoas com backgrounds diferentes
• Linguagens de programação diferentes
• Ecossistemas diferentes
Mas o que isso tem haver com o
ecossistema .NET ?
Java
Clojure

C#

Ruby

Elixir

Python

Objective-C
PHP

C

Scala
Javascript
C++

Go
Mas o que isso tem haver com o
ecossistema .NET ?
Aprender com a diversidade
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
E o que há de bom e de ruim no C#?
E o que há de bom e de ruim no C#?
•
•
•
•
•
•
•

Features da linguagem
Generalista/Nicho
Ferramental
Custos
Mercado
Comunidade/Open Source
Futuro
Tipagem Estática
•
•
•
•

C# é uma linguagem tipada
Melhor suporte para Intellisense
Type Checking
Erros em tempo de
desenvolvimento/compilação
Tipagem Estática
// Javascript
var aluno = {
Idade: 17,
Nome: 'Paulo Ortins'
};
function imprimirAlunoAdulto(aluno) {
if (aluno.Idade > 18) {
console.message(aluno.Nome);
}
}
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);
}
}
Suporte a variáveis dinâmicas
• Suporte a programação dinâmica através da
variável dynamic
• Nos permite escolher como iremos programar
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);
}
}
Inferência de Tipos
Aluno aluno = new Aluno();
var aluno = new Aluno();
Dictionary<string, List<Aluno>> alunos = new
Dictionary<string, List<Aluno>>();
var alunos = new Dictionary<string, List<Aluno>>();
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);
Extension Methods
static string ObterUltimosCaracteres(this string s, int numeroCaracteres)
{
return s.Substring(s.Length - numeroCaracteres, numeroCaracteres);
}
"testando".ObterUltimosCaracteres(3);
LINQ
• Language Integrated Query
• Feature que nos permite fazer consultas sqllike em coleções:
– Em memória
– Em SQL
– Em XML
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);
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);
Outras Features
• Programação Funcional
• Computação Paralela
• Computação Assíncrona
E o que há de bom e de ruim no C#?
•
•
•
•
•
•
•

Features da linguagem
Generalista/Nicho
Ferramental
Custos
Mercado
Comunidade/Open Source
Futuro
C# é linguagem interpretada
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
C# no Unix
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#
E galera se empolgou, C# no iOS
C# no iOS
C# no iOS
C# no Android
C# no Windows 8/Windows Phone
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.
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.
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.
Natural User Interface - Kinect
E o que há de bom e de ruim no C#?
•
•
•
•
•
•
•

Features da linguagem
Generalista/Nicho
Ferramental
Custos
Mercado
Comunidade/Open Source
Futuro
Ferramental
Ferramental
E o que há de bom e de ruim no C#?
•
•
•
•
•
•
•

Features da linguagem
Generalista/Nicho
Ferramental
Custos
Mercado
Comunidade/Open Source
Futuro
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
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.
E o que há de bom e de ruim no C#?
•
•
•
•
•
•
•

Features da linguagem
Generalista/Nicho
Ferramental
Custos
Mercado
Comunidade/Open Source
Futuro
Mercado
• Há um deficit de programadores C# em
Salvador, no Brasil e no mundo.
• A grande maioria dessas vagas é pra trabalhar
em ambientes enterprise.
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+
Médias Salariais - USA
E o que há de bom e de ruim no C#?
•
•
•
•
•
•
•

Features da linguagem
Generalista/Nicho
Ferramental
Custos
Mercado
Comunidade/Open Source
Futuro
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”.
Incentivos a comunidade
• Incentivos as pessoas que mais contribuem
com a comunidade
– Licensas gratuitas
– Acesso a discussões sobre o futuro da plataforma
E o que há de bom e de ruim no C#?
•
•
•
•
•
•
•

Features da linguagem
Performance
Ferramental
Custos
Mercado
Comunidade/Open Source
Futuro
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.
Meus Contatos
•
•
•
•

Blog: Pauloortins.com
Newsletter sobre .NET: dotnetpills.apphb.com
Twitter: @pauloortins
Email: pauloortins@oncedev.com
Perguntas ?

Mais conteúdo relacionado

Destaque

Cap 02 onde a vida acontece.
Cap 02   onde a vida acontece.Cap 02   onde a vida acontece.
Cap 02 onde a vida acontece.rafaelcef3
 
Mata dos araucarias
Mata dos araucariasMata dos araucarias
Mata dos araucariasmalumalukety
 
104 carolina e fabiana caatinga
104 carolina e fabiana caatinga104 carolina e fabiana caatinga
104 carolina e fabiana caatinga
Ivoneti de Lima
 
PANTANAL - MATO GROSSO - BRASIL (com som)
PANTANAL - MATO GROSSO - BRASIL (com som)PANTANAL - MATO GROSSO - BRASIL (com som)
PANTANAL - MATO GROSSO - BRASIL (com som)
J Oliveira Andrade
 
Tudo o que sempre quis saber sobre o LINQ
Tudo o que sempre quis saber sobre o LINQTudo o que sempre quis saber sobre o LINQ
Tudo o que sempre quis saber sobre o LINQ
Comunidade NetPonto
 
LINQ - C#
LINQ - C#LINQ - C#
LINQ - C#
fpadoan
 
Pantanal não tem igual
Pantanal não tem igualPantanal não tem igual
Pantanal não tem igual
patrycya26
 
Revisão de C# 4.0
Revisão de C# 4.0Revisão de C# 4.0
Revisão de C# 4.0
Mário Meyrelles
 
Dominio Araucarias
Dominio Araucarias Dominio Araucarias
Dominio Araucarias Laguat
 
104 carolina e fabiana caatinga
104 carolina e fabiana caatinga104 carolina e fabiana caatinga
104 carolina e fabiana caatinga
Ivoneti de Lima
 
Estruturas de Dados em C#
Estruturas de Dados em C#Estruturas de Dados em C#
Estruturas de Dados em C#
Marcelo Charan
 
Aula5 2012 ecossistemas
Aula5 2012 ecossistemasAula5 2012 ecossistemas
Aula5 2012 ecossistemasRigo Rodrigues
 
Biomas do brasil (Prof° Elves Alves)
Biomas do brasil (Prof° Elves Alves)Biomas do brasil (Prof° Elves Alves)
Biomas do brasil (Prof° Elves Alves)elves0927
 

Destaque (20)

Cap 02 onde a vida acontece.
Cap 02   onde a vida acontece.Cap 02   onde a vida acontece.
Cap 02 onde a vida acontece.
 
Cavernas
CavernasCavernas
Cavernas
 
Araucarias
AraucariasAraucarias
Araucarias
 
Mata dos araucarias
Mata dos araucariasMata dos araucarias
Mata dos araucarias
 
104 carolina e fabiana caatinga
104 carolina e fabiana caatinga104 carolina e fabiana caatinga
104 carolina e fabiana caatinga
 
PANTANAL - MATO GROSSO - BRASIL (com som)
PANTANAL - MATO GROSSO - BRASIL (com som)PANTANAL - MATO GROSSO - BRASIL (com som)
PANTANAL - MATO GROSSO - BRASIL (com som)
 
Tudo o que sempre quis saber sobre o LINQ
Tudo o que sempre quis saber sobre o LINQTudo o que sempre quis saber sobre o LINQ
Tudo o que sempre quis saber sobre o LINQ
 
LINQ - C#
LINQ - C#LINQ - C#
LINQ - C#
 
kkkkkkk
kkkkkkkkkkkkkk
kkkkkkk
 
Pantanal não tem igual
Pantanal não tem igualPantanal não tem igual
Pantanal não tem igual
 
Revisão de C# 4.0
Revisão de C# 4.0Revisão de C# 4.0
Revisão de C# 4.0
 
Dominio Araucarias
Dominio Araucarias Dominio Araucarias
Dominio Araucarias
 
104 carolina e fabiana caatinga
104 carolina e fabiana caatinga104 carolina e fabiana caatinga
104 carolina e fabiana caatinga
 
SFD - C# para a comunidade
SFD - C# para a comunidadeSFD - C# para a comunidade
SFD - C# para a comunidade
 
Estruturas de Dados em C#
Estruturas de Dados em C#Estruturas de Dados em C#
Estruturas de Dados em C#
 
Aula5 2012 ecossistemas
Aula5 2012 ecossistemasAula5 2012 ecossistemas
Aula5 2012 ecossistemas
 
Ecossistema
EcossistemaEcossistema
Ecossistema
 
Biomas do brasil (Prof° Elves Alves)
Biomas do brasil (Prof° Elves Alves)Biomas do brasil (Prof° Elves Alves)
Biomas do brasil (Prof° Elves Alves)
 
Araucária
AraucáriaAraucária
Araucária
 
Ecossistemas
EcossistemasEcossistemas
Ecossistemas
 

Semelhante a Mergulhando no ecossistema .NET

Apresentação Meetup Faccilita Corretor Google Brasil - 01/03/2016
Apresentação Meetup Faccilita Corretor Google Brasil - 01/03/2016Apresentação Meetup Faccilita Corretor Google Brasil - 01/03/2016
Apresentação Meetup Faccilita Corretor Google Brasil - 01/03/2016
Leonardo Turbiani
 
.NET e C# - Introdução Geral
.NET e C# - Introdução Geral.NET e C# - Introdução Geral
.NET e C# - Introdução Geral
Gabriel Vinicios Silva Maganha
 
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Sandro Andrade
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
profjotamarcosduarte
 
Ambientes de Desenvolvimento, Groupware, MOOC's
Ambientes de Desenvolvimento, Groupware, MOOC'sAmbientes de Desenvolvimento, Groupware, MOOC's
Ambientes de Desenvolvimento, Groupware, MOOC's
João Pedro Daltro
 
O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.
Yan Magalhães
 
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
André Espeiorin
 
Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011
Marco Antonio Maciel
 
Novas Abordagens no Ensino da Programação - Ensino Básico
Novas Abordagens no Ensino da Programação - Ensino BásicoNovas Abordagens no Ensino da Programação - Ensino Básico
Novas Abordagens no Ensino da Programação - Ensino BásicoUniversidade de Lisboa
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
Rogerio Fontes
 
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Impacta Eventos
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Rodrigo Reis
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
Jacqueline Abreu
 
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
Ráfagan Abreu
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
Giovanni Kenji Shiroma
 
Openredu - ConsoliNE 2016
Openredu - ConsoliNE 2016Openredu - ConsoliNE 2016
Openredu - ConsoliNE 2016
Yves Bouckaert
 
Brasil, Open Source e o Mundo dos Negócios
Brasil, Open Source e o Mundo dos NegóciosBrasil, Open Source e o Mundo dos Negócios
Brasil, Open Source e o Mundo dos Negócios
OpenBossa
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?Felipe Volpone
 
Programadores. Quem são eles? Onde vivem? O que comem?
Programadores. Quem são eles? Onde vivem? O que comem?Programadores. Quem são eles? Onde vivem? O que comem?
Programadores. Quem são eles? Onde vivem? O que comem?
Gabriel Pereira
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
Henrique Schmidt
 

Semelhante a Mergulhando no ecossistema .NET (20)

Apresentação Meetup Faccilita Corretor Google Brasil - 01/03/2016
Apresentação Meetup Faccilita Corretor Google Brasil - 01/03/2016Apresentação Meetup Faccilita Corretor Google Brasil - 01/03/2016
Apresentação Meetup Faccilita Corretor Google Brasil - 01/03/2016
 
.NET e C# - Introdução Geral
.NET e C# - Introdução Geral.NET e C# - Introdução Geral
.NET e C# - Introdução Geral
 
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
 
Ambientes de Desenvolvimento, Groupware, MOOC's
Ambientes de Desenvolvimento, Groupware, MOOC'sAmbientes de Desenvolvimento, Groupware, MOOC's
Ambientes de Desenvolvimento, Groupware, MOOC's
 
O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.
 
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
 
Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011
 
Novas Abordagens no Ensino da Programação - Ensino Básico
Novas Abordagens no Ensino da Programação - Ensino BásicoNovas Abordagens no Ensino da Programação - Ensino Básico
Novas Abordagens no Ensino da Programação - Ensino Básico
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
 
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
Openredu - ConsoliNE 2016
Openredu - ConsoliNE 2016Openredu - ConsoliNE 2016
Openredu - ConsoliNE 2016
 
Brasil, Open Source e o Mundo dos Negócios
Brasil, Open Source e o Mundo dos NegóciosBrasil, Open Source e o Mundo dos Negócios
Brasil, Open Source e o Mundo dos Negócios
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?
 
Programadores. Quem são eles? Onde vivem? O que comem?
Programadores. Quem são eles? Onde vivem? O que comem?Programadores. Quem são eles? Onde vivem? O que comem?
Programadores. Quem são eles? Onde vivem? O que comem?
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 

Mais de Paulo Cesar Ortins Brito

GDG DevFest Nordeste - Quer desenvolver aplicações mobile nativas, cross-plat...
GDG DevFest Nordeste - Quer desenvolver aplicações mobile nativas, cross-plat...GDG DevFest Nordeste - Quer desenvolver aplicações mobile nativas, cross-plat...
GDG DevFest Nordeste - Quer desenvolver aplicações mobile nativas, cross-plat...
Paulo Cesar Ortins Brito
 
Como participar de comunidades de software mudou a minha carreira e também po...
Como participar de comunidades de software mudou a minha carreira e também po...Como participar de comunidades de software mudou a minha carreira e também po...
Como participar de comunidades de software mudou a minha carreira e também po...
Paulo Cesar Ortins Brito
 
Use Xamarin.Forms and surprise your customers when develop native apps, in le...
Use Xamarin.Forms and surprise your customers when develop native apps, in le...Use Xamarin.Forms and surprise your customers when develop native apps, in le...
Use Xamarin.Forms and surprise your customers when develop native apps, in le...
Paulo Cesar Ortins Brito
 
The Developer's Conference 2015 - Florianópolis - Use o Xamarin.Forms e surpr...
The Developer's Conference 2015 - Florianópolis - Use o Xamarin.Forms e surpr...The Developer's Conference 2015 - Florianópolis - Use o Xamarin.Forms e surpr...
The Developer's Conference 2015 - Florianópolis - Use o Xamarin.Forms e surpr...
Paulo Cesar Ortins Brito
 
GDG Dev Fest Extended - Mobilidade além do smartphone
GDG Dev Fest Extended - Mobilidade além do smartphoneGDG Dev Fest Extended - Mobilidade além do smartphone
GDG Dev Fest Extended - Mobilidade além do smartphone
Paulo Cesar Ortins Brito
 
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
Paulo Cesar Ortins Brito
 
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
Paulo Cesar Ortins Brito
 
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
Paulo Cesar Ortins Brito
 
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
Paulo Cesar Ortins Brito
 
Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#
Paulo Cesar Ortins Brito
 
Métricas de Código
Métricas de CódigoMétricas de Código
Métricas de Código
Paulo Cesar Ortins Brito
 
Explicando conceitos de software usando situações do cotidiano
Explicando conceitos de software usando situações do cotidianoExplicando conceitos de software usando situações do cotidiano
Explicando conceitos de software usando situações do cotidiano
Paulo Cesar Ortins Brito
 
Tests in Javascript using Jasmine and Testacular
Tests in Javascript using Jasmine and TestacularTests in Javascript using Jasmine and Testacular
Tests in Javascript using Jasmine and Testacular
Paulo Cesar Ortins Brito
 
A vez do mobile - Dev in Bahia #3
A vez do mobile - Dev in Bahia #3A vez do mobile - Dev in Bahia #3
A vez do mobile - Dev in Bahia #3
Paulo Cesar Ortins Brito
 

Mais de Paulo Cesar Ortins Brito (14)

GDG DevFest Nordeste - Quer desenvolver aplicações mobile nativas, cross-plat...
GDG DevFest Nordeste - Quer desenvolver aplicações mobile nativas, cross-plat...GDG DevFest Nordeste - Quer desenvolver aplicações mobile nativas, cross-plat...
GDG DevFest Nordeste - Quer desenvolver aplicações mobile nativas, cross-plat...
 
Como participar de comunidades de software mudou a minha carreira e também po...
Como participar de comunidades de software mudou a minha carreira e também po...Como participar de comunidades de software mudou a minha carreira e também po...
Como participar de comunidades de software mudou a minha carreira e também po...
 
Use Xamarin.Forms and surprise your customers when develop native apps, in le...
Use Xamarin.Forms and surprise your customers when develop native apps, in le...Use Xamarin.Forms and surprise your customers when develop native apps, in le...
Use Xamarin.Forms and surprise your customers when develop native apps, in le...
 
The Developer's Conference 2015 - Florianópolis - Use o Xamarin.Forms e surpr...
The Developer's Conference 2015 - Florianópolis - Use o Xamarin.Forms e surpr...The Developer's Conference 2015 - Florianópolis - Use o Xamarin.Forms e surpr...
The Developer's Conference 2015 - Florianópolis - Use o Xamarin.Forms e surpr...
 
GDG Dev Fest Extended - Mobilidade além do smartphone
GDG Dev Fest Extended - Mobilidade além do smartphoneGDG Dev Fest Extended - Mobilidade além do smartphone
GDG Dev Fest Extended - Mobilidade além do smartphone
 
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
 
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
 
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...
 
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...
 
Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#
 
Métricas de Código
Métricas de CódigoMétricas de Código
Métricas de Código
 
Explicando conceitos de software usando situações do cotidiano
Explicando conceitos de software usando situações do cotidianoExplicando conceitos de software usando situações do cotidiano
Explicando conceitos de software usando situações do cotidiano
 
Tests in Javascript using Jasmine and Testacular
Tests in Javascript using Jasmine and TestacularTests in Javascript using Jasmine and Testacular
Tests in Javascript using Jasmine and Testacular
 
A vez do mobile - Dev in Bahia #3
A vez do mobile - Dev in Bahia #3A vez do mobile - Dev in Bahia #3
A vez do mobile - Dev in Bahia #3
 

Mergulhando no ecossistema .NET

  • 2. SEMCOMP + Palestrantes + Galera = ROCKS
  • 3. Quem é Paulo Ortins ? Vamos fazer algo um pouco diferente...
  • 4. Montando o Slide Vitae 2010/2011
  • 5. Montando o Slide Vitae 2011/2012
  • 6. Montando o Slide Vitae 2012/2013 #DevInBahia Churrasco Agile
  • 7. Montando o Slide Vitae 2012/2013
  • 9. Mas o que isso tem haver com o ecossistema .NET ? • Pessoas com backgrounds diferentes • Linguagens de programação diferentes • Ecossistemas diferentes
  • 10. Mas o que isso tem haver com o ecossistema .NET ? Java Clojure C# Ruby Elixir Python Objective-C PHP C Scala Javascript C++ Go
  • 11. Mas o que isso tem haver com o ecossistema .NET ?
  • 12. Aprender com a diversidade
  • 13. 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
  • 14. E o que há de bom e de ruim no C#?
  • 15. E o que há de bom e de ruim no C#? • • • • • • • Features da linguagem Generalista/Nicho Ferramental Custos Mercado Comunidade/Open Source Futuro
  • 16. Tipagem Estática • • • • C# é uma linguagem tipada Melhor suporte para Intellisense Type Checking Erros em tempo de desenvolvimento/compilação
  • 17. Tipagem Estática // Javascript var aluno = { Idade: 17, Nome: 'Paulo Ortins' }; function imprimirAlunoAdulto(aluno) { if (aluno.Idade > 18) { console.message(aluno.Nome); } }
  • 18. 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); } }
  • 19. Suporte a variáveis dinâmicas • Suporte a programação dinâmica através da variável dynamic • Nos permite escolher como iremos programar
  • 20. 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); } }
  • 21. Inferência de Tipos Aluno aluno = new Aluno(); var aluno = new Aluno(); Dictionary<string, List<Aluno>> alunos = new Dictionary<string, List<Aluno>>(); var alunos = new Dictionary<string, List<Aluno>>();
  • 22. 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);
  • 23. Extension Methods static string ObterUltimosCaracteres(this string s, int numeroCaracteres) { return s.Substring(s.Length - numeroCaracteres, numeroCaracteres); } "testando".ObterUltimosCaracteres(3);
  • 24. LINQ • Language Integrated Query • Feature que nos permite fazer consultas sqllike em coleções: – Em memória – Em SQL – Em XML
  • 25. 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);
  • 26. 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);
  • 27. Outras Features • Programação Funcional • Computação Paralela • Computação Assíncrona
  • 28. E o que há de bom e de ruim no C#? • • • • • • • Features da linguagem Generalista/Nicho Ferramental Custos Mercado Comunidade/Open Source Futuro
  • 29. C# é linguagem interpretada
  • 30. 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
  • 32. 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#
  • 33.
  • 34. E galera se empolgou, C# no iOS
  • 38. C# no Windows 8/Windows Phone
  • 39. 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.
  • 40. 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.
  • 41. 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.
  • 43. E o que há de bom e de ruim no C#? • • • • • • • Features da linguagem Generalista/Nicho Ferramental Custos Mercado Comunidade/Open Source Futuro
  • 46. E o que há de bom e de ruim no C#? • • • • • • • Features da linguagem Generalista/Nicho Ferramental Custos Mercado Comunidade/Open Source Futuro
  • 47. 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
  • 48. 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.
  • 49. E o que há de bom e de ruim no C#? • • • • • • • Features da linguagem Generalista/Nicho Ferramental Custos Mercado Comunidade/Open Source Futuro
  • 50. Mercado • Há um deficit de programadores C# em Salvador, no Brasil e no mundo. • A grande maioria dessas vagas é pra trabalhar em ambientes enterprise.
  • 51. 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+
  • 53. E o que há de bom e de ruim no C#? • • • • • • • Features da linguagem Generalista/Nicho Ferramental Custos Mercado Comunidade/Open Source Futuro
  • 54. 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”.
  • 55. Incentivos a comunidade • Incentivos as pessoas que mais contribuem com a comunidade – Licensas gratuitas – Acesso a discussões sobre o futuro da plataforma
  • 56. E o que há de bom e de ruim no C#? • • • • • • • Features da linguagem Performance Ferramental Custos Mercado Comunidade/Open Source Futuro
  • 57. 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.
  • 58. Meus Contatos • • • • Blog: Pauloortins.com Newsletter sobre .NET: dotnetpills.apphb.com Twitter: @pauloortins Email: pauloortins@oncedev.com Perguntas ?

Notas do Editor

  1. Parabenizar a galera por estar participando de um evento, fortalecer comunidade, citar o esforço da galera da InfoJr(SEMCOMP), esforço dos palestrantes, e presença da galera
  2. Normalmente, eu abro as palestras mostrando o meu CV, porém dessa vez vamos fazer algo um pouco diferente e para esse evento faz todo o sentido, por ser um evento de estudantes, e eu gostaria que tivessem me falado isso há 4 anos atrás, falar como esse tipo de evento mudou a forma como eu encarava a minha carreira.
  3. Em 2010/2011, eu comecei a estagiar, só que eu tava em uma equipe pequena e as pessoas não se atualizavam, não curtiam estudar. Eu comecei a programar meio que sem referências. E quando chegou em 2011, eu me achava o rei do código, programador senior, programador master.
  4. Flame Wars, Fan Boys, brigas bestas, bahia x vitoria, windows x linux, xbox x playstation
  5. Podemos aprender com a diversidade, discutir no sentido de ampliar o conhecimento e começar a fazer uma auto-reflexão das tecnologias que você usa, será que sua tecnologia é a melhor para os problemas que você resolve ? Será que não possuem outras alternativas melhores ?
  6. Features, suporte a programação funcional, suporte a programação dinâmica, produtividade, performance boa ou ruim, ferramentas que você pode usar ou não para programar nessa linguagem, essas ferramentas tem um custo ? Como é o mercado dessa linguagem, em salvador, no brasil e no mundo ? Como é comunidade em torno dessa linguagem ? Pra que serve a sua linguagem ? O que o futuro reserva pra ela ?
  7. Mostrar Exemplos, falar sobre erros de compilação, o benefício que isso traz em projetos grandes, auxilio do ferramental, as vantagens de linguagens dinamica, menos burocracia, velocidade no desenvolvimento pois nao precisa ficar compilando toda hora.