33
UM CAMINHO PARA A CARREIRA MICROSOFT DESCUBRA. VOCÊ VAI GOSTAR.

Caminho para uma carreira microsoft

Embed Size (px)

DESCRIPTION

Informações sobre o conteúdo de uma carreira Microsoft .NET. Dicas e recursos.

Citation preview

Page 1: Caminho para uma carreira microsoft

UM CAMINHO PARA A CARREIRA MICROSOFT

DESCUBRA. VOCÊ VAI GOSTAR.

Page 2: Caminho para uma carreira microsoft

RON BANDEIRA, VISUAL SOLUTIONS (VSOL) PROGRAMADOR CHEFE E PROPRIETÁRIO

• Mora nos EUA a 29 anos, mas mudou-se para essa região a uns 5 anos atrás.

• Pessoalmente tem 15 anos que trabalha como Software Developer nos EUA.

• VSol (USA), atua a 12 anos no mercado Americano. Está baseada na região de Washington DC.

• Abriu a VSol (Brasil) esse ano aqui em Tubarão.

• Trabalha principalmente com... surpresa! Tecnologias ligadas a Microsoft .NET.

Page 3: Caminho para uma carreira microsoft

OBJETIVO

A QUALIDADE MELHOROU E A PRATICIDADE DA PLATAFORMA TAMBÉM.

Convido vocês a conhecerem um pouco mais do que a Microsoft tem preparado para seus developers.Acredito ser um ecossistema produtivo, rápido e muito divertido para desenvolvimento.

Page 4: Caminho para uma carreira microsoft

TERMO

Virtual Machine – um programa que permite aplicativos .NET e Java a rodarem em diferentes sistemas operacionais.

O Que é Java virtual machine? JRE, Java Runtime Enviroment.

Page 5: Caminho para uma carreira microsoft

O QUE É .NET VIRTUAL MACHINE?CLR, Common Language Runtime.

Page 6: Caminho para uma carreira microsoft

JAVA VS .NET, POR QUE .NET?

Termos

• Specialty stores – loja altamente especializada onde se encontra variedades do mesmo tipo de produto.

• One-stop-shop – uma loja generalizada onde encontra-se um pouco de tudo. Como se tem no postos de gasolina ou o Walmart.

• stack - um conjunto de libraries (DLL) que podem formar uma Framework: .NET, Java, etc.

Page 7: Caminho para uma carreira microsoft

JAVA VS .NET, POR QUE .NET? • Carro de Formula 1 bem calibrado

vs. um Porsche feito em fabrica.

• A Oracle é proprietária também.

• Lenta para alcançar? Java 8. Expressões Lambda, Pofiles Compactos, etc.

• Se usar servidores Windows lhe incomoda, esse caminho não é para você. Não vou fazer um argumento para usar Mono + Apache no Unix, mesmo que eu possa.

Page 8: Caminho para uma carreira microsoft

.NET REALMENTE COMO OPEN SOURCE? NÃO EXATAMENTE. MAIS ABERTA? SIM!

Termos

• Open Standard - são padrões disponíveis para livre acesso e implementação, que independem de royalties (patentes) e outras taxas, e sem discriminação de uso.

• Dependency Injection - Injeção de dependência, podemos configurar como novas instancias de objetos são compartilhadas por um programa. Conceito esta ligado a Inversion of Control (IoC). Muito confundido com Service Locator Pattern. Exemplos: Autofac, TinyIoC.

• Refactor – aplicações de “best practices” que promovem reuso de código, separação de conceitos (SoC) que melhoram mas não necessariamente quebra código dependente.

• Decoupling – baixo nível de acoplamento entre classes.

Page 9: Caminho para uma carreira microsoft

.NET REALMENTE COMO OPEN SOURCE? NÃO EXATAMENTE. MAIS ABERTA? SIM!

• Na verdade os fundamentos da tecnologia sempre foram open source. Por isso tivemos o Projeto Mono (UNIX and Linux).

• Em dezembro de 2000, Microsoft publicou o Common Language Infrastructure do .NET como um open standard.

Page 10: Caminho para uma carreira microsoft

.NET REALMENTE COMO OPEN SOURCE? NÃO EXATAMENTE. MAIS ABERTA? SIM!

