Skip Navigation Links



Translate this page now :



»Programação
»Programação.NET
»Banco de Dados
»Webdesign
»Office
» Certificações Microsoft 4
»Treinamentos4
»Programação 4
»Webdesign«
»Office & User Tips«
»Grupos de UsuĆ”rios
»CĆ©lulas AcadĆŖmicas«
intcontpiada : 118
Viciado
Você já está cadastrado e participa do grupo de usuários de sua cidade ? Se não, comente o porque.
 
 
FaƧa um pequeno teste com 10 questƵes de VB
.:.
Teste seus conhecimentos em Visual Basic, SQL Server e ASP 3.0 com nossas provas on-line
.:.
Aprimore seus conhecimentos em programaĆ§Ć£o com nosso treinamento on-line de lĆ³gica de programaĆ§Ć£o
.:.
Veja nosso calendƔrio de treinamentos
Gostou da PƔgina?
Então

para um amigo!

Pesquisa personalizada
Pesquisar Dicas:

 






As novidades do Framework 2.0 e do VB.NET

A Microsoft acabou de disponibilizar os Beta 1 das versões Express de vários softwares. A idéia das versões Express é serem softwares com recursos reduzidos, voltados para estudantes e para a programação como Hobby. O grupo devASPNet já tem agendado, agora para Julho, um grande evento de 3 dias sobre a tecnologia .NET e um dos 3 dias será todo de demonstrações das ferramentas que ainda estão por vir. Confira detalhes em http://www.bufaloinfo.com.br/techConference

As seguintes versões Express estão disponíveis :

  • VB.NET Express
  • C# Express
  • J# Express
  • C++ Express
  • Web Development Express
  • SQL Server Express

Para fazer o download acesse : http://lab.msdn.microsoft.com/vs2005/

Uma das características mais interessantes, no meu ponto de vista, sobre essas versões Express, é que elas são baseadas na versão 2.0 do framework e na versão 2005 do SQL Server (code nome Yukon). Isso nos permite estar estudando as novidades do Framework 2.0 e do novo SQL Server a partir de hoje mesmo.

Outra característica a ser notada é o fato de que o SQL Server Express tem por objetivo substituir o MSDE. Portanto, conforme confirmado no site da Microsoft, o SQL Server Express será gratuito. O limite de tamanho de banco foi expandido para 4GB e agora temos gerenciamento gráfico do banco a disposição.

Veja as novidades sobre a versão Express, que, na verdade, são novidades do framework 2.0 :

Criação de projetos sem solução

No Visual Studio .NET hoje, quando criamos um projeto automaticamente é criada uma solução junto com esse projeto. No VB.NET Express o projeto pode ser criado sem uma solução, de forma independente.

Além disso hoje, quando criamos um projeto, o projeto é imediatamente salvo em disco. No VB.NET Express o projeto apenas será salvo em disco quando isso for solicitado. Enquanto isso estará utilizando diretórios temporários do próprio visual studio.

Edit-And-Continue

Sem dúvida o recurso de Edit-And-Continue é valioso para o processo de desenvolvimento e todos os desenvolvedores ficarão felizes em te-lo de volta. Fico imaginando quantas voltas tiveram que dar no processo de compilação do VS para poder trazer de volta este recurso, que em um ambiente compilado normalmente seria inviável.

Provavelmente isso tem alguma ligação com o background compiler, compilador em background que compila o código enquanto o produzimos e nos da dicas para corrigirmos o código.

Novos arquivos no projeto

Se observarmos os arquivos ocultos no projeto, veremos uma nova pasta, "My Project" e neste pasta encontraremos vários novos arquivos que não eram antes utilizados.

Basicamente, o processo de inicialização de uma aplicação se tornou mais complexo, cheio de detalhes e, seguindo o padrão que iniciaram na versão anterior (ainda bem!), tudo que configuramos nas janelas da ferramenta vira código, agora nestes arquivos ocultos.

Então vejamos os principais :

