E aí galera, seguinte, instalei um plug-in antispam aqui no blog para ver se reduzia um pouco a quantidade de spams nos comentários, aparentemente funcionou legal sem que o usuário tenha ser vítima de um captcha, a minha preocupação agora é que esse plug-in acabe entendendo um comentário válido como inválido =P
Então peço a vocês que caso tenham algum problema com os comentários que por favor me avisem por e-mail keitarosan at gmail dot com.

E vamos que vamos :D

ps.: a quem estiver interessado em saber que plugin é esse, segue a url:
http://wordpress.org/extend/plugins/anti-captcha/

É, não tenho postado nada ultimamente pois estou gastando todo meu tempo pesquisando sobre Language Services, para ser mais específico estou tentando achar como utilizar um recurso chamado: Contained Languages.

Para quem não sabe do que se trata o recurso do Language Services, ele consiste basicamente na “criação de um serviço para uma nova linguagem”, ela seria a responsável por tratar das facilidades que o Visual Studio nos dá, como Syntax Highlight, Code Completion, Auto Match Braces e essas coisas. O recurso de Contained Languages, como próprio nome já diz, é uma linguagem contida em outra, como por exemplo nas páginas aspx que você programa utilizando HTML, no entanto pode colocar código C# no meio e ainda sim o Visual Studio é capaz de identificar que aquele trecho é código C# te dando todo o auxílio que o editor do code behind te dá. Show de bola, né?
O único problema é que existe muito pouco material sobre esse assunto, no próprio msdn o assunto fica muito vago com falta de exemplos práticos e códigos. Podem ter certeza que quando eu desconbrir como utilizar esses recursos direitinho eu vou postar aqui :D

Caso alguém já tenha feito alguma coisa utilizando contained languages, por favor, poste um comentário aí pois estou gastando bastante tempo nisso…

Tags: ,

Download Source Code (vs2008 – SQLite x64)

Nossa, o ProgrammingLand ficou mesmo jogado as traças, sem novos posts e sem comentários para os existentes :P
Mas “vamo que vamo”, estou com alguns assuntos no backlog para falar, mas falta tempo para arrumar um bom exemplo, afinal de contas um post sem códigos é inaceitável. Hoje vou falar um pouco do esquema de herança entre entidades no NHibernate e um problema que estava discutindo com um amigo de uma empresa em que trabalhei.
Read the rest of this entry »

Tags: , ,

E aí pessoal, quem me conhece já sabe como eu abomino CDs e DVDs, não confio neles para nada, são piores do que alimento perecível, sempre ficam ruins quando você mais precisa. É por isso que eu sempre tenho todas as imagens no meu HD e o que não falta é espaço no HD, hehe
Devido a isso e ao fato de baixar muita coisa mantendo tudo sempre muito atualizado eu acabei precisando saber como instalar o Windows ou Linux a partir de um pen-drive, não há nada mais comodo do que isso, aliás, há sim que é ter o Ubuntu instalado dentro do PenDrive, basta espetar na máquina e bootar em qualquer lugar e sair usando, é maravilhoso =)

Mas vamos lá, estou aproveitando que acabei de fazer esse processo e estou postando aqui para os que não conhece ainda como fazer isso.
Seguem os passos.
Read the rest of this entry »

Tags: , ,

Estava lendo um post no NHibernate Blog sobre algo extremamente interessate. Alguém já deve ter notado dois novos métodos que foram incluídos na interface ISession, o Future e o FutureValue.
O Future teria um comportamento semelhante ao List, e o FutureValue seria uma alternativa ao UniqueResult, mas qual a diferença efetiva entre eles se eles são semelhantes? Vejamos abaixo:
Read the rest of this entry »

Tags: ,

Download Source Code (vs2008 – SQLite x64)

E aí pessoal, como o assunto anterior foi NHibernate, vou continuar nessa linha de ORM e agora vou tocar em um assunto que foi muito falado há um tempo atrás assim que o Linq foi anunciado/lançado. Todo mundo gostava de comparar ERRONEAMENTE o Linq ao NHibernate, falando que o NHibernate iria ficar para trás, que o Linq era muito melhor e etc, mas vamos pensar um pouco, você consegue comparar laranjas com maçãs? talvez abacaxi com caqui, e aí, agora consegue? Não importa o que seja falado, essas duas ferramentas possuem naturezas diferentes, elas possuem objetivos distintos e não são passíveis de comparação. O que poderia ser posto em pauta para tentar concorrer com o Linq seria o HQL ou o Criteria que são as duas formas de consulta que o NHibernate disponibiliza por padrão. Mas eu não estou afim de ficar fazendo comparações, vamos ao que interessa!

