quinta-feira, fevereiro 02, 2017

Novo site

Olá, como vai? Decidi criar um outro site, contendo novos assuntos e mais atualizado. Para isso, basta acessar site oficial Rodrigo Macedo.

sábado, setembro 05, 2009

Introdução ao Projeto Mono

Mono é um projeto open-source liderado pela Novell e pela comunidade cujo objetivo é levar à distribuições Linux, a plataforma .Net. Apesar de o grande foco ser o ambiente em Linux, o Mono também possui plataformas no próprio Microsoft Windows, Mac OS X, BSD, and Sun Solaris, Nintendo Wii, Sony PlayStation 3 e Apple iPhone.

O objetivo do Mono é possibilitar que aplicações.NET, criadas em ambiente Windows , possam ser levadas a plataformas não - Microsoft, com poucos ajustes de código. Além de possibilitar cross-plataform, também pode-se escrever no Linux, com ferramentas específicas, como um compilador próprio para o ambiente, e uma IDE chamada MonoDeveloper. Enquanto o MonoDevelop oferece um caminho para se programar no Linux, os desenvolvedores para Windows tendem a abraçar o Visual Studio, apesar de haver soluções livres como o SharpDeveloper.

Mono tem permitido que desenvolvedores .NET possam também criar aplicações em ambientes Windows desde 2004, e há n projetos sobre a plataforma, inclusive o Wikipedia, que utiliza .NET na engine de procura/indexação de páginas, rodando sobre Mono.

Aceitação da Comunidade Linux

Quem me conhece, sabe o que eu penso sobre tecnologia: não é religião, ou time de futebol, embora não tenha ambos. São apenas ferramentas. Ferramentas que devem ser utilizadas de acordo com necessidades. Mesmo assim, há pessoas que encaram isso como uma filosofia de vida, o que não considero lá a pior das tristezas, mas é ruim que se deixa de aproveitar muita coisa boa, por um motivo aparentemente revolucionário. Acompanhe o texto abaixo:

“Every line of code that is written to our standards is a small victory; every line of code that is written to any other standard, is a small defeat. Total victory [...] is the universal adoption of our standards by developers, as this is an important step towards total victory for Microsoft itself: “A computer on every desk and in every home, running Microsoft software.”"
–Microsoft, internal document

fonte: http://boycottnovell.com/2009/01/22/mono-excludes-gnu-linux/

Isso realmente soa uma ameaça? Sinceramente, para mim não... mas alguns consideram textos como esse como uma verdadeira ameaça à liberdade, e a fonte de toda miséria humana. Se fosse da antiga Sun/Borland, imagino que a repercussão seria diferente.

Inclusive, eu convido algum espírito livre, a me informar os reais motivos para banir o Mono do Linux, com base no respeito, logicamente. Esse como outros movimentos “livres” (pois é, livres de que?) que apóiam isso. Mas, grupos como esses já são discriminados internamente.
Ferramentas

1. MonoDevelop

Nascida em 2003, feita por alguns desenvolvedores da comunidade Mono, com o objetivo de levar o SharpDeveloper para ambientes não-Windows, o MonoDevelop é uma IDE gratuita e open-source projetada para usar qualquer linguagem .NET disponível até o framework 3.0 (como C#, VB.NET, Boo, Nemerle) e Java (pelo IKVM.NET, que é a implementação de Java , que é interpretado pela runtime do Mono). Também há outros projetos, como PHP4Mono, que traduz a linguagem PHP, para a CIL (Common Intermediate Language).

2. Migration Analyzer (MoMA)

O Mono Migration Analyzer (MoMA) é uma ferramenta que identifica potenciais problemas que você pode ter portanto sua aplicação para o Mono. Identifica, por exemplo, uso de recursos de P/Invoke, que é específico do Windows, e outras áreas não suportadas pelo Mono.

Vamos para melhor parte do artigo, vamos construir uma aplicação em c# e rodá-lo no Linux, usando o Mono.

1) Criando uma Console Application