MyApplication.VB : Contém a definição da classe MyApplication, que estará representando a aplicação que estamos construindo. Interessante observar que apenas metade da definição da classe MyApplication encontra-se neste arquivo. A classe MyApplication herda características da classe System.Windows.Forms.WindowsFormsApplicationBase

MyEvents.VB : Contém a outra parte da definição da classe MyApplication - Eventos de aplicação, que podem ser programados por nós.

MyResources.VB : Gera um namespace chamado Resources, dentro do namespace My. Neste namespace é criado um ResourceManager para realizar a globalização do projeto. Podemos acessar o ResourceManager gerado usando My.Resources.ResourceManager.

MySettings.VB : Contém a definição de uma classe MySettings. Essa classe permite acesso aos settings de nível de projeto

Namespace My

Nos arquivos que citei acima é feita a definição em código de um namespace chamado My (ótimo que seja em código, menos coisas "automáticas"). Este NameSpace contém as seguintes classes :

  • Application
  • Computer
  • Forms
  • User
  • WebServices

e um namespace Resources.

My, traduzido do inglês, significa "Meu", portanto estamos falando de um acesso direto a minha aplicação, computador, Forms (temos a coleção forms de volta ?!!), usuário conectado e webServices.

Veremos mais detalhes em seguida, mas como um NameSpace, compilado junto com a aplicação, vale citar que o My fica acessível para todo o código que estaremos produzindo.

Separação de classes em múltiplos arquivos

Podemos encontrar esta síntaxe nos arquivos MyApplication.vb e MyEvents.vb, nos dando uma idéia de quantos recursos novos iremos encontrar na orientação a objetos do framework 2.0.

Nestes arquivos, a classe MyApplication aparece dividida em 2 partes. São duas declarações Class/End Class, com o mesmo nome, fazendo com que as duas partes se tornem uma classe única. A declaração que permite isso é a palavra chave "Partial", da seguinte forma :

Partial Class MyApplication

End Class

 

Janela de configuração do projeto

Esta sofreu mudanças drásticas. A primeira coisa que notaremos é que, ao ser aberta, ao invés de aparecer como uma janela popup esta janela aparece como uma aba adicional na área de trabalho do Visual Studio. Bem enfeitada, possui 6 divisões cheias de novidades :

Application

Além de configurações já conhecidas de todos, temos neste ponto muitas novidades. As configurações realizadas nesta tela são codificadas dentro do arquivo MyApplication.VB, no constructor da aplicação.

Make Single Instance Application : Faz com que a aplicação se torne uma aplicação single instance, ou seja, apenas uma cópia pode ser aberta. Antes tinhamos que fazer isso por código. Essa configuração se refere a propriedade isSingleInstance da classe MyApplication. Desta forma esta configuração vira código diretamente no arquivo MyApplication.VB . Em nosso código temos acesso a mesma propriedade através do namespace My (My.MyApplication.isSingleInstance).

Set My.User to Logged-On Windows User : Faz com que o usuário windows logado seja atribuido a propriedade User, do objeto My. Continua sendo um IPrincipal, mas antes, no framework 1.1, tinhamos que fazer uma configuração no AppDomain para que isso acontecesse.

ShutDown Mode : Determina como será o fechamento da aplicação - se a aplicação será fechada automaticamente quando o form principal fechar ou apenas quando todos os forms fecharem. Corresponde a propriedade ShutDownStyle do objeto MyApplication. Em nosso código temos acesso a mesma propriedade através do namespace My (My.MyApplication.ShutDownStyle).

Splash Screen : Isso mesmo, podemos montar um formulário e configurar a aplicação que exiba este formulário como uma splash screen no inicio da execução.

Compile

Na tela Compile vemos que o tratamento de erros e warnings ficou bem mais aprimorado. Podemos controlar o que desejamos que a ferramenta verifique em nosso código e como a ferramenta nos avisará de problemas, se com warnings ou com mensagens de erro.

Veja algumas das configurações disponíveis :

  • runtime binding
  • Declaration requires 'As' clause
  • Possible null reference exception
  • Function/Operator without return value
  • Unused local variables
  • Access to shared member through instance var
  • Recursive operator/Property Access
  • Duplicate/Overlapping catch blocks

