Introdução ao Xamarin Forms

Então pessoal, sejam bem vindos a um pequeno curso que estou iniciando em meu canal do youtube com o intuito de ensinar Xamarin forms para iniciantes, vale ressaltar que também sou iniciante mas como já possuo uma bagagem nas costas consigo aprender mais rapidamente uma nova tecnologia sendo assim fique a vontade para compartilhar conhecimentos na seção de comentários no final desse post. Continuar lendo

Como instalar o Game Maker Studio

Vamos aos Requisitos de instalação e sistema, instalando GameMaker: Estúdio para uso pessoal.

Se a sua versão do GameMaker: Studio não é a versão comprada através da Steam, você vai precisar executar o programa GMStudio-Installer.exe que pode ser baixado facilmente pelo site oficial da yoyo games  e siga as instruções na tela para instalar, é recomendável que você deixe as sugestões padrão de instalação. Quando a instalação estiver concluída, no menu Iniciar você vai encontrar um novo grupo de programas onde você pode executar o GameMaker: Studio. Continuar lendo

Introdução ao C# – Parte 2

The Framework Class Library (FCL)

O .NET Framework fornece um enorme Framework (ou base) com a Class Library (FCL) para efetuar tarefas comuns e usuais. FCL contém milhares de classes para fornecer o acesso a funções do Windows API e common, como Manipulação de Strings, estruturas de dados common, I.O, Streams, Threads, segurança, programação de rede, Programação Windows, Programação Web, Acesso a dados, etc. É simplesmente o maior padrão de biblioteca já criado para qualquer outro ambiente de desenvolvimento ou linguagem de programação. A melhor parte desta biblioteca é que eles seguem projeto O.O(Orientação a objetos) de forma extremamente eficiente (padrões de projeto), tornando seu acesso e uso muito simples e previsível. Você pode usar as classes no FCL em seu programa, assim como você usaria qualquer outra classe. Você pode até mesmo aplicar a herança e polimorfismo a essas classes.

The Common Language Specification (CLS)

Anteriormente, foi utilizado o termo “linguagem .NET Compliant” e afirmei que todas as línguas compatíveis .Net podem fazer uso do CLR e FCL. Mas o que torna uma linguagem “.Net compliant”?

A resposta é a Common Language Specification (CLS). A Microsoft lançou um pequeno conjunto de especificações que cada língua deve cumprir para se qualificar como uma .Net Compliant Language.

Como IL é uma linguagem muito rica, não é necessário para uma linguagem implementar toda a funcionalidade IL; em vez disso, apenas precisa possuir um pequeno subconjunto de CLS para se qualificar como uma linguagem compatível com o .NET. Esta é a razão pela qual tantas línguas (processuais e O.O) estão agora rodando sob o guarda-chuva .Net. CLS basicamente aborda questões de design de linguagem e estabelece certas normas. Por exemplo, não deve haver quaisquer declarações globais de função, sem ponteiros, sem herança múltipla e coisas assim. O ponto importante a notar aqui é que se você manter seu código dentro do limite do CLS, seu código é garantido para ser utilizável em qualquer outra linguagem .NET.

The Common Type System (CTS)

.Net também define um Common Type System (CTS). Como CLS, CTS é também um conjunto de normas. CTS define os tipos de dados básicos que IL entende. Cada linguagem compatível com .NET deve mapear seus tipos de dados para estes tipos de dados serem padrão. Isto faz com que seja possível que duas línguas 2 possam comunicar entre si umas com as outras através da passagem / recebimento de parâmetros de um para a outra. Por exemplo, CTS define um tipo, Int32, um tipo de 32 bits (4 bytes) que é mapeado pelo C# através de int e pelo VB.Net por meio de seu tipo de dados inteiro que é o Integer.

Garbage Collection (GC)

CLR também contém o coletor de lixo (GC), que é executado em um segmento de baixa prioridade e verifica se há, espaço de memória alocada dinamicamente un-referenced(Sem referência). Se ele encontrar alguns dados que não são mais referenciados por qualquer variável / referência, ele avisa ao S.O que deve ser limpado aquela região. A vantagem do GC é que o programador não precisa se preocupar com a codifcação do mesmo para limpar a memória do S.O que o seu software estiver usando. Pergunte a qualquer programador C++ como isso é um grande alívio!

The .Net Framework

O .NET Framework é a combinação de camadas de CLR, FCL, Dados e classes XML e o Windows, aplicações Web e Web Services. Um diagrama do .Net Framework é apresentado a seguir para melhor compreensão:

Imagem que demonstra o diagrama do .Net

C# em comparação com C++