Clique em Arquivo, New Solution, ou se preferir (CTRL + SHIFT + N) (essa atalho também funciona no Visual Studio). A IDE nos facilitou muito trabalho, afinal de contas. Já temos um código com o nada-usual “Hello World”.

2) Criando uma Aplicação com Interface (baseado em WinForm)

Vá em “Adicione um Container à interface”. Este container é um agrupador de objetos.
Instancie uma Label e uma Textbox. Na janela de Propriedades, modifique as propriedades “Rótulo” e “Nome do Widget” do objeto para “uxlblNome” e “Nome:” da Label, e para o Textbox, as propriedades Name e Nome do Widget para “uxtxtNome”.

Para programar o evento de clique do botão, vá para aba Signals, vá em “Button Signals”. Clique duas vezes no evento Clicked. Automaticamente, o método será criado no Codebehind, e associado o evento do botão ao método. Feito isso, retorne para o code-behind e escreva o seguinte código. Recompile. Escreva no evento do botão, o código abaixo:


protected virtual void OnUxbtnOkClicked (object sender, System.EventArgs e)
{
uxlblResultado.Text = this.uxtxtNome.Text + ", seja bem vindo ao projeto Mono";
}

Execute a aplicação apertando F5.

Pronto, terminamos uma aplicação simples em C# e rodamos no Linux. O que eu quero enfatizar aqui, é a facilidade de utilizar o Mono. Há algumas facilidades “herdadas” do Visual Studio, o que facilita muito um desenvolvedor trabalhar com o MonoDeveloper.

Para finalizar este artigo, estou utilizando Ubuntu como Sistema Operacional e OpenOffice como editor de Texto, ambos sistemas open-source.


Referências

http://en.wikipedia.org/wiki/MonoDevelop
http://mono-project.com/Mono_Basics
http://www.vivaolinux.com.br/artigo/Mono-Por-que-usalo?pagina=2
http://www.vivaolinux.com.br/artigo/Mono-e-C-%28parte-1%29/

quinta-feira, agosto 27, 2009

Dev in Rio



O evento acontecerá no próximo dia 14 de setembro no Centro de Convenções SulAmérica, no Rio de Janeiro!


Evento sobre sobre Métodos Ágeis, Ruby e Ruby on Rails, Python, Java, Django, Open Source, Joomla!, com a participação de nomes como Vinícius Manhães Teles, Guilherme Silveira, Fabio Akita, Jacob Kaplan-Moss, Ryan Ozimek entre outros.

Mais informações: http://www.devinrio.com.br/

sábado, agosto 15, 2009

Função Javascript para Reload em um intervalo de Tempo.

Este artigo mostra como atualizar uma página, de tempos em tempos
por javascript e como manipular este objeto de tempo no evento de um botão. Ou se você preferir, no OnClick de qualquer objeto HTML.

Usei um algoritmo parecido para resolver uma questão de uma funcionalidade do sistema em que atualmente trabalho. Como não encontrei muita coisa na internet de como fazer isso especificamente, resolvi postar aqui.


<html>
<head>
<script language="javascript">
// Variável global do objeto temporizador.
var timer;

function parar() {
window.clearTimeout(this.timer);
}

function comecarReload() {
timer = window.setTimeout("location.reload()", 700);
}
</script>

</head>
<body onload="comecarReload();">
<input type="button" onclick="comecarReload();" value="Iniciar Reloads" />
<input type="button" onclick="parar();" value="Parar" />
</body>
</html>



Espero que possa ser útil. Abraços.

domingo, julho 26, 2009

DOT NET NUKE (.NET NUKE)

No momento estou pensando em utilizar um CMS (Content Management System) para uma aplicação pessoal. Investiguei na internet alguns casos de sucesso do DotNetNuke, e no site do projeto encontrei alguns casos nacionais como Musical Carioca e GAP RJ.

Para quem não conhece, o DotNetNuke é uma iniciativa open source de Content Management Framework, baseado em tecnologia .NET. É um framework desenvolvido em VB.NET, e atualmente se encontra na versão 5.1. Provavelmente vou usá-lo.