Resources

Já temos por default um arquivo de resources para todo o projeto (antes era por form). Este arquivo é controlado pela classe contida em MyResources.vb (vide arquivos de projeto acima).

O editor de resources agora aceita facilmente vários diferentes tipos de resource, tal como imagens.

Isso tudo significa que nossos projetos windows já iniciam "pré-organizados" para implementarmos globalização


Settings

O controle de settings de aplicação é uma grande novidade deste ambiente de desenvolvimento. Normalmente temos Configurações de nível de aplicação que gostaríamos que fossem compartilhadas, acessíveis por todo o código da aplicação. Pois então, como fazer ?

No Framework 1.1 tinhamos o recurso das propriedades dinâmicas. Mas a configuração ainda era um pouco complexa, diretamente no app.config as vezes. Agora temos uma tela para configurarmos estes settings, e o que chamávamos de propriedades dinâmicas passou a ser chamado de ApplicationSettings.

O acesso a estas informações também ficou muito mais simples, veja um trecho de código gerado no CodeBehind :

WindowsApplication1.MySettings.Value.testando

A classe MySettings, definida no arquivo MySettings.vb, permite o acesso aos settings definidos no arquivos de manifesto com facilidade.

 

Eventos de Aplicação

Ainda no item Application das propriedades de projeto, encontramos um botão chamado "View Code". Este botão nos permite editar eventos de nível de aplicação. Esses eventos são gravatos no arquivo MyEvents.vb .

Temos os seguintes eventos de nível de aplicação disponíveis :

  • NetworkAvailabilityChanged : Permite identificarmos quando a rede estiver ou não disponível.
  • ShutDown : Identifica o término da aplicação
  • StartUp : Identifica o início da aplicação
  • StartUpNextInstance : Identifica o início de uma nova instância da aplicação
  • UnHandledException : Identifica uma excessão não tratada

Novo conceito de DataSource

Ao lado do solution explorer temos agora a janela "Data Source", que nos permite definir origens de dados que podem ser compartilhadas por todo o projeto. Mas a primeira dúvida que surge é o que é uma origem de dados compartilhada por todo o projeto.

Inicialmente pensei que fosse uma conexão, mas estava enganado. Trata-se dos dataSets, com um novo nome e um novo visual.

Antes que se assustem, imaginando que todos os conceitos de dataSet mudaram, devo dizer que os datasets estão lá, firme e fortes. Mas para simplificar o gerenciamento dos dataSets na aplicação surgiu o conceito da janela de data Source, que ao mesmo tempo que nos permite gerenciar nos dataSets nos permite preparar o desenho da tela. Podemos definir como desejamos que cada campo apareça na tela e, em seguida, apenas arrastamos a tabela para o formulário e voilá! temos um formulário com todos os campos prontos.

Neste ponto encontramos uma das limitações da versão Express : apenas acessa bancos locais. Ao iniciar a criação de uma nova origem de dados, porém, tive uma surpresa : Sugeriu que eu poderia escolher tanto arquivos .MDB como arquivos .MDF (.MDF!!!).

Os arquivos .MDF são arquivos de banco do SQL Server e a principio não poderiam ser acessados sem que os dados fossem requisitados a um servidor SQL Server ativo. Mas parece que este principio está caindo, aparentemente os arquivos MDF serão diretamente acessíveis pelas versões Express do VS. Nos meus testes não funcionou (por enquanto), mas aparentemente trata-se disso.

Novas ferramentas de conexão ao banco

Vendo o que citei acima, muitas perguntas surgem : E o dataAdapter ? E a conexão ?

O que observamos é que os objetos que conhecemos hoje (adapter, conexão, commands), foram encapsulados dentro de outros objetos que simplificam ainda mais o processo de desenvolvimento, que já era simples.

Ao criar um dataSource, conforme expliquei acima, é gerado automaticamente o dataSet e o adapter! A ferramenta de edição dos .XSD, os schemas dos dataSet tipados, foi adaptada para para editar também o adapter. Assim sendo, o adapter fica vinculado a dataTable do dataSet.

