Currently Browsing

Sem categoria

HTML5 Boilerplate

HTML5 Boilerplate é o modelo profissional HTML/CSS/JS para um site rápido, robusto e preparado para o futuro.
Depois de mais de dois anos de desenvolvimento iterativo, temos o melhor das melhores práticas em normalização cross-browser, optimizações de performance, e até recursos opcionais como Ajax cross-domain e Flash. Um arquivo de configurações apache .htaccess prevê as regras de caching mais úteis e prepara o site para disponibilizar vídeo HTML5, usar @font-face, e aprimorar sua performance com gzip.
Boilerplate não é um framework, nem prescreve nenhuma filosofia de desenvolvimento, é só uma colecção de truques para fazer seu projecto começar mais rápido e com o pé-direito.

Podem ler mais sobre o HTML5Boilerplate no website do projecto.

Uma boa forma de se iniciar com o HTML5Boilerplate pode ser encontrado no blog do Dan Wahlin neste post.

Revista PROGRAMAR – 29ª Edição – Junho 2011

Download

Tema de capa
GIT – Controlo de Versões para Pequenos e Grandes Projectos

A programar
LUA – Linguagem de Programação – Parte 9
Introdução ao Cloud Computing e à Plataforma Windows
Managed Extensibility Framework (MEF) e AJAX
Microsoft BizTalk Server aos olhos dos programadores
O Editor de texto VIM

Visual (Not) Basic
Introdução ao OpenXML SDK

Core Dump
Fazer mal = Rápido?

Comunidades
Certificações Microsoft

pinify–The jQuery Site pinning Plugin

A jQuery Plugin for adding IE9 features (site pinning, site mode, etc.) to your websites. Several new features of Internet Explorer 9 are designed to enhance the browsing experience of consumers by enabling sites that leverage certain features to behave like applications on the desktop when those sites are ‘pinned’ to the taskbar in Windows 7. A user pins a site by dragging the site’s tab (or favicon in the address bar) to the taskbar. For all sites, IE9 will create a default experience (called ‘site mode’) that will use information about the site to create an instance of the browser customized to look specific to that site. Developers can also add specific meta tags and script commands to extend these features to further customize user’s pinned experience of the site.

Your site, from zero-to-pinned in less than 5 minutes:

  1. install-package jquery.ie9ify
  2. $(‘head’).pinify();
  3. Run and Pin!

Mais informações em: http://ie9ify.codeplex.com/

3º Seminário IT & PRO PocketPT

O evento

O evento do ano para profissionais de mobilidade está ai! No próximo dia 28 de Maio terá lugar a terceira edição doSeminário TI&PRO PocketPT destinado a profissionais de TI e programadores que estão de alguma forma ligados às tecnologias móveis.

O evento deste ano irá focar muitas novidades sobre o desenvolvimento para a plataforma Windows Phone 7, bem como mostrar que esta plataforma já possuí os argumentos necessários para ser utilizada em ambiente empresarial, quer seja pela sua produtividade nativa, quer pela integração com soluções de negócio já existentes.

Iremos ter oradores de grande relevância no panorama nacional da mobilidade, bem como os oradores do PocketPT e da Microsoft Portugal que iram sem dúvida enriquecer o evento e os seus participantes em termos de conteúdos.

O dia será divido em duas partes: parte da manhã será a track para TI&PRO’s e a parte da tarde trará a track para developers.

O programa

09.45h – Check-in e abertura das inscrições presenciais
10.00h – Apresentação do evento  (Nuno Luz)
10.10h – Key Note: Artur Amaral – Microsoft
10.40h – Soluções empresariais para Windows Phone 7 (Nuno Luz)
11.00h – Coffee break
11.20h – O presente e o futuro do Windows Phone nas empresas (Pedro Chaves – Microsoft)
12.10h – A designar

13.00h – Almoço

14.30h – XNA para aplicações móveis (Guilherme Santos – ZPX)
15.00h – Desmistificando o MVVM (Pedro Lamas)
15.30h – BancaPT – Lessons learned (Nuno Luz)
16.00h – Coffee break
16.30h – Tools e e novas features do Mango (Nuno Silva – Microsoft)
17.30h – Entrega de prémios e encerramento

Mais informações em http://mtechseminar.pocketpt.net/2011/index.htm

jQuery Menubar e web.sitemap

Após o HTML 5 Microsoft WebCamp Portugal, surgiu-me algum interesse em explorar o plugin Menubar.

Este plugin transforma uma lista num menu bastante agradável, e como tal, gostava de o implementar num projecto em que utilizo o web.sitemap.

Para tal, precisei de recorrer a um XLST para transformar o web.sitemap, que não é mais que um XML, numa lista no formato que o Menubar necessita.

Segue então um exemplo do web.sitemap:

<?xml version="1.0" encoding="utf-8"?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
    <siteMapNode url="~/" title="Home" description="Home">
        <siteMapNode url="" title="Menu 1" description="Menu 1" >
            <siteMapNode url="http://www.google.pt" title="Submenu 1" description="Submenu 1" />
        </siteMapNode>
        <siteMapNode url="" title="Menu 2" description="Menu 2">
            <siteMapNode url="http://www.microsoft.com" title="Submenu 2" description="Submenu 2" />
            <siteMapNode url="http://www.apple.com" title="Submenu 3" description="Submenu  3" />
        </siteMapNode>
    </siteMapNode>
</siteMap>

