Estive no dia 29/03 fazendo duas palestras em parceria com o Rodrigo Kono na Faculdade de Tecnologia Senac-GO, abordamos dois temas muito interessantes que é o Cloud Computing e Desenvolvimento Asp.Net.

Basicamente eu fiz a primeira palestra focada na apresentação do Cloud Computing e o Windows Azure, até porque faz parte de minha área de estudos e trabalho. Segue abaixo o Slide com a apresentação como foi prometido na palestra.

O público foi bem participativo e com um bom número de presentes, onde também tive a oportunidade de rever amigos como o Lionísio (Diretor da faculdade, e foi meu supervisor quando ministrei alguns cursos no Senac).

 

 

Parabéns a Faculdade e ao pessoal do 4º Período responsável pela organização.

Até a próxima.

 

Olá pessoal teremos no dia 19 a 23/03 Diversos WebCasts muito interessantes, segue abaixo a lista e participem.

Desenvolvendo aplicações para WP7 em HTML5 com o PhoneGap
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032508239&Culture=pt-BR

… Criando aplicações específicas para dispositivos móveis com ASP.NET MVC e jQuery
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032508141&Culture=pt-BR

Conheça a biblioteca jquery knockoutjs
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032508260&Culture=pt-BR

Aplicações ASP.NET MVC para diferentes cenários
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032508244&Culture=pt-BR

Metro Style – Conceitos fundamentais para designers e developers
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032508268&Culture=pt-BR

Desenvolvendo no Visual Studio para mobile Multiplas Plataformas
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032508265&Culture=pt-BR

MVC 3 + Razor + Report Viewer – Criando relatórios e renderizando pelo Controller utilizando LINQ
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032508273&Culture=pt-BR

Dicas para o desenvolvimento jQuery (Ajax,Json, tmpl, validations)
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032508271&Culture=pt-BR

Visual Studio e HTML5 – Como tirar proveito
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032508276&Culture=pt-BR

Já vi e ouvi muitos questionamentos sobre ferramentas para ajudar no gerenciamento do ORM de sua aplicação. Alguns já devem conhecer o EF Power Tools, outros utilizam ferramentas para o NHibernate, mas o que vejo é que a maioria procura algo que pode utilizar sem nenhum custo.

No entanto eu também prefiro encontrar uma ferramenta sem custos que me ajude na produtividade, mas mesmo assim gosto de fazer uma avaliação dos produtos que são pagos e ver a sua relação custo benefício.

Como tenho utilizado bastante o Entity Framework 4.1 em dois novos produtos, então fui em busca de algo para ajudar no mapeamento, e acabamos comprando o Entity Developer da DevArt e tenho visto que o tempo economizado já compensou o investimento.

Quero falar aqui um pouco sobre essa ferramenta que você pode conhecer no link: http://www.devart.com/entitydeveloper/ e tirar suas próprias conclusões.

Vou fazer uma uma breve apresentação sobre o produto, utilizando do conceito de Model First (ou seja desenvolvimento primeiramente o modelo). para isso o produto lhe oferece um canvas para desenhar suas classes e vou me basear no modelo abaixo:

A partir deste modelo o Entity Developer lhe oferece uma área de trabalho com várias opções que vão lhe ajudar muito na definição do seu modelo.

Com o model Explorer você pode definir itens como o tamanho máximo de uma propriedade string e também indicar que irá gerar o código das classes e o contexto para o Entity Framework 4.1 com mapeamento fluente.

Após todas as definições você pode então através da própria ferramenta conectar no seu banco de dados e já criar as tabelas.

Depois se você fizer qualquer alteração como incluir uma nova propriedade e mandar atualizar o banco de dados, será criado um script somente da alteração que foi implementada.

Agora finalmente podemos criar os arquivos com as definições das classes e o contexto usando o EF 4.1.  O que também é configurável onde você pode criar um arquivo somente para todas as classes ou em arquivos separados. Então é só inserir no seu projeto e utilizar. O produto também oferece um template e Add-in integrado ao Visual Studio.

Bom é isso pessoal, creio que vale a pena avaliar e medir se vale o investimento para o seu caso.

Até mais!

Olá pessoal,

Para quem conhece o Repositório Genérico que colocamos no CodePlex (http://dataplataform.codeplex.com) podem perceber que no caso de você desejar incluir em alguma consulta Linq uma propriedade relacionada ao objeto que estiver consultando deveria colocar isso em uma string.

No entanto sabemos que isso não é muito bom, pois caso seja feita alguma mudança no nome de uma propriedade ficará ruim manter isso, inclusive também se escrever errado o nome da proprieade ocorrerá erro somente em tempo de execução.

O código que temos hoje no repositório fornece um método abaixo para o EF 4.1, com isso vamos entender melhor o que estou falando.

        public IList<TSource> GetAll(string include)
        {
            try
            {
                IList<TSource> result = Context.Set<TSource>()
                    .Include(include).ToList();
                return result;
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                    throw new Exception(ex.InnerException.Message, ex);
                throw new Exception(ex.Message, ex);
            }
        }

Neste caso vamos utilizar o método chamando assim:

var listaCategorias = repCategory.GetAll("Products");

No entando ficaria ainda mais complicado que quiser indicar mais de uma propriedade, para o caso do EF teríamos de separar com “,” (vírgula), e se for WCF Data Services seria com “/”. Então não ficaria muito legal cuidar disto.

Mas como diríamos “seus problemas acabaram” :)

Podemos resolver isso usando o próprio ‘Linq’ e nossa amiga ‘Lambda’, então nosso método GetAll do repositório genérico ficaria assim:

        public virtual IList<TSource> GetAll(params Expression<Func<TSource, object>>[] include)
        {
            try
            {
                if (include.Length == 0)
                    throw new Exception("Número de parametros inválido.");

                var query = Context.Set<TSource>().AsQueryable();

                query = include.Aggregate(query, (current, exp) => current.Include(exp));

                IList<TSource> result = query.ToList();
                return result;
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                    throw new Exception(ex.InnerException.Message, ex);
                throw new Exception(ex.Message, ex);
            }
        }

Com isso para utilizar o método agora podemos passar como parâmetro uma lista de expressões e em nosso exemplo usado fica assim:

var listaCategorias = repCategory.GetAll(c => c.Products);

O repositório foi atualizado no CodePlex e você poderá baixá-lo.

Esta melhoria foi muito útil em um projeto que estamos utilizando na empresa e espero também que tenham benefícios com ela.

Até mais!

Olá pessoal,

Estive palestrando no TDC 2011, evento que comentei em post anterior, falando sobre tecnologias de acesso a dados com a plataforma .Net, na oportunidade estive falando sobre o ADO. Net e também sobre o Entity Framework 4.1.

No geral gostei bastante do evento em se tratando de diversas tecnologias percebi uma ótima oportunidade de integração da comunidade de TI em geral, creio que teremos outra edição em 2012 e espero que mais pessoas participe e pelo que fiquei sabendo nesta edição estavam em torno de 400 pessoas, o que é um ótimo público.

Segue abaixo minha apresentação:

Até mais.