Microsoft® Visual Studio® LightSwitch

25 08 2010

Acabei de rodar minha primeira aplicação construida com o lightswitch e não digitei nenhuma linha de codigo. Simplesmente dei alguns cliques e pronto ja tinha uma aplicação com um CRUD completo e que alem de tudo exportava os dados pro excel.

Agora podemos criar uma aplicação sem precisar digitar nenhuma linha de codigo, isso é preocupante! o que sera dos desenvolvedores… rs  ^^

Não deixem de dar uma olhada nessa novidade.

Linq para Download.

E uma pequena introdução no bloh do Jason Zanders – Introducing Microsoft® Visual Studio® LightSwitch™

Se eu tiver um tempo essa semana eu faço um demo e disponibilizo para download.

Obs: Na hora da instalação se você ja tiver instalado o WCF RIA Services, desinstale-o antes de instalar LightSwitch. Caso contrario o setup dara um erro na hora de instalar o RIA. É que o WCF Ria Services faz parte da instalação do LightSwitch. Qualquer outro problema me mande um email com a duvida/problema.

email : adrielcodeco@hotmail.com

Anúncios




How To – Converter uma cor em String para Brush

23 08 2010

Quando vocês estão trabalhando com cores no code-behind e precisam setar o Background de um Grid por exemplo como #00554433 o que vocês fazem?
Algo assim: ?

grid.Background = new SolidColorBrush(Color.FromArgb(
    byte.Parse("00"),
    byte.Parse("55"),
    byte.Parse("44"),
    byte.Parse("33")
    ));

Eu simplesmente faço assim:

grid.Background = “#00554433”.ToBrush();

Um pequeno truque que eu uso, eu criei uma extension que pega a string com a cor e retorna um Brush.

public static Brush ToBrush(this string color)
{
    Brush brush =
        XamlReader.Load(
        "<Brush xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" " +
        "       xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">" +
        color +
        "</Brush>") as Brush;
    return brush;
}




Criando um Sidebar Gadget para Vista usando o Microsoft Silverlight

5 08 2010
Seguindo meus estudos me deparei com o sidebar gadget feito com Silverlight e como de costume semple que encontro um bom material em ingles traduzo para poder entender e posto aqui para que outras pessoas tambem se beneficien desse material. Apesar desse post ter sido escrito em 2008 a forma de desenvolvimento ainda e a mesma tornando-o valido.
Esse post foi copiado e traduzido do blog do Ioan Lazarciuc’s.
Introdução

Algum tempo atrás eu fiz um post sobre como criar uma Vista Sidebar gadget usando JavaScript. Também mencionei que eu tentei criar o gadget usando XBAP ou Silverlight, mas devido às limitações nessas tecnologias, nesse momento, eu decidi que tinha que desistir de muita da funcionalidade específica gadget da barra lateral (flyouts, os dados de domínio cruzado recuperação).

Mais de 6 meses se passaram desde então e agora tenho o prazer de anunciar que eu mudei minha opinião sobre Sidebar gadgets Silverlight. Devido ao fato de que a tecnologia Silverlight amadureceu muito (versão 2.0 beta 2 já está disponível), os gadgets da barra lateral podem ser desenvolvidos usando essa tecnologia, sem sacrificar qualquer funcionalidade específica gadget da barra lateral. Isto é devido ao fato de que existe a plena interoperabilidade entre Silverlight e código JavaScript. Além disso, chama domínio cruz agora são permitidos em Silverlight, para recuperação de dados não é mais um problema. Além disso, tem sido muito maior devido ao fato de que uma pessoa pode consumir WCF serviços usando Silverlight.

Primeiros passos

O primeiro passo é ter um olhar sobre a “clássica” forma de desenvolver gadgets da barra lateral. Mesmo que a maioria do trabalho duro “pode agora ser feito em Silverlight, a fiação”, as entranhas do gadget todo ainda são os clássicos, com base em JavaScript e HTML. Em seguida, se você não estiver familiarizado com o desenvolvimento do Silverlight, eu recomendo que você gaste algum tempo a ficar confortável com o Silverlight. Para isso, você pode visitar http://www.silverlight.net e experimentar os tutoriais lá.