Para transformar o XML numa lista, usei o seguinte XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:map="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"
                exclude-result-prefixes="map">
  <xsl:output method="xml" encoding="utf-8" indent="yes"/>

  <xsl:template match="map:siteMapNode">
    <li>
      <a href="{@url}" title="{@description}">
        <xsl:value-of select="@title"/>
      </a>
      <xsl:if test="map:siteMapNode">
        <ul>
          <xsl:call-template name="mapNode"/>
        </ul>
      </xsl:if>
    </li>
  </xsl:template>

  <xsl:template name="mapNode" match="/*/*">
    <xsl:apply-templates/>
  </xsl:template>
</xsl:stylesheet>

Desta forma, irei obter uma lista igual à seguinte:

<?xml version="1.0" encoding="utf-16" ?>
        <li><a href="" title="Menu 1">Menu 1</a>
            <ul>
                <li><a href="http://www.google.pt" title="Submenu 1">Submenu 1</a></li>
            </ul>
        </li>
        <li><a href="" title="Menu 2">Menu 2</a>
            <ul>
                <li><a href="http://www.microsoft.com" title="Submenu 2">Submenu 2</a></li>
                <li><a href="http://www.apple.com" title="Submenu  3">Submenu 3</a></li>
            </ul>
        </li>

Por fim, basta-nos adicionar um controlo XML que irá fazer o render da lista.

<ul id="bar1" class="menubar">
        <asp:Xml runat="server" ID="xmlSiteMapViewer" DocumentSource="~/web.sitemap" TransformSource="~/sitemap.xslt" />
    </ul>

A inserção do controlo entre uma “unordered list” foi propositado, pois só assim é que teremos o menu a funcionar correctamente e teremos um resultado identico ao que está no seguinte site:

http://view.jqueryui.com/master/demos/menubar/default.html

Application Name na ConnectionString

Quando estou a desenolver algum projecto, é normal necessitar de analisar as querys que são executadas na base de dados para detectar um possivel bug ou algo que não esteja a bater certo com o que esperava.

Para isso, uso o Profiler do SQL Server que me dá rapidamente uma boa visão do que está a ser solicitado em cada ligação à base de dados.

O exemplo de um registo no profiler pode ser visto assim:

Como se pode ver, a coluna Application Name tem o valor “.Net SqlClient Data Provider”, o que nos dificulta bastante a filtragem para apenas a aplicação que pretendemos analisar os dados.

Para resolver isso, basta-nos indicar na ConnectionString, o nome da nossa aplicação, e tudo fica mais fácil.

"Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;Application Name=MyAppName"

Após isto,, já teremos algo mais amigável como:

ASP.NET Membership Lock User

Visto que não temos uma forma directa de indicar que determinado utilizador irá estar bloqueado, a única forma que arranjei para o fazer foi forçar o erro no login múltiplas vezes, até atingir o valor máximo de tentativas definidas no atributo “maxInvalidPasswordAttempts”.

Quando usamos o Membership do ASP.NET, no web.config teremos algo como:

<add name="AspNetSqlMembershipProvider"

type="System.Web.Security.SqlMembershipProvider"

connectionStringName="MyAppConnectionString"

enablePasswordRetrieval="false"

enablePasswordReset="true"

requiresQuestionAndAnswer="false"

requiresUniqueEmail="false"

maxInvalidPasswordAttempts="5"

minRequiredPasswordLength="6"

minRequiredNonalphanumericCharacters="0"

passwordAttemptWindow="10" applicationName="MyAppName" />

O código que utilizo é então o seguinte:

public static bool LockUser(MembershipUser user)
{
    try
    {
        for (int i = 0; i < Membership.MaxInvalidPasswordAttempts; i++)
            Membership.ValidateUser(user.UserName, "thisisandummypasswordonlytolocktheuser");

        return user.IsLockedOut;
    }
    catch (Exception)
    {
        throw;
    }

}

Espero que seja util.

Project Silk

Project Silk provides guidance for building cross-browser web applications with a focus on client-side interactivity. These applications take advantage of the latest web standards like HTML5, CSS3 and ECMAScript 5 along with modern web technologies such as jQuery, Internet Explorer 9, and ASP.NET MVC3.

To illustrate this guidance, the project includes a reference implementation called Mileage Stats that enables its users to track various metrics about their vehicles and fill-ups. Much of the effort in building Mileage Stats was applied to the usability and interactivity of the experience. Animations were included to enhance the enjoyment of the site and AJAX is used to keep the interface responsive and immersive. A great deal of care was also taken to ensure the client-side JavaScript facilitates modularity and maintainability. To accomplish these design goals, the JavaScript code was structured into “widgets” that benefit from the jQuery UI Widget Factory.

Mais informações em http://silk.codeplex.com/

JustTrace e JustDecompile

A Telerik disponibilizou duas ferramentas, ainda em fase Beta, para download. O JustTrace e o JustDecompile.

JustTrace

  • Profiler Types
  • Live Data
  • Attach to Running Process
  • Visual Studio Integration
  • Profiling Child Processes
  • Profiling Performance
  • RadControls in Action

JustDecompile

  • Fast Code Navigation
  • Side-by-Side Assemblies
  • Easy Assembly Management
  • Rich, WPF UI
  • Universal Find Usages
  • Decompiled Code Quality

Download JustTrace and JustDecompile Betas
JustTrace Official Feedback Forum
JustDecompile Official Feedback Forum

Sql Saturday Portugal

Dia 15 de Abril, realizou-se o primeiro Sql Saturday em Portugal, que contou com a organização da comunidade SQLPort.

Foi um dia bem passado, recheado de boas sessões, e não podia acabar da melhor forma, ao ganhar uma licença do SQL Prompt da Redgate.

Para finalizar este post, resta dar os parabens à comunidade SQLPort pelo bom trabalho em todo o evento.

Blogroll