(PT)
Hoje tivemos um pequeno “leak” de informação de uma fonte não identificada da Microsoft sobre o TechDays 2010 em Portugal, dizendo que já se podem registar para o TechDays 2010 em www.techdays2010.com.
Não se esqueçam de visitar e começarem a registar-se para este evento incrível que junta Developers and IT Pros.
(EN)
Today we had a small “leak” from an unknown source from Microsoft, about TechDays 2010 in Portugal stating that you can already register for techdays 2010 at www.techdays2010.com.
Don’t forget to go there and start now to register for this incredible event for both Developers and IT Pros.
(PT)
De vez em quando dou uma vista de olhos no CodePlex e tento encontrar projectos interessantes que por lá existam e desta vez estive a ver projectos relacionados com o Silverlight, e isto foi o que encontrei:
Espero que vos ajude.
(EN)
Every once and a while I go to CodePlex and try to look at some interesting projects that exist in there and this time I was looking for Silverlight related projects, and this was what I’ve found:
Hope this helps you.
(PT)
Depois do lançamento do Silverlight 4 Beta no PDC 2009, muito se tem visto no que respeita ás novas funcionalidades presentes nesta versão, e uma delas tem sido o suporte para a câmera, e a possibilidade de interagir com ela em termos de detecção de movimentos por forma a afectar a forma como a nossa solução se comporta.
Então para nos divertirmos um pouco o Adam Kinney criou uma solução que nos permite “dar cabo” de insectos através da utilização da nossa câmera para analisar os movimentos efectuados e com isso interagir com a aplicação.
Divirtam-se com a aplicação e analisem o código de forma a perceberem como exactamente é que conseguimos criar a detecção de movimento utilizando a suporte de câmera no Silverlight 4. Este é o post do Adam Kinney no seu blog.
(EN)
After the release of Silverlight 4 Beta on PDC 2009, a lot as been seen about the new features of Silverlight and one of them has been the WebCam support and the possibility to interact with it in order to provide a way to affect our solution by using motion detection.
And so in order for us to have a little fun, Adam Kinney developed a solution that allows us to “kick so bugs ass” by using the WebCam to analyse our movements in order to interact with the application.
Have fun with the solution and watch the code in order to understand how we can develop some motion detection with our webcam in Silverlight 4. This is the post by Adam Kinney on his blog.
(PT)
De forma a compreender melhor a forma como o Silverlight e o Blend trabalham, normalmente tendemos a “colocar as mão na massa”, e testarmos nós próprios de forma a que possamos fazer isso melhor necessitamos de alguns tutoriais, hand-on-labs, ou qualquer outra forma.
Este post foi criado pois neste momento temos alguns tutoriais como:
- Silverlight
- Webcam and Microphone Showcase
- Utilização da WebCam e Microfone, Pixel Shaders
- Out of Browser
- Utilização de Soluções fora do browser e Trusted Applications com interoperabilidade com COM, e muito mais
- Data Validation, Binding, DataForm and DataGrid Features
- Image Browser
- Browser Multi-touch, funcionalidade drop target, menu right-click
- Rich Text Editor
- Novo controlo RichTextArea, suporte programático ao clipboard, texto bidirectional, Printing e Direcção
- Picture Browser
- Carregamento de imagens assincronamente a partir de web servers para o novo controlo de ViewBox, estilos implicitos, e suporte a MouseWheel
- Blend
Espero que vos ajude, e bons testes.
(EN)
In order to better understand the way Silverlight and Blend work, we normally need to “take matters in our own hands”, and test it ourselves, and in order to do that we need some tutorials, hands-on-labs, and other tools.
This post happend because we now have some new tutorials like:
- Silverlight
- Webcam and Microphone Showcase
- Using WebCam and Microphone, pixel shaders
- Out of Browser
- Using Out-of-Browser and Trusted Applications with COM Interoperability, and so on
- Data Validation, Binding, DataForm and DataGrid Features
- Image Browser
- Multi-touch browser, drop target functionality, right-click menu
- Rich Text Editor
- new RichTextArea control, programmatic clipboard access, bi-directional text, printing and FlowDirection
- Picture Browser
- Asynchronously load images from a web server into the new ViewBox control, Implicit Styles, and MouseWheel support
- Blend
Hope this helps, and good practices.
(PT)
Muito se tem falado relativamente aos “.NET RIA Services” agora denominados de “WCF RIA Services”, e muito mais sobre a alteração de nome, pois muita gente não olha para os RIA Services como verdadeiros serviços WCF, com todo o seu poder, mas a verdade é que isso não é propriamente verdade pois os WCF RIA Services utilizam o WCF como base e tornam apenas o trabalho mais simples para todos nós em termos de “desenvolvimento em baixo nível”.
Um dos membros da Equipa de Produto, neste caso o Saurabh Pant no seu blog falou precisamente sobre esta problemática e do proquê da alteração de nome neste post no seu blog, clarificando que parte do WCF se encontra dentro dos WCF RIA Services. Ele fala também da motivação que levou a este alinhamento entre as equipas de WCF e RIA Sercices, e neste post no blog da Equipa a de .NET Connected Framework explica todo o ecosistema do WCF no qual os WCF RIA Services fazem parte. Analisem a imagem apresentada abaixo de forma a saberam mais sobre todo o ecosistema que tem tecnologias como :
- WCF Core Services
- A mais comum implementação de serviços utilizando WCF
- WCF WebHttp/AJAX Services
- Implementação WCF de serviços RESTful
- WCF Data Services
- Os anteriormente conhecidos por ADO.NET Data Services utilizam agora o WCF para todas as comunicações
- WCF Workflow Services
- Workflows que expõem e interagem com serviços WCF
- WCF RIA Services
- Anteriormente conhecidos por .NET RIA Services que agora utilizam também as capacidades de comunicação do WCF de forma a fornecer maior capacidade e poder ao programador, sem que para isso aumente o trabalho mais a mais baixo nível.
Espero que este post ajude a clarificar melhor o WCF existente nos WCF RIA Services e o seu lugar dentro do ecosistema do WCF.
(EN)
A lot as been said about “.NET RIA Services” now called “WCF RIA Services”, and much more about this name change, since many people doesn’t look at RIA Services like a real WCF Services with all their power, but that isn’t quite true since WCF RIA Services use the same bases as WCF but just make the work a little bit easier for us in terms of the “plumbing/low level development” part.
One of the Product Team members, in this case Saurabh Pant in his blog talked about this and why the change, and clarifies the WCF inside WCF RIA Services in this blog post. He also talks about the motivation of this alignment between the WCF and the RIA Services Team, and in this blogs post the .NET Connected Framework Team explain the entire ecosystem for WCF and in which WCF RIA Services is part of. Check the following picture to know more about this ecosystem that has technologies like:
- WCF Core Services
- The most commonly known WCF implementation
- WCF WebHttp/AJAX Services
- The RESTful WCF service implementation
- WCF Data Services
- The previously known ADO.NET Data Services are now also using WCF for all the communication
- WCF Workflow Services
- Workflows that are exposed and interact as WCF Services
- WCF RIA Services
- The previously know .NET RIA Services that now use the WCF communication capabilities in order to provide more power to the developer and at the same time, easier development and less “plumbing”
Hope this helps clarify a little better the WCF part of the WCF RIA Services and their place in the entire WCF ecosystem.
(PT)
Após a primeira parte em que falamos sobre as alterações que foram efectuadas da versão WF 4.0 Beta 1 para a Beta 2, nesta segunda parte iremos falar sobe o novo Flowchart Workflow.
Vamos então começar por identificar os desafios que normalmente nos deparamos quando enquanto programadores de workflows, e eles são:
- Definir Workflows com base em diagramas de fluxos (Fluxogramas) fornecidos pelos Analistas de Negócio e Utilizadores finais
- Criar os Workflows simples para que possa existir uma validação por parte dos Utilizadores e dos Analistas de Negócio
- Efectuar Testes Unitários sobre os Workflows
De forma a efectuarmos o que nos propomos comecei por pesquisar na internet exemplos de flowcharts construídos por Analistas de Negócio, e encontrei um aqui.
De forma a criarem o mesmo exemplo por mim utilizado na apresentação podem seguir o script de demonstração que se encontra em anexo a este post.
Em suma, podemos olhat para o Flowchart como:
- Tipicamente utilizado para implementar workflows não sequenciais, ou por outras palavras, implementar workflows sequênciais com a capacidade de em determinadas circunstancias voltar a um ponto anterior na sequência.
- Pode ser utilizado como sequencial em caso de não existirem quaisquer nós de decisão
- Uma actividade Flowchart que contem uma colecção de nós que herdam de FlowNode.
- Tipos de FlowNode:
- FlowStep
- FlowDecision
- FlowSwitch
- Caminho único de execução (cada actividade pode transitar apenas para uma única actividade)
- Proporciona uma tradução mais literal do negócio
- Poder aliado à Simplicidade
- Semelhanto a como desenhariamos o processo num quadro ou mesmo no Visio
(EN)
After the part 1 in which we talked about the Changes from WF 4.0 Beta 1 to Beta 2, in this part 2 we will talk about the new Flowchart Workflow.
And so first of all let’s start by identifying the challenges that we currently have when using Workflow development, and they are:
- Defining Workflows based on flowcharts made by Business Analysts and Users
- Making Workflows easier for Business Analysts and user validation
- Unit Testing Workflows
In order to do this I’ve started by searching the web about samples of flowcharts built by Business Analysts, and I’ve found this one here.
In order to do the same sample as me in the presentation, just follow the demo script that is attached to this post.
As a summary we can look at Flowchart like:
- Typically used to implement non-sequential workflows, or in order words we can think of it as a loopback sequential workflow in which in we can define that an element of the sequence can loopback to a previous sequence element.
- Can also be used for sequential workflows if no FlowDecision nodes are used
- A Flowchart activity is an activity that contains a collection of flow nodes that inherit from FlowNode.
- FlowNode types:
- FlowStep
- FlowDecision
- FlowSwitch
- Single path of execution (each activity can only transition to one and only one activity)
- Provides a more literal translation (“The way in which I think about my process is the way in which I write it down”)
- Power + Simplicity
- Similar to how you would draw a process in a whiteboard or Visio
(PT)
Já se encontra disponível a versão de Novembro do conjunto de SK e Ferramentas do Windows Azure, e pode ser encontrado aqui. Poderão também ver mais informações sobre os novos .NET Services aqui e também aqui no Development Center do Windows Azure para os .NET Services. Vejam mais aqui neste post da Equipa de Produto.
Existem algumas alterações e quebras quanto a versões anteriores por isso verifiquem mais informações neste post da Equipa.
(EN)
There is already available the new November set of SDK and Tools for Windows Azure, that can be found here. Also you can see here more about the new .NET Services and also here on the Windows Azure Development Center for .NET Services. Read more in this post from the .NET Services Team.
There are some breaking changes in this version so check also this post from the team.
(PT)
Na semana passada foi em Berlim, Alemanha no evento TechEd EMEA 2009 e fiz uma sessão denominada “Deep Dive in Windows Workflow Foundation 4.0”. Esta foi uma sessão de nível 300 e não 400 como o próprio nome poderia indicar, mas desta forma conseguimos fazer como que mais pessoas estivessem interassadas e obter uma maior abragência na apresentação.
De forma a fornecer a todos os que estiveram na sessão mais informações e um sumário sobre o que viram e os Demo Scripts relativamente ao que foi efectuado durante a apresentação, preparei um série e 4 posts que os irá ajudar, e também para os que não poderam assistir devido à sala estar completa ou simplemente porque não tiveram a oportunidade de ir ao evento.
Esta série de 4 partes será composta por:
- Parte 1: Alteração da WF 4.0 Beta 1 para a Beta 2
- Parte 2: Flowchart
- Parte 3: Correlação
- Parte 4: Migração de State Machine para Flowchart
Então vamos começar esta primeira parte com as alterações presentes da versão Beta 1 para a beta 2, pois uma vez que a Beta 2 foi lançada à apenas 3 semanas paraceu-me importante este tópico uma vez que nos colocava a todos com a mesma base de partida.
Básicamente as alterações podem ser divididas nas seguintes partes:
- Hierarquia de Actividades
- A base de todos os Workflows sempre foi a classe WorkflowElement, e tudo iriam herdar desta classe e por isso teriamos abordagens diferentes aos diversos tipos de Workflows, como o Flowchart e Sequencial.
- Beta 2