Page 11: Caminho para uma carreira microsoft

PROJETOS DA NOVA FUNDAÇÃO .NET

Page 12: Caminho para uma carreira microsoft

VNEXT – “OPENNESS” EM PRATICA

• ASP.NET vNext

• As partes estão mais soltas: MVC, Web API, WebForms, SignalR, Katana, Desktop. Podemos remover os pedaços que não estaremos usando do stack.

• Roslyn

• Roslyn compila dinamicamente seu código e você trabalha nele.

• O compilador pode ser mudado por Dependency Injection.

• Ferramentas de refactoring usarão o NuGet para instalar Packages individuais com novas regras de refactoring.

• Tudo vai virar uma Nuget package!

Page 13: Caminho para uma carreira microsoft

VNEXT – “OPENNESS” EM PRATICA

• Apache Cordova para Mobile

Page 14: Caminho para uma carreira microsoft

ASP.NET VNEXT - O QUE ESTA VINDO AI!• O próximo release do ASP.NET (vNext)

roda no OS X e Linux.

• Integrando plenamente o Mono e Linux nos seus ambientes de build e matrix de testes.

• Estão ativamente trabalhando com a comunidade para fazer do Mono uma plataforma topo de linha para hosting ASP.NET.

• MVC 6

• OWIN – A nova definição de standards open source para criação de módulos para a Web (um interface).

• Katana

https://github.com/aspnet

Page 15: Caminho para uma carreira microsoft

CARACTERÍSTICAS DA PLATAFORMA E FERRAMENTAS

Termos

• Generics – List<Students> students; o type que vai ser usado é passado como um parâmetro para classes ou métodos.

• Interface Programming – programar contra um interface e não a implementação concreta dele.

• Addon – programa de auxilio funcional adicionado ao Visual Studio…

Page 16: Caminho para uma carreira microsoft

CARACTERÍSTICAS DA PLATAFORMA E FERRAMENTAS

• Generics + Interface Programming + Dependency Injection = Hot Pattern!

• ReSharper é um addon que lhe dar dicas de best practices e é uma grande ajuda para refactor seu código.

• TypeMock Isolator for true Unit Tests

• A Multi-language Runtime...

• Diversidade de línguas com uma formula mais simples de aplica-las. .NET Framework.

Page 17: Caminho para uma carreira microsoft

CARACTERÍSTICAS DA PLATAFORMA E FERRAMENTAS - 1

Termos

• Generics –

• Interface Programming –

• Dependency Injection –

• Refactor –

• Addon – No Visual Studio…

Common CLI Languages A#: CLI implementation of Ada. Boo: A statically typed CLI language, inspired by Python. C#: Most widely used CLI language, bearing similarities to Java, Object Pascal (

Delphi) and C++. Implementations provided by .NET Framework,Portable.NET and Mono.

C++/CLI: A version of C++ including extensions for using Common Language Runtime (CLR) objects. Implementation provided only by .NET Framework. Can produce either CLI-based managed code or mixed-mode code that mixes managed and native code. The compiler is provided by Microsoft.

Cobra: A CLI language with static and dynamic typing, design by contract and built-in unit testing.

Component Pascal: A CLI-compliant Oberon dialect. It is a strongly typed language in the heritage of Pascal and Modula-2 but with powerful object-oriented extensions.

Eiffel: Purely object-oriented language, focused on software quality, includes integrated design by contract and multiple inheritance. CLI compliant.

F#: A multi-paradigm CLI language supporting functional programming andimperative object-oriented programming disciplines. Variant of ML and is largely compatible with OCaml. The compiler is provided by Microsoft. The implementation provided by Microsoft officially targets both .NET and Mono.

IronPython: An open-source CLI implementation of Python, built on the Dynamic Language Runtime (DLR).

IronRuby: An open-source CLI implementation of Ruby, built on the Dynamic Language Runtime (DLR).

IronLisp: A CLI implementation of Lisp. Deprecated in favor of IronScheme. J#: A CLI-compliant implementation of Java. The compiler is provided by

Microsoft. J# has been discontinued. The last version shipped with Visual Studio 2005, and will be supported until 2015.

JScript .NET: A CLI implementation of ECMAScript version 3, compatible withJScript. Contains extensions for static typing. Deprecated in favor of Managed JScript.

