Pular para o conteúdo principal

O .NET Framework porque usa-lo?

Para quem programa em VBA, em bora a Autodesk tenha informado que o VBA será descontinuado desde a versão 2009 o suporte a versão 2013 já foi lançado através de um pacote específico que pode ser baixado no site do AutoCAD.

A Autodesk entende que existem muitas empresas que ainda utilizando VBA em suas aplicações (até mesmo aplicações comercias!!!) e por isso o suporte permanece e eu particularmente acredito que isso ainda vai durar por pelo menos até 2015, mais isso é uma expectativa minha  minha nada impede de que esta seja a ultima versão com suporte ao VBA,  entrando existem algumas de mudar para o .NET.


A primeira delas é que invariavelmente isso vai ser descontinuado mais cedo ou mais tarde, a Autodesk está dando tempo para que você, velho desenvolvedor cabeça dura, mude toda o seu programa para .NET.

A segunda vantagem é a segurança do código: no VBA tradicional quando você quer enviar a aplicação para um cliente para alguém utilizar o código vai junto o máximo que você pode fazer é protege-lo com uma senha (exitem outros mecanismos também mas o principal é a senha) que pode ser quebrado. Eu nunca adentrei por essa questão do envio do código mas de qualquer forma é complicado isso e tem essa questão da fragilidade do acesso a quilo que você perdeu tempo desenvolvendo. Vamos imaginar um programa que sobe em cima do AutoCAD como o pró-eletrica ou metálicas. Estes softwares se desenvolvidos em VBA o código é enviado junto com a aplicação cada vez que se vende uma cópia do programa o que é bem perigoso.

Uma das maneira encontradas para resolver isso é criar um DLL externa ou um programa externo que roda e consegue fazer a parte de análise dos dados fora o que é mais um complicado a final você criou um conector do seu programa para o AutoCAD pelo Windows. Certamente vai dar pau em algum momento, dois processos assíncronos se comunicando...

A terceira vantagem é a maior integrabilidade com outros aplicativos dentro do windows. O VBA peca por dois motivos: (i) só permite uma linguagem de programação o Visual Basic e (ii) faz parte do aplicativo e ponto final. O VBA fica tão ligado com a aplicação mãe que é difícil integra-lo com outros serviços mais avançados do Windows. Quando o Microsoft definiu a primeira grande mudança da interface visual do Windows para o XAML muita coisa iria mudar em termos de programação e as estruturas antigas  iriam ficar incompatíveis de alguma maneira e para se integrar com esses novos requisitos uma nova maneira seria necessária que o VBA não seria capaz de comportar.

Através do .NET Framework é possível acessar todo o windows e todas as aplicações instaladas, alterar o registro solicitar permissão de acesso e muitas outras que o VBA não permitia e dava sempre aquele ar de aplicação brasileira tipo house made ...

A quarta vantagem é o uso do Visual Studio. Quem faz aplicações para Windows sabe como o Visual Studio é uma plataforma bem completa para desenvolvimento de aplicações e sua robustez é louvável. Eu realmente acredito que hoje é a melhor plataforma que eu utilizo para desenvolvimento seguida do Eclipse e do Qt Creator da Nokia. O VS 2012 possui bons recursos de compilação e depuração de código auxiliando também em critérios de programação e controle de desenvolvimento via servidor (Team Project), que naturalmente o VBA não tem por definição embora algumas iniciativas tenham sido feitas e possam ainda ser encontradas pela internet.

A quinta  e ultima vantagem é a multilinguagem o VBA só permitia suporte a linguagem Visual Basic que é algo bem diferente do C# e C++ que são tradicionais em programas de alto nível e agora com o .NET é possível utilizar qualquer linguagem para criar sua aplicação.


O que é o .NET Framework em si?

Como eu disse acima o Microsoft .NET é uma iniciativa da Microsoft em que para uma plataforma única para desenvolvimento e execução de sistemas e aplicações que reúne tudo no windows.

Dessa forma qualquer código gerado para .NET, pode ser executado em qualquer dispositivo (por exemplo um tablet com windows 8). Isso é bem parecido com o  Java, o programador deixa de escrever código para um sistema ou dispositivo específico, e passa a escrever para a plataforma .NET.

