João Filipe Rocha

Tudo sobre IT e .NET em Particular

My Links

News

  English

Livros

Publicidade

People

Profile

View Joao Filipe Rocha's profile on LinkedIn




    Gadgets


    Patrocinio

    Blog Stats

    Archives

    Projectos

    Login

    Sunday, November 23, 2008 #

    Technical Meeting sobre Sharepoint

     

    Nos passados dias 10,12 e 17 de Novembro eu e o meu colega Fernando Reis, apresentamos três sessões técnicas sobre Microsoft Office Sharepoint Server 2007 (MOSS) na Altior. Nestas sessões tentamos abordar todos os aspectos do desenvolvimento sobre o Sharepoint 2007, desde da sua instalação, implementação e instalação( Deployment ).

    Na primeira sessão quisemos explicar o MOSS, o que ele oferece, as suas mais valias, como se apresenta segmentado em termos de produto, e finalmente qual a sua estrutura interna, evidenciando as camadas tecnológicas em que o produto se divide e as varias tipologias que oferece.

    Nesta sessão explicamos também o longo processo de instalação do produto, focando os aspectos principais a ter em conta no acto de instalação, tais como a parametrização dos Shared Services e Search .

    Após dar-mos a conhecer o MOSS e como se efectua a sua instalação, quisemos na segunda sessão mostrar como criar uma aplicação em sharepoint "end-to-end", começando por criar a aplicação propriamente dita, e pela criação de um Site Collection.

    Quisemos mostrar a utilização de User Controls e WebParts e quais a principais diferenças na implementação destes controlos.

    Na Ultima sessão, finalizamos a implementação da aplicação de Sharepoint, com a exibição da SmartPart e de como implementar a pesquisa. Em seguida mostramos o processo de instalação, através da criação de Features e quais os cuidados a ter, neste processo minucioso.

    Finalmente fizemos um comparativo em termos de Web Content Management entre o Sharepoint e outros produtos do mercado, nomeadamente do Open Source, tal como o OpenCMS , Joomla e LifeRay .

    Penso que esta sessão foi tentou desmistificar alguns aspectos do MOSS, e demonstrar como se pode implementar aplicações sobre esta plataforma, e como ultrapassar certos desafios que o MOSS apresenta.


    Por fim queria agradecer à Altior por tornar possivel este Technical Meeting sobre MOSS e pela disponibilidade prestada pelo Pedro Furtado para a realização deste evento.

    posted @ 8:56 AM | Feedback (1)

    Wednesday, November 05, 2008 #

    1000+ Web 2.0 APIs





    1000+ Web 2.0 APIs

    Podem ser encontradas aqui:

    http://www.programmableweb.com/apis/directory

    posted @ 1:05 AM | Feedback (0)

    Saturday, November 01, 2008 #

    Fez debug sem parar o código



    Num projecto Web que passei, o debug era feito de forma remota e funcionava de inicio muito bem, mas depois de serem alteradas algumas politicas de rede, foi extremamente "doloroso" fazer qualquer tipo de debug, e tivemos que recorrer a métodos de leitura de valores em runtime como por exemplo Response.Writeln(Valor a depurar) ou Debug.WriteLine(Valor a depurar)

    Hoje descobri uma funcionalidade que permitia obter valores num determinado ponto de execução, através dos Breakpoints posso inferir a captura de um determinado valor.

    Se clicar-mos no botão direito em cima de um breakpoint, temos uma opção denominada "When Hit..." esta opção permite escrever mensagem para a Output Window num determinado ponto de execução, e com a vantagem, se quisermos, de que nem de parar a execução.

    Ao seleccionar a opção "When Hit..." surge a seguinte janela.


    Na caixa de texto Print a message escrevemos a mensagem pretendida. Para escrever o valor de uma variável, escrevemos a variável entre chavetas, como mostra no exemplo a mensagem irá ter o seguinte aspecto:
    Function: Some_Event(object, System.EventArgs), Timestamp: "18:15:54"
    Function: Some_Event(object, System.EventArgs), Timestamp: "18:15:54"
    (...)

    Esta funcionalidade também permite correr uma macro, o que se torna muito útil para efectuar processos paralelos à execução da nossa aplicação.

    posted @ 12:14 AM | Feedback (0)

    Wednesday, October 29, 2008 #

    Tratar um timeout de um pedido assíncrono.


    Hoje pediram-me um desafio que era efectuar o tratamento de um timeout para um pedido assíncrono.
    E descobri que a solução passa por adicionar ao código HTML um gestor de pedidos que validasse se o pedido efectuado caisse em timeout.

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) {
    if (args.get_error() && args.get_response().get_timedOut()) {
        // Tratar o timeout
        // colocar o errorHandled = true para evitar receber a popup gerada pela biblioteca de AJAX.
        args.set_errorHandled(true);
        }
    });

    O teste que efectuei foi parar a execução com o auxilio do debug e funcionou à primeira.

    posted @ 1:45 AM | Feedback (0)

    Monday, October 06, 2008 #

    Livros, Livros e mais Livros


    Aqui ficam uns links de Livros Técnicos grátis.

    Freecomputerbooks.com
    Freetechbooks.com
    Onlinecomputerbooks.com

    posted @ 7:34 PM | Feedback (0)

    Sunday, October 05, 2008 #

    Como foi a Microsoft Dreamway

    Na sexta-feira decorreu no Centro Cultural de Belém (CCB)  o evento Dreamway. Mais um evento que deu para rever antigos colegas e conhecer mais em detalhe algumas das novidades tecnológicas da Microsoft.

    Após a acreditação fui assistir á sessão do Pedro Rosa e do Nuno Costa sobre as novas tendências no desenvolvimento tecnológico, onde foram apresentadas as algumas demonstrações sobre do que a tecnologia Microsoft é actualmente são capaz de fazer, tais como o Silverlight, Virtual Earth e os serviços Live.

    Segui-se uma pausa para o café e em seguida fui assistir uma sessão sobre as vantagens de se utilizar o Visual Studio Team System e de que forma os testes unitários poderiam ser criados nesta plataforma.

    A sessão seguinte, apresentada por Ivo Ramos, foi muito esclarecedora de que forma é que os programadores podem trabalhar em conjunto com os administradores de bases de dados (DBA) e de que forma o Visual Studio Team System 2008 Database Edition pode ajudar nesta tarefa.

    Utilizando um projecto de base de dados, criado pelo DBA os programadores poderam trabalhar e guardar em source control todo o esquema da base dados, assim como strored procedures, tabelas etc.

    Após o almoço, Miguel Caldas apresentou com o seu estilo peculiar, as características principais do IE8, onde se destaca-se a compatibilidade com todos browsers antecessores, indicando ao IE8 para assumir o comportamento do IE7, IE6 ou IE5.

    A meio da apresentação do Miguel Caldas surgiu ao som de musica rock e ao estilo de estrela de wresting, o CEO da Microsoft Steve Ballmer, que perante a audiência maioritariamente de programadores referiu bem ao seu estilo, que a maior força mobilizadora de uma economia são "Developers, Developers, Developers", e que a Microsoft tem como missão dar todas as condições e ferramentas para que os programadores façam o seu trabalho e que num futuro próximo existam televisões inteligentes e telefones inteligentes em cada casa.

    Após a sessão do Steve Balmer fui assistir à sessão sobre ADO.NET Data Services e Microsoft Entity Framework, apresentada pelo Nuno Silva. O Nuno Silva demonstrou de uma forma excelente como funciona o MS Entity Framework, que se caracteriza por criar uma abstracção do modelo de dados, em que o programador só necessita de conhecer os dados que precisa, isto é o em vez de se criar procedimentos com dez inner joins para se extrair uma entidade, com o MS Entity Framework criam-se estas entidades e o programador só necessita de aceder a estas entidades e a framework faz o resto. Outro dos aspectos é a possibilidade de ter o conceito dos objectos, a herança, em base de dados. Criamos uma entidade "A" e podemos representar outra entidade "B" que herda todas as colunas da entidade "A".
    Quanto ao ADO.NET Data Services também conhecido por Astoria, resume-se a ter a Camada de Acesso a Dados (DAL) de uma forma Representational State Transfer (REST), isto é através de um URL como se fosse um WebService.


    posted @ 7:58 AM | Feedback (0)

    Friday, September 12, 2008 #

    A Biblia dos Programadores em Sharepoint

    O Microsoft Office Sharepoint tem vindo a tornar-se no gestor de conteúdos(CMS) com mais oferta de mercado, mas o desenvolvimento de aplicações sobre este CMS é feito com pouco conhecimento das potencialidades do produto.
    A Technet da Microsoft tem disponível um conjunto de documentação e de recursos que servem como boas práticas no desenvolvimento de aplicações em Sharepoint.
    Esta biblia para o desenvolvimento em Sharepoint pode ser encontrada aqui

    posted @ 7:04 PM | Feedback (0)

    Wednesday, September 10, 2008 #

    10 Razões para utilizar o Google Chrome

        10. Motores de Pesquisa dinâmicos
                - O Google Chrome permite incorporar vários motores de busca, para isso basta:
                        
                        Aceder a um motor de busca. Ex: www.yahoo.com

                        No lado direito surge a opção de carregar na tecla Tab para pesquisar directamente no motor de busca seleccionado
                        Após uma busca efectuada desta forma este motor de busca fica registado no Chrome
                        

            
            9. Dicionário 
                O Google Chrome possui um dicionário incorporado com uma grande variedade de línguas disponíveis.
                
                

            8. Multilingue
                O Google Chrome é verdadeiramente Multilingue, isto é, com a simples selecção de língua mudamos toda a cultura do Google Chrome.

            7. Limpeza de dados de navegação faseada
                Nos browsers mais conhecidos a limpeza de ficheiros é feita a todos os ficheiros. O Google Chrome permite limpar os ficheiros só do dia, da semana, do mês ou simplesmente                    todos.
                

            6. Miniaturas dos sites mais visitados
                A pagina principal do Chrome disponibiliza Miniaturas (Tumbnails) dos sites mais visitados.
                
            5. Navegação Incógnita sem vestígios 
                Esta funcionalidade permite a navegação sem deixar nenhum vestígio em lado nenhum 
                

            4. Consola de JavaScript 
                A consola de Java Script permite averiguar e colocar javascript "on the fly" sobre a pagina, bem como conhecer todos os estilos de CSS e suas hierarquias no site.
                
            3. Debug de JavaScript
                Ao seleccionar esta opção o Chrome abre uma janela que inspecciona todo os scripts JavaScript que corre na pagina, e podemos validar expressões, marcar breakpoints, etc.
                
                
            2. Gestor de Tarefas Incorporado
                O Chrome trata cada Janela como um Processo do browser e podemos "matar" as janelas, sem ter que fechar o browser por completo.
                    


            1. Pesquisa dinâmica 

                Ao digitar qualquer coisa na barra de endereço o Google Chrome faz uma pesquisa do que digitamos pelo GMail, Google, etc. e oferece algumas sugestões daquilo que queremos efectivamente.

                







     

    posted @ 8:08 AM | Feedback (0)

    Wednesday, September 03, 2008 #

    Novo browser Chrome da Google já saiu...

     
    O novo browser da Google o Chrome ja saiu. Pode fazer o download aqui.

    Aqui estão as suas funcionalidades.



    posted @ 4:31 AM | Feedback (0)

    Monday, September 01, 2008 #

    10 Utilitários indispensáveis para Programadores



    Para um programador por vezes o seu ambiente integrado de desenvolvimento (integrated development environment(IDE)) é insuficiente para dar resposta às suas necessidades de programação, aqui ficam algumas sugestões para tornar o desenvolvimento mais eficaz.

    10. Reflector
    Para quem desenvolve aplicações sobre a arquitectura .net, necessita de saber como ela é por dentro. Esta aplicação consegue reverter do common language runtime (CLR) para as linguagens suportadas pela arquitectura .net (c#, vb.net, etc), o que possibilita visualizar como os métodos e propriedades da arquitectura foram desenvolvidas.

    9. Sysinternals
    São um conjunto de utilitários que tem a finalidade de ajudar a gerir, manter e diagnosticar o sistema Windows e as aplicações. Dos vários utilitários destaco o Process Explorer e o PsTools.

    8. ReSharper
    Add-in para o Visual Studio que permite corrigir erros de código, gerar código, remover código redundante à medida que escrevemos o próprio código, esta ferramenta possui um motor de analise de código que permite também efectuar pesquisas dinâmicas em forma de cobertura de código (code coverage).

    7. CodeRush
    O refactoring é uma técnica utilizada por alguns IDE que permite se sejam renomeadas variáveis, em todas as suas ocorrências e que sejam gerados métodos de uma forma dinâmica. O CodeRush permite que seja feito o refactoring de uma forma simples e visualmente intuitiva.

    6. CodeSmith
    Um programador ao criar varias vezes o mesmo código para contextos aplicacionais diferentes é uma coisa banal e enfadonha. O CodeSmith permite criar templates de código e gerar código de uma forma rápida. Existem ja alguns templates conhecidos, tais como o .netTiers, CSLA, NHibernate, PLINQO, Wilson's ORMapper, APOSA que dão a possibilidade de desenvolver aplicações de uma forma ágil e que obedece a vários padrões de desenvolvimento.

    5. Firebug (FireFox) e IE Developer Toolbar (Internet Explorer)
    Em Aplicações web estas ferramentas são fundamentais no desenvolvimento nesse tipo de aplicações, pois permitem visualizar ao pormenor das tags de HTML quais os estilos que lhe são afectados, os tempos de download de uma pagina e no caso do Firebug é possível fazer debug ao javascript da pagina.

    4. Fiddler
    Nas comunicações entre um cliente e o servidor, é importante diagnosticar o que passa no "fio" para poder averiguar os problemas existentes, na ligação entre o servidor e o cliente. Este software faz a descrição por cada pedido efectuado ao servidor, onde inclui os cabeçalhos do protocolo, dados transferidos e tempos de comunicação.

    3. Koders 
    Código, código e muito, muito código.

    2. ProgrammersHeaven
    Não, não é um site de pronografia, é uma fonte gigantesca de utilitários, código, foruns e de recursos para todos os programadores.

    1. Google
    O amigo #1 de qualquer programador, para alem de levar o nosso escritório para todo lado, com a suite Google (GMail, Calendar, Documents, etc), o Google permite dar resposta aos nosso problemas aplicacionais, basta procurar.

    posted @ 11:45 PM | Feedback (0)

    Thursday, August 28, 2008 #

    Obter o texto de uma caixa de mensagem

    Por vezes quando surge uma message box dá jeito obter o seu texto, por exemplo quando surge uma message box com um erro que queremos procurar alguma informação sobre este na internet, para fazer isso basta:
     
    quando surge a caixa de texto faz-se CTRL+C e em seguida no editor notepad, faz-se CTRL-V e o resultado é o seguinte.
     
    e desta forma podemos aceder ao texto da message box.

    posted @ 8:36 PM | Feedback (1)

    Thursday, August 14, 2008 #

    Como Criar Dados Dinâmicos

    No Technical Meeting Altior falei sobre as novidades do ASP.NET, e entre elas está os Dados Dinâmicos (Dynamic Data), os Dados Dinâmicos são úteis para a manutenção de tabelas ou para a criação de aplicações web de backoffice.

    Para criar um web site de dados dinâmicos devemos fazer o seguinte:

    Criamos um novo projecto do tipo "Dynamic Data Web Application"

    O Visual Studio gera um solução com um projecto web contendo os seguintes ficheiros:

    A pasta "Dynamic Data" contem os Web User Controls que vão ser utilizados para a criação do nosso web site de dados dinâmicos.
    Em seguida criamos a ligação à base de dados e um contexto para ser carregado pelo modelo de dados. Esta ligação pode ser feita de duas formas, ou através de uma ligação "LINQ to SQL Classes" ou através da novo "ADO.NET Entity Data Model". Eu criei uma ligação "LINQ to SQL Classes".



    Arrastamos as tabelas que queremos visualizar do Server Explorer para o editor do modelo de dados.

    E registamos o contexto da ligação à base de dados no ficheiro Global.asax, o registo é feito passando o tipo do contexto e a configuração que queremos apresentar as tabelas. A configuração pode ser definida de duas formas:

    1. Definimos um provider de metadata e colocamos-o na propriedade MetadataProviderFactory, este método é útil para quando queremos modificar o comportamento de alguns controlos mediante alguns tipo de dados, exemplo criar intervalos de validação.
    2. Colocamos a propriedade ScaffoldAllTables a verdadeiro e todas as tabelas do contexto são exibidas, a falso obriga a colocar o atributo [Scaffold(true)] nas classes das tabelas que queremos exibir.

    De seguida corremos a aplicação e eis o resultado:



    posted @ 2:55 AM | Feedback (0)

    Wednesday, July 30, 2008 #

    Lentidão no .netTiers/Enterprise Library

    No projecto que estou actualmente utilizo o .netTiers para gerar o código das varias camadas da aplicação. O .netTiers utiliza o motor do CodeSmith para gerar código, e a sua arquitectura foi desenvolvida sobre a Enterprise Library.

    A uma semana atraz surgiu um problema com o arranque inicial da aplicação que demorava cerca de 30seg. a abrir a arrancar, depois de muito "Googlar" verifiquei que o problema devia-se à Enterprise Library não estar instalada nos servidores de staging, isto é, não basta copiar as .dll da Enterprise Library, é necessário instalar-la nos servidores onde a aplicação vai correr.

    A Enterprise Library no seu arranque procura instanciar Performance Counters, e caso estes não existam na maquina onde a aplicação corre ocorrem excepções, o que geram lentidão no arranque de qualquer aplicação.

    Uma das soluções (mais rápida) é instalar a Enterprise Library nos servidores de staging, a outra solução é:

    • Abrir a solução da Enterprise Library no Visual Studio
    • Abrir as propriedades do projecto Common
    • Na pasta Configuration Properties seleccionar a opção Build
    • Na propriedade Conditional Compilation remover as seguintes Constantes:
      ;USEWMI;USEEVENTLOG;USEPERFORMANCECOUNTER
    • Recompilar a Enterprise Library e substituir as dlls

    posted @ 7:05 PM | Feedback (0)

    Wednesday, July 23, 2008 #

    Microsoft Certified Professional Developer (MCPD) em Web

    Passei hoje o exame de MCPD para aplicações Web com resultado de 975

    posted @ 11:21 PM | Feedback (1)

    Thursday, June 26, 2008 #

    Como colocar imagens num mail do GMail

    Nice view !!

    Como sou utilizador do GMail, andava a muito à procura de uma solução para colocar imagens directamente no mail, e hoje um colega meu deu-me essa solução muito simples e eficaz, que quero partilhar convosco.

    • Abram o Google Docs, criem um novo documento
    • Componham o texto com uma ou mais imagens, seleccionem o texto e façam Copy
    • Componham um novo mail no GMail e façam Paste para o mail
    simples não ;)

    posted @ 8:13 AM | Feedback (0)