Dentro do dataset podemos ver o adapter, vinculado com a tabela, os 4 commands do adapter, mas não vemos conexão. Ao expandirmos as propriedades dos commands nem ao menos encontramos uma propriedade de conexão.


Criação de Forms via drag-and-drop

Quando arrastamos a tabela da janela Data Source para o formulário, os seguintes objetos são gerados : CustomersDataNavigator, CustomersDataConnector, NorthwindDataSet, CustomersTableAdapter.

Identificamos claramente ai o DataSet e o DataAdapter. O DataNavigator é um novo objeto visual que facilita a navegação dos dados, faz todo o trabalho pesado de edição, inclusão, exclusão, etc.

Já o DataConnector atua como um intermediário entre o dataSet e os objetos visuais. Observando a propriedade DataSource de um objeto DataGridView, gerado automaticamente quando arrastamos a tabela, vemos que o DataGridView é vinculado ao DataConnector, não ao dataSet. Pela janela do dataSource vemos que podemos vincula-lo ao dataSet se desejarmos.


in-place property editing

O recurso de edição das propriedades dentro do próprio formulário é uma novidade, provavelmente se tornará uma novidade polêmica. Algumas documentações que li citam esse recurso como sendo mais intuitivo do que a janela de propriedades. Bem, depois de anos trabalhando com a janela de propriedades é discutível dizer que uma mudança a essa altura possa se tornar mais intuitiva.

Clicando com o botão direito em qualquer componente no form encontramos a opção "Property Editing View". Ao selecionar essa opção surge uma barra superior, que nos auxilia no processo de edição dos valores das propriedades. Podemos selecionar um componente no form, selecionar a propriedade que desejamos editar nesta barra superior e editar o valor da propriedade diretamente no form


Separação do código de design

Cada Windows Form gera agora 2 arquivos : Form1.Design.vb e Form1.vb

Esses arquivos permitem uma separação do código gerado automaticamente pelo designer e o código da aplicação em si. Ao invés de ficarem em um mesmo arquivo, separados apenas pelas tags #Region, tais códigos ficam agora em arquivos separados, facilitando a visualização do código da aplicação.

Não existe uma ligação rígida entre os dois arquivos, nada que vincule um ao outro além do próprio nome. Imagino que a ferramenta de desenvolvimento faça um processo de herança, a classe que encontra-se em Form1.vb herde as características da classe que se encontra em Form1.Design.vb , mas nem mesmo um inherits é visível, até porque as duas classes tem o mesmo nome.

Isso nos dá a impressão que a ferramenta de desenvolvimento encontra-se fazendo bastante coisa automaticamente por nós.

Conclusão

As mudanças sem dúvida irão melhorar muito a produtividade do desenvolvimento de software, arrisco dizer que uma evolução como nunca se viu desde o inicio do desenvolvimento para windows.

O Framework 1.1 foi, digamos, um passo intermediário para chegarmos agora no framework 2.0. Me sinto um felizardo por ter estudado .NET ainda no framework 1.1, pois muitos conceitos e muitos objetos que conhecemos agora estão sendo encapsulados por objetos mais simples, mais "RAD". Desta forma quem estudou o framework 1.1 a fundo terá a vantagem de saber como as coisas estão funcionando por baixo dos panos, no framework 2.0, e isso, no meu ponto de vista, facilita o entendimento e o aprendizado, além de garantir um melhor uso da ferramenta.

Isso é apenas o começo. Os grupos de usuários irão distroçar em muitos detalhes estas novas ferramentas de desenvolvimento e um dos primeiros eventos sobre o assunto será a II devASPNet Technical Conference, nos dias 27, 28 e 29. Um dos dias desta conferência será inteiramente dedicado a apresentação dos novos recursos destas ferramentas que estão surgindo, então inscreva-se já e não perca este grande evento : http://www.bufaloinfo.com.br/techconference

 