A plataforma .NET, é executada sobre uma CLR (Common Language Runtime), Ambiente de Execução Independente de Linguagem, interagindo com uma Coleção de Bibliotecas Unificadas, que juntas são o próprio framework. Esta CLR é capaz de executar mais de vinte diferentes linguagens de programação (segundo a Microsoft eu só testei as quatro mais básicas C#, C++, VB  e esse tal do F#), interagindo entre si como se fossem uma única linguagem.

Estas são:

  • APL ; 
  • Boo ; 
  • Fortran ; 
  • Pascal ; 
  • C++ ; 
  • Haskell ; 
  • Perl ; 
  • C# ; 
  • Java ; 
  • Python ; 
  • COBOL ; 
  • Microsoft JScript® ; 
  • RPG ; 
  • Component Pascal ; 
  • Mercury; 
  • Scheme; 
  • Curriculum ; 
  • Mondrian ; 
  • SmallTalk ; 
  • Eiffel ; 
  • Oberon ; 
  • Standard ML ; 
  • Forth ; 
  • Oz ; 
  • Microsoft Visual Basic® ; 
  • Delphi ; 
  • J# ; 
  • Ruby ; 
  • Lua .

A plataforma .NET se baseia em um dos princípios utilizados na tecnologia Java (compiladores JIT), os programas desenvolvidos para ela são duplo-compilados, ou seja são compilados duas vezes, uma na distribuição e outra na execução.

Um programa é escrito em qualquer das mais de vinte linguagens de programação disponível para a plataforma, o código fonte gerado pelo programador é então compilado pela linguagem escolhida gerando um código intermediário em uma linguagem chamada  MSIL (Microsoft Intermediate Language) que depois gera um "Assembly" que muda com o tipo de projeto:
  • EXE - Arquivos Executáveis, Programas
  • DLL - Biblioteca de Funções
  • ASPX - Página Web
  • ASMX - Web Service
No momento da execução do programa ele é novamente compilado, desta vez pelo JIT (Just In Time Compiler), de acordo com a utilização do programa. Isso permite subir uma DLL num aplicativo próprio (como o AutoCAD) e depurar o código da DLL!

No próximo post vou começar a colocar código mesmo!

Comentários

Postagens mais visitadas deste blog

Numeração Automática no AutoCAD

Sem dúvida esse é uma ferramenta única que fazia falta a tempos e foi introduzida recentemente no AutoCAD, na última década… Em 2013 tinha feito um programa para criar uma bolinhas de numeração automática usando o conceito de Leader eu fazia um controle dos números dos itens na mão mesmo, depois de um tempo resolvi fazer um menuzinho para controlar o conteúdo do número dos bullets, hoje isso não é mais necessário, existe um comando no próprio AutoCAD para isso e faz parte das Ferramentas Expressas do AutoCAD. Gosto de compartilhar ferramentas e dicas que tendem a ser menos conhecidas ou subutilizadas, mas ainda podem fornecer um impulso para sua produtividade e fluxo de trabalho e que eu mesmo me surpreendi quando as encontrei Hoje, quero apresentar outra ferramenta, a numeração automática. Como o nome indica, o comando Numeração automática permite que você adicione automaticamente um número às etiquetas ou texto em um desenho. Vou mostrar como a numeração automática pode ser usada par...

Alterar a cor de fundo do AutoCAD

Eu sou um adepto do fundo preto, tudo que eu posso mudo a cor do fundo para preto. Nas ultimas versões do AutoCAD tenho notado que não é mais o padrão o fundo preto absoluto, é um cinza escuro. As vezes gosto também de mudar a cor do Layout de branco para preto afinal de contas quando trabalhamos com penas e contraste no model space preto, ver um desenho no layout é impossível.  Você pode mudar sua cor de fundo do AutoCAD para a cor que quiser. Definindo cores personalizadas Primeiro, vá para o menu Opções (botão Aplicativo> Opções), selecione a guia Exibição e clique no botão Cores. Agora você deve ver a caixa de diálogo Cores da janela de desenho: Agora você pode atualizar as cores de qualquer elemento da interface. Isso incluí o plano de fundo em qualquer contexto (selecione Model e Layout). Você pode escolher qualquer uma das predefinições, ou você pode escolher a partir de todo o espectro (basta escolher a opção Selecionar Cor ...). Se você não gost...

Unindo blocos em AutoCAD utilizando .NET

Hoje me deparai com uma necessidade de unir blocos com propriedades então resolvi fazer um comando para realizar esses procedimento. A principio esse procedimento não é tão complexo de ser executado individualmente mas por outro lado gostaria também de analisar um pouco melhor as possibilidades de se manipular blocos utilizando o AutoCAD. Abaixo o código que utilizei: using Autodesk.AutoCAD.ApplicationServices ; using Autodesk.AutoCAD.DatabaseServices ; using Autodesk.AutoCAD.EditorInput ; using Autodesk.AutoCAD.Runtime ; using System.Linq ; // This line is not mandatory, but improves loading performances [assembly: CommandClass(typeof(Merging_AutoCAD_blocks.Comandos))] namespace Merging_AutoCAD_blocks { public class Comandos { /// <summary> /// Uni dois ou mais blocos em um unico bloco. /// </summary> [CommandMethod("MERGBLKS")] public static void UnindoBlocos () {...