71
Silverlight

Silverlight no MIC Summer 2011

Embed Size (px)

Citation preview

Page 1: Silverlight no MIC Summer 2011

Silverlight

Page 2: Silverlight no MIC Summer 2011

Meus contatos• Email: [email protected]• Msn: [email protected]• Twitter: http://twitter.com/FelipePimentell• Blog: http://felipepimentel.net

Page 3: Silverlight no MIC Summer 2011

Material de estudo

Page 5: Silverlight no MIC Summer 2011

Introdução Silverlight

Page 6: Silverlight no MIC Summer 2011
Page 7: Silverlight no MIC Summer 2011
Page 8: Silverlight no MIC Summer 2011

O que é?

• Microsoft Silverlight is a free, cross-browser, cross-platform plug-in that enables rich internet applications and rich media

experiences on the Web and Desktop.

Page 9: Silverlight no MIC Summer 2011

O que é RIA?• São aplicações web que tem a maioria

das características de uma aplicação desktop, mas que é entregue via browser, plug-in

Page 10: Silverlight no MIC Summer 2011

MICROSOFT INTERNAL CONFIDENTIAL INFORMATION

De um modo mais técnico…

• Rich Internet Applications (RIA)- Vector graphics and animation- Client side storage- Video and audio playback

Page 11: Silverlight no MIC Summer 2011

O que faz?

• Silverlight enables the rapid delivery of a new class of high-quality, safer and more scalable experiences, developed and

designed using familiar tools.

Page 12: Silverlight no MIC Summer 2011

DesignDevelo

p

Consistent Tools & Application Model

Deploy

Browser

ClientUser Experience Continuum

Microsoft .NET Application PlatformDeliver applications across the UX Continuum

Page 13: Silverlight no MIC Summer 2011

Timeline do SilverlightEm números no Brasil• Lançamento do Silverlight em Set

2007• Silverlight 2 - Out 2008 • Silverlight 3 - Jul 2009• Silverlight 4 - Mar 2010• Em 3 anos!• 54,30% da internet no BRA possui dispositivos com o Silverlight 4 instalado!• 11,39% ainda no Silverlight 3• 56,31% no Flash 10.1

fonte: www.riastats.com, 14.09.2010

Page 14: Silverlight no MIC Summer 2011

O que preciso ter para começar a desenvolver com Silverlight 4?

• Visual Studio 2010 • ou Visual Web Developer Express 2010• Silverlight 4 Tools for Visual Studio

2010• Expression Blend 4• Silverlight 4 toolkit

Todos estes passos estão em http://www.silverlight.net/getstarted

Page 15: Silverlight no MIC Summer 2011

SilverlightDesenvolvimento e colaboração

Fonte: Rogério Cordeiro e Fernando Figuera

Page 16: Silverlight no MIC Summer 2011

SilverlightDesenvolvimento e colaboração

Fonte: Rogério Cordeiro e Fernando Figuera

Page 17: Silverlight no MIC Summer 2011

SilverlightDesenvolvimento e colaboração

Fonte: Rogério Cordeiro e Fernando Figuera

Page 18: Silverlight no MIC Summer 2011

SilverlightDesenvolvimento e colaboração

Page 19: Silverlight no MIC Summer 2011

SilverlightDesenvolvimento e colaboração

Fonte: Rogério Cordeiro e Fernando Figuera

Page 20: Silverlight no MIC Summer 2011

SilverlightDesenvolvimento e colaboração

Fonte: Rogério Cordeiro e Fernando Figuera

Page 21: Silverlight no MIC Summer 2011

SilverlightDesenvolvimento e colaboração

designers design developers add business logic

Fonte: Rogério Cordeiro e Fernando Figuera

Page 22: Silverlight no MIC Summer 2011

SilverlightDesenvolvimento e colaboração

designers design developers add business logic

Fonte: Rogério Cordeiro e Fernando Figuera

Page 23: Silverlight no MIC Summer 2011

A próxima grande onda7

Silverlight nativo no Windows Phone 7

Criação rápida de aplicações visuais fantásticas

Metro-themed UI controlsHTML/JavaScript500.000 developers Windows e

WebDesenvolvimento para o

MarketPlacePlataforma Consistente

Windows Phone

Hardware

Elementos de

Hardware

Foco na Qualidade