O resultado de minhas investigações neste assunto é um projeto do Visual Studio modelo que pode ser usado para iniciar rapidamente o desenvolvimento de um gadget da Barra Lateral do Silverlight. Eu tenho inspirado no modelo Tim Heuer criou para saltar a partir do desenvolvimento Sidebar gadget usando apenas JavaScript / HTML. Os requisitos para instalar e usar o modelo são:

  • Microsoft Visual Studio 2008 (Standard ou mais)
  • Microsoft Silverlight 2.0 beta 2
  • Silverlight Tools Beta 2 do Visual Studio 2008

Depois de baixar o instalador a partir do modelo aqui, a fim de instalá-lo, basta executar o arquivo baixado. O Visual Studio Content Installer irá lidar com o resto (clique ao lado e ignorar os avisos de segurança, porque eu não assinar o modelo).

Depois de instalar o modelo, a fim de criar um novo gadget da barra lateral, no Visual Studio, clique em File> New> Project. Você vai notar que sob o nó C #, no fundo, em “My Templates”, uma entrada nova apareceu: “Silverlight Sidebar Gadget”. Dê o nome de uma solução e, em seguida, clique em OK.

NewProject

Você vai notar que 6 projetos foram automaticamente adicionado à solução recém-criado: SilverlightSidebarGadgetWeb, SilverlightGadgetDocked, SilverlightGadgetUnDocked, SilverlightGadgetSettings, SilverlightGadgetFlyout e SilverlightGadgetUtilities. Em fim, estas correspondem a: o principal projeto de web site gadget que vai realmente acabar sendo implantado (todo o conteúdo eo código é adicionado a este site), o controle do Silverlight que é exibida quando o gadget está acoplado, o controle do Silverlight que é exibido quando o gadget é desencaixado, o controle do Silverlight que é exibido na página de configurações do gadget, o controle do Silverlight que é exibido na página flutuante do dispositivo e uma biblioteca de utilidades para o Silverlight, fornecendo um código gerenciado da API de gadgets da barra lateral. Esta API traduz em chamadas na JavaScript Sidebar Gadget API.

IMPORTANTE: Devido às limitações na forma como o modelo é construído, as aplicações Silverlight tem que ser adicionado o principal projeto gadget manualmente. Isso pode ser feito indo para as páginas de propriedades para o projeto de site, o Silverlight guia Aplicativos e clique em Adicionar para cada projeto Silverlight adicionais. Desmarque a opção “Adicionar uma página de teste que faz referência ao controle de caixa”, e certifique-se o Silverlight Enable “depuração” está marcada se você quiser capacidade de depuração para o Silverlight.Silverlight e depuração de JavaScript simultânea não for possível no momento atual (depuração requer Silverlight desativar depuração de script do IE).

AddSilverlightApplications

Em uma versão mais recente do modelo de projeto este não será mais necessário, mas para isso eu tenho que adicionar um assistente personalizado para o modelo de projeto que pode preparar os projetos no modelo.

O código é comentado, então eu não vou cobri-lo em detalhe. Além disso, por orientação do desenvolvimento Sidebar gadget, leia o meu anterior post sobre o assunto. O dispositivo é configurado para usar controles Silverlight para cada página do gadget. Isso não é obrigatório, e os controles do Silverlight pode ser removido do projeto (junto com seus projetos de forma a solução), conforme necessário. Há duas classes principais definidos na classe SilverlightGadgetUtilities: SilverlightGadget e SilverlightGadgetEvents. O primeiro é usado para acessar o JavaScript Sidebar Gadget API. O segundo é usado para expor os eventos relacionados com JavaScript como um dispositivo gerenciado eventos nos controles Silverlight.

Conhecido “solavancos”

Há algumas coisas que simplesmente não vai funcionar, não importa o quão duro você tente fazê-los funcionar. Geralmente isso ocorre devido ao fato de que o gadget da barra lateral atual API ou a experiência do usuário gadget fornecido pela Microsoft não permite isso. Estes “caipira-ups” estão especificados nos comentários de documentação das classes ou diretamente como comentários.

Devido ao fato de que o objeto Gadget JavaScript não permite anexar manipuladores de eventos para o mesmo evento, deve-se tomar cuidado que manipulador de evento é registrado para um evento particular. resultados possíveis são: eventos que não se desencadeou a todos nos controles Silverlight, os eventos que se desencadeou em apenas alguns controles Silverlight.

Devido à experiência do usuário com os gadgets da barra lateral, alguns eventos não podem ser acionados em Silverlight controles: o encaixado, eventos Cortada, todos os eventos gadget no flutuante, etc

Algumas propriedades da classe SilverlightGadget são somente leitura mesmo que o gadget da barra lateral JavaScript API especifica que são de leitura e escrita. Isto é devido ao fato de que tentar definir essas propriedades resultaram em exceções em tempo de execução e as exceções são provavelmente causados pela própria API JavaScript.

Eu tentei “descobrir” todos esses “solavancos” que possam aparecer e documentá-los diretamente no modelo. Se há algo que eu perdi ou você tem uma pergunta, por favor entre em contato comigo ou postar um comentário e vou tentar modificar o modelo para corrigir o problema ou documento. Além disso, quaisquer sugestões para melhorar este modelo de projeto são bem-vindas.

Estou ansioso para ver muitos gadgets Silverlight Sidebar sendo desenvolvido. Se você criar um dispositivo tão usando este modelo de projeto, por favor me avise por postar um comentário com um link para a página do Live Gallery gadget ou um link para uma página que descreve-lo.

Mais uma vez, o link para o projeto do Visual Studio modelo é mostrada abaixo.

FILE: SilverlightSidebarGadget.vsi

UPDATE: Se você tiver o Microsoft Visual Studio 2008 SP1 instalado, você precisará doMicrosoft Visual Studio Tools Beta 2 do Visual Studio 2008 , a fim de ser capaz de criar projetos Silverlight. Isto também significa que você não pode usar o modelo fornecido sem instalar a nova versão do Silverlight Tools.

UPDATE 2: Eu tenho atualizado os projetos no modelo para o Silverlight 3 Beta. O modelo correspondente pode ser encontrado aqui.

UPDATE 3: Eu criei uma versão do modelo para o Silverlight 2 final. O modelo correspondente pode ser encontrado aqui.

UPDATE 4: eu atualizei os projetos no modelo para o Silverlight 3 RTW. O modelo correspondente pode ser encontrado aqui.

UPDATE 5: Eu criei uma versão do modelo usando o Visual Basic projetos. O modelo correspondente pode ser encontrado aqui.

UPDATE 6: Eu criei uma versão do modelo para o Visual Studio 2010, usando o formato de nova prorrogação. O modelo correspondente pode ser encontrado aqui.





How To – Instanciar controle a partir de um xaml, e extrair xaml de um controle

4 08 2010
/*
 * Dica do dia.
 *
 * Essa dica e útil para quem quer montar um controle
 * a partir de um xaml de forma programática, e caso
 * queira fazer o inverso também, extrair o xaml do
 * controle.
 *
 * Infelizmente a segunda opção só tem suporte no
 * WPF, O Silverlight não extrai o xaml dos controles.
 *
 */

//Recebe uma string e instancia o Controle
//Funciona no WPF e no Silverlight.
Grid grid = System.Windows.Markup.XamlReader.Load("&lt;Grid /&gt;") as Grid;
//Recebe um Controle e extrai o xaml.
//Funciona apenas no WPF
string strGrid = System.Windows.Markup.XamlWriter.Save(grid);




Compartilhar Assemblies entre Silverlight. NET Apps

23 06 2010

Este post foi copiado e traduzido do CLR Team Blog.

Fonte: http://blogs.msdn.com/b/clrteam/archive/2009/12/01/sharing-silverlight-assemblies-with-net-apps.aspx

No PDC recente, Scott Guthrie anunciou em seu Silverlight 4 keynote que tinham implementado um novo recurso, para permitir aos desenvolvedores compartilhar certos assemblies entre Silverlight e. NET. Há muitas diferenças entre o Silverlight e full .NET, incluindo WPF, e este novo recurso não resolve as diferenças – nesses casos, você ainda precisa compilar seu código duas vezes. Mas em alguns casos, os desenvolvedores escrevem códigos que utilizam apenas recursos cujo comportamento é idêntico entre Silverlight e .NET, e nesses casos, queremos permitir que o código seja compartilhado. Este post fornece mais detalhes sobre a portabilidade, e explica como os desenvolvedores podem alvejá-la, e quais são os restrições.

Cenário Developer

Hoje, muitos desenvolvedores escrevem códigos que será executado em e Silverlight .NET. Um bom exemplo seria o código de validação: ao escrever uma aplicação cliente-servidor, que pretende validar os dados do cliente (para se certificar de que o usuário recebe um feedback rápido) e, em seguida, re-validá-lo novamente no servidor (para certificar-se de um implementação do cliente mal intencionada não poder enviar dados ruins.) Hoje, para conseguir esse cenário para trabalhar, os desenvolvedores precisam compilar seu código para Silverlight e também para. NET. Além disso, a compilação dupla, os desenvolvedores precisam gerenciar e implantar os assemblies separadamente, garantindo que eles sejam implantados no lugar certo e consumidos pela plataforma certa (ou Silverlight. NET). O modelo de hoje é certamente viável, mas não é ideal.

Temos ouvido de muitos desenvolvedores que querem algo melhor. Nós também lemos um bom número de blogs e posts do fórum dizendo o mesmo. Nós vimos mesmo algumas soluções interessantes para tentar tornar a situação melhor para si e para outros desenvolvedores. Legal! Especificamente, os desenvolvedores querem escrever e compilar seu código uma vez e implantá-lo como parte dos seus aplicativos Silverlight e .NET, sem a necessidade de dupla compilação ou se preocupar em prestar a atenção para o alvo de compilação. Essa capacidade tem a vantagem óbvia de evitar a duplicação de esforços para uma série de etapas em seu desenvolvimento e os processos de implantação.

Explicando a Portabilidade

Chamamos esse novo recurso ” assembly portability”(portabilidade de assembly), uma vez que o recurso permita que o código sejar “portatil” entre Silverlight e .NET. Portabilidade fornece a capacidade de compilar sua fonte, com as ferramentas do Silverlight, e executar seus conjuntos construídos em ambos Silverlight e Runtimes .NET.Este recurso não altera a implementação subjacente do Silverlight ou qualquer NET .Runtimes, ao contrário, se você escrever um código que só usa APIs que têm o mesmo comportamento em Silverlight e .NET, ele permite que você use um conjunto de binários para atingir ambos. Mas como você sabe se as APIs que você está usando são compatíveis? Nós identificamos cinco conjuntos de chaves que são compatíveis entre Silverlight e. NET. (A camada de interface de usuário do Silverlight não é, obviamente uma delas – há algumas diferenças importantes entre Silverlight e WPF UI).

Como a maioria dos recursos que construímos, nós tínhamos um monte de escolha sobre como criar o recurso, e quais os cenários que permitam. No centro do recurso, uma escolha de design principal era permitir a portabilidade do Silverlight para. NET. A motivação para esta escolha foi que o Silverlight expõe um subconjunto da API .NET, e assim um assembly construídos em Silverlight deve “funcionar” em .NET, enquanto que no sentido inverso (.NET assemblies Executando em Silverlight) seria tecnicamente mais desafiador ( para todos nós).

Outra opção importante do projeto foi identificar o conjunto de assemblies Silverlight /.NET que os desenvolvedores podem usar com segurança, mantendo a comparabilidade binária. Nós olhamos para os cenários que se beneficiariam mais tanto da portabilidade, e seria fácil para os desenvolvedores a utilizar. Nós olhamos um monte de cenários, incluindo: o mais baixo nível, a lógica de negócio típico, networking e também UI. Nós decidimos que iria começar com o cenário mais fundamental e pedido para esta versão. Como resultado, para .NET 4 e SL4, permitimos a portabilidade para um conjunto significativo de assemblies de baixo nível que acreditamos que irá permitir uma variedade de cenários interessantes.

Para SL 4 e .NET 4, temos feito os conjuntos seguintes portáteis:

  • Mscorlib
  • System
  • System.Core
  • System.ComponentModel.Composition
  • Microsoft.VisualBasic

Note novamente que a superfície Silverlight para estes conjuntos é o que nós fizemos portátil. Há um grande número de tipos e membros no. NET superfície que não podem ser executados em Silverlight. Como resultado, você precisa escrever um código que visa o Silverlight versões destes conjuntos, a fim de obter esse cenário para o trabalho.

Observe também que pode haver alguns comportamentos que não são rigorosamente idênticas em ambas as plataformas. Nós trabalhamos para evitar esses comportamentos, porém, essas diferenças são muito sutis e, por vezes difíceis de identificar. Por favor, entre em contato conosco se você ver as diferenças comportamentais entre Silverlight e. NET, APIs para portáteis, que estão incomodando.

Experiência Visual Studio

Como todas as caracteristicas .NET, é importante que nós fornecemos o apoio de ferramentas boas no Visual Studio. Este recurso pode ser usado no Visual Studio, da maneira que se possa imaginar. Os desenvolvedores devem escrever a sua lógica portátil em projetos Silverlight Class Library e, em seguida, são livres para fazer referência a tais projectos de ambos os projetos Silverlight e .NET. Para esclarecer, no lado .NET, Você pode fazer referência a tal biblioteca de qualquer tipo de. NET (Ex: WPF, winforms, WCF, WF, ASP.NET, …).

A única ressalva é que o suporte no Visual Studio foi implementado de tal forma que você precisa clicar várias vezes extra para obter uma referência a um projeto portátil configuração correta. Para VS 2010, você deve contar com a navegação para o binário – AKA “binary reference” – que é construída a partir da biblioteca de classes Silverlight para fazer uma referência. Você não pode fazer referência apenas o próprio projeto – também conhecido como – AKA “project to project reference”. Note que esta restrição existe apenas para .NET, e não os do Silverlight.

A seguir estão as etapas básicas a seguir para habilitar o uso de códigos portáteis no Visual Studio 2010, seguido por um conjunto de prints de tela que espero que fique super claro o que fazer.

Etapas:

  1. Setup projects
    1. Criar .NET application
    2. Criar ou adicionar projetos existentes de biblioteca de classe Silverlight
    3. Compilar o projeto Silverlight
  2. Estabelecer referência de Código portátil
    1. Referência a biblioteca de classes Silverlight ao .NET application.
  3. Código
  4. Rodar a aplicação!

Prints da tela:

projectos Passo 1 – Instalação

Passo 2 – Estabelecer o código de referência portátil para o outro projeto (obrigatório subir e descer a estrutura de diretórios para o projeto de biblioteca Silverlight).

Passo 3 – Código

Passo 4 – Rodar a aplicação!

Nota: Minha app é um aplicativo WPF que se destina a mostrar quantos dias existem até o inicio dos jogos Olímpicos de Vancouver 2010, a partir de hoje. A biblioteca Silverlight é o que faz a contagem regressiva de cálculo real, e é (naturalmente), utilizáveis em ambos as aplicações .NET e Silverlight. Legal!

Olhando para a frente e Comentários

É ótimo ver tanta energia em torno de ambos .NET e Silverlight, e particularmente em torno da partilha de código máxima em todas as plataformas. Convido você a usar este novo cenário para toda a sua extensão, e para comunicar-nos de volta para onde você gostaria de ver a funcionalidade expandida no futuro.

Estamos conscientes de algumas situações que não estão habilitados para ser portátil, mas que os desenvolvedores provavelmente irá deparar-se com bastante rapidez. As mais óbvias são XML, networking, chamada WCF web-services e código UI. Outro interessante é o XAML portátil. Seria muito útil para ouvi-lo sobre os cenários específicos que você gostaria de implementar no código do portátil, mas não consegue executar devido às limitações que eu já mencionei. Eu também gosto de ouvir porque você viu a possibilidade de implementar esse cenário no código portáteis como sendo tal benefício. Os seus comentários vão ajudar a orientar-nos com as mudanças futuras no espaço do código portátil.

Este post foi copiado e traduzido do CLR Team Blog.

Fonte: http://blogs.msdn.com/b/clrteam/archive/2009/12/01/sharing-silverlight-assemblies-with-net-apps.aspx





Novidades do Silverlight 4 – Acesso a Webcam e Microfone

15 06 2010

Mais uma das novidades do Silverlight 4 é o acesso a Webcam e Microfone.

Download do código aqui.

O código a seguir exemplifica o acesso ao device de video(webcam) e audio(microfone).

CaptureSource source;

private void capture_Click(object sender, RoutedEventArgs e)
{
    if (CaptureDeviceConfiguration.AllowedDeviceAccess ||
        CaptureDeviceConfiguration.RequestDeviceAccess())
    {
        source = new CaptureSource();
        //passa o device de video para o source.
        source.VideoCaptureDevice = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
        //passa o device de Audio para o source.
        source.AudioCaptureDevice = CaptureDeviceConfiguration.GetDefaultAudioCaptureDevice();

        //cria o brush
        VideoBrush video = new VideoBrush();
        //seta o source
        video.SetSource(source);
        video.Stretch = Stretch.UniformToFill;

        //para a captura de video caso esteja ativo.
        source.Stop();
        //inicia a captura de video.
        source.Start();

        //passa o brush para o fill do rectangue.
        rectangle.Fill = video;
    }
}

private void stop_Click(object sender, RoutedEventArgs e)
{
    //para a captura do video.
    source.Stop();
}

private void captureImage_Click(object sender, RoutedEventArgs e)
{
    //adiciona um evento ao delegate CaptureImageCompleted
    source.CaptureImageCompleted += new EventHandler<CaptureImageCompletedEventArgs>(source_CaptureImageCompleted);
    //inicia a captura assincrona
    source.CaptureImageAsync();
}

void source_CaptureImageCompleted(object sender, CaptureImageCompletedEventArgs e)
{
    //passa a WriteableBitmap para o source da image
    image.Source = e.Result;
}

Quando você inicia a captura o silverlight exibe uma janela pedindo permissão de acesso a webcam e microfone.

Se tiver alguma duvida da uma olhada no exemplo que montei… faça o download do código.

Download do código aqui.





Novidades do Silverlight 4 – Recurso de Impressão

15 06 2010

O Silverlight 4 tem uma novidade que é a API de impressão.

Download do código fonte aqui.

Pra usar é simples, basta instanciar a class PrintDocument, adicionar um evento ao delegate PrintPage e chamar o metodo Print, e dentro do evento adicionado ao delegate PrintPage chamar e.PageVisual = Objeto; onde Objeto e o controle que o silverlight vai imprimir.

Exemplo:

private void btnprint_Click(object sender, RoutedEventArgs e)
{
    System.Windows.Printing.PrintDocument print =
        new System.Windows.Printing.PrintDocument();

    print.PrintPage += new EventHandler<System.Windows.Printing.PrintPageEventArgs>(print_PrintPage);
    print.Print("MyPrint");
}

void print_PrintPage(object sender, System.Windows.Printing.PrintPageEventArgs e)
{
    e.PageVisual = border;
}

No código acima btnprint_Click e o evento de um botão, e border e o elemento que eu quero imprimir.

Download do código fonte aqui.