Linguagem C#
Neste guia de consulta voc� encontrar� diversos conte�dos que podem ser usados ao longo dos seus estudos sobre a linguagem de programa��o C#. Consulte este guia para aprender mais sobre certos recursos da linguagem.
Quer ter acesso a todos os cursos desse Guia?Introdu��o ao C#
Para que voc� comece a desenvolver aplica��es com C# e .NET, o primeiro passo � preparar o ambiente, instalando as ferramentas necess�rias. No curso abaixo voc� ver� como proceder:
C# � uma linguagem de programa��o criada pela Microsoft como parte da plataforma .NET. Por ter uma sintaxe parecida com o Java e C++, o C# pode ser indicado mesmo para programadores iniciantes, que j� conhecem a programa��o Orientada a Objetos. Com ela podemos criar desde aplica��es web, desktop, mobile e tamb�m jogos eletr�nicos.
Nos cursos a seguir voc� aprender� desde os conceitos mais b�sicos da linguagem C# at� os recursos de uma das suas vers�es mais recentes:
J� os links abaixo podem ser usados para consultar rapidamente recursos espec�ficos da linguagem e sua sintaxe:
-
Documenta��oIntrodu��o a Vari�veis e Constantes no C#
-
ArtigoConvers�es de dados impl�citas e explicitas em C#
-
ArtigoTipos de Operadores do C#
-
Documenta��oEstrutura condicional If/Else
-
Documenta��oEstrutura condicional Switch/Case
-
Documenta��oEstrutura de repeti��o While
-
Documenta��oEstrutura de repeti��o Foreach
-
Documenta��oArrays
-
Documenta��oNullable Types
-
ArtigoManipula��o de Strings em C#
Explorando o .NET Framework
At� aqui voc� j� viu como utilizar v�rios recursos da linguagem C# e deve saber que quando usamos essa linguagem normalmente estaremos usando o .NET Framework, que nos prov� um conjunto de classes e ferramentas para o desenvolvimento de aplica��es.
No curso abaixo aprenderemos o que � o .NET Core, uma plataforma para desenvolvimento de aplica��es desenvolvida e mantida pela Microsoft. Veremos aqui suas principais caracter�sticas e diferen�as com rela��o ao .NET Framework.
Bibliotecas de classes
Bibliotecas de classes (class libraries) s�o tipos de projetos usados para agrupar classes, normalmente de acordo com um objetivo (entidades, valida��es, etc). Tais bibliotecas podem ser referenciadas por outros projetos, como ASP.NET MVC, Windows Forms. etc. Assim algumas funcionalidades ficam centralizadas, bem como sua manuten��o e testes. No curso abaixo voc� aprender� a criar e utilizar essas class libraries no Visual Studio:
Cole��es
O .NET Framework � um conjunto de ferramentas e classes que suportam o desenvolvimento de aplica��es com a linguagem C# (al�m de outras linguagens). Entre as v�rias classes do framework que s�o de uso frequente em nosso dia a dia est�o as cole��es, que implementam diferentes estruturas de dados, tais como listas, filas, pilhas, tabelas hash. Nos artigos a seguir voc� poder� conhecer algumas das principais classes de cole��es que voc� pode usar em suas aplica��es com C#:
-
ArtigoSortedList - Dominando as classes do .NET
-
ArtigoQueue e Stack � Trabalhando com os modelos FIFO e LIFO em .NET
-
ArtigoArrayList, Hashtable e BitArray em C#
Essas e outras classes de cole��es implementam v�rias interfaces que padronizam seu funcionamento e que voc� mesmo pode implementar em suas classes pr�prias. Essas interfaces encontram-se no namespace System.Collections, que voc� pode conhecer em maiores detalhes no artigo abaixo:
Tratamento de exce��es
Exce��es ocorrem com frequ�ncia no c�digo e saber lidar com elas � fundamental para garantir que as aplica��es se comportem adequadamente nessas situa��es, sem travar ou parar de funcionar. Nesse sentido o tratamento de exce��es � parte fundamental de qualquer linguagem, pois permite identificar os problemas que ocorreram e definir fluxos alternativos para o programa. Observe a Figura 1.
Para aprender a tratar exce��es em C#, sugerimos os seguintes conte�dos:
-
CursoC# Exceptions: Trabalhando com exce��es em C#
-
Artigo.NET Exceptions: Tratamento de Exce��es em .NET
-
ArtigoDebug de aplica��es .NET e a propriedade InnerException
Ainda no contexto de identifica��o e tratamento de erros � importante saber utilizar os recursos de depura��o/debug do Visual Studio. Um deles � o breakpoint, que permite pausar a execu��o da aplica��o em determinado ponto do c�digo para que possamos avaliar seu estado naquele momento. Para saber mais, acesse o link abaixo:
Generics
Gerenics � um recurso da linguagem C#, tamb�m presente em outras linguagens atuais, que simplifica e torna mais seguro o trabalho com objetos cujo tipo n�o � conhecido inicialmente. Ou seja, com esse recurso podemos trabalhar com tipos de dados "gen�ricos" sem ter de recorrer a declarar todos os objetos como um supertipo (como a classe Object) e realizar casts para manipul�-los de acordo com seu tipo real. Para conhecer melhor esse recurso sugerimos a leitura dos artigos a seguir:
Manipula��o de arquivos
Ler, escrever, criar e excluir arquivos s�o tarefas comuns em diferentes tipos de aplica��o. Em C# contamos com um conjunto de classes que torna bastante simples implementar essas funcionalidades, como voc� poder� ver nos seguintes artigos:
A maior parte das classes para manipula��o de arquivos est� contida no namespaces System.IO (de Input/Output), que � explorado em detalhes nos artigos abaixo:
-
ArtigoPrimeiros passos com o namespace System.IO - Parte I
-
ArtigoPrimeiros passos com o namespace System.IO - Parte II
Caso voc� precise lidar especificamente com arquivos ZIP tamb�m h� classes espec�ficas para isso. Se for esse o caso, sugerimos a leitura do artigo abaixo:
LINQ
LINQ (Language Integrated Query) � uma parte da linguagem C# que permite consultar cole��es de dados com uma sintaxe semelhante � da linguagem SQL, com cl�usulas para filtros e jun��es entre resultados, por exemplo. Para conhecer esse recurso, confira os links abaixo:
Uma possibilidade muito interessante do LINQ � a de utilizar Lambda Expressions para realizar as consultas, ao inv�s da sintaxe padr�o de queries. Caso voc� ainda n�o saiba o que s�o Lambda Expressions, voc� pode ver o curso abaixo e logo em seguida ver como aplic�-las no LINQ:
Como voc� j� deve ter visto at� aqui, o LINQ � bastante flex�vel e pode ser usado em diferentes contextos. Por exemplo, nos links abaixo voc� pode ver exemplos de utiliza��o desse recurso na leitura de arquivos XML e na persist�ncia de dados:
Threads
Por meio de threads uma aplica��o pode executar diferentes tarefas de forma concorrente, evitando o sobrecarregamento do fluxo principal do programa. Por exemplo, por meio de threads podemos executar um procedimento pesado em segundo plano, deixando a interface com o usu�rio livre para intera��es.
Para dar os primeiros passos com threads em C# voc� pode ver o seguinte artigo:
Como voc� deve ter visto, com threads conseguimos implementar processamento ass�ncrono e paralelo, o que pode nos garantir ganho de desempenho e manter a aplica��o funcional durante processamentos pesados. Para saber mais sobre programa��o ass�ncrona e paralela em C#, confira os conte�dos abaixo:
Serializa��o
Com muita frequ�ncia precisamos persistir os objetos das nossas aplica��es em arquivos ou envi�-los, por exemplo, atrav�s da internet para outras aplica��es. Nesses casos � preciso obter uma representa��o desses objetos em um formato adequado, como XML, JSON ou bin�rio. Para isso usamos a t�cnica de serializa��o, que voc� poder� conhecer em maiores detalhes nos links a seguir:
-
ArtigoSerializa��o de objetos em C#
-
ArtigoSerializa��o de objetos em XML com C#
-
ArtigoSerializa��o de objetos no formato JSON
E se voc� precisa manipular dados no formato JSON com frequ�ncia uma boa op��o � usar a biblioteca Json.NET, que � apresentada no seguinte curso:
Reflection
Reflection � uma t�cnica que tem por objetivo obter informa��es sobre objetos, classes e assemblies em tempo de execu��o. Nos artigos abaixo voc� poder� aprender a trabalhar com reflex�o em C# e algumas aplica��es pr�ticas dessa t�cnica:
Avan�ando na linguagem
Para lhe ajudar a seguir evoluindo no aprendizado do C#, indo al�m dos recursos mais b�sicos e fundamentais, separamos aqui um curso que apresenta conceitos avan�ados dessa linguagem:
Orienta��o a Objetos
Normalmente, quando come�amos a programar, o primeiro paradigma que conhecemos � o estruturado. Ele facilita o aprendizado por n�o trazer consigo tantos conceitos, como os que fazem parte da Orienta��o a Objetos. Imagine come�ar a criar algoritmos e, ao mesmo tempo, conciliar conceitos abstratos para poder programar as primeiras solu��es? N�o seria f�cil.
Portanto, � natural percorrer o caminho: Programa��o Estruturada -> Programa��o Orientada a Objetos. O �nico por�m desse processo � que algumas vezes acabamos levando algumas caracter�sticas da primeira para a segunda, caracter�sticas essas que podem prejudicar um pouco o nosso c�digo. Pensando nessa etapa de transi��o, preparamos o seguinte artigo:
Para prender mais sobre o paradigma da Orienta��o a Objetos, consulte os artigos a seguir:
-
ArtigoFundamentos b�sicos da Orienta��o a Objetos
-
ArtigoEntendendo a Orienta��o a Objetos
-
ArtigoOrienta��o a Objetos no .NET Framework
� v�lido ressaltar que a Orienta��o a Objetos tamb�m n�o � uma �bala de prata�, n�o � a op��o ideal para tudo. Ela possui vantagens e desvantagens. Para conhecer esses pontos, assim como alguns mitos que foram criados em torno dela, acesse os artigos:
Ainda est� em d�vida se deve ou por que deveria usar a POO? Fizemos um bate-papo pra lhe ajudar nesse momento:
Pilares da Orienta��o a Objetos
Ap�s o primeiro contato com a Orienta��o a Objetos, voc� deve ter observado termos como abstra��o, encapsulamento, heran�a e polimorfismo. Estes s�o os fundamentos, os quatro pilares da POO. Para aprender sobre eles, algo fundamental para programar corretamente com esse paradigma, acesse:
Coes�o e acoplamento
E agora, como saber se estou programando orientado a objetos, se estou aplicando corretamente seus conceitos? Uma maneira de sanar essa d�vida � observar se seu c�digo est� coeso e com baixo acoplamento.
Um c�digo coeso � aquele que implementa apenas o que de fato � de sua responsabilidade, por exemplo: um m�todo respons�vel por imprimir um relat�rio n�o deve saber como acessar o banco de dados. Se ele sabe como fazer isso, dizemos que ele tem baixa coes�o, o que deve ser evitado.
J� um c�digo fortemente acoplado � aquele que depende de muitos pacotes, classes e/ou m�todos para prover uma funcionalidade. Quando se deparar com situa��es assim, cuidado. O post a seguir exp�e como melhorar a qualidade do seu c�digo, o ajudando a reduzir o acoplamento entre classes.
Princ�pios SOLID
Ao avan�ar seus estudos em OO, logo voc� se deparar� com os Princ�pios SOLID. Esse termo representa cinco regras que s�o avaliadas por arquitetos e programadores como as boas pr�ticas para uma programa��o orientada a objetos, nos auxiliando na constru��o de um c�digo de f�cil leitura, manuten��o e extens�o.
O nome SOLID tamb�m representa um acr�nimo, e como apresentado a seguir, � formado pela jun��o da primeira letra do nome de cada um dos princ�pios.
Single Responsibility Principle: De acordo com esse princ�pio, cada classe deve ser planejada para possuir apenas uma responsabilidade. Sobre ele, temos alguns posts espec�ficos, os quais indicamos a seguir:
Open Closed Principle: Esse princ�pio determina que uma classe deve ser fechada para modifica��es e aberta para extens�es. Sobre ele, recomendamos os posts:
-
ArtigoOpen Closed Principle
-
ArtigoOpen/Closed Principle: Estenda comportamentos sem alterar o c�digo
Liskov Substitution Principle: Esse princ�pio est� relacionado � heran�a e indica que devemos ser capazes de substituir a classe filha pela classe pai sem que o sistema apresente problemas;
Interface Segregation Principle: J� o princ�pio da segrega��o dita que precisamos planejar interfaces espec�ficas, com prop�sito bem determinado, de modo que quando implementada a classe que o faz n�o precise codificar m�todos desnecess�rios;
Dependency Inversion Principle: Por fim, o princ�pio da invers�o de depend�ncia sinaliza que o recomendado � depender apenas de classes abstratas, e n�o de classes concretas.
Para aprender sobre todos esses princ�pios, acesse o conte�do a seguir:
Orienta��o a Objetos na pr�tica
Agora que voc� j� conhece os conceitos, que tal coloc�-los em pr�tica programando com a linguagem C#? Os artigos e o DevCast a seguir lhe ensinar�o como aplicar os conceitos da Orienta��o a Objetos com os recursos do C#:
-
ArtigoComo criar minha primeira classe em C# -
ArtigoC# Orientado a Objetos: Introdu��o -
ArtigoOrienta��o a Objetos em .NET: uma abordagem completa -
ArtigoOrienta��o a Objetos em .NET: uma abordagem completa - Parte 2 -
DevCastProgramar para uma Interface e Encapsular: o que muda - Boas Pr�ticas com C#
Relat�rios
A maioria das aplica��es conta com uma se��o de relat�rios, mas codificar essa parte pode exigir muito tempo. Existe uma gama de ferramentas, plugins e bibliotecas que ajudam nessa tarefa, como o Crystal Report, que � uma das mais comuns. Voc� confere isso nos posts a seguir:
-
CursoCrystal Reports para Visual Studio
-
ArtigoCrystal Reports: Criando relat�rios com SAP
-
ArtigoCriando Relat�rio em Crystal Reports
-
ArtigoExportando documentos em Crystal Reports .NET
A seguir voc� encontra mais exemplos de produ��o de relat�rios com outras tecnologias:
-
ArtigoFerramentas para relat�rios no ASP.NET
-
CursoRelat�rios com o Stimulsoft Reports.Web para .NET Novo!
-
ArtigoAbrindo relat�rio em janela popup em ASP.NET com JavaScript
-
ArtigoRelat�rios Inteligentes com BI, R e ASP.NET MVC
-
ArtigoComo gerar Relat�rios no ASP.NET MVC
-
ArtigoComo criar documentos PDF em .NET
-
ArtigoTrabalhando com OData e Excel
Mais sobre .NET
Al�m dos cursos e exemplos sugeridos nesse guia, a DevMedia publica com frequ�ncia novos conte�dos sobre .NET, os quais voc� pode conferir nos Guias de Consulta abaixo:
-
Guia de carreiraProgramador .NET Guia
-
Guia de consultaAcesso a bancos de dados em .NET Guia
-
Guia de consultaAplica��es web com ASP.NET MVC Guia
-
Guia de consultaWeb services RESTful com ASP.NET Web API Guia
-
Guia de consultaPadr�es de projeto e arquitetura em .NET Guia
Al�m disso, voc� pode conferir todo o conte�do de .NET clicando aqui.