Dennes Torres
MCAD,MCSD,MCSE,MCDBA





Envie seus comentįrios sobre este artigo

Nome :

E-mail :

Comentários :


Avise-me quando houverem novos comentįrios nesta pįgina

Veja abaixo os comentários já enviados :

Nome : Everaldo Machado E-Mail : evernew_esm@hotmail.com
Bom dia e parabéns pelo artigo, o que estou lhe enviando não é um comentário mas sim uma dúvida. Crio um formulário Pai que contém um DataGridView, crio um segundo formulário que herda o formulário Pai, porém não consigo editar as propriedades do datagridview herdado, apesar de ter definido a propriedade modifiers com public no formulário pai. Como posso resolver isto ?
Nome : Carlos E-Mail : carloscei@hotmail.com
Prezados, primeiramente gostaria de parabenizá-los pelas impressionantes postagens, todas incríveis vocêis todos estão de parabéns.
Atualmente, estou estudando C# - sem comentários.
Posso migrar(por partes), uma imensa aplicação client/server(desktop)
desenvolvida em VB 6.0 que possui(vários formulários, classes, ocxs) para Visual C#?

Att,
Carlão.
Nome : Pedro Queiroz E-Mail : pedro-qs@uol.com.br
Olá saudações. Muito bom o seu artigo. Se for possível, esclareça a seguinte
dúvida: Num Form qualquer, tem como impedir que o mesmo seja movimentado na tela, ou seja, o usuário não pode move-lo com o mouse???
Atenciosamente.
Nome : ZbCJVQjIU E-Mail : rebecca@spruenken-essen.de
Se9rgio, muito bom seu artigo, lidtsnao o que gostei: c9 papel dos professores comprometidos com o presente e o futuro de seus alunos refletirem criticamente sobre quais ferramentas se adequam a objetivos educacionais e ne3o quais objetivos educacionais se adequam a ferramenta da moda! Foi para a minha colee7e3o de frases:Aqui fiquei com uma duvida, vocea diz:Aprendizagem em rede passa por organizae7e3o dos fluxos informacionais.Seria por organizae7e3o que e algo importante ou o incentivo dos fluxos organizacionais??Ou as duas coisas?A organizae7e3o me parece que e9 algo posterior, no registro, do fluxo que rolou fundamental. E o incentivo no durante.Pode esclarecer?Me identifiquei tambe9m com isso: Aprendizagem cooperativa ne3o prescinde da mediae7e3o daquele que aprende he1 mais tempo! Na verdade, quando vocea diz aprende seria a pessoa que estuda/aprende aquele dado problema he1 mais tempo. Gosto do termo aprende, pois aponta para algue9m que continua estudando.Concordo e complemento.O problema e9 como o cara estuda.Se e9 um cara que estuda e este1 em aberto para aprender, professor-cientista.Ou se e9 um cara que estuda, mas je1 sentou sobre a bedblia que descobriu, professor-religioso.Isso faz uma grande diferene7a e talvez impacte em todo o processo, pois quem quer discusse3o quer aprender junto, gosto do termo coo-vencer.E quem quer sentar na bedblia , ne3o vai incentivar o debate, pois o que ele quer e9 doutrinar.Que achas?Por fim, gostei muito do:Ne3o existem absolutos!De fato, ne3o existe, mas e9 te3o difedcil.Todo mundo ou melhor o ego de tudo mundo gosta de ter raze3o..;)Abrae7os,Valeu a visita.Nepf4.

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Conheça mais sobre o nosso site :

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::



Quer saber mais?
Faça um curso na Búfalo Informática, Treinamento e Consultoria e
Prepare-se para o Mercado!
Veja o que a Búfalo tem para você.

ļæ½ BĆŗfalo InformĆ”tica, Treinamento e Consultoria - Rua Ɓlvaro Alvim, 37 Sala 920 - CinelĆ¢ndia - Rio de Janeiro / RJ
Tel.: (21)2262-1368 (21) 9240-5134 (21) 9240-7281 e-Mail:
contato@bufaloinfo.com.br