Paulo Aboim Pinto

Tudo sobre .NET e Linux

My Links

Blog Stats

Archives

Post Categories

Image Galleries

.NET WebSites

Foruns

General Developement

Linux e OpenSource

Mono

Motores de Busca (Linux)

Notícias

Other Blogers

Login

Monday, September 22, 2008 #

Usar simplesmente o essencial

Usar simplesmente o essencial

Hoje ao ler uns blogs descobri algo simplesmente extraordinário. Cada vez mais o C# .NET me surpreende com pequenas coisas.
O que descobri foi que podemos substituir uma quantidade de linhas do nosso código por apenas uma. Isto acontece quando usamos com frequência os comandos For e Foreach. Assim, temos os seguintes exemplos:

// Assumimos que temos uma lista de strings cujos valores obtemos a partir do método GetLotsOfStrings
List allStrings = GetLotsOfStrings();

// Method 1: for loop
for (int i = 0; i < allStrings.Count; i++)
DoStuff (allStrings[i]);

// Method 2: foreach loop
foreach (string s in allStrings)
DoStuff (s);

Qualquer uma destas formas obriga a escrever várias linhas de código e consequentemente uma pobre manutenção do código. Será que podemos substituir isto por uma só linha? Afinal podemos da seguinte forma:

allStrings.ForEach(DoStuff);

Incrível??? Experimentem.


Abraços
Paulo Aboim Pinto
Odivelas - Portugal

posted @ 1:19 PM | Feedback (2)

Monday, August 25, 2008 #

Parecia que nem tudo no Mono funciona...

Parecia que nem tudo no Mono funciona igual ao .NET

É verdade, passei o fim de semana todo embrenhado a tentar entender porque é que no Mono uma funcionalidade dava erro e no .NET não. Essa funcionalidade era a base do Expression Evaluation que tenho estado a trabalhar que se baseia na geração de um método dinâmico e na sua execução.

Eu sabia que no Mono funcionava, mesmo sem que tenha experimentado alguma vez, mas, o azar aparece sempre que não o desejamos e eis que obtinha o erro:

Unhandled Exception: System.ArgumentException: Expression cannot be evaluated, please use a valid C# expression: 0+1 ( at System.Reflection.Emit.
AssemblyBuilder.DefineDynamicModule (System.String name, System.String fileName, Boolean emitSymbolInfo, Boolean transient) [0x00000] )
at RefletionExample.Program.EvaluateExpression (System.String statement) [0x00000]
at RefletionExample.Program.Main (System.String[] args) [0x00000]

sempre que executava o método CompileAssemblyFromSource que cria um método on-the-fly.

Depois de muito bater com a cabeça, pesquisar muito em foruns e colocar posts no Bugzilla do Mono, alguém conseguiu identificar o meu problema. Num dos parametros de criação da assembly tinha, cp.OutputAssembly = "Module"; e segundo a especificação do CLR este comando devia receber também a extensão, ou .dll ou .exe.
No windows se não indicamos a extenção, a assembly é criada em memória (expecialmente porque tinha a linha: cp.GenerateInMemory = true;), mas, em Mono, como ela é criada em disco necessitava da extensão e bastou colocar a estensão e tudo ficou a funcionar como se de um windows se tratasse.


ufffaaa, parecia ser um problema, mas, a solução não podia ser mais simples.


Abraços
Paulo Aboim Pinto
Odivelas - Portugal

posted @ 3:39 PM | Feedback (0)

Tuesday, August 12, 2008 #

Visual Studio 2008 Service Pack 1 and...

Visual Studio 2008 Service Pack 1 and .NET Framework 3.5 Service Pack 1


Para quem anda distraído na net .. aqui está o link.


Paulo Aboim Pinto


posted @ 2:37 PM | Feedback (0)

Tuesday, July 29, 2008 #

NECESSITO DE AJUDA

NECESSITO DE AJUDA

Boas pessoal,

Estou a necessitar de ajuda em obter duas dlls de acesso a uma base de dados Sybase que são:

sybdrvado11.dll
sybdrvssl.dll

Será que alguém pode mandar-me por email? Agradecia que enviassem para aboimpinto@gmail.com


obrigado
Paulo Aboim Pinto

posted @ 11:07 AM | Feedback (0)

Tuesday, June 03, 2008 #

Afinal o Mono realmente é uma alternativa!

Afinal o Mono realmente é uma alternativa!