Para os que ousaram um dia comparar NHibernate vs Linq eu pergunto: O que é o NHibernate.Linq? Mas veja você, um provider Linq para NHibernate?? Mas que ironia hein…
Read the rest of this entry »

Tags: , , ,

Download Source Code (vs2008 – SQLite x64)

Olá a todos, como já disse em um post anterior, eu sou fã desse framework de ORM, o NHibernate, irmão mais novo do Hibernate da comunidade Java. E para os que ainda não o conhecem ou para os que já ouviram falar mas não sabem muito bem do se trata e nunca utilizaram, vou tentar colocar hoje aqui os primeros passos nessa ferramenta e qual o objetivo deste framework.

- Conceito

ORM ou O/RM our O/R Mapping – sigla em inglês para Object-Relational Mapping, em outras palavras Mapeamento Objeto/Relacional.
O objetivo de qualquer framework ORM é tentar compatibilizar o máximo entre o “mundo” relacional dos banco de dados e o “mundo” orientado a objetos das linguagens atuais. A idéia é que você escreva seu código manipulando somente suas entidades sem se preocupar como esses dados serão persistidos, o framework ORM é quem vai ser o resposável por “traduzir” para banco de dados como e onde seus objetos serão guardados, o contrário também é verdade, quando você precisar da instância de alguma entidade você irá “pedir” para o framework ORM e ele será o responsável por coletar todos os dados necessários no database para restaurar o estado do seu objeto.
Read the rest of this entry »

Tags: ,

Você já deve ter ouvido falar em “Programação Orientada a Aspectos” ou simplesmente “POA”, mas você já utilizou alguma vez? Sabe exatamente do que se trata? Será que ela substitui o paradígma da Orientação a Objetos que está tão difundido hoje em dia? É sobre isso que vamos falar hoje.

Para começar, o paradigma de orientação a aspectos não veio para substituir a orientação a objetos, muito pelo contrário, os dois paradigmas funcionam muito bem juntos e seus objetivos são distintos.
Hoje em dia, através da orientação a objetos, tentamos modelar nossos sistemas focando o máximo que conseguimos no negócio, tentando abstrair questões sistêmimas e infra-estruturais. A questão é que por mais que tentemos abstrair essas questões periféricas, elas “sempre” existirão, pois o meio(sistemas computacionais) ao qual utilizamos exige que elas sejam consideradas. Vamos a um exemplo prático: se seus dados são persistidos em um banco de dados relacional com certeza você deverá utilizar transação em algum momento, mas uma transação não tem nada a ver com seu negócio, arrisco dizer que seu cliente nem saberia o que é uma transação caso você mencionasse esse termo durante uma discussão sobre o negócio. Mas e aí? Um sistema não é feito puramente de regras de negócio, eu preciso também me atentar aos requisitos sistêmicos como segurança, logging, integridade dos dados e outros.
Read the rest of this entry »

Tags: , ,

Como bom curioso que sou, vivo procurando saber como funcionam internamente as coisas, para isso não existe nada melhor do que essa ferramenta: .NET Reflector.
Ela consiste basicamente em um decompilador, porém não é um simples decompilador que mostra apenas o código MSIL gerado, é possível visualizar o código em C#, VB, Delphi, Chrome e IL, além dos vários addins existentes.

Através dela você pode ver por exemplo como acontece a mágica dos Anonymous Types, Auto Properties, Dynamic, Named Parameters, Default Parameters e muitos outros novos recursos que foram introduzidos nas últimas versões do C#.
Você pode também explorar as próprias bibliotecas do .net framework e entender como algumas coisas funcionam, como estão organizadas e etc. É bem legal.

Ahhh, e para você que não quer ninguém veja o seu código depois de compilado, tente dar trabalho aos curiosos de plantão obfuscando seu código durante a compilação, pois a decompilação como você mesmo pode ver é moleza ;)

Tags: ,

Bom, atendendo a um pedido de um amigo, vou expor aqui o que eu entendo deste assunto.

Para iniciar, acredito que todos saibam que Object é a classe base na plataforma .net desde sua primeira versão onde todas as classes existentes ou que vierem a ser criadas são descendentes de Object mesmo isso não sendo explicitado, e por consequência disso herdam seus comportamentos e suas propriedades, como por exemplo ToString(), Equals(Object obj), GetHashCode() dentre outros. Até mesmo os tipos primitivos herdam de Object em .net.

Até a versão 2.0 do C#, qualquer propriedade, parâmetro, campo ou uma simples variável deveria ter seu tipo explicitamente declarado. Hoje estamos na versão 4.0 e duas mudanças foram feitas na forma de declaração de um membro da classe, no C# 3.0 foi introduzida a keyword var e no C# 4.0 criaram uma outra: dynamic.
Read the rest of this entry »

Tags: , , , , , , ,

« Older entries