Em termos de desempenho e eficiência no uso de memória e outros recursos, C++ faz outclass no C#. Mas o desempenho e a única medida quando se trata de escolher um ambiente de desenvolvimento? Não!

C++ é sem dúvida uma linguagem muito complexa, abstrata e de baixo nível para se programar. Carrega o programador com muitas responsabilidades e muito menos apoio. Outro problema com o C++ é que ele é muito vasto comparado com outras linguagens em sua essência; por exemplo, para lidar com os dados na memória você pode usar variável, ponteiro ou referência.

C# em seu núcleo é uma linguagem moderna e poderosa muito simples, mantendo em mente a experiência de desenvolvedores ao longo dos anos e suas necessidades atuais. Uma das maiores preocupações no mercado de corporações é fazer com que programas sejam reutilizáveis, de fácil manutenção, escalável, portátil e fácil de depurar. C# trata direito com estas questões. Cada desenvolvedor C++ sabe o quão difícil é gerir um programa de C++ e depurá-lo. Ele pode ser um pesadelo para encontrar a razão pela qual um programa trava aleatoriamente. A única razão para isso, para mim, é a maldição de compatibilidade com versões anteriores. Eles fizeram C++ na estrutura C, uma linguagem de programação estruturada, por isso nunca se tornou uma verdadeira linguagem de programação orientada a objetos, e se o compilador me permite ir na forma estruturada, quem é você para me fazer ter uma abordagem orientada? Também Bjarne Stroustrup, o fundador do C++ disse, “C++ é uma linguagem multi-paradigma não é só O.O”. As principais vantagens do uso de C # incluir suporte para o Common Language Runtime, biblioteca de classe Framework, e uma limpeza orientada a objetos de design novo, livre da maldição-compatibilidade com versões anteriores.

Imagem que demonstra a CLR do .NET

Continua…

Então, o que achou do post? fiquem ligados no próximo post e deixe o seu comentário abaixo :).

Introdução ao C#

Introdução a linguagem C

A linguagem C# e o framework .NET, são as tecnologias mais importantes para o mundo microsoft, e não ache que isso seja um exagero pois todo o ambiente Windows gira em torno dessas tecnologias. O Donet(.NET) foi criado para fornecer um grande ambiente de desenvolvimento lhe fornecendo opções para desenvolver praticamente qualquer coisa e executar o mesmo dentro do universo windows, embora o .NET seja especifico para a a linguagem C#, a própria linguagem consegue se extender juntamente a ele para fornecer WebPages dinâmicas, criar componentes para aplicações distribuidas e etc…

O Porque da plataforma .NET e do C

Para que possamos entender um e o outro, é necessário um entendimento prévio de que muitas tecnologias da plataforma Windows não mundo com frequência, são sempre reaproveitadas, tanto que desde o Windows 3.1 em diante, o Windows matém a mesma application programming interface ( API ), com isso entendido, basicamente a plataforma .NET é o aglomerado dessas funções, melhoras passadas por “gerações” e também contendo em seu núcleo, novas funcionalidades, e o mesmo acontece com todas as outras tecnologias presentes no Windows, como o COM ( Component object model ), OLE(Object linking and Embedding) e derivados.

NOTA: Ao aprender a linguagem C#, caso já seja programador em alguma outra linguagem, inclusive linguagens mais antigas como VB e C++, perceberá logo de cara que programar em C# é mais agradável e intuitivo.

.NET?

Disse, disse, disse, mas no fundo…o que é esse tal de .NET?

Para responder essa pergunta, devemos levar em consideração que o Windows é uma biblioteca rica em recursos, e todos esses recursos devem ser catalogados e enfileirados para seu uso (Funções), e basicamente é isso que o .NET lhe fornece, um conjunto de funções para trabalhar com o Windows.

Vejamos as vantagens da plataforma .NET:

  • Grande suporte para páginas WEB – Mesmo que o C# possa trabalhar com a tecnologia ASP, o .NET é extremamente flexível ao ponto de fornecer um suporte integrado bastente dinâmico para a sua aplicação.

Ferramentas para os posts

O exemplos foram escritos dentro da IDE própria para o C# (Visual Studio.Net). É recomendável que você instale esta ferramenta Microsoft oferece o Visual Studio Express Edition gratuitamente, está disponível emhttp://msdn.microsoft.com/vstudio/express/.

Você precisará baixar e instalar o .NET Framework SDK, que pode ser obtido livremente clicando aqui. Isto é necessário para executar os aplicativos .NET e, mais importante para nós, contém o compilador C# que você vai precisar para compilar os programas que você escreve.

Finalmente, para usuários não-Windows, o Projeto Mono fornece um compilador open source C#, .NET Runtime e implementação da biblioteca. Para mais informações.

A linguagem C