- Nesta versão as principais alterações foram as seguintes:
- WorkflowElement desaparece e é substituído por uma Actividade. Activity é o tipo base de todas as unidades de execução dentro do mundo do WF. Isto significa que agora poderemos olhar para os workflows com uma prespectiva completamente diferente, pois os tipos de worklfows são apenas actividades que poderão ser compostas e utilizadas em conjunto de forma a tornar um workflow real de negócio.
- Foi adicionado o ActivityWithResult que é a base de todas as actividades que disponibilizam resultados
- Foi também adicionado o AsyncCodeActivity, que apareceu devido ao enorme feedback dos clientes que queriam programação assincrona nas actividades, mas ainda existem muito a fazer de forma a que funcionem na perfeição. A AsyncCodeActivity é algo de interessante e que permite fácilmente o desenvolvimento de soluções que tiram partido das APIs disponibilizando um par Begin/End através da utilização de um modelo assíncrono de desenvolvimento.
- Runtime e Hosting
- CachedMetadata
- Melhorias para os autores de actividades para desenvolver o código de para validar as actividades.
- Um único ponto de entrada para a configuração e extensão de todos os comportamentos que anteriormente se encontravam dispersos em métodos como :
- OnGetArguments()
- GetConstraints()
- GetActivities()
- ActivityAction
- Introdução de DelegateArguments para a passagem de dados para uma ActivityAction.
- na Beta 1, para este objectivo necessitavamos de utilizar um objecto do tipo Variable<T> que era associado ao nome de um argumento.
- Presistência e Monitorização
- Ao nível do core, a equipa efectuou diversas alterações no que diz respeito ao motor de Presistência e Monitorização que irão proporcionar uma melhor experiência ao programador de WF4.
- Actualizações Dinâmicas
- No que respeita às actualizações dinâmicas ao nível do runtime, esta funcionalidade foi retirada, e não estará disponível na versão RTM
- WorkflowInstance renomeada
- WorkflowInstance é denomidada de WorkflowApplication a partir de agora com base nas opiniões dos utilizadores da Beta 1.
- Actividades
- Correlacção
- ParametersContent
- O XPath pode neste momento ser gerado com base nos parâmetros
- Initializadores de Correlação
- CorrCorrelationQuery e AdditionalCorrelations foram colocados em conjunto e foi criada uma colecção denominada de CorrelationInitializers.
- Âmbito de Correlação
- Reduzir a necessidade de utilização de CorrelationHandles através da melhoria do objecto CorrelationScope e obter implicitamente o handle de correlação.
- Suporte a Parâmetros
- Actividades com Parâmetros
- As actividades com parametros foram retiradas e foram colocadas nas actividades Send e Receive.
- Conteúdo
- Agora poderemos utilizar a propriedade Content para suportar a MessageContent (principalmente para tipos não definidos ou Contratos de Mensagem com o MessageContract) e ParametersContent (que é para um estilo RPC style com um par nome e valor).
- Semântica melhorada e actividades com tratamente do excepção
- Semântica melhorada nas actividades com tratamento de excepções de forma a que o comportamento seja mais similar ao “throw” do C#. O aspecto mais visível é a introdução da actividade Rethrow.
- InvokePowershell
- A Actividade InvokePowershell já não se encontra como parte integrante da framework, apenas foi mudado para dentro do SDK em conjunto com outras actividade também de bastante interesse.
- Um ponto importante na actividade InvokePowerShell é que incluí uma versão com código apenas e outra com desiner.
- Adicionada uma actividade TerminateWorkflow ao Beta 2 (dentro da categoria untime)
- Actividade Interop
- Componentes principais
- A actividade Interop é o principal componente para obter workflows de WF3 a correr em WF4
- Esta actividade proporciona a continuação da utilização de actividades construídas em WF3.
- Melhorias
- Validações e Transações são também tratadas dentro da actividade Interop para melhor suporte às actividades WF3
- Sempre que utilizarmos a actividade Interop, se existir presistência no the workflow/actividade que está a ser utilizada como interop, a base de dados que irá ser utilizada para a Presistência e Monitorização serão da versão 4.0 , pois desta forma melhoramos a integração de ambas as versões.
- Designer
- Suporte a Expanção
- Torna mais simples efectuar uma expansão dos elementos que se encontram na actividade dentro do mesmo canvas sem necessitar do perder a noção de todo o workflow.
- Designer para Imports
- Retirada a necessidade de utilização de nomes qualificados dentro das expressões utilizadas
- Linhas do Flowchart para o FlowDecision e FlowSwitch com texto associado
- Importante em termos de leitura e usabilidade do Flowchart.
- O rehosting também foi tornado mais poderoso e existem um exemplo nos serviços de WCF e WF do SDK que é o WorkflowSimulator que efectua o ReHosting e também uma informação visual sobre o estado corrente do workflow. Isto é particularmente interessante em termos de fornecer aos nossos clientes a possibilidade de definir o ser negócio fácilmente.
Todas estas informação foram baseadas no blog da equipa que pode ser acedido aqui, http://blogs.msdn.com/endpoint/.
(EN)
Just last week was in Berlin, Germany the TechEd EMEA 2009 event and in that event had a session called “Deep Dive in Windows Workflow Foundation 4.0”. This was a level 300 session and not 400 as the name could make you think, but this way we could achieve more people in terms of breadth.
In order to provide all of those that were in the session with more information and some summary of what we’ve seen and also the Demo Scripts for all that was made during the presentation I’ve prepared a 4 part series of posts that will help them, and also those who weren’t able to attend it because the room was full or simply because they hadn’t the opportunity to get to the Event.
This 4 part series will be:
- Part 1: Changes from WF 4.0 Beta 1 to Beta 2
- Part 2: Flowchart
- Part 3 : Correlation
- Part 4: Migration from State Machine to Flowchart
So let’s start this part 1 with the Changes made from WF 4.0 Beta 1 to Beta 2, since the Beta 2 was release just 3 weeks ago this seemed to me a very interesting topic just to place ourselves in the same page.
So basically we can divide the changes into the following parts:
- The base of the Workflows was always a WorkflowElement class, and everything would inherit from that class and so we would have different approaches for the several types of Workflows, like Flowchart and Sequential.
- Beta 2
![ActivityHierarchyBeta2 ActivityHierarchyBeta2]()
- In this new version the key changes were:
- WorkflowElement goes away, and is replaced with Activity. Activity is the root type for all units of execution within the world of WF. This means that we now look at workflows in a different perspective, that is that the types or workflows are just activities that can be composed and use in conjunction with one another, and this will make the real Workflow.
- Addition of ActivityWithResult which is the base for the Expression activities
- Addition of AsyncCodeActivity. We got a lot of feedback that people liked what we were doing integrating asynchronous programming within activities but that there was still a fair amount of work in order to hook those up. AsyncCodeActivity is some nice sugar that makes it pretty easy to write an activity that takes advantage APIs that surface a Begin/End pair using the asynchronous programming model.
- Runtime and Hosting
- CachedMetadata
- improved for activity authors to write code within to validate the activity tree.
- One stop shop for customizing behaviors that were previously spread through methods like:
- OnGetArguments()
- GetConstraints()
- GetActivities()
- ActivityAction
- Introducing DelegateArguments to pass data into and out of an ActivityAction.
- In Beta 1, this required using an object of type Variable<T> that was assigned to a property named Argument
- Persistence and Durable Timer and Tracking
- ‘Under the Hood’ category, the team has made improvements to Persistance, Durable timer and tracking which should provide a better runtime experience for the WF4 developer.
- Dynamic Update
- Last on the runtime front, dynamic update was a feature that had made its debut in Beta 1, but was removed again between Beta 1 and Beta 2 - and will not be present in the RTM release
- WorkflowInstance renamed
- Activities
- Correlation
- ParametersContent
- XPath can now be generated from ParametersContent
- CorrelationInitializers
- CorrelationScope
- Reduced the need for CorrelationHandles all over the place by improving the CorrelationScope and having an implicit correlation handle.
- Parameters support
- Parameters activities
- Removal of Parameters Activities and merging that into the Send and Receive activities.
- Content
- You can now use the Content property to support MessageContent (primarily for untyped Message or MessageContract ) and ParametersContent (which is for the more RPC style list of name value pairs).
- Refactored Semantics on Error Handling Activities
- Refactored the semantics around the error handling activities to behave similar to a “throw” in a C# catch block. The most visible aspect of this change is the addition of the Rethrow activity.
- InvokePowershell
- Lastly, the InvokePowershell activity is no longer shipped as part of the .NET Framework. Fear note, for it is not gone; it has been moved to the SDK samples, joining other quite useful activities.
- One point worth to mention about the PowerShell activity in the SDK is that includes activity code + designer code
- Added a TerminateWorkflow activity in Beta2 (it’s in the runtime category)
- Interop Activity
- Key Component in WF4
- The Interop activity is a key component for WF4 workflows, Leverages Activities built in WF3
- Interop Activity allows you to continue to leverage activities built in WF3.
- Improvements
- Validations and Transactions are handled within the Interop activity to more fully support WF3 activities
- Whenever using the Interop activity, if you have persistence in the workflow/activities that is used in the interop, that the Persistence and Monitoring databases that will be used is the 4.0 version, since this way we leverage the use of both versions, and only need one to provide that capability.
- Designer
- Expand in place support
- This makes it easy expand an activity within the canvas without having to drill into it. This also lets you collapse activities when you don’t want to see all of the detail
- Imports designer
- No more fully qualified type names within expressions
- Text of flowchart lines for FlowDecision and FlowSwitch
- This is a nice usability / readability fix for the Flowchart, making it easier to see which cases and conditions the lines leading from decision shapes are for.
- The rehosting was made really powerful, and in the WCF and WF Samples from the SDK there’s a WorkflowSimulator that makes the ReHosting and also provide visual information about the running state of the workflow. This is really interesting in terms of providing the our customers the capability to define the Business easily.
All these information were based on the team blog that appears here http://blogs.msdn.com/endpoint/.
(PT)
Silverlight 3 saiu ainda há pouco tempo e já estamos a ouvir falar sobre a nova versao, e isto é uma das grandes vantagens do Silverlight (pelo menos na minha humilde opinião), pois sabemos que estão constantemente a tentar colocar mais sem sacrificar o tamanho e até a capacidade de cross-browser e platform da tecnologia.
Uma das primeira “espreitadelas” ao Silverlight 4 foi em Amesterdão e podem ler mais aqui, neste artigo do The Inquirer.
“(…)In an early preview of Silverlight 4 media-specific features, the Vole showed off what its next generation of movie experiences could do even when saddled with its offline PlayReady DRM. (…)”
“(…) A spokes Vole said that Silverlight 4 will enable movie studios to offer network-delivered updates, special offers and live events, and flog more than just one or two movies to punters (…)”
Eu digo, hum interessante, mas gostaria de saber mais sobre as funcionalidades por isso irei blogar quando isso acontecer.
(EN)
Silverlight 3 just got out and already we are hearing about the new version, and this is one of the huge advantages that Silverlight has (IMHO of course), because we know that they are always trying to get more into there without sacrificing the size and the cross-browser and platform of the technology.
One of the first sneaks about the new Silverlight 4 was in Amsterdam as you can read more here, in this The Inquirer article.
“(…)In an early preview of Silverlight 4 media-specific features, the Vole showed off what its next generation of movie experiences could do even when saddled with its offline PlayReady DRM. (…)”
“(…) A spokes Vole said that Silverlight 4 will enable movie studios to offer network-delivered updates, special offers and live events, and flog more than just one or two movies to punters (…)”
I say, hum interesting, I would love to know more about the new features so I’ll keep blogging when that happens.
Durante a próxima semana irá ter lugar mais um ciclo de WebCasts em Português, pertencente à iniciativa WebCasts4Share da Microsoft Portugal, sendo este ciclo relativo ao tema “Silverlight 3 para Programadores” e onde irão ser abordados os seguintes tópicos:
- Novidades no Silverlight 3.0
- Sinopse: “Com o lançamento da versão 3.0 Microsoft Silverlight muito se tem falado, e por isso mesmo esta sessão irá falar sobre as novidades que esta nova versão bem como, a forma como as mesmas irão alterar a forma como as soluções de negócio são desenvolvidas.”
- Data: 22 de Setembro de 2009
- Hora: 15 horas
- Inscrição aqui.
- Comunicações em Silverlight 3.0
- Sinopse: “Com esta última versão do Silverlight foram disponibilizadas diversas novidades em termos de comunicações, quer para acesso local, quer em termos de acesso a serviços, ou até informações relativamente á conectividades, por isso mesmo com esta sessão iremos olhar para essas novidades e enquadrar as mesmas em termos de aplicabilidade nas nossas soluções. Iremos falar de LocalConnection API, Network Monitoring API e melhorias em termos de comunicação com WCF. Iremos também fazer uma breve introdução aos .NET RIA Services.”
- Data: 23 de Setembro de 2009
- Hora: 15 horas
- Inscrição aqui.
- Silverlight Toolkit e Multi-Targeting
- Sinopse: “Continuando os esforços que tinham vindo a ser feitos, durante a versão 2.0 do Silverlight, na criação de um conjunto de controlos que podessem ser utilizados nas soluções além de extender algumas das capacidades do Silverlight, o mesmo tem vindo a ser efectuado para esta nova versão, e com esta sessão iremos analisar em primeiro lugar o que podemos encontrar no Toolkit, bem como analisar a melhor forma de manter um único código e com isso ter soluções Silverlight e WPF, tendo como exemplo o próprio Toolkit.”
- Data: 24 de Setembro de 2009
- Hora: 15 horas
- Inscrição aqui.
Nestes ciclo serei eu o orador e teremos para oferecer durante o mesmo 3 vouchers-convite para o evento ReMix de dia 2 de Outubro em Lisboa, e que será atribuído com base no primeiro elemento a responder correctamente a uma pergunta que será colocada durante a sessão.
Espero que estejam presentes neste novo ciclo, e poderão sugerir aqui ou por email outros tópicos que gostassem de ver também nesta inciativa de WebCasts4Share.
When building Software as a Service (SaaS) solutions one of the things that is very important to consider is the Multi-Tenancy of the Database, and the different approaches that available in order to achieve the best option.
The option is always the same in every part of any solution, and this is from a Fixed Solution to a Fully Configurable Solution, and a SaaS solutions normally starts somewhere in the middle, that is when different customers can have different functionalities and even different UX. But a very important thing to acknowledge is the fact that in order to maintain this kind of differences we need a data model that needs to be Multi-Tenant, and so the next choice to make is the Multi-Tenancy approach that will be used, and it can be:
- Separate Databases for each Customer
- Isolation, The most Isolation we can have, and the one we can be sure that no customer can access other customer’s data
- Customization, Each customer can have different data model without affecting other customers
- Performance, The fact that the data is isolated allows that the several customers have performances accessing that are dependent only on their amount of data, and not other customers data.
- Manageability, Whenever a customer has a problem with the data on the solution, or needs a migration, or backups are easier to achieve since they are isolated.
- Same Database, Separate Schemas for each Customer
- Isolation, This is in the middle way since we have from one side the data isolated since we have different schemas for each customer, but all resides on the same database, simplifying the number of databases that reside on our server.
- Customization, Each customer can have different data models without affecting others
- Performance, The fact that the data resides on the same database as other customers, the amount of data from other customers can affect the performance of accessing the data, but of course this can be simplified by using Partitioning on the database.
- Manageability, Whenever a customer has a problem with the data on the solution or even a migration it’s still not so hard since we have different schemas for each customer, but for separate backups this is not that easy.
- Same Database, Same Schema for each Customer
- Isolation, This is the less isolated solution for data since everything reside exactly on the same tables, and database, and then this will simplify the number of Databases and Database objects on the server.
- Customization, This makes that every customer have the same schema, and so customization is only possible using approaches like:
- Having several Custom columns on the tables, like, Custom1, Custom2, and so on.
- Having a table for customizable columns, like ColumnName, ColumnType, ColumnValue.
- Performance, The fact that the data is nor isolated makes that the amount of data from other customers affect the performance of accessing data, but of course this can also be achieved using Partitioning on the database based on the for instance in the TenantID.
- Manageability, This becomes harder since everyone's data is on the same tables and so the separation of the backups, as well as the manageability of the customers data becomes harder, but the possibility to run checks on customers data became easier since we always know at front the schema used for each customer.
A very interesting document regarding this subject is this one that is part of the MSDN site, and that is called “Multi-Tenant Data Architectures”. Another interesting reading about this subject is this article from Scott Mitchell in the 4GuysFromRolla community site about “Querying a Multi-Tenant Data Architecture”.
In order to know more about SaaS architecture and solutions I’ll suggest the following articles:
Hopes this can help you get started or even with your choices in terms of Multi-tenancy of Data.
(PT)
O Visual Studio 2010 está rapidamente a aproximar-se do lançamento e com ele diversas funcionalidades novas irão aparecer.
Uma das que me parece muito importante são as Ferramentas de Arquitectura que vêm nesta versão, e elementos como:
- Gráfico de Dependências
- Filtrável utilizando Direct Graph Markup Language (DGML) sobre o gráfico gerado.
- Visualizações como:
- Matrix de dependências
- Vista Directa
- Vista de Cima para Baixo
- Diagramas de Sequência
- Disponíveis a partir do Editor de Código
- Unified Modeling Language (UML)
- Utilizanção de UML para a definição do projecto
- Use Cases (UC)
- Criação de Use Cases
- Integração com o TFS, pois poderemos seleccionar um elemento do Use Case e criar, ligar ou visualizar os Work Items associados.
- Construtor de Camadas e Validações
- Possibilidade de contruir a arquitectura da solução e aplicação de validações aos elementos, sendo que as mesmas serão sempre forçadas no processo de desenvolvimento.
Para saber mais sobre este assunto leiam este post do S.Somasegar.
Outras funcionalidades bastante importantes são o Debugging e o Profiling.
- Debugging
- Debugger para programas MPI integrado. Agora com o novo VS2010 poderemos escolher qual o nó do cluster que desejamos utilizar, quantos cores queremos e fazer-mos F5 para fazer o debug de programas MPI.
- Debug de SOA
- Até agora, fazer debug a um Cluster de SOA estava limitado ao estilo básico de debug de WCF/.Net sem qualquer utilização de Cluster.
- Com o Visual Studio 2010, um novo add-in para os Clusters SOA disponibiliza um tabulador de configurações SOA, que possibilita a escolha do qual o nó que deverá ser utilizado, os nós de serviços que deverão ser utilizados no Debug, além dos elementos que deverão ser instalados e retirados antes de depois do processo de debug.
- Profiling
- O Profiler oferece agora informações sobre elementos relativos a performance.
- Apresenta um relatório de comparação entre os diversos “lançamentos” do projecto e também das diversas compilações.
Para saber mais sobre este assunto leia este post do S. Somasegar.
(EN)
Visual Studio 2010 is approaching rapidly from the launch and with it a new set of features will also appear.
One that I think is very important is the Architectural Tools that come with this new version, and elements like:
- Dependency Graph
- Filters using Direct Graph Markup Language (DGML) on top of the generated graph.
- Views as:
- Dependency Matrix
- Forced Direct Layout
- Top to Bottom Layout
- Sequence Diagrams
- Available on the Code Editor
- Unified Modeling Language (UML)
- Usage of UML to define the project
- Use Cases (UC)
- Creation of Use Cases
- Integration with TFS, since we can select an element in the use case and build, link or View the associated Work Items.
- Layer Designer and Layer Validation
- Possibility do build the Architecture of the solution and associate some validation elements that will always be enforced during the development process.
To know more about this subject read this S.Somasegar post.
Another very important features are the Debugging and Profiling.
- Debugging
- Built in Debugger for MPI programs. Now with the new VS2010 we can select a cluster head node, how many cores you want, and hit F5 to debug your MPI program.
- SOA Debugging
- Up until now, debugging Cluster SOA was limited to basic WCF/.Net style debugging with no cluster integration.
- In Visual Studio 2010, an add-in for Cluster SOA enables the SOA Settings tab, allowing you to choose a head node, debug nodes and services, deploy runtime libraries and clean up automatically.
- Profiling
- VS Profiler can offer insight into performance issues
- Shows a comparison report across multiple runs or builds so you can easily see the effect of your changes.
To know more about this subject read this S. Somasegar post.
(PT)
Prism é na realidade um Guia que foi criado para o Silverlight 2.0, e algum do feedback que tenho ouvido é se funciona efectivamente com a nova versão 3.0, e por isso lembrei-me the efectuar este post.
As questões habituais são as seguintes:
1. Funciona bem com o Silverlight 3 ?
- Sim. Funciona bem com a nova versão do Silverlight.
2. Será que funciona bem com os .NET RIA Services ?
- Sim. Eles não funcionanam apenas bem em conjunto, efectivamente eles complementam-se um ao outro, pois um dos elementos que estava no product backlog da Equipa de Prism era o acesso a dados do servidor, e sendo que não tiveram tempo para o fazer, os .NET RIA Services podem fazê-lo por eles.
Para saber mais sobre o assunto leiam este post do David Hill.
Relativamente a como ter um quickstart sobre o Prism leiam este outro post do David Hill.
(EN)
Prism is a real interesting Guidance and was built for Silverlight 2.0, and some of the feedback I’ve received is if it works well with the new version 3.0, and so I remembered blogging about this.
The most usual questions are:
1. Does this work well with Silverlight 3 ?
- Yes it works fine with this new version of Silverlight.
2. Does this work well with .NET RIA Services ?
- Yes. They don’t only work well together, they actually complement each other, since one of the elements in the product backlog of the Prism Team was the access to server data, and since they didn’t had time to do this, .NET RIA Services can do this for them.
In order to know more about the subject read this David Hill’s post.
About how to have quick starts about Prism read this other David Hill’s post.
(PT)
Após as diversas informações relativamente ao CTP2 dos ADO.NET Data Services v1.5, agora a Equipa de Produto lançou um tutorial em como esta versão poderá ser utilizada de outro domínio com o Silverlight e também fora-do-browser. E por isso penso que esta informação é bastante importante para todos os que trabalham em Silverlight.
De forma a saberem mais sobre o assunto leiam este post da Equipa de Produto.
(EN)
After all the information’s regarding the ADO.NET Data Services v1.5 CTP2, now the Product Team launched a tutorial in how to use this version with Silverlight from another domain and also out-of-browser. And so I think this is important for everybody that is working in Silverlight.
In order to know more about the subject read this post from the Product Team.
(PT)
Recentemente numa reunião do GASP (Grupo de Arquitectura de Software Português) tivemos uma apresentação relativamente à necessidade e utilização de CEP nas solução e a implementação apresentada foi o NESPER – Esper Complex Event Processing for .NET que é um software Open-Source disponível sobre licenciamento GNU General Public License (GPL) v2. Pelo que vi pareceu-me bastante interessante e também não muito complexo de utilizar, mas pareceu-me estranho que a Microsoft não estivesse a fazer nada relativamente a este assunto que é tão importante em Arquitecturas baseadas em Eventos (EDA: Event-Driven ) ou até chamado de SOA Avançado.
A nossa espera está a chegar ao fim, pois a Microsoft está já a trabalhar sobre o asunto e até já tem uma versão CTP que pode ser obtida aqui e que é denominado Microsoft® SQL Server® StreamInsight CTP2.
Mas afinal o que é o Microsoft® SQL Server® StreamInsight CTP2?
“Microsoft® SQL Server® StreamInsight is a platform for the continuous and incremental processing of unending sequences of events (event streams) from multiple sources with near-zero latency. These requirements, shared by vertical markets such as manufacturing, oil and gas, utilities, financial services, health care, web analytics, and IT and data center monitoring, make traditional store and query techniques impractical for timely and relevant processing of data.
StreamInsight allows software developers to create innovative solutions in the domain of Complex Event Processing that satisfy these needs. It allows to monitor, mine, and develop insights from continuous unbounded data streams and correlate constantly changing events with rich payloads in near real time. Industry specific solution developers (ISVs) and developers of custom applications have the opportunity to innovate on and utilize proven, flexible, and familiar Microsoft technology and rely on existing development skills when using the StreamInsight platform.
Some of the key feature areas are:
- Derive meaningful and relevant information from data/events streams through complex patterns. These patterns can be defined using a declarative query paradigm based on well-defined streaming semantics with LINQ as query language.
- For the development of applications, adapters, and analytics, the user can rely on well-established and powerful development frameworks and tools such as .NET, LINQ, and Microsoft Visual Studio.
- The platform integrates with various data sources and sinks through input and output adapters. The framework to build domain-specific adapters utilizes a .NET API to make adoption of the platform easy. Independence between adapters and queries facilitates seamless integration of real-time and historical analysis.
- The platform architecture supports a variety of deployment options, from scenarios with a low-footprint embedded option to high-end server deployments.
- A rich set of manageability features such as a management interface, a diagnostic interface and a debugging tool are provided as part of the platform. “ (retirado do site da Microsoft)
Para saber mais relativamente aos termos de licenciamento deste novo produto, leia aqui.
Pelo que já verifiquei existem alguns comentários interessantes relativamente ao assunto como é o caso deste post pelo Richard Seroter na parte relativa ao tema “Low Latency Data and Event Processing with Microsoft SQL Server “ deste post.
Outro comentário também sobre este assunto foi colocado pelo Charles Young neste post.
Irei investigar mais sobre o assunto e depois darei mais informações.
(EN)
Recently in a GASP (Grupo de Arquitectura de Software Português) we had a presentation regarding the need and the usage of CEP in solutions and the implementation presented was NESPER – Esper Complex Event Processing for .NET that is an Open-Source software available under GNU General Public License (GPL) v2. From what I saw there it’s very interesting and also not that difficult to use, but I always thought that it was strange that Microsoft was doing nothing regarding this subject that is so important in Event-Driven Architectures (EDA) or even called Advanced SOA.
Our wait is reaching an end, because Microsoft is already working on this and even already has a CTP version that can be downloaded here and that is called Microsoft® SQL Server® StreamInsight CTP2.
But what is Microsoft® SQL Server® StreamInsight CTP2?
“Microsoft® SQL Server® StreamInsight is a platform for the continuous and incremental processing of unending sequences of events (event streams) from multiple sources with near-zero latency. These requirements, shared by vertical markets such as manufacturing, oil and gas, utilities, financial services, health care, web analytics, and IT and data center monitoring, make traditional store and query techniques impractical for timely and relevant processing of data.
StreamInsight allows software developers to create innovative solutions in the domain of Complex Event Processing that satisfy these needs. It allows to monitor, mine, and develop insights from continuous unbounded data streams and correlate constantly changing events with rich payloads in near real time. Industry specific solution developers (ISVs) and developers of custom applications have the opportunity to innovate on and utilize proven, flexible, and familiar Microsoft technology and rely on existing development skills when using the StreamInsight platform.
Some of the key feature areas are:
- Derive meaningful and relevant information from data/events streams through complex patterns. These patterns can be defined using a declarative query paradigm based on well-defined streaming semantics with LINQ as query language.
- For the development of applications, adapters, and analytics, the user can rely on well-established and powerful development frameworks and tools such as .NET, LINQ, and Microsoft Visual Studio.
- The platform integrates with various data sources and sinks through input and output adapters. The framework to build domain-specific adapters utilizes a .NET API to make adoption of the platform easy. Independence between adapters and queries facilitates seamless integration of real-time and historical analysis.
- The platform architecture supports a variety of deployment options, from scenarios with a low-footprint embedded option to high-end server deployments.
- A rich set of manageability features such as a management interface, a diagnostic interface and a debugging tool are provided as part of the platform. “ (from the Microsoft site)
To know more about the licensing terms of this new product, check here.
From what I’ve checked there are some interesting comments regarding this subject like this Richard Seroter’s post in the “Low Latency Data and Event Processing with Microsoft SQL Server “ part of that post.
Another comment about this is from Charles Young in this post.
I’ll investigate a little bit more and I’ll give more information’s afterwards.
Mais Entradas
Página seguinte »