O documento resume as principais novidades do C# 4.0, incluindo argumentos opcionais e nomeados, tipos dinâmicos com o DLR, e melhorias na interoperabilidade com COM, como a remoção do uso obrigatório de ref. A variância para tipos genéricos também é introduzida, permitindo conversões entre tipos genéricos e específicos de forma covariante e contravariante.
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...Rogério Moraes de Carvalho
Nesta palestra, eu apresentei uma introdução à linguagem de programação <strong>JavaScript</strong>, sua evolução, sua padronização de acordo com a especificação <strong>ECMA-262</strong> (linguagem <strong>ECMAScript</strong>), principais usos da linguagem, alguns dos principais conceitos da linguagem, programação orientada a objetos com JavaScript e algumas das novidades da <strong>ECMAScript 5</strong>. Além disto, eu também apresentei estatísticas de uso dos 5 principais browsers da atualidade e o suporte dos principais browsers do mercado ao ECMAScript 5.
Introdução a linguagem JavaScript desvendando a história e as principais características da linguagem.
Assista a série Desvendando a linguagem JavaScript no meu canal no YouTube: https://www.youtube.com/user/rodrigobranas/videos
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...Rogério Moraes de Carvalho
Nesta palestra, eu apresentei uma visão geral da evolução da linguagem de programação C# desde o lançamento da versão 1.0, em fevereiro de 2002, até a versão 4, em março de 2010. Depois, eu também apresentei a principal novidade da linguagem C# 5: suporte direto da linguagem à programação assíncrona. Este novo recurso permite que o desenvolvedor realize programação assíncrona de modo similar à programação síncrona. Além disto, eu também comentei sobre as principais novidades esperadas para a versão posterior (C# 6?), que atualmente é conhecida pelo nome de projeto Roslyn.
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...Rogério Moraes de Carvalho
Nesta palestra, eu apresentei uma introdução à linguagem de programação <strong>JavaScript</strong>, sua evolução, sua padronização de acordo com a especificação <strong>ECMA-262</strong> (linguagem <strong>ECMAScript</strong>), principais usos da linguagem, alguns dos principais conceitos da linguagem, programação orientada a objetos com JavaScript e algumas das novidades da <strong>ECMAScript 5</strong>. Além disto, eu também apresentei estatísticas de uso dos 5 principais browsers da atualidade e o suporte dos principais browsers do mercado ao ECMAScript 5.
Introdução a linguagem JavaScript desvendando a história e as principais características da linguagem.
Assista a série Desvendando a linguagem JavaScript no meu canal no YouTube: https://www.youtube.com/user/rodrigobranas/videos
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...Rogério Moraes de Carvalho
Nesta palestra, eu apresentei uma visão geral da evolução da linguagem de programação C# desde o lançamento da versão 1.0, em fevereiro de 2002, até a versão 4, em março de 2010. Depois, eu também apresentei a principal novidade da linguagem C# 5: suporte direto da linguagem à programação assíncrona. Este novo recurso permite que o desenvolvedor realize programação assíncrona de modo similar à programação síncrona. Além disto, eu também comentei sobre as principais novidades esperadas para a versão posterior (C# 6?), que atualmente é conhecida pelo nome de projeto Roslyn.
Aula 10 da disciplina de Programação Orientada a Objetos, ministrada pelo Departamento de Computação da Universidade Federal de Sergipe.
Apresenta os conceitos sobre Polimorfismo.
Apresentação do trabalho final da disciplina de Linguagem de Programação. Linguagem escolhida: Java. Objetivo: fazer uma descrição geral, comparando java à outras linguagens
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...Weverton Timoteo
Talk apresentada no evento gratuito Ruby Summit Brasil 2020 organizado pela comunidade e para comunidade.
Falei um pouco sobre as principais novidades no Ruby 3 (Ractor, Scheduler, RBS, Type profiler) e o poder dos linters nesse momento.
BDD: Torne viva a documentação de seus sistemasVitor Mattos
Veremos um pouco de tudo, uma apresentação da importância de se fazer testes, testes unitários, testes funcionais, pirâmide de testes, como fazer com que os testes se tornem uma documentação viva de um sistema, como escrever testes com gherkin, a ferramenta behat para escrita de testes funcionais e uma pincelada rápida sobre CI, CD e como implementar a cultura de testes em ambientes hostis a testes.
Palestra apresentada no PHPRS 2017
Palestra ministrada na trilha .NET para o TDC São Paulo 2018.
Nesta palestra mostro técnicas de programação funcional com a linguagem C#, permitindo aproveitar tanto o paradigma funcional quanto o orientado a objetos.
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso códigoWeverton Timoteo
Talk apresentada no evento gratuito TDC Online Recife 2020 na sala Locaweb <pro>.
Falei um pouco sobre as principais novidades no Ruby 3 (Ractor, Scheduler, RBS, Type profiler).
O mercado de internet evolui em uma velocidade muito rápida, se não formos capazes de acompanhar as evoluções e apresentar inovações, ficamos para trás. Ruby e Rails vem trazer ao mundo do desenvolvimento web a produtividade e alegria necessária!
Aula 10 da disciplina de Programação Orientada a Objetos, ministrada pelo Departamento de Computação da Universidade Federal de Sergipe.
Apresenta os conceitos sobre Polimorfismo.
Apresentação do trabalho final da disciplina de Linguagem de Programação. Linguagem escolhida: Java. Objetivo: fazer uma descrição geral, comparando java à outras linguagens
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...Weverton Timoteo
Talk apresentada no evento gratuito Ruby Summit Brasil 2020 organizado pela comunidade e para comunidade.
Falei um pouco sobre as principais novidades no Ruby 3 (Ractor, Scheduler, RBS, Type profiler) e o poder dos linters nesse momento.
BDD: Torne viva a documentação de seus sistemasVitor Mattos
Veremos um pouco de tudo, uma apresentação da importância de se fazer testes, testes unitários, testes funcionais, pirâmide de testes, como fazer com que os testes se tornem uma documentação viva de um sistema, como escrever testes com gherkin, a ferramenta behat para escrita de testes funcionais e uma pincelada rápida sobre CI, CD e como implementar a cultura de testes em ambientes hostis a testes.
Palestra apresentada no PHPRS 2017
Palestra ministrada na trilha .NET para o TDC São Paulo 2018.
Nesta palestra mostro técnicas de programação funcional com a linguagem C#, permitindo aproveitar tanto o paradigma funcional quanto o orientado a objetos.
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso códigoWeverton Timoteo
Talk apresentada no evento gratuito TDC Online Recife 2020 na sala Locaweb <pro>.
Falei um pouco sobre as principais novidades no Ruby 3 (Ractor, Scheduler, RBS, Type profiler).
O mercado de internet evolui em uma velocidade muito rápida, se não formos capazes de acompanhar as evoluções e apresentar inovações, ficamos para trás. Ruby e Rails vem trazer ao mundo do desenvolvimento web a produtividade e alegria necessária!
Corellian yritysesittely. Corellia Helsinki Oy on julkaisu-, viestintä- ja markkinointiammattilaisia palveleva koulutus-, konsultointi-, ja avunantoyritys sekä Adoben virallinen koulutuskumppani Suomessa.
The Flagstaff CVB has launched their new advertising campaign. Check out the new imagery and thoughts behind it. Visit us at FlagstaffArizona.org for more information about Flagstaff.
Flagstaff is the destination for all seasons. With an eclectic mix of small-town charm and the simplicity of the great outdoors; Flagstaff is alive with culture, natural beauty, and history. Located in the cool pine covered mountains of northern Arizona, Flagstaff is not the experience you may expect. At 7,000 feet elevation, temperatures rarely exceed 90 degrees in the summer and fall brings a brilliant change of color. Outdoor enthusiasts have hundreds of miles of trails to explore and for those who like to hit the town, many choices of locally-owned shops, restaurants and galleries to peruse. History buffs will delight in Route 66 nostalgia and the museums dedicated to Flagstaff’s pioneering past
There are many unanswered questions about faith in Christ, even to those that confessed christianity. This is the essence the Holy spirit inspired this message, so your doubt could be cleared away by my strong faith in Christ Jesus.
Giá 10k/5 lượt download Liên hệ page để mua: https://www.facebook.com/garmentspace
Xin chào, Nếu bạn cần mua tài liệu xin vui lòng liên hệ facebook: https://www.facebook.com/garmentspace Tại sao tài liệu lại có phí ??? Tài liệu một phần do mình bỏ thời gian sưu tầm trên Internet, một số do mình bỏ tiền mua từ các website bán tài liệu, với chi phí chỉ 10k cho 5 lượt download tài liệu bất kỳ bạn sẽ không tìm ra nơi nào cung cấp tài liệu với mức phí như thế, xin hãy ủng hộ Garment Space nhé, đừng ném đá. Xin cảm ơn rất nhiều
Doctrine é uma ferramenta de ORM (mapeamento objeto-relacional) para
PHP que sobrepõe a poderosa DBAL (camada de abstração de Banco de
Dados) PDO do PHP.
Um de seus principais recursos é a possibilidade adicional de escrever
consultas à base de dados através de um dialeto-SQL OO (orientado à
objeto) chamado DQL inspirado no HQL do Hibernate. Isto provê aos
desenvolvedores uma alternativa poderosa ao SQL que mantém o máximo de
flexibilidade sem qualquer necessidade de duplicação de código.
O tema da palestra é apresentar a ferramenta como uma solução ágil
para problemas recorrentes.
Palestra sobre novos recursos do C# 6.0 realizada durante o Interopmix 2015 (24/10/2015).
Tópicos apresentados:
- Visual Studio 2015, C# 6.0 e mais...
- Alguns recursos da nova versão do Visual Studio
- Novos recursos do C# 6.0
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry PiresComunidade NetPonto
Apresentação sobre as novas funcionalidades do CSharp 4, adicionadas no .NET Framework 4.0, com demonstrações práticas de utilização de cada uma destas funcionalidades, na 1ª Reunião Presencial da Comunidade NetPonto, no Porto
Palestra online sobre novos recursos do C# 6.0 realizada para o grupo DotNetBaixada (06/11/2015).
Tópicos apresentados:
- Visual Studio 2015, C# 6.0 e mais...
- Alguns recursos da nova versão do Visual Studio
- Novos recursos do C# 6.0
Aqui são apresentados as técnicas de Desenvolvimento Ágil: eXtreme Programming. Simples e prático.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Palestra apresentada no AgileBrazil 2018.
O Git é sem dúvida uma das ferramentas que mais tem potencial de impactar o trabalho da pessoas desenvolvedora de software – desde que ela o conheça bem. Um conhecimento superficial do Git fará com que a pessoa o utilize de forma parecida com que ele usava o Subversion, por exemplo, deixando passar diversas oportunidades.Nessa sessão veremos como o Git pode deixar a programação mais ágil, vamos tirá-lo de uma posição de ferramenta de apoio para levá-lo a um protagonismo no workflow de programação, sendo menos importante somente que a escrita do código em si e suas técnicas.Veremos como usar o Git como instrumento de comunicação do time, além de técnicas que permitem a pessoa foque no código em vez de focar no versionador.
Analisando dumps de memória de aplicações .NETGiovanni Bassi
Palestra apresentada no .NET Community Summit 2018 do iMasters.
(os slides estão com borda branca porque o slideshare não aceitou o upload de outra forma)
Palestra apresentada no meetup do DockerSP. https://www.meetup.com/Docker-Sao-Paulo/events/234372170/
Nessa palestra veremos como montar um processo de build de uma aplicação conteinerizadas, em conjunto com o Docker Hub. Veremos ainda quais são os artefatos e como trabalhar com a promoção entre ambientes. Ao final, montaremos o processo de continuous deployment, opcionalmente colocando na mão do responsável pelo negócio a tomada de decisão da publicação.
28. Ferramental C# 4.0 (Visual C# 2010) está presente no Visual Studio 2010 Beta 1 lançado em Maio Download do Beta tem apenas 1.3 GB, disponível em: http://tinyurl.com/vs10b1 Também no VS10: VB X F# DLR (suporte para IronRuby, IronPython, etc...)
30. C# e VB Lado a Lado com VB Sem separação de perfil de desenvolvedor (Mas não espere XML Literals no C# )
31. Quatro Grandes Novidades Construções dinâmicas Argumentos opcionais e argumentos nomeados Variância para tipos genéricos Melhorias na interoperabilidade com o COM
33. Esclarecendo Argumentos opcionais Permite omitir argumentos na chamada de uma função, usando valores padrão Argumentos nomeados Permite dizer os nomes dos argumentos em uma chamada de função Igualzinho há no VB.Net desde o .Net 1.0 e VB 7 (2002)
42. Como era antes? var elevador2 = newElevadorCS(); elevador2.Subir(2, 3);
43. Como é agora? var elevador2 = newElevadorCS(); elevador2.Subir(); elevador2.Subir(velocidade: 2); elevador2.Subir(velocidade: 2,andares: 3);
44. Regras Você pode nomear qualquer argumento, seja ele opcional ou não Argumentos nomeados podem ser chamados em qualquer ordem As chamadas são feitas na ordem em que são declaradas do chamador, e não na função publicvoid Subir( int andares = 1, int velocidade = 1) {} elevador2.Subir( velocidade: this.ObterVelocidade(), andares: this.ObterAndares() ); Primeiro Segundo
48. Exemplo Teste com Cucumber e RSpec (IronRuby): Feature: Search courses In order to ensure better utilization of courses Potential students should be able to search for courses Scenario: Search by topic Given there are 240 courses which do not have the topic "biology" And there are 3 courses A,B,C that each have "biology" as one of the topics When I search for "biology" Then I should see the following courses: | title | | A | | B | | C |
49. Entendendo a infra DynamicLanguage Runtime (DLR) agora é parte da BCL Microsoft.CSharp é obrigatória para trabalhar com dynamic Somente no .Net 4.0
50. Entendendo o dynamic Tipos são “estáticamentetipados como dinâmicos” Tipos dinâmicos são System.Object’s Tipos dinâmicos se propagam nas chamadas Tipos dinâmicos não possuem checagem em tempo de compilação ou Intelisense
51. Exemplos dynamic d; dynamic d1 = 3; d1 = DateTime.Now; d.QualquerCoisa(3); Console.Writeline(d[10]); d.Propriedade1 = d.Propriedade2; d += 1; var a = d + Datetime.Now(); d("algumparâmetro", 3); var d2 = d.AlgumValor(); var d3 = ObterVariavelDinamica();
52. Entendendo o StaticDispatch É o comum até o C# 3.0 Ligação forte com o método sendo chamado Sem perda de performance
53. Entendendo o DynamicDispatch A resolução do método é feita em tempo de execução Se for uma chamada sobre um tipo dinâmico (dynamicreceiver), a chamada é dinâmica (ligada em runtime) Se for uma chamada sobre um tipo e método estáticos (staticreceiver), mas houver um parâmetro dinâmico, também é uma chamada dinâmica (ligada em runtime)
54. Cuidado O que acontece aqui? staticintFuncao(int z) { return 1; } staticvoid Main() { dynamic x = 3; DateTime y = Funcao(x); }
55. DynamicDispath != Virtual Dispath Só pra constar, porque não vai dar tempo de explicar Vejam uma discussão no .Net Architects: http://tinyurl.com/virtualdispatch
56. Como o DLR encontra o método Verifica o cache de chamadas, se houver, utiliza Se o objeto for um IDynamicMetaObjectProvider, utiliza sua implementação Se não for, utiliza o Binder do C#, no caso, com Reflection Se não achar: RuntimeBinderException
57. Resolução de sobrecargas (overloads) Mesma regra: se a chamada do método for dinâmica, o overload é avaliados somente em runtime O DLR busca uma assinatura idêntica no cache Se houver ele usa, senão ele busca uma converter os parâmetros, e achando, guarda no cache Se não achar: RuntimeBinderException
62. Regra 1 A idéia é replicar o comportamento estático, como se as chamadas não fossem dinâmicas
63. Regra 2 Dynamic é um Object. Cuidado com Boxing e Unboxing. dynamic d = new AlgumaClasse(); d.s = default(S); d.s.i = 6; S é uma struct i é um campo inteiro da struct Valendo mil reais… Qual o valor de i?
67. Novidades Não precisamos mais da palavra-chave ref(o compilador coloca sozinho) Não precisamos de cast de tipos de valor para object Com o suporte de parâmetros opcionais e nomeados, passamos só o necessário Igualzinho ao que há no VB.Net desde o .Net 1.0 e VB 7 (2002) Temos ainda opção de mesclar o assembly de interop
76. Variância O que é variância? Define como ocorrem as conversões entre tipos Covariância Permite conversões do mais específico para o mais genérico Contravariância Permite conversões do mais genérico para o mais específico Invariância Permite conversões apenas para o mesmo tipo
78. Já temos covariância no C# 3 Em arrays: string[] textos = {}; object[] objetos = textos; De métodos para delegates (no retorno): staticstringRetornaString() {} Func<object> func = RetornaString;
79. Já temos contravariância no C# 3 De métodos para delegates (nos parâmetros): staticvoidRecebeUmObjeto(objectobj) { } Action<string> func3 = RecebeUmObjeto;
80. Mas não há variância entre tipos genéricos no C# 3 IList<string> textos = newList<string>(); IList<object> objetos = textos; Não compila no C# 3.0 Porque... Um botão não é uma string objetos.Add(newButton());
81. Direção do dado Classe de genérico para específico Contravariante de específico para genérico Covariante Dado in out
82. Agora: Variância para tipos e delegates genéricos Covariante: publicinterfaceIEnumerable <out T> : IEnumerable { IEnumerator<T> GetEnumerator(); } Se consigoenumerarmamíferos, consigoenumeraranimais
83. Agora: Variância para tipos e delegates genéricos Exemplo de uso (covariante): IEnumerable<string> textos = ObterEnumerador(); IEnumerable<object> objetos = textos;
84. Agora: Variância para tipos e delegates genéricos Contravariante: publicinterfaceIComparer<in T> { int Compare(T x, T y); } Se consigocompararanimais, consigocompararmamíferos
85. Agora: Variância para tipos e delegates genéricos Exemplo de uso (contravariante): IComparer<object> comparadorObjetos; IComparer<string> comparadorStrings = comparadorObjetos;
86. Agora: Variância para tipos e delegates genéricos Covariante e Contravariante: publicdelegate TResultFunc<in T1, in T2, outTResult> (T1 arg1, T2 arg2);
87. Agora: Variância para tipos e delegates genéricos Exemplo de uso (covariante e contravariante):
88. Agora: Variância para tipos e delegates genéricos Exemplo de uso (contravariante): Func<Animal, Macaco> ConverteParaMacaco = animal => { varmacaco = animal asMacaco; if (macaco != null) returnmacaco; returnnull; }; Func<Mamifero, Mamifero> PassaUmMamiferoERetornaUmMamifero = ConverteParaMacaco;
89. Limitações Só tipos de referência (structs e tipos primitivos não são permitidos) Parâmetros out e ref são sempre invariantes Todos esses são inválidos: publicdelegatevoidAlgumDelegate<in T>(ref T valor);publicdelegatevoidAlgumDelegate<out T>(ref T valor); publicdelegatevoidAlgumDelegate<in T>(out T valor); publicdelegatevoidAlgumDelegate<out T>(out T valor);
92. Recursos e links úteis (2) http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx (C# 4 Resources) http://blogs.msdn.com/ericlippert/ (Eric Lippert - Microsoft) http://blog.fujiy.net/blog/category/Covariancia-e-Contravariancia.aspx (Série do Eric Lippert sobre covariância traduzida pelo Felipe Fujiy) http://blogs.msdn.com/samng/archive/tags/Runtime+binding/default.aspx (Sam NG - Microsoft)