C# (pronuncia-se C-Sharp) é, sem dúvida, a linguagem de escolha para trabalhar no ambiente .Net. É uma nova linguagem livre da maldição de compatibilidade com versões anteriores e com um monte de recursos novos, excitantes e promissores. É uma linguagem de programação orientada a objetos e tem em seu núcleo, muitas semelhanças com Java, C++ e VB. Na verdade, C# combina a potência e eficiência do C ++, o design OO simples e limpa do Java e a simplificação da linguagem do Visual Basic.

Como Java, C# também não permite herança múltipla ou o uso de ponteiros (em um código seguro), mas fornece uma “recolha de lixo”(garbage memory collection) de memória em tempo de execução, o tipo e a verificação de acesso à memória. No entanto, ao contrário do Java, C# mantém operações práticas únicas do C++ como sobrecarga de um operador, enumerações, diretivas de pré-processador, ponteiros (em código não gerenciado / un-safe), ponteiros de função (na forma de delegates) e promete sempre possuir um template de apoio nas próximas versões. Como VB, ele também suporta os conceitos de propriedades (context sensitive fields). Além disso, C# vem com algumas características novas e emocionantes, como reflections, attributes, marshalling, remoting, threads, streams, data access com ADO.Net e muito mais.

A arquitetura do .NET e o Framework .NET

Na arquitetura .Net e o .Net Framework existem algumas diferentes e termos e conceitos importantes, que iremos discutir um por um:

Common Language Runtime (CLR)

O conceito mais importante do .NET Framework é a existência e a funcionalidade do .NET Common Language Runtime (CLR), também chamado de Net Runtime. É uma camada que reside acima do OS e lida com a execução de todos os aplicativos .Net. Nossos programas não se comunicam diretamente com o sistema operacional, mas passam pelo CLR:

Imagem que demonstra a CLR do .NET

MSIL (Microsoft Intermediate Language) Code

Quando compilarmos nosso Programa .Net usando a linguagem .Net, qualquer uma compatível (como C#, VB.Net ou C ++, .Net) nosso código fonte não é convertido em código binário executável, mas sim para um código intermediário conhecido como MSIL que é interpretado pela Common Language Runtime. MSIL é o sistema, é um código independente de hardware para funcionar. Após a execução do programa, neste MSIL (código intermediário) é convertido em código executável binário (código nativo).

Imagem que demonstra a CLR do .NET

Just In Time Compilers (JITers)

Quando o nosso código compilado IL precisa ser executado, o CLR chama o compilador JIT, que compila o código IL para um código executável nativo (.exe ou .dll) que é projetado para a máquina específica e o seu OS. JITers são diferentes dos compiladores tradicionais, eles compilam o IL para código nativo apenas quando desejado; por exemplo, quando a função é chamada, o IL converte em tempo de execução o chamado. Assim, a parte do código que não é usada por que não é necessária naquele momento nunca é convertida em código nativo. Se algum código IL é convertido em código nativo, então da próxima vez que for necessário usar, o CLR reutilizará o mesmo (já compilado) sem que haja uma re-compilação. Assim, se um programa é executado por algum tempo (assumindo que todas ou a maioria das funções são chamadas o tempo inteiro), então não irá ter nenhuma perda de desempenho, just-in-time.

Como JITers estão sempre cientes do processador e sistema operacional específico que estão sendo executados em tempo real, eles podem otimizar o código de forma extremamente eficiente, resultando em aplicações muito robustas. Além disso, como um compilador JIT sabe o estado atual exato do código executável, eles também podem otimizar o código em pequenas chamadas de função (como a substituição do corpo de uma pequena função que possua um loop, economizando tempo em sua chamada de função). Embora a Microsoft afirmou que o C# e .Net não estão competindo com linguagens como C++ na eficiência e rapidez de execução, JITers podem tornar seu código mais rápido do que o código escrito em C++ em alguns casos.

Continua…

Então, o que achou do post? fiquem ligados no próximo post e deixe o seu comentário abaixo :).

O que é JAVA EE

Introdução ao Java

A inovação das linguagens de computador sempre foi impulsionada por dois fatores: a melhoria na arte de programar e mudanças no ambiente da computação. Java não é uma exceção. Com base no rico legado herdado da linguagem C e C++, O Java acrescenta refinamentos e características que refletem o estado atual da arte na programação. Respondendo à ascensão do ambiente on-line, Java oferece recursos que simplificam a programação para uma arquitetura altamente distribuída.