Quem segue o meu blog sabe que sou uma pessoa que defende a liberdade de escolha. Eu para desenvolvimento escolho o .NET, mas, para sistema operativo escolho Linux (Ubuntu).
Aos mais desatentos, esta é uma ligação que parece ter poucos pontos onde se tocam, mas, não poderia ser mais longe da verdade. Com a framework Mono, já podemos ter aplicações a correr em Windows e Linux com a mesma performance e ainda acrescendo a fiabilidade que um sistema baseado na tecnologia UX permite.

Até agora só tenho usando em termos pessoais, experiências e alguns posts aqui neste blog, mas, finalmente tive a oportunidade de desenvolver algo que tenha que correr tanto num Linux com num Windows e a decisão foi .NET no Windows e Mono no Linux.
A base de desenvolvimento é Windows + Visual Studio e a aplicação tanto tem que correr num sistema como noutro.

É basicamente um conjuntos de aplicações consola que vão ser executadas por um serviço (daemon no Linux) que monitorizam directórios e quando são lá colocados ficheiros, esta aplicação deve os processar o mais rapidamente possível.
Para monitorizar os directórios uso o objecto FileSystemWatcher, que funciona bem em ambos os sistemas. Manipular ficheiros leva-me a certos cuidados de programação como, sempre que querer concatenar o nome de um ficheiro a uma directoria, usar sempre System.IO.Path.Combine que cria a directoria correcta independentemente do sistema onde estamos.

Como os ficheiros que vão ser processados podem ter diversos formatos, este mecanismo usa plugins que conhece o formato de cada ficheiro, traduzindo-os para estruturas conhecidas pelas aplicação principal. Assim o que importa são os dados que podemos extrair dos ficheiros e não o formato dos mesmos.

Estou deveras contente por as palavras que tenho repetido nos últimos anos começarem a fazer eco em algumas empresas e em algumas cabeças. Aqui está um exemplo de como o Mono pode ser realmente uma alternativa.


Abraços
Paulo Aboim Pinto
Odivelas - Portugal

posted @ 3:21 PM | Feedback (0)

Wednesday, May 28, 2008 #

Vídeos sobre testes unitários

Vídeos sobre testes unitários

Para quem ainda tem algumas duvidas de como usar os testes unitários e o que pode ser ou não testado, aqui fica alguns vídeo de o que podemos fazer e como.

Veja os vídeos aqui.


Abraços
Paulo Aboim Pinto
Odivelas - Portugal

posted @ 10:43 AM | Feedback (0)

Monday, May 26, 2008 #

Mac, PC .. meet linux

Mac, PC .. meet linux

Depois de uma "mais ou menos" conhecida campanha da Apple, a Novell, gigante que resolveu levar o Linux a todo o lado, lançou uma sequela.

Podem ver aqui.


Abraços
Paulo Aboim Pinto
Odivelas - Portugal

posted @ 10:56 AM | Feedback (0)

Monday, April 07, 2008 #

Erros no WebSite (não acontece só a nós)

Erros no WebSite (não acontece só a nós)

Depois do lançamento do WebSite da Altior a semana passada, onde ocorreram alguns erros que não tinha sido previstos, eis que hoje resolvi entrar no site do cartão Fast Galp para pedir uma segunda via do meu cartão que expirou à algum tempo.

Reparo que até nas grandes empresas, com grandes projectos também está sujeitos a erros e não há nada que possamos fazer a não ser tentar corrigir o mais rapidamente possivel. Tentem efecutar o login com qualquer valor. Não necessita ser valido e obtém logo uma mensagem de erro:

Server Error in '/' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Fast/Portugues/homeFlashFixo.aspx



Espero que resolvam rapidamente. Ainda irá aparecer alguém que acho que o problema é sempre do Window$.


Abraços
Paulo Aboim Pinto
Odivelas - Portugal

posted @ 9:46 AM | Feedback (2)

Thursday, April 03, 2008 #

Novo WebSite da Altior

Novo WebSite da Altior

Gostaria de apresentar a nova cara da Altior em http://www.altior.pt. Depois de muitos contratempos, muitos problemas e a passagem por muitas plataformas a nova imagem da Altior está online.

Gostaria de destacar o trabalho incansável do Pedro Furtado que, apesar de todos os contratempos sempre levou o projecto para a frente sem nunca perder a cabeça.

Convido desde já todos todos a visitar em http://www.altior.pt.


Abraços
Paulo Aboim Pinto


posted @ 11:08 AM | Feedback (3)

Friday, March 28, 2008 #

Apresentação da Framework Mono na Altior

Apresentação da Framework Mono na Altior

