logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!

Silverlight 4 – Novo xaml parser e suporte namespaces xml

Colocado por Kelps Sousa na(s) categoria(s): .NET, 1, 4, 6, api, AR, arte, BI, Blend, blog, Blogs, class, codeplex, código, código fonte, control, Controles, Controls, Curso, Cursos, custom, demo, Dica, Dicas, Diversos, dll, exemplo, expression, Expression Blend, fonte, for, framework, Frameworks, Geral, Google, ide, IE, if, image, int, kit, mg, Microsoft, MSDN, News, novidade, Novidades, O, on, padrão, procura, Projetos, pt, referencia, RIA, Ria’s Geral, SDK, silverlight, Silverlight 4, TAT, tool, toolkit, UI, UX, Vários, Visual Studio, Visual Studio 2010, window, windows, XAML, XML, XP em 04 21st, 2010 | Sem comentários

O Silverlight 4 foi lançado na semana passada é já existe uma tonelada de posts com informações a respeito das novidades. Eu estava lendo um post do blog do Silverlight SDK e encontrei uma novidade interessante sobre a qual não se está falando muito. O parser de xaml do Silverlight 4 agora respeita corretamente as definições de namespace xml. Isso tem várias implicações:

  • Agora o namespace padrão dos seus arquivos xml não precisa mais ser “http://schemas.microsoft.com/winfx/2006/xaml/presentation”. Você pode mudar se for útil/necessário para sua aplicação (por exemplo, se você estiver gerando xaml dinamicamente utilizando apenas controles customizados).
  • Com esse suporte, agora é possível criar os seus próprios namespaces, agrupando vários namespaces da sua apliação ou mesmo de diversos assemblies distintos.
  • Frameworks como o Silverlight Toolkit e o SDK já estão tirando proveito disso, definindo seus próprios namespaces para simplificar sua utilização e eliminar a necessidade de ter que conhecer toda a estrutura desses projetos para saber onde estão os controles que queremos usar.

Ou seja, agora é possível ter acesso a todos os controles do Silverlight Toolkit ou SDK acrescentando apenas 2 namespaces na sua tela, como abaixo (mas lembre-se que ainda é necessário fazer referencias as dlls):

1
xmlns:toolkit=”http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit xmlns:sdk=”http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk

Tudo isso é muito interessante e muito legal mas o que me deixou intrigado é que eu não estava conseguindo encontrar informações em nenhum lugar que explicassem como é que eu poderia fazer meus frameworks e apis tirarem proveito desses recursos. Cheguei até a achar por um momento que esses novos namespaces estivesses fixos no Silverlight 4, mas como não era esse o discurso, tinha que have um jeito de implementarmos isso em nossas aplicações.

Foi então que eu tive a idéia de seguir um conselho que o Scott Hanselman vive repetindo quase como um mantra que é “ler código alheio para se tornar um programador melhor”. Tendo isso em mente eu fui ao codeplex e comecei a fuçar no código fonte do Silverlight Toolkit, até que achei o que estava procurando. Para que você possa tirar proveito desse recurso em suas próprias aplicações e frameworks, basta marcar o assembly com os atributos XmlnsPrefix e XmlnsDefinition, como demonstrado abaixo:

1
[assembly: XmlnsPrefix(http://schemas.wf.com.br/sdk, "wf")] [assembly: XmlnsDefinition(http://schemas.wf.com.br/sdk, "WF.Silverlight")] [assembly: XmlnsDefinition(http://schemas.wf.com.br/sdk, "WF.Silverlight.Controles")]

O lugar ideal para definir esses atributos é no arquivo AssemblyInfo do projeto. Para poder utilizar esses atributos é necessário referenciar o namespace System.Windows.Markup nas instruções de using no top da página.

O atributo XmlnsPrefix serve para criar um namespace e pré-definir qual será o seu prefixo quando um controle for adicionado diretamente pelo Visual Studio ou Expression Blend. Geralmente haverá apenas 1 atributo desse por projeto.

O atributo XmlnsDefinition é o responsável por vincular um namespace xml com um namespace do assembly. Esse atributo pode ser adicionado ao assembly quantas vezes for necessário. Geralmente haverá um atributo desse para cada namespace do assembly que contenha controles ou elementos que se deseja disponibilizar no xaml.

Uma coisa muito interessante que eu descobri é que os namespaces que você criar aparecem no intellisense do Visual Studio 2010, como pode ser visto abaixo:

 image

Espero que essas dicas tenham sido úteis. Eu sei que vou tirar proveito dessa nova funcionalidade nos meus próximos projetos.



Veja o post original no blog do autor aqui!  

Kelps Sousa

Escrito por Kelps Sousa @ http://kelps-sousa.blogspot.com/
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» Behavior para filtrar galerias Deep Zoom por tags
» Iris: Novo browser para Windows Mobile
» Visual Studio 2010 Release Candidate disponível para download público

Deixe um comentário



Spam Protection by WP-SpamFree

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2795 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com