Java foi concebido por James Gosling, Patrick Naughton, Chris Warth, Ed Frank e Mike Sheridan na Sun Microsystems em 1991. Esta linguagem foi inicialmente chamado de “Oak”, mas foi rebatizada de “Java” em 1995. Surpreendentemente, o ímpeto original para Java não era a Internet! Em vez disso, a motivação primária foi a necessidade de uma linguagem independente de plataforma que pode ser utilizada para criar um software para ser incorporado em vários dispositivos electrónicos, como torradeiras, fornos de microondas, e controles remotos. Como você provavelmente pode imaginar, existe muitos tipos diferentes de CPUs. O problema era que (na época) a maioria das linguagens de computador foram concebidas para serem compiladas para um alvo específico, como por exemplo computadores. Por exemplo C++. Embora fosse possível compilar um programa C++ para praticamente qualquer tipo de CPU, ao fazer isso era necessário um compilador completo C++ direcionado para essa CPU.

O problema, no entanto, é que os compiladores são caros e muito demorado para criar. Em uma tentativa de encontrar uma solução melhor, Gosling e outros trabalharam em uma linguagem multi-plataforma portátil que poderia produzir um código que seria executado em uma variedade de CPUs e em ambientes diferentes. Este esforço levou à criação de Java.

O que antes era um irritante, mas um problema de baixa prioridade tornou-se uma necessidade de alto perfil. Em 1993 tornou-se óbvio para os membros da equipe do projeto Java que os problemas de portabilidade frequentemente encontrados, durante a criação de código para controladores incorporados também são encontrados ao tentar criar código para a Internet. Essa percepção fez com que o foco da linguagem Java mudasse para a programação na Web.

Como Java está relacionado com C e C++

Java está directamente relacionado com C e C ++. Java herda a sintaxe de C. Seu modelo de objeto é uma adaptação do C++. A relação de Java com C e C++ é importante por várias razões. Em primeiro lugar, muitos programadores estão familiarizados com a sintaxe C / C++. Isto torna mais fácil para um programador C / C++ para aprender Java e, inversamente, para um programador Java aprender C / C++.

Em segundo lugar, os designers do Java não “reinventaram a roda”. Em vez disso, eles refinaram ainda mais um paradigma de programação já altamente bem sucedido. A era moderna da programação começou com C. Ele mudou-se para C++, e agora para Java. Herdando e construindo sobre essa rica herança, Java fornece um poderoso ambiente de programação, logicamente consistente que leva o melhor do passado e adiciona novas funcionalidades requeridas pelo ambiente online. Talvez o mais importante, por causa de suas semelhanças, C, C++, Java defini um quadro comum, conceptual para o programador profissional. Os programadores não enfrentam grandes problemas quando mudam de uma língua para outra. Uma das filosofias de design centrais de C e C++ é que o programador está no comando! Java também herda esta filosofia. Exceto por essas restrições impostas pelo ambiente de Internet, Java dá ao programador, o controle total. Se você programar bem, seus programas refletem bem. Se você programar mal, seus programas refletiram mal. Dito de outro modo, Java não é uma linguagem com rodinhas. É uma linguagem para programadores profissionais.

Java tem um outro atributo em comum com C e C ++: ele foi projetado, testado e refinado por, programadores de trabalho reais. É uma linguagem baseada nas necessidades e experiências das pessoas que conceberam-lo. Não há melhor maneira de produzir uma linguagem de programação profissional de alto escalão.

Como Java esta relacionado ao C

Alguns anos após a criação da linguagem Java, a Microsoft desenvolveu a linguagem C#. Isso é importante porque C# está intimamente relacionado com Java. Na verdade, muitos dos recursos do C# estão diretamente ligados a linguagem Java. Java e C# compartilham a mesma premissa do C++, suporte distribuído a programação, e utilizar o mesmo modelo de objeto. Há, é claro, diferenças entre Java e C#, mas o geral “look and feel” das línguas é muito semelhante. Isto significa que se você já sabe C#, então aprender Java será especialmente fácil. Inversamente também, se C# é o seu futuro, então o seu conhecimento de Java virá a calhar. Dada a semelhança entre Java e C#, podemos naturalmente perguntar: “Será o C# o substituto da linguagem Java?” A resposta é Não. Java e C# são otimizados para dois tipos diferentes de ambientes da computação. Assim como C++ e Java vão coexistir por um longo tempo, assim será o C# e Java.

Contribuição do Java para a Internet

A Internet ajudou a catapultar o Java para a vanguarda da programação, e Java, por sua vez, teve um efeito profundo sobre a Internet. Além de simplificar a programação web em geral, Java inovou um novo tipo de programa de rede chamado applet que mudou a forma como o mundo online pensava sobre o conteúdo. Java também abordou algumas das questões mais espinhosas associadas com a Internet: portabilidade e segurança. Vamos olhar mais de perto cada uma delas no próximo post sobre Java.