Ontem, no Technical Metting da Altior (um evento técnico onde se apresentar uma determinada tecnologia) sobre a Framework .NET, tive a oportunidade de apresentar o Mono a as suas últimas evoluções. A apresentação era para ter uma duração de 20 minutos, mas, devido à vontade da plateia de saber mais e mais, a apresentação durou 50 minutos.
No final, muitos dos consultores vieram ter comigo e dizer que finalmente alguém lhes deu a razão que esperavam para olhar com mais atenção para o Mono.

Um dos consultores veio com um problema real sobre um equipamento móvel que tem que usar no cliente e desenvolver para ele. Actualmente usar uma linguagem (penso ser C/C++), mas, se conseguir colocar a mini Framework do Mono a correr nesse equipamento, poderá usar C#. Ele só com esta ideia ficou muito contente e foi para casa pensar nesta solução. Infelizmente, porque não poderá mexer no código da Compact Framework do .NET, nunca poderá usar esta no equipamento. Desejo para ele o maior sucesso na utilização do Mono.

Deixo aqui a apresentação que usei no formato PDF. Não está perfeita, mas, foi a primeira. Espero que possa vir a melhorar e fazer muitas mais

Abraços
Paulo Aboim Pinto
Odivelas - Portugal

posted @ 11:57 AM | Feedback (3)

Saturday, March 22, 2008 #

ASP.NET MVC Source Code Release

ASP.NET MVC Source Code Release

Isto realmente é uma excelente notícia. O MVC ( Model View Controler) não é propriamente uma tecnologia, mas, a implementação de uma metodologia. Como implementação que é, há várias formas de a usar e ter o código disponível faz com que haja gente pelo mundo inteiro que a possa alterar e mesmo adicionar novas funcionalidades.
A Microsoft simplesmente controla e centraliza a chegada desses pedidos, novas funcionalidades e Patches.

Podem ver o que o ScottGu's Blog a notícia e a localização do projecto no CodePlex.

Gostei imenso desta idea.
Abraços
Paulo Aboim Pinto

posted @ 3:19 PM | Feedback (0)

Wednesday, March 19, 2008 #

Como resolver problema de DIVs dentro de DIVs

Como resolver problema de DIVs dentro de DIVs

A ler alguns blog que faço todos os dias encontrei este excelente artigo que vai ajudar-me muito no Olimpo CMS. Muitos programadores de WebSite já devem ter passado por isto. Ainda num experimentei, mas, agora estou mais confiante.

Abraços
Paulo Aboim Pinto
Odivelas - Portugal.

posted @ 4:01 AM | Feedback (0)

Tuesday, March 18, 2008 #

MonoDevelop 1.0 foi lançado

MonoDevelop 1.0 foi lançado

Para algumas pessoas distraidas este projecto atingiu finalmente a versão 1.0. O MonoDevelop é um IDE para programação .NET em Linux, totalmente desenvolvimetno sob a a versão estável do Mono.
Ainda não tem a mesma qualidade do Visual Studio, porém é uma alternativa mais que viável para os que não usam Windows e desejam continua a desenvolver com para a framework .NET.

Gostaria de realçar o seguinte neste IDE:

  • GTK# Designer
  • Suporte para projectos ASP.NET e Deplyment
  • Integração com projecto Visual Studio
  • Integração com servidores SVN
  • Integração com ferramenta de Testes Unitários - nUnit.

Algumas Features que ficaram de fora desta versão são:

  • Debugger
  • Web Designer
  • Integração com Team Foundation Server

Podem ler um pouco sobre esta release aqui.
Dentro em breve irei fazer uns ScreenCasts para mostrar um pouco deste IDE.


Abraços
Paulo Aboim Pinto



posted @ 2:05 PM | Feedback (0)

Tuesday, March 11, 2008 #

Mono on the IPhone

Mono on the IPhone

Para alguns distraidos, a primeira versão da Framework .NET que corre num IPhone é o Mono. Podem ver os screenshots no Blog do Miguel de Icaza.

Source: Mono on the IPhone


Abraços
Paulo Aboim Pinto
Odivelas - Portugal


posted @ 11:12 AM | Feedback (0)

Monday, March 10, 2008 #

Scott Guthrie: Inside Silverlight 2 Beta 1

E sempre bom ouvir as pessoas que sabem e que são refêrencia. Este senhor é sempre dúvida uma pessoa que todos tem que ter em grande consideração.

Vejam este pequeno filme no Channel 9 com apresentação da proxima versão do Silverlight. É simplesmente fanstaticos.


Scott Guthrie: Inside Silverlight 2 Beta 1

Abraços
Paulo Aboim Pinto


posted @ 12:51 PM | Feedback (0)