L#: A CLI implementation of Lisp. Managed Extensions for C++: A version of C++ targeting the Common

Language Runtime (CLR). Deprecated in favor of C++/CLI. Managed JScript: A CLI implementation of JScript built on the Dynamic

Language Runtime (DLR). Conforms to ECMAScript version 3. Nemerle: A multi-paradigm language similar to C#, OCaml and Lisp. Oxygene: An Object Pascal-based CLI language. P#: A CLI implementation of Prolog. Phalanger: An implementation of PHP with extensions for ASP.NET Phrogram: A custom CLI language for beginners and intermediate users

produced by The Phrogram Company PowerBuilder: Can target CLI since version 11.1. Synergy DBL .NET: an object oriented CLI compliant implementation of DBL

and DIBOL produced by Synergex.[1] Team Developer: SQLWindows Application Language (SAL) since Team

Developer 6.0. Visual Basic .NET (VB.NET): A redesigned dialect of Visual Basic.

Implementations provided by .NET Framework and Mono. Windows PowerShell: An object-oriented command-line shell. PowerShell can

dynamically load .NET assemblies that were written in any CLI language. PowerShell itself uses a unique scripting syntax and uses curly-braces, similar to other C-based languages.

Other CLI languages Fantom - a language compiling to .NET and to the JVM F* - A dependently typed language based on F#. GrGen.NET - a CLI language for graph rewriting IronScheme - a R6RS-compliant Scheme implementation built on the DLR Lisp# Un-Armed Bear Common Lisp (IKVM.NET Portierung von Java)[2] Niecza - A CLI implementation of Perl 6.

Page 18: Caminho para uma carreira microsoft

DEVOPS E ALM

• DevOps – build uma vez e deploy em todos lugares

• DevOps Deployment Workbench Express

• http://vsardevops.codeplex.com/

• Application Lifecycle Management (ALM) - Gerenciamento de Ciclo de Vida de Aplicativos

Page 19: Caminho para uma carreira microsoft

TEAM FOUNDATION SERVER (TFS)O SYSTEM POR TRÁS DO MICROSOFT ALM.

• Gerencia

• Desenvolve

• Build

• Deployment ou Instalação

• Teste

Page 20: Caminho para uma carreira microsoft

NUGET

Termos

• Packages – modules que é um arquivo zip que contem outros arquivos (DLLs, configs, debug symbols, etc) que servem como dependência para seu aplicativo. Exemplo: log4net, jQuery, Json.NET, Bootstrap.

• Feed – um repositório local ou remoto que serve como fonte de armazenamento e distribuição das Packages.

Page 21: Caminho para uma carreira microsoft

NUGET

• Ferramenta de gerenciamento de dependências pela distribuição de Packages.

• Semelhante ao Maven ou Gradle para projetos Java.

• Public Feed – NuGet Gallery

• Internal Feed – instale-o na sua intranet

• Plena integração com o Visual Studio

Page 22: Caminho para uma carreira microsoft

A REVOLUÇÃO XAMARIN

Termos

UI – User Interface, interface de usuário, é o espaço onde a interação entre humanos e máquinas ocorre.

Native Code – código compilado para a língua específica da plataforma que ira executar o aplicativo.

Back-end Code – no enterprise, representa a camada da arquitetura que vem entre o banco de dados e a camada de apresentação (Presentation Layer). Abstração da lógica de negocio (business logic).

WYSIWYG – What You See Is What You Get.

XAML - Extensible Application Markup Language, (pronunciada "zammel"). Uma especificação XML da Microsoft para criar aplicativos. Usada em WYSIWYG designers e com o padrão MVVM.

Page 23: Caminho para uma carreira microsoft

A REVOLUÇÃO XAMARIN

• iOS + Android + Windows Phone in .NET com uma base de código.

• Xamarin Studio ou completa integração com o Visual Studio

Page 24: Caminho para uma carreira microsoft

A REVOLUÇÃO XAMARIN

• Novo Xamarin.Forms permite ainda mais re-uso de código. Agora na camada do UI.

• Só com C# ou C# + XAML (WYSIWYG).

Page 25: Caminho para uma carreira microsoft

A REVOLUÇÃO XAMARIN

• O seu código vai mais longe.

Page 26: Caminho para uma carreira microsoft

ESTUDO DE CASO (CASE STUDY)

• Recebe 95 milhões de page views por mês

• Processa 800 HTTP requests por segundo

• Faz tudo isso com 12 servidores Windows Web + 2 servidores MS SQL Server

Page 27: Caminho para uma carreira microsoft

HABILIDADES DE SOFTWARE DEVELOPER QUE AFETAM OS SALÁRIOS

1. http://www.payscale.com/research/BR/Job=Systems_Analyst/Salary2. http://www.payscale.com/research/BR/Job=Software_Engineer/Salary3. http://www.payscale.com/research/BR/Job=Sr._Software_Engineer_%2f_Developer_

%2f_Programmer/Salary

Systems Analyst Salary (Brazil)Software Engineer Salary (Brazil)Sr. Software Engineer / Developer / Programmer Salary (Brazil)

Page 28: Caminho para uma carreira microsoft

CERTIFICAÇÃO EM .NET?

• Fazer ou não? Você terá que saber todos os tópicos da certificação para poder atuar como um software developer. Certificação facilita sua carreira especialmente no início.

• Além de ficar bonito no currículo, para que serve uma certificação? Certificação vai lhe fazer um excelente programador? Eu creio que não. Mas lhe revelará a caixa de ferramentas e de lá terá as referências necessárias para executar o seu trabalho melhor e assim chegar a seus objetivos profissionais.

Page 29: Caminho para uma carreira microsoft

CERTIFICAÇÃO EM .NET?

• MCSD: Web Applications - Solutions Developer

• 3 exames: Programação em C#, MVC e Web Services

• MTA (Microsoft Technology Associate)

• 1 exame: .NET Fundamentals, Software Development Fundamentals or Web Development Fundamentals, HTML5 App Development Fundamentals.

Page 30: Caminho para uma carreira microsoft

RECURSOS PARA .NET SOFTWARE DEVELOPERS

• Blogs

• Channel 9

• http://channel9.msdn.com/

• Scott Hanselman

• http://www.hanselman.com/blog/

• Microsoft Blogs

• http://www.asp.net/community/microsoft-blogs

• Recursos de Aprendizagem

• Visual Studio Professional, Pluralsight 90 dias

• https://www.dreamspark.com/Student/Software-Catalog.aspx

• Pluralsight - A maior biblioteca de treinamento criativo e tecnológico do mundo

• http://www.pluralsight.com

• Ferramentas

• Visual Studio Express + Team Foundation Online

• http://www.visualstudio.com/

• Resharper

• http://www.jetbrains.com/resharper

Page 31: Caminho para uma carreira microsoft

FONTES DE INFORMAÇÕES

• What is NuGet? (for Java Developers)

• http://blog.sonatype.com/2012/02/what-is-nuget-for-java-developers/#.U-NxSvldV8E

• .NET Foundation

• http://www.dotnetfoundation.org/news.aspx

• Big improvements coming to the .NET framework with ASP.NET vNext

• http://www.itworld.com/development/424254/big-improvements-coming-net-framework-aspnet-vnext

• Java virtual machine

• http://en.wikipedia.org/wiki/Java_virtual_machine

• Common Language Runtime

• http://en.wikipedia.org/wiki/Common_Language_Runtime

• Your First Cup

• http://docs.oracle.com/javaee/6/firstcup/doc/gkhoy.html

Page 32: Caminho para uma carreira microsoft

FONTES DE INFORMAÇÕES • Why & When Use Java 8 Compact Profiles?

• http://vitalflux.com/why-when-use-java-8-compact-profiles/

• Java or .Net - Which is better for future & career?

• http://www.crazyengineers.com/threads/java-or-net-which-is-better-for-future-career.73827/

• Java version history

• http://en.wikipedia.org/wiki/Java_version_history

• Brick Wars: Java vs .Net

• http://ammonsonline.com/brick-wars-java-vs-net/

• Visual Studio tooling support for Apache Cordova

• http://msdn.microsoft.com/en-us/vstudio/dn722381

• An Overview of Project Katana

• http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana

Page 33: Caminho para uma carreira microsoft

VISUAL SOLUTIONS (VSOL)

http://vsol.usRon Bandeira

Programador Chefe