Page 24: Silverlight no MIC Summer 2011

Criando nosso primeiro projeto Silverlight

Olá Mundo, Apenas!

Page 25: Silverlight no MIC Summer 2011

Templates

Page 26: Silverlight no MIC Summer 2011

Configurações do Projeto

Page 27: Silverlight no MIC Summer 2011

Estrutura inicial

Page 28: Silverlight no MIC Summer 2011

Abrindo o projeto no Blend

Page 29: Silverlight no MIC Summer 2011

• Conhecendo o Blend• Templates• StoryBoard

Page 30: Silverlight no MIC Summer 2011

XAML

Page 31: Silverlight no MIC Summer 2011

XAML (Extensive Application Markup Language)

• Linguagem de marcação para criação de interfaces introduzidas com o Windows Vista

Page 32: Silverlight no MIC Summer 2011

MICROSOFT INTERNAL CONFIDENTIAL INFORMATION

XAML

• Similar to HTML in concept• Language independent• Strong support for data binding• Designer tool friendly

<Canvas Width="300" Height="300" xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Ellipse Canvas.Left="20" Canvas.Top="20" Height="200" Width="200" Stroke="Black" StrokeThickness="10" Fill="Yellow" /> <Ellipse Canvas.Left="80" Canvas.Top="80" Height="35" Width="25" Stroke="Black" Fill="Black" /> <Ellipse Canvas.Left="140" Canvas.Top="80" Height="35" Width="25" Stroke="Black" Fill="Black" /> <Path Data="M 70, 150 A 60, 60 0 0 0 170, 150" Stroke="Black" StrokeThickness="15" StrokeStartLineCap="Round" StrokeEndLineCap="Round" /></Canvas>

Page 33: Silverlight no MIC Summer 2011
Page 34: Silverlight no MIC Summer 2011

Code Behind

Page 35: Silverlight no MIC Summer 2011

C# vs XAML• C# •Mais extenso•Mais complexo de ser entendido• Necessita de um desenvolvedor• Ambos• Precisam ser compilados• Case sensitive

Page 36: Silverlight no MIC Summer 2011

Criando elementos no XAML

Page 37: Silverlight no MIC Summer 2011

MICROSOFT INTERNAL CONFIDENTIAL INFORMATION

Naming XAML Elements

• Uses the x:Name (or Name) syntax• Helps to access elements from code• Generates code in InitializeComponent()

method

<Rectangle Canvas.Left="50" Canvas.Top="50" Fill="Yellow" Width="300" Height="200" Stroke="Black" StrokeThickness="10" x:Name="YellowRect" />

Page 38: Silverlight no MIC Summer 2011

Mão na massa• Conhecendo os controles na prática• Composição no XAML• Exemplo: Vídeo dentro de CheckBox

• Integração com VS2010

Page 39: Silverlight no MIC Summer 2011

WCF RIA SERVICE

Page 40: Silverlight no MIC Summer 2011

WCF RIA Services

Simplify n-tier data-driven application developmentThey address the complexity of building n-tier applications with the following components:Framework components • That support patterns

for writing application logic and validation that can be easily used on the presentation tier.

• Client Side LINQ support

Tools• That add to existing

Visual Studio capabilities by linking the client and mid-tier projects in a single solution and by enabling smart code generation in client projects.

Services• That support

commonly used capabilities such as authentication and user settings management

Page 41: Silverlight no MIC Summer 2011

WCF RIA Services Application

Silverlight Application

ASP.NET Application

DataAccess Layer• Entity

Framework• Linq2Sql• ADO.NET• POCO

Database

DomainService• Get…• Insert…• Update…• Delete…

Auto GeneratedProxies Classes• DomainConte

xt• Model Classes

Partial Classes & Methods

LINQ Support

Views• User Controls

Metadata• Attributes

Shared Code• Validators

Shared Code• Validators

ViewModel• State• Operations

Page 42: Silverlight no MIC Summer 2011

De um modo mais macro...

Page 43: Silverlight no MIC Summer 2011

Criando um projeto com WCF RIA Service

Page 44: Silverlight no MIC Summer 2011

Criação de um domínio do Serviço

Page 45: Silverlight no MIC Summer 2011

DomainService• Ele nada mais é do que um serviço WCF encapsulado,

eliminando o contrato (que era exposto no WCF por meio de uma interface, e agora é gerado pelo DomainService, ficando invisível para o desenvolvedor)

• Gera métodos CRUD básicos a partir das entidades, mas permite a customização completa destes métodos

• Traz todo o poder do WCF, mas elimina as dificuldades• Elimina também a necessidade de criar um Service

Host, pois já faz isso por default• A transmissão de mensagens do cliente para o

servidor é feita por Binary Encoding, o que aumenta a segurança e melhora a performance

Page 46: Silverlight no MIC Summer 2011

CRUD no Domain Service

Page 47: Silverlight no MIC Summer 2011

XXX.Medata.cs

Page 48: Silverlight no MIC Summer 2011

XXX.Medata.cs• Utilizar os Data Annotations para validar

dados

[Required][RegularExpression("[A-Z][A-Za-z0-9]*")][StringLength(32)]

Page 49: Silverlight no MIC Summer 2011

Listar com paginação

Page 50: Silverlight no MIC Summer 2011

Detalhes do item escolhido

Page 51: Silverlight no MIC Summer 2011

Atualizar valores no banco

Page 52: Silverlight no MIC Summer 2011

Utilizando validadores e resumos

Page 53: Silverlight no MIC Summer 2011

Validator

Page 54: Silverlight no MIC Summer 2011

Attributes

• Validation• CustomValidation• DataType• EnumDataType• Range• RegularExpression• Required• StringLength

• Other • Exclude• Include• Composition• EnableClientAccess• POCO: Key, Association

• Service• EnableClientAccess• Query • IsDefault• IsComposable• RequestLimit

• OutputCache• Insert• Update• Delete• Invoke• RequiresAuthentication• RequiresRole

Page 55: Silverlight no MIC Summer 2011

Negator

Page 56: Silverlight no MIC Summer 2011

Filtrar informações

Page 57: Silverlight no MIC Summer 2011

Filtrar informações

Page 58: Silverlight no MIC Summer 2011

Filtrar informações

Page 59: Silverlight no MIC Summer 2011

Filtrar informações

Page 60: Silverlight no MIC Summer 2011

Executando Querys• O que é feito no Domain Service é

replicado em um arquivo de saída do lado do cliente

Page 61: Silverlight no MIC Summer 2011

DomainContext context = new DomainContext();            var query = context.GetParadasQuery();

            var operation = context.Load<Parada>(query);            operation.Completed += new EventHandler(operation_Completed);

void operation_Completed(object sender, EventArgs e)        {            var list = ((LoadOperation<Parada>)sender).

Entities.ToList<Parada>();              }

Page 62: Silverlight no MIC Summer 2011

Out of Browser

Page 63: Silverlight no MIC Summer 2011

Criando uma aplicação fora do browser• Rodando a aplicação fora do browser• Arquivo de configuração OutOfBrowserSettings.xml

Page 64: Silverlight no MIC Summer 2011

Controlando a experiência• App possui a propriedade InstallState• Installed• InstallFailed• Installing• NotInstalled

Page 65: Silverlight no MIC Summer 2011

Está rodando fora do browser• IsRunningOutOfBrowser

Page 66: Silverlight no MIC Summer 2011

Instalar aplicação no cliente• Método: Install();

Page 67: Silverlight no MIC Summer 2011

Permissão elevada para que?• Com com integração windows nativa• Chamar webservice sem restrições ou necessidade de

arquivo de access policy• Clipboard, WebCam e Microfone sem perguntar• Lendo e escrevendo em pastas do usuário• Full Screen mode, sem restrições de teclado e sem

pressionar esc para sair

Page 68: Silverlight no MIC Summer 2011

Acessando Folders Especiaisvar music = Directory.EnumerateFiles( Environment.GetFolderPath(Environment.SpecialFolder.MyMusic));

Page 69: Silverlight no MIC Summer 2011

Rodando em full screenif (Application.Current.HasElevatedPermissions){

Application.Current.Host.Content.IsFullScreen = true;}

Page 70: Silverlight no MIC Summer 2011

Utilizando Isolated Storage• Sessão Cross Browser• Assim como Cookie, suporte até 4KB• Não é removido quando limpa histórico do browser

Page 71: Silverlight no MIC Summer 2011

Trabalhando com Isolated StorageIsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication();