Evento – Mulheres na Tecnologia – /MNT

No dia 02/03/2013, em Goiânia-GO, acontecerá o I Encontro de Mulheres na Tecnologia,http://mulheresnatecnologia.org/evento. Um evento organizado pelo grupo Mulheres na Tecnologia que visa promover um encontro presencial das profissionais da área, integrantes ou não do grupo para: Discutir a participação das mulheres no mundo e no mercado de trabalho de TI; Capacitar e disseminar novas tecnologias entre as participantes; Incentivar a participação de mulheres na área de tecnologia e informação; Promover a troca de experiências.

Participem!!!

mnt_banner_468x60px

por joselinoneto Postado em Eventos

Palestra sobre arquitetura de software, Nhibernate e Entity Framework

Estive no dia 20/06/2012 no TCE-GO Tribunal de Contas do Estado de Goiás. Fui a convite do Élvis Irineu que é um parceiro da comunidade que acompanha meu trabalho há algum tempo.

Recebi o convite para falar sobre o Nhibernate e alinhando sobre a expectativa da apresentação percebi que o problema era mais arquitetura e a forma de se desenvolver e de se ter camadas com responsabilidades especificas do que uso de um ou outro ORM.

Mostrei um overview rápido sobre o Nhibernate e foquei mais em um modelo de arquitetura onde utilizamos tanto o Nhibernate quanto o Entity Framework para acessar o banco de dados. Utilizamos o Sql Server e o Oracle Express.

O feedback foi positivo e gostei bastante de rever colegas da época da faculdade e também de outros empregos.

Comunidade é isso. Compartilhar experiências, networking e amizade.

Abraço e até a próxima.

ASP.NET MVC e Open Souce

aspnet-250x250

O MVC para ASP.NET já era Open Souce desde a primeira versão 1.0. Devido a isso não entrei no barulho que foi feito quando anunciaram recentemente que o MVC teria sido colocado sobre licença Open Souce. Fiz minha primeira palestra sobre o MVC no Eco Developers em Junho de 2009, na época ouvi comentários: “Não sei se isso vai pegar”, “Isso é voltar ao ASP3”, “Vou ter mais trabalho com o MVC”. Não sei se virou modinha usar MVC hoje em dia mas os comentários positivos e gurus sobre o assunto crescerem bastante.

Independente das mudanças de comportamento vamos ao que interessa:

  1. O ASP.NET MVC é open source desde a versão 1.0
  2. Outros produtos foram incorporados ao framework, produtos esses também sob licença open source: jQuery, jQuery UI, jQuery Mobile, jQuery Validation, Modernizr.js, NuGet, Knockout.js eJ SON.NET
  3. O que foi públicado recentemente é que o ASP.NET Web API e ASP.NET Web Pages (conhecido como Razor) foram liberados sobre a licença Apache 2.0 e que seus códigos fontes estão publicados no codeplex.

E daí? O que ganho com isso? (Uma vez falei isso em uma lista e tomei muita porrada)

O ASP.NET MVC é ainda um produto suportado pela Microsoft e vai ser liberado em suas entregas do .NET Framework e do Visual Studio, seu desenvolvimento vai ser realizado pelo time da própria Microsoft, no entanto podemos baixar atualizações e correções sem precisar esperar a próxima versão ou update, basta estar ligado no projeto pelo codeplex.

Para conhecer o projeto open souce acesse o codeplex:

http://aspnetwebstack.codeplex.com/

[]´s

Lino

 

Referências:

http://weblogs.asp.net/scottgu/archive/2012/03/27/asp-net-mvc-web-api-razor-and-open-source.aspx

http://www.hanselman.com/blog/ASPNETMVC4

ASP.NET MVC4 Beta – Bundling and Minification – Parte 02 – Final

Seguindo o post anterior:

Outro recurso interessante sobre o Bundling e Minification é a capacidade de explorar recursos do browser do cliente para gerar uma cache local dos seus arquivos de estilo e javascript. Ou seja, quando o cliente acessar nosso site pela primeira vez vamos enviar todo conteúdo necessário para apresentação do site, com esse conteúdo o browser vai armazenar localmente na máquina do cliente a versão dos nossos estilos e scripts para que a próxima vez que o site receber essa visita o desempenho vai ser superior, pois não vai ser necessário baixar novamente esse conteúdo.

O Framework 4.5 do ASP.NET e inclusive o MVC 4 possuem esse recurso, para utilizarmos precisamos colocar:

<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
 <link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/themes/base/css")" rel="stylesheet" type="text/css" />
 <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>

O próprio gerente de produto do ASP.NET comentou que é um pouco grande esse helper: System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl Smiley de boca aberta. No entanto ele é o responsável para que a cache seja criada no browser.

Olhando o código fonte da página vamos observar uma string mágica que é um hash dos arquivos que estão sendo feito o Bundling e Minification, esse hash vai ser gerado automaticamente a partir dos arquivos, ou seja, caso alguma modificação seja realizada em qualquer arquivo de estilho ou de script o hash a ser gerado vai ser outro e automaticamente o browser do cliente ao verificar esse hash vai perceber a modificação e então vai baixar os novos arquivos limpando a cache anterior.

Capturar1

Podemos realizar esses mesmos recursos via código para uma maior customização. Veja mais no blog do Scott Guthrie

Veja mais sobre o assunto em:

Referências:

http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx

http://weblogs.asp.net/scottgu/archive/2012/02/19/asp-net-mvc-4-beta.aspx

Não deixe de ver esse vídeo:

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2364/player?w=956&h=484

Abraço e até a próxima.

Lino

ASP.NET MVC4 Beta – Bundling and Minification – Parte 01

Pessoal,

O MVC 4 já chegou, está em beta e pode ser baixado e testado publicamente. Para isso aqui vai o link para conhecer mais: http://www.asp.net/mvc/mvc4

Algumas novidades do MVC4 são também novidades do Framework ASP.NET, logo muita coisa que vai vir no ASP.NET 4.5 vai beneficiar tanto os projetos desenvolvidos em MVC ou WebForms.

Um recurso interessante lançado e que podemos já testar é o Bundling and Minification. Uma breve explicação:

Bundling: É o processo de agrupar em apenas um arquivo javascript todos os outros arquivos existentes na solução web, ou seja, se temos dez arquivos javascript que vão ser utilizados no site vamos enviar apenas um com o objetivo de otimizar a solução reduzindo o tempo de envio de arquivos. Serve para folhas de estilo também (css).

Minification: É o processo de remover todos os caracteres em branco (espaços), comentários, quebras de linha. O objetivo para reduzir a quantidade de caracteres e consequentemente o tamanho final do arquivo, com isso otimizar o desempenho de um site reduzindo o tamanho dos arquivos de javascript e estilos (css) enviados ao cliente.

Por que realizar Bundling and Minification?
- Para otimizar o desempenho de recebimento dos arquivos essenciais do site para a máquina do cliente.

Por que otimizar esse envio?
- Para melhorar experiência do usuário e em cenários onde há acessos via smartphones é imprescindível para reduzir o trafego de dados.

Desafios:

  • Automatizar o processo de Bundling and Minification
  • Manter versões reduzidas para o deploy da solução e ao mesmo tempo manter versões em alto nível para facilitar desenvolvimento e manutenção dos códigos pelo time de desenvolvimento.

Com a versão beta do MVC4 já podemos testar e resolver esses desafios de forma nativa. O próprio Visual Studio faz o Bundling and Minification dos arquivos de forma natural e mantêm as versões em alto nível para a equipe de desenvolvimento e desing.

Vamos aos exemplos para demonstrar a otimização de acesso:

O exemplo abaixo foi realizado com o projeto padrão do próprio ASP.NET MVC 4 Beta. Com o novo template que o mesmo trouxe, foi feito acesso a página inicial com o tempo de duração e tamanho dos arquivos necessários para execução da página e estilos. Comparando os resultados observe a melhoria em performance.

imagem01
Imagem 01 – Observem a quantidade de arquivos e o tempo de download dos arquivos.

imagem02
Imagem 02 – Menor quantidade de arquivos, tempo e dados para baixar o mesmo conteúdo

E como usamos o recurso de Bundling and Minification? É simples basta usar a sintaxe a seguir no momento de referenciar os arquivos de javascript e css:

Ao invés de continuar referenciando as folhas de estilo dessa forma:

image_05021144
Imagem 03 – Referência Folha Estilo

Faça:

image_0EE702AF
Imagem 04 – Bundling and Minification com folhas de estilo no MVC 4 Beta

Onde o diretório styles foi mencionado e o conteúdo dele com folhas de estilo css

Da mesma forma para arquivos JavaScript:

image_6DF39007
Imagem 05 – Bundling and Minification com arquivos Javascript

Onde o diretório scripts foi mencionado e conteúdo dele com javascript js

É isso aí espero otimizar os sites de vocês. Smiley de boca aberta

No próximo post vou mostrar como fazer Bundling and Minification e ainda explorar recursos do browser do cliente para fazer cache dos nossos arquivos de javascript e css no browser do cliente. Aguardem…

Abraços

Lino

Referências:

http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx

http://weblogs.asp.net/scottgu/archive/2012/02/19/asp-net-mvc-4-beta.aspx

Conheça o Microsoft Virtual Academy – Capacitação técnica gratuita

A tecnologia está em constante desenvolvimento, trazendo novas oportunidades de negócios e desafios presentes em todos os departamentos de TI. Estar atualizado sobre as últimas novidades e ser treinado nas soluções de tecnologia que lideram o mercado, irá ajudá-lo a crescer em sua carreira e a estar preparado para mudanças, fazendo melhor uso das tecnologias e garantindo a eficácia do seu trabalho.

MVA (Microsoft Virtual Academy) oferece formação profissional através de carreiras inteiras em diferentes níveis (iniciante, intermediário ou avançado) e cursos especiais em produtos e tecnologias Microsoft. Os participantes também recebem apoio através de fóruns específicos, e uma biblioteca técnica, propriamente dita. Você pode treinar, por exemplo, Windows 7, Implementação de Nuvem Privada, VDI e MED-V, entre outros temas, de forma gratuita e prática.

Conheça o MVA www.microsoftvirtualacademy.com

Dependência de referências para publicar sites em ASP.NET MVC3

Pessoal,

Como todos sabem o Visual Studio 2010, seja com o SP1 ou não, tem por padrão instalado o MVC 2.  No entanto, muitos projetos já estão sendo desenvolvidos em MVC 3, devido as várias melhorias e novas funcionalidades (Razor, Global Filters, etc).
Quando precisamos realizar deploy das nossas aplicações encontramos host’s com suporte ao MVC 3, porém esse “suporte” dos servidores não possuem as dll’s globais registradas e utilizadas pelo MVC3.

Para contornar essa situação basta enviar as dll’s com suas versões utilizadas pela versão três e sua aplicação estará funcionando perfeitamente. Incluindo versões mais atualizadas do Entity Framework 4.1.

Você tem duas opções para enviar todas referências necessárias:

1- Tentativa e erro. (Mande as que você acha que são necessárias, colocando “Copy Local = True” e vai evoluindo os erros do server até conseguir, com o risco de enviar coisas desnecessárias e ser considerado um newbie).

2- Ler essa dica e aprender fazer do jeito certo.

Para incluir no seu projeto as “Deployable Dependencies” basta clicar com o botão direito do mouse sobre o seu projeto MVC 3 e selecionar a opção: Add Deployable Dependencies. Ou então no menu do Visual Studio em Project > Add Deployable Dependencies

14-01-2012 09-50-44

Imagem01: Opção do Menu

14-01-2012 09-53-10

Imagem02: Dependências resolvidas e prontas para o deploy.

Referências:

http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

The Developer’s Conference

Pessoal,

Gostaria de alertar a comunidade para um grande evento a ser realizado em Goiânia no final do mês de outubro de 2011.
O objetivo desse post é divulgar o evento e também convidar os senhores para minha apresentação no dia 29/10/2011, Sábado. Eu irei falar sobre o Team Foundation Server e especificamente sobre a customização dos templates utilizados pela ferramenta. Esse template pode ser customizado e este será o objetivo da minha apresentação mostrar como a ferramenta é flexível e pode ser utilizada para diversos ambientes de desenvolvimento independente da plataforma utilizada. Não deixe de conferir na trilha .NET a palestra:

14:10 às 15:00 Customizando templates de projetos (MSF, CMMI, Scrum) do Team Fountation Server para adaptação ao processo de desenvolvimento de software.
José Lino Neto (Pensou.NET)

O TDC é um evento muito maior e possui trilhas em diversos segmentos e diferentes plataformas, então não deixe de conferir tudo que o evento vai oferecer e participe.

Esse link é para conferir as trilhas que vão ocorrer:
http://www.thedevelopersconference.com.br/tdc/2011/index.html#goiania

Esse link é para a agenda da trilha de .Net o qual estou envolvido:
http://www.thedevelopersconference.com.br/tdc/2011/goiania/trilha-dot-net#programacao

Lembrando que o TDC é um evento que aconteceu em outras cidades do país e agora chegou em Goiânia, então não fique de fora desse mega evento. Confira esses outros links algumas fotos, vídeos que rolaram em outras cidades:
http://www.thedevelopersconference.com.br/tdc/2011/florianopolis/fotos
http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/videos/

Para fazer sua inscrição acesse esse outro link, no entanto como participante tenho uma entrada para ser presenteada a algum amigo ou cliente, logo me enviem um email até o dia 23 de Outubro que irei sortear entre os interessados. Não percam tempo.

#TDC2011 – Participem!
 The Developers Conference 2011, um evento organizado pela Globalcode

SelectList ASP.NET MVC

Pessoal,

Como definir um elemento <select>  <option></option>  </select> do HTML conhecido em ASP.NET como DropDownlist tendo como selecionado o item desejado?

Por exemplo, temos duas entidades relacionadas entre si, Produto e Categoria. Cada produto tem então um relacionamento com categoria.

Vamos então imaginar uma View onde vamos editar um Produto. Precisamos oferecer a opção de trocar também a categoria do produto, para isso precisamos informar quais categoria temos cadastradas e o mais importante para usabilidade, pré-selecionar a categoria (dentre as listadas) o qual o produto se relaciona.

Vamos imaginar um produto (Xbox 360) relacionado com uma categoria (Consoles), ao editar esse produto a DropDownList precisa ter todas as categorias e deve estar selecionada a categoria (Consoles), mesmo que não seja ela a primeira da lista.

Se fosse em ASP.NET no code behind iriamos definir o SelectedIndex de acordo com o Id da categoria, o controle DropDownlist iria salvar o dia.

E em ASP.NET MVC?

Temos um extension method definido nos Html Helpers conhecido como Html.DropDownList

O mesmo tem uma implementação que espera um SelectList (veja mais sobre SelectList em: MSDN Library http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlist.aspx ).

Ficou simples agora, precisamos então criar uma SelectList e retornar para a View a mesma, para que o Helper crie o elemento <select> e possa selecionar a opção desejada.

Mas como?

Esse mesmo helper espera um item presente na ViewData do MVC com um identificador contendo a lista de itens e o qual deles é o selecionado. Então vamos aos exemplos:

No controller você vai selecionar todos os registros existentes de categorias e informar quais são as propriedades que possuem o valor e o texto a ser apresentado no <select> e também qual o item a ser selecionado. E ao mesmo tempo retornar isso para ViewData, nesse caso utilizando o dinâmico ViewBag.

Exemplo:

ViewBag.Categoria = new SelectList(negocioCategoria.Listar(), "CategoriaId", "Nome", entidade.Categoria.CategoriaId);
  • O primeiro parâmetro desse construtor recebe um IEnumerable com todos elementos, ou seja, são todas as minhas categorias.
  • O segundo parâmetro recebe qual propriedade vai conter o Valor do <select>
  • O terceiro recebe qual propriedade vai conter o texto desse valor
  • O quarto e último recebe qual código é o selecionado, ou seja, aquele que esta relacionado com o produto no caso. Nesse exemplo o objeto entidade já foi preenchido e já tem o objeto relacionado também preenchido.

Depois disso na View precisamos apenas chamar o nosso Helper e passar para ele o campo dinâmico que criamos na ViewBag, aqui no exemplo ViewBag.Categoria. Exemplo:

@Html.DropDownList("Categoria", string.Empty)

Espero que ajudem os desenvolvedores leitores desse blog.

Aguardo feedback.

[]´s

Lino