Capítulo 5
Visual Studio 2008• Net Framework
• Soluções e projetos
O Visual Studio é um conjunto de ferramentas de desenvol-vimentoquecontémeditoresdecódigos, IntelliSense, assistentes ediferenteslinguagensemummesmoambientededesenvolvimentointegradoparaprin-cipianteseprofissionais.Apresenta-seemdiferentesplataformas:PC s,servido-res,aplicaçõeswebemóveis.Emumavisãomaisabrangente,oVisualStudiopermiteodesenvolvimentorápidodeaplicativos,recursosdedepuraçãoebancodedados,semdependerdosrecursosoferecidospeloFramework3.5.AuxilianodesenvolvimentoWebhabilitadoparaoAJAX,contandoaindacomosrecursosdoASP.NET.
5.1. .nEt FrameworkDesenvolvidopelaMicrosoft,o.NETFrameworkéummodelodeprograma-çãodecódigogerenciadoparacriaraplicativoscliente,servidoresoudispositi-vosmóveis.Éformadoporumconjuntovariadodebibliotecasquefacilitamodesenvolvimentodeaplicações,desdeasmais simples até asmais complexas,bemcomoainstalaçãoedistribuiçãodeaplicações.Baseadoemtecnologiademáquinavirtual,o.NETFrameworkétotalmenteorientadoaobjetos.
O .NET Framework 3.5 incrementa as versões anteriores comnovas imple-mentaçõesASP.NETeAJAXeaumentaaintegraçãocomoLINQ(LanguageIntegratedQuery, ou consulta integradade linguagem)que é umanova fer-ramentadepesquisasembasededados,alémdesuportetotalparaWindowsWorkflowFoundation(WF),WindowsCommunicationFoundation(WCF),WindowsPresentationFoundation(WPF)eWindowsCardSpace.Suaestrutu-raécompostapordiferentescamadas,comopodemosvisualizarnafigura196.
Na camada inferior, encontramos a Common Language Runtime (CLR) outempodeexecuçãodelinguagemcomum.Suafinalidadeéexecutarasaplica-ções,criandoumambientedemáquinavirtualecompilandoaslinguagensdeprogramação do .NET Framework em código nativo. O .NET FrameworksBaseClass,nasegundacamadadebaixoparacima,representaasbibliotecasdeclassesdisponíveisparaodesenvolvimentodeaplicativos(consulteoquadroRe-cursos de classes disponíveis napágina188).ÉoprincipalpontodeinteratividadecomoRuntime(tempodeexecução).
Naterceiracamadaascendente,estáoADO.NET(DataeXML).OActiveXDataObjects(ADO)oferecetodososrecursosnecessáriosparaacriaçãoema-nipulação de bancos de dados fornecidos por meio das classes System.Data,.Common,.OleDb,.SqlClients,SqlTypes,.Odbce.Xml.
AJAX (acrônimo para a expressão em inglês Asynchronous
Javascript And XML, que literalmente pode ser
traduzido para Javascript e XML Assíncrono) é o
nome dado à utilização metodológica de
Javascript e XML para fazer com que as páginas
web se tornem mais interativas.
O Microsoft .NET Framework 3.5 é o modelo de programação do Windows Vista e, segundo a
própria Microsoft ao anunciar o lançamento, “combina o
poder do .NET Framework 2.0 com novas tecnologias para construção de aplicativos”.
Permite a realização de novas experiências, comunicação integrada e sem fronteiras, além de ser útil para vários
processos corporativos.
Figura 196.NET Framework.
NaquartacamadatemosWebServiceseWebForms.OWebServicerepresentaaintegraçãoentreosdadosdediferentesaplicaçõeseplataformas,permitindooenvioerecepçãodedadosnoformatoXML.Tudodemaneiramuitofácil.Paraqueissoocorra,entraemcenaoWebForms,criandoumambientededesen-volvimentosemelhanteàsferramentasquenormalmenteutilizamos,clicandoearrastando,assimcomosefaznoFrontPagedaMicrosoft.JáoWindowsForméumaevoluçãodosformuláriosutilizadosparaprogramação.
Localizadonapenúltimacamadadebaixoparacima,oCommonTypeSys-tem(CTS),quepodeserliteralmentetraduzidocomosistemadetipocomum,existeparaqueocorraaintegraçãoentreaslinguagensdeprogramação.Defi-necomoostiposdedadosserãodeclarados,usadosegerenciadosnomomentodaexecuçãodoaplicativo.
Notopo,aparecemaslinguagensdeprogramaçãoutilizadasparaodesenvolvimen-todaaplicação,comoVB,C++,C#eJScript.Assim,pode-seconcluirqueocon-juntodetodasascamadasmencionadasrepresentaopacotedoVisualStudio.Net.
5.1.1. máquina virtual
Amáquinavirtualservecomoumacamadaentreocódigoeosistemaoperacio-nal.Todocódigoescritono.NET(VisualBasic,C#ouqualqueroutralingua-
ASP.NET, sucessora da tecnologia ASP (de
Active Server Pages ou páginas de servidor
ativo) é a plataforma da Microsoft usada para
o desenvolvimento de aplicações web.
InFoRmátICa 4
186
CaPítulo 5
187
gem),écompiladoparaumalinguagemintermediáriachamadaCIL(CommonIntermediateLanguageoulinguagemintermediáriacomum),queédistribuídaeexecutadapelosdiferentesclientesdaaplicação.
5.1.2. Garbage collector (coletor de lixo)
Mecanismointernoquepossibilitaaretiradadamemóriadeobjetosquenãoestãosendomaisutilizados.Aoperaçãoéfeitasemainterferênciadousuário,emintervalosdeociosidadedaCPU.
5.2. Soluções e projetosQuandoiniciamosumaaplicaçãoouserviçonoVisualStudio,temosumpro-jetoquefuncionacomoumrepositórioparagerenciamentodoscódigosfonte,conexõescombancos,arquivosereferências.ElerepresentaumapastadaSolu-ção(Solution),queporsuavezpoderáconterinúmerosprojetosindependentes
entresi,elaboradosemdiferenteslinguagenseorganizadosnoformatodepastassemelhanteaoWindowsExplorer.Osarquivosdeprojetos(.vbproj,.csprojetc.)eosarquivosdesolução(.sln)estãonoformatoXML.
5.2.1. Iniciando o Visual Studio – Solution
AoiniciaroVisualStudiopelaprimeiravez(figura197),surgeateladeStartPage(oupáginainicial).NomenuFile(arquivo),entreemNew(novo)ecliqueemProject(projeto),comoilustraafigura198.
Emtemplates(modelos),escolhaotipodeprojetoaserelaborado(WindowsFormApplicationouaplicaçãodeformulárioWindows,ConsoleApplicationouaplicaçãodepaineldecontroleetc.).Lembre-sedenomearoseuprojetoe
• System: entre os seus inúmeros recursos, está o suporte para programação, os tipos de bases (String, Int32, DateTime, Boolean etc.) e as funções matemáticas.
• System.CodeDom: para a criação e execução de código de maneira imediata.
• System.Collections: defi ne containers como listas, fi las, matrizes etc.
• System.Diagnostics: todas as classes necessárias para fazer diagnósticos.
• System.Globalization: suporte para a globalização, ou seja, essa classe integra toda a plataforma do Framework.
• System.IO: suporte para o FileSystem, usando classes de manipulação de arquivos e diretórios.
• System.Resources: usado para tradução do aplicativo em diferentes idiomas e também para retorno de mensagem de acordo com o idioma selecionado pelo usuário.
• System.Text: suporte para a codifi cação e ao StringBuilder, para manipulação de Strings.
• System.Text.RegularExpressions: suporte para expressões regulares.
Recursos de classes disponíveisFigura 198 Janela de Projeto.
Figura 197 O Visual Studio.
InFoRmátICa 4
188
CaPítulo 5
189
indicaralocalização,ouseja,ondeosarquivosserãogravadoseonomedasuaSolution(solução),comomostraafigura199.ConfirmeosdadoseteremosaSolutionabertaparaodesenvolvimentodaaplicação.
Caso o projeto seja elaborado utilizando o Visual Basic, o procedimentoseráomesmo.EscolhaemProjectTypes(tiposdeprojeto)aopçãoOthersLanguages(outraslinguagens),depoisVisualBasice,porfim,atemplatenaqualdesejatrabalhar.
5.2.2. Conhecendo o Visual Studio
OVisualStudioapresentaumasériedejanelaseguiasquefazempartedasuaIDE(IntegratedDevelopmentEnvironmentouAmbientedeDesenvolvimentoIntegrado).Confiraalgumas,aseguir.
Barra de ferramentas(toolbar),quedisponibilizaosbotõesdecomandosmaisutilizados(figura200).
gramaçãodoformulário;Form1.Designer.cs,paraprogramaçãovisualdofor-mulário;eProgram.cs,oprogramaprincipal,noqualencontramosométodomain(),quedaráinícioàaplicação.
ParaaplicaçõesemVisualBasic,serádisponibilizadooarquivoForm1.vb,quepossuiamesmafunçãodoForm1.cs.Confira,aseguir,janelasdisponíveisesuasfunções:
ToolBox (caixa de ferramentas):contémcomponentesparaodesenvolvimentodoprojeto,osquaisestãodivididosemguiasdeacordocomotipodeaplicação.Nessecaso,podemosverificar(figura202)aabadecomponentesdacategoriaCommonControls(controlescomuns).
Form (formulário):essajanela(figura203)receberáoscomponentesdatool-boxeaprogramaçãocorrespondente.Oscomponentesserão“arrastados”sobreoFormparacomporainterfacedousuárioeterãosuaspropriedadesmodifica-dasdeacordocomoprojeto.Paraativarajaneladecódigoerealizaraprogra-mação,éprecisodarumduplocliquesobreocomponenteouformulário.
Properties (propriedades):permitealteraraspropriedadesdoscomponentes,quepodemaparecerorganizadasporcategoriaouemordemalfabética(figura204).
Ajaneladepropriedadetraz,deacordocomcadacomponentetoolbox,umasériederecursosparaconfiguração.Porexemplo,umcomponenteLabel(rótulo),utilizado
Figura 202 ToolBox.
Figura 199 Definição da Solution.
Figura 200Toolbar.
Solution Explorer:mostraosarquivosquefazempartedoseuprojeto.Éseme-lhanteaoExplorerdoWindows,poispermitecriar,excluireimportararquivos(figura201).
SeanalisarmosumaaplicaçãoWindowsFormApplicationemC#,dentrodajanelaSolution,podemosencontrarosseguintesarquivos:Form1.cs,parapro-
Figura 201 Solution Explorer. Figura 203
Form.
InFoRmátICa 4
190
CaPítulo 5
191
paraincluirexpressõesnoprojeto,possuindodiversaspropriedades–taiscomoname(nome),text(texto),visible(visível),font(fonte),forecolor(cor)–equepoderãosermanipuladasdiretamentenajanelaoupormeiodeprogramação,utilizandoanota-çãode“ponto”,conformeoseguintecódigo,queocultaoLabel:
Label1.Visible = false;
CodeandTextEditor(editordetextoedecódigo)éajanelaqueutilizaremosparaimplementaroscódigosdeprogramação(figura205).Paraacessá-la,bastaclicarduasvezessobreelaouemqualquercomponente.OutraopçãoéusarosbotõesCode(có-digo)eView(visualizar)najaneladeSolutionExplorer,comomostraafigura206.
Figura 209 Guias de janelas.
Figura 204Properties.
Figura 205 Code and text Editor.
Figura 206Em destaque, os botões
Code e View.
Auto Hide:umapontadorindicaaposiçãodajanela,queficaráoculta.Bastaumsimplesmovimentodomousesobreotítulodessajanela(figura207)paraque ela seja aberta. Para fixá-la, utilize o ícone semelhante a um preguinho(figura208),localizadonabarradetítulo.
Podemosmovimentarasjanelasecolocá-lasemqualquerlugardaaplicaçãocomaajudadosguias.Paraisso,cliquenabarradetítuloemantenhaobotãodomousepressionado,arrastandoajanelaparaqualqueráreadeseudesktop.Imediatamen-te,surgirãoasindicaçõesdasguias(figura209).Escolhaumadelasesolteajanela.
Figura 207 Auto Hide.
Figura 208 Fixar janela.
5.2.3. Gerenciador de janelas
OVisualStudioapresentamuitasjanelase,parafacilitaroseugerenciamento,existemquatrorecursos.Confiraquaissão,aseguir.
Dockable:colocaajanelaabertajuntoàjanelaprincipaldoprograma.
Hide:fechaaquelajanelae,paraabri-lanovamente,usaomenuView.
Floating:ajanelaficaflutuante,podendoserdeslocadaparaqualquerpartedodesktop.
5.2.4. nomenclatura de componentes
Cadacomponenterecebeumanumeraçãoautomáticaquandoinseridonopro-jeto(Label1,Label2,Label3etc.).Nãoháproblemasemmanteressesnomes,mas,paradeixarocódigomaislegívelepadronizado,omelhoréutilizarumprefixorelacionadoaotipodecomponenteeàsuaidentificação.Porexemplo:
Label1 = lblPergunta
Label2 = lblMensagemAlerta
InFoRmátICa 4
192
CaPítulo 5
193
Atabela12mostraalgunsdosváriosprefixosutilizadosnaplataforma.NET.
tabela 12 PREFIXOS USADOS NA .NET
Componente
label
textBox
DataGrid
Button
ImageButton
DropDownlist
RadioButtonlist
Image
Panel
Prefi xo
lbl
txt
dtg
btn
imb
ddl
rbl
img
pnl
Prefi xo
lst
Dtl
Rep
Chk
Cbl
Rdo
PhD
tbl
Val
Componente
listBox
Datalist
Repeater
Checkbox
CheckBoxlist
RadioButton
PlaceHolder
table
Validators
5.2.5. IntelliSense
Aodigitaralgumainstrução,apareceráumasériedecomplementosrelacionadosaela.Quandoescrevemos“Console”,porexemplo,sãodisponibilizadosváriosmétodos.ComaajudadateclaTaboudaBarradeEspaço,ainstruçãosecom-põenaturalmente(figura210).
Duranteessaatividade,podemosrecorreraalgunsbotõesauxiliares(figura212)comoBreak,StopeRestart.
5.2.7. Identifi cação de erros
OVisualStudionosajudaaidentificarouinterpretaralgunserrosquepo-democorrerduranteoprocessodecriaçãoouexecuçãodocódigo.Confiraalguns,aseguir.
Erro de sintaxe: geralmente é identificado comuma linha emvermelho su-blinhandoaexpressão.Noexemplomostradonafigura213,estãofaltandoasaspasnofechamentodaexpressão.
Figura 211 Executando a aplicação.
Figura 212 Controles de execução.
Figura 210IntelliSense.
Instrução
Opções de complemento
Figura 213Erro de sintaxe.
Erro antes da execução: quandoocódigoapresentaalgumerroeumaexecu-çãoéforçada,umacaixadediálogosolicitaaousuárioquecontinueaexecuçãodocódigo,mesmoconstandoerro(figura214).Issofazcomqueaúltimaversãocorretasejaexecutada,ignorandoaatual.
Figura 214 Janela de erro.
Figura 215 Painel de erros.
Figura 216Erro de classe.
NaparteinferiordoVisualStudio,podemosvisualizaropainel(errorlist)deErros,WarningseMessages(figura215).
Cliquesobreoerroidentificado(1,2etc.)paraqueelesejaselecionadonocódi-goparavisualização.
Erro de classe ou método:comumenteidentificadocomumalinhaemazulsublinhandoaexpressão(figura216).Noexemplo,ainstruçãoestáescritadeformaerrada,poisocorretoéWriteLine().
5.2.6. Executando a aplicação
Paraexecutaraaplicação,pressioneatecla“F5”,ou,nabarrademenu,cliquenoitemDebug.EscolhaaopçãoStartDebuggingouutilizeobotãodabarradeferramentas(figura211).
InFoRmátICa 4
194
CaPítulo 5
195