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

Numa tentativa de melhorar o desempenho do Rederia, procedemos à mudança para um novo servidor na esperança de um serviço superior, pelo que o RedeRIA precisa da sua ajuda para avaliar o desempenho, para isso responda ao questionario na barra lateral…
Está o redeRIA mais rápido?

Set 9

Adobe anuncia Flash Media Server 4

Escrito por Leonardo França em 1, 4, 6, AR, Adobe, BI, Blogs, Curso, Cursos, FMS, Flash Media Server, Flash Platform, IE, Novidades, O, PHP, RTM, RTMP, Ria’s Geral, Software, Tech, UI, Ved, XP, api, blog, class, dados, development, dynamic, exemplo, flash, flash media, for, html, ide, if, image, int, mg, novidade, on, platform, pt, server, servidor, streaming, swf, uint @ 09 9th, 2010 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Flash Media Server 4O Adobe Flash Media Server é um software que tem como foco ser um servidor de stream e dados para a Flash Platform ajudando a forncer uma melhor e mais rica experiência para o usuário. A Adobe anunciou hoje a nova família Flash Media Server 4, com novidades como por exemplo IP multicast, HTTP Dynamic Streaming e claro, RTMFP(Real Time Media Flow Protocol) :D

Adobe Flash Media Server 4 Family

Adobe Flash Media Server 4 Family

A familia Flash Media Server 4 agora conta com os seguintes membros:

  • Adobe Flash Media Streaming Server 4 – Para streaming ao vivo ou sob demanda, com possibilidade de usar conteúdo criptografado com RTMP(RTMPE) e verificação de arquivos SWF.
  • Adobe Flash Media Interactive Server 4 – Mesmos recursos do FMSS com adição de novos recursos como IP multicast e HTTP Dynamic Streaming
  • Adobe Flash Media Enterprise Server 4 – para prover conteúdo em larga escala com pouco uso da rede e máxima performance.

A versão development contém os mesmos recursos da versão Enterprise, mas com limite de 10 conexões simultaneas para RTMP, 50 conexões simultaneas para RTMFP e limite de tempo para IP multicast e HTTP Dynamic Streaming.

http://www.adobe.com/products/flashmediaserver/
http://blogs.adobe.com/conversations/2010/09/adobe-debuts-new-technologies-and-improved-video-workflows-at-ibc-flash-media-server-4-announced.html

Set 8

Criando uma aplicação WPF – Parte Final

Escrito por Alexandre em 1, 4, 6, AR, BI, Blogs, Botões, DRE, Desenvolvimento, Google, IE, Introdução, Links, O, RIA, Ria’s Geral, TAT, Tutoriais, Tutorial, Twitter, UI, WPF, XAML, XP, aplicacao, arte, blog, botão, class, classe, classes, control, código, dados, for, git, html, if, image, int, lista, mg, on, padrão, processo, silverlight, update, validação @ 09 8th, 2010 | via http://www.silverlight.net.br/ | Sem comentários
Alexandre
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Nesta última parte da série “Criando uma aplicação WPF”, vamos inserir as funcionalidades de cada botão, ou seja, a execução dos processos de inclusão, alteração e exclusão de registros, no inicio da classe ContatoViewModel, adicione as variaveis do tipo RelayCommand , conforme abaixo:

        //Suporte ao ICommand        private RelayCommand _updateCommand;        private RelayCommand _deleteCommand;        private RelayCommand _insertCommand;        private RelayCommand _saveCommand;

A classe RelayCommand é uma das classes de apoio escritas por Josh Smith, em seguida vamos implementar o suporte a ICommand e criar os métodos que executarão as chamadas de cada processo.

        #region Comandos

        public ICommand UpdateCommand        {            get            {                if (_updateCommand == null)                {                    _updateCommand = new RelayCommand(param => Update());                }

                return _updateCommand;            }        }

        public ICommand DeleteCommand        {            get            {                if (_deleteCommand == null)                {                    _updateCommand = new RelayCommand(param => Delete());                }

                return _updateCommand;            }        }

        public ICommand InsertCommand        {            get            {                if (_insertCommand == null)                {                    _insertCommand = new RelayCommand(param => Insert());                }

                return _insertCommand;            }        }

        public ICommand SaveCommand        {            get            {                if (_saveCommand == null)                {                    _saveCommand = new RelayCommand(param => Save());                }

                return _saveCommand;            }        }        #endregion

        #region Métodos

        public void Update()        {

            _base.Update(contatoSelecionado);

            _base.Save(contatoSelecionado);

        }

        public void Delete()        {            _base.Delete(contatoSelecionado);

            _base.Save(contatoSelecionado);

            listaContatos.Remove(contatoSelecionado);

        }

        public void Insert()        {

            contatoSelecionado = new Contato();            contatoSelecionado.Id = 0;

            _base.Add(contatoSelecionado);

            OnPropertyChanged("ContatoSelecionado");

        }

        public void Save()        {

            listaContatos.Add(_base.Save(contatoSelecionado));

            OnPropertyChanged("ContatoSelecionado");

        }

        #endregion

E para finalizar vamos inserir o código XAML que liga os botões ao comando através de Binding:

O Botão insert cria uma nova instância da entidade Contato, limpando a tela, após digitar as informações na tela e clicar no botão Commit, as informações são registradas na base de dados, os botões Delete e Update apagam e atualizam o registro,com isso finalizamos esta pequena série, existe muita coisa ainda para aperfeiçoar no projeto, o controle de acesso aos botões, a validação dos dados, etc… mas o objetivo foi apresentar uma introdução ao desenvolvimento de aplicações com WPF + EF4 com o padrão MVVM, esse padrão pode parecer um pouco complexo e trabalhoso, cada projeto deve ser analisado quanto os beneficios que ele ganhará adotando o padrão, espero ter introduzido o leitor do blog no mundo do WPF.

As outras partes do tutorial podem ser acessadas nos links:
Criando uma aplicacao WPF >> Parte 1
Criando uma aplicacao WPF >> Parte 2
Criando uma aplicacao WPF >> Parte 3
Criando uma aplicacao WPF >> Parte 4
Criando uma aplicacao WPF >> Parte 5

O meu muito obrigado à todos que postaram cometários no blog ou enviaram mensagens por e-mail sobre este tutorial, são esses comentários que motivam um profissional a continuar a escrever.

Thanks

Twitter: @atsh2

Set 8

Criando uma aplicação WPF – Parte 5

Escrito por Alexandre em 1, 4, 6, AR, BI, Blogs, Botões, DRE, Design, Download, Frameworks, Google, IE, Introdução, O, Projetos, RIA, Ria’s Geral, TAT, Tema, Tutoriais, Tutorial, Twitter, UI, UX, WPF, Wordpress, XAML, XP, app, arte, blog, carregar, class, classe, classes, collection, control, código, dados, designer, for, framework, if, image, int, interface, layout, lista, mg, monitor, mudanças, on, padrão, silverlight, vs, window @ 09 8th, 2010 | via http://www.silverlight.net.br/ | Sem comentários
Alexandre
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

A camada View da aplicação é onde vamos aplicar o padrão MVVM (Model-View-ViewModel) , adicione um projeto do tipo WPF Application em sua Solution, coloque o nome de Contatos.View.

Crie duas pastas neste projeto, uma com o nome de Apoio, onde vamos inserir duas classes de apoio ao projeto, a outra pasta coloque o nome de ViewModel, onde vamos criar a classe que servirá de ponte entre a View e o Modelo.

Adicione uma classe ao projeto com o nome de ContatoViewModel:

No arquivo MainWindow.xaml vamos criar o layout da aplicação, não vou me preocupar com o designer pois não é o foco deste tutorial, adicione quatro objetos do tipo Button, três TextBlock, três TextBox e uma ListBox, deixe conforme a Figura abaixo:

Na pasta Apoio vamos adicionar duas classes escritas por Josh Smith, um dos gurus do WPF, seu blog é http://joshsmithonwpf.wordpress.com/ , como o foco do tutorial e apresentar uma introdução ao conceito, não vou utilizar de frameworks, o que pode ser interessante em um projeto real, mas para este tutorial, quanto mais simples, melhor para entender, essas duas classes são simples, a primeira servirá de base para a classe ContatoViewModel e a segunda de apoio ao suporte de ICommand.

Faça o download das classes aqui.

Na pasta ViewModel crie um arquivo do tipo Class com o nome de ContatoViewModel e adicione as duas referências aos dois projetos que criamos anterioramente:

Agora vamos herdar algumas funcionalidades da classe de apoio chamada BaseViewModel que implementa a interface INotifyPropertyChanged, que permite monitorar as mudanças que ocorrem em algumas propriedades na classe ContatoViewModel.

public class ContatoViewModel : BaseViewModel

Crie uma instância do acesso ao modelo a dados no inicio da classe ContatoViewModel, uma ObservableCollection chamada listaContatos, que auxiliará na ligação através de databinding com o ListBox e uma entidade Contato chamada contatoSelecionado, que também estará auxiliando na ligação através de databinding ao ListBox e ao DataContext de um Stackpanel, este Stackpanel é o layout control que contém os TextBox com o databinding das propriedades.

        ContatoDAO _base = new ContatoDAO();

        //Lista de Contatos        ObservableCollection listaContatos;

        //Contato Selecionado        public Contato contatoSelecionado = null;
No construtor da classe ContatoViewModel vamos carregar os dados do modelo para uma ObservableColletion alimentando a variável listaContatos.

            # region Dados

            //Carrega todos os contatos cadastrados            ObservableCollection lista =            new ObservableCollection();

            IQueryable rev = _base.GetAll();

            foreach (var item in rev.ToList())            {                lista.Add(item);            }

            listaContatos = lista;

            # endregion

Agora chegou o momento de criar os métodos que serão utilizados como databinding na View :

        # region Propriedades

        //Método que retorna uma lista de contatos        //que será utilizado        //na View via databinding                public ObservableCollection ListaContatos        {            get            {                return listaContatos;            }        }

        //Método que retorna um contato        //Selecionado que será utilizado        //na View via databinding        public Contato ContatoSelecionado        {            get { return contatoSelecionado; }            set            {                //seta o contato selecionado                contatoSelecionado = value;

                //Avisa a View que a                 //propriedade foi alterada                OnPropertyChanged("ContatoSelecionado");

            }

        }

        # endregion

No code-behind do arquivo MainPage.xaml, dentro do método MainWindow(), crie uma instância do ContatoViewModel e ligue ao DataContext do Layout Control Grid.

        public MainWindow()        {

            InitializeComponent();

            ContatoViewModel vm = new ContatoViewModel();

            LayoutRoot.DataContext = vm;

         }

No código XAML que cria a ListBox vamos ligar duas propriedades através de databinding , a primeira é a propriedade ItemsSource, criando um Binding com ListaContatos, a segunda propriedade é o SelectedItem, criando um Binding com ContatoSelecionado.

Os TextBox estão posicionados dentro de um Layout StackPanel, a proprieadade DataContext está ligada através de Binding com o ContatoSelecionado, cada TextBox tem sua propriedade Text ligado com as propriedades da entidade Contato.

Copie o App.config do projeto Contatos.Data para a projeto Contatos.View, marque a camada View como Set as StartUp Project, adicione algumas informações na base de dados e em seguida execute a aplicação, o ListBox será carregado e ao clicar em um item, os TextBox serão alimentados com as informações do item selecionado.

Na próxima parte do tutorial estaremos finalizando a série, inserindo as funcionalidades dos botões.

Twitter: @atsh2

Set 8

Material para estudo de ASP.NET

Escrito por Igor Musardo em .NET, 1, 2.0, 4, 6, AR, Ajax, Artigo, Artigos, Asp.Net, Blogs, Dica, Dicas, Entity Framework, IE, JQuery, MSDN, Mate, Microsoft, Novidades, O, RIA, Ria’s Geral, Tecnologia, UI, Visual Studio, Visual Studio 2010, Webcast, arte, auto, azure, blog, class, control, dados, dynamic, event, events, for, framework, ide, image, library, linq, mg, mvc, novidade, on, pt, tag, try, vs, web, window, windows @ 09 8th, 2010 | via http://www.igormusardo.com.br | Sem comentários
Igor Musardo
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Dando continuidade ao material do que o João Paulo Clementi compilou sobre Tecnologias Microsoft, agora é a vez do ASP.NET.

Webcasts

  • Novidades do ASP.NET 4.0 no Visual Studio 2010
  • Visual Studio 2010: Como ficou fácil fazer deployment Web 
  • O que já de novo no ASP.NET MVC 2.0 
  • Conectando uma aplicação ASP.NET com o Windows Identity Foundation
  • Construindo aplicações Web de última geração com Microsoft ASP.NET MVC 2 e jQuery
  • Visualizações mestras/detalhadas usando a ASP.NET Ajax Library
  • AJAX no ASP.NET com jQuery

Artigos

  • ASP.NET Dynamic Data
  • Dez Razões para Adotar o LINQ nas Aplicações .NET
  • Formatar dados com o ASP.NET Dynamic Data
  • Uso do LINQ com o controle GridView do ASP.NET – Parte 1
  • Uso do LINQ com o controle GridView do ASP.NET – Parte 2

Videocasts

  • Dicas do ListBox e DropDownList no ASP.NET – parte 1
  • Dicas do ListBox e DropDownList no ASP.NET – parte 2
  • GridView com LINQ
  • Uso do Linq com o controle GridView do ASP.NET – parte 1
  • O AutoComplete AJAX com Entity Framework
  • ASP.NET Dynamic Data Parte 1
  • ASP.NET Dynamic Data Parte 2

ASP.NET Dev Center: http://msdn.microsoft.com/pt-br/asp.net/

Set 8

Upgrade em seus conhecimentos

Escrito por Daniel Lopes em 1, 4, 6, AR, Air, BI, Curso, Cursos, Desenvolvedor, Desenvolvimento, Design, Diversos, Excel, O, RIA, Ria’s Geral, Ruby e Rails, Screencast, Tecnologia, Tema, Treinamento, UI, Ved, blog, class, e-genial, exemplo, framework, ide, kit, mg, on, rails, ruby, ruby on rails, screen, screencasts, variados, web @ 09 8th, 2010 | via http://blog.areacriacoes.com.br/ | Sem comentários
Daniel Lopes
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Como já comentei aqui em no post anterior, este sábado para começaremos mais uma turma do Imersão Ruby on Rails. Na verdade a última turma do ano.

E como quase sempre fazemos, a E-Genial está sorteando uma bolsa para esta turma e parceria com o Ruby Inside Brasil. Para saber como ganhar este prêmio leia este post.

Quem fizer este curso além de sair um melhor Rubista também sairá um melhor desenvolvedor.

AkitaCasts

Ambos os cursos que ministro na E-Genial são longos e possuem entre 16 e 22 horas de duração. Nestes cursos mais longos conseguimos passar os pontos mais importantes da linguagem Ruby e framework Rails. Mas existem várias outras tecnologias e boas práticas associadas a um bom desenvolvimento que não cabem, por exemplo, em um treinamento de 20 horas.

Para ajudar nestas tecnologias temos a excelente iniciativa do Fábio Akita na produção de screencasts que cobrem diversos temas variados e que com certeza vão complementar os seus estudos.

Eu sempre senti falta de uma versão brasileira de algo como Railscasts ou Peepcode, agora esta lacuna esta preenchida ;)

Set 8

Ordenação de lista com Collections.sort e Collections.reverse

Escrito por DClick Team em 1, 4, 6, AR, BI, Blogs, Java, O, Pessoal, RIA, Ria’s Geral, TAT, Tutorial, Twitter, UI, blog, catch, class, classe, collection, exemplo, for, if, image, int, interface, lista, mg, on, print, programação, try, zend @ 09 8th, 2010 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Twitter!

Olá pessoal, nesse post estarei mostrando como ordenar uma lista de objetos utilizando a classe Collections, esta classe possui dois métodos de ordenação chamados sort e reverse, o sort classifica uma lista especificada em ordem crescente, de acordo com a ordenação natural dos seus elementos. Todos os elementos da lista devem implementar a interface Comparable.
Segue um exemplo de utilização:
Tenho uma classe que chama MinhaClasse que contém um atributo nome e implements Comparable

Tenho uma outra classe que é a principal

No caso, é criada uma lista de objetos MinhaClasse(linha 10) e adicionado três objetos(linha12, 14 e 16), logo depois é chamado o método sort da classe Collections (linha 18) , concluido mando printar no console os nomes ordenados.

Com reverse é possível inverte a ordem dos elementos em uma lista especificada.
Seguindo mesmo exemplo só alterei a classe Principal.

Neste caso, a ordem dos elementos na lista foram invertidas por causa do método reserve(linha 18), agora, se quiser deixar a lista com seus elementos em ordem decrescente:

Observe que foi chamado primeiramente o método sort para ordernar a lista(linha 18), logo depois o reverse para inverter a lista (linha 19) , fazendo com que a lista fica-se com seus elementos em ordem decrescente.

Espero ter contribuído com o conhecimento,

abraço a todos.

Set 8

Teste se seu site é compativel com dispositivos movéis no Adobe Device Central CS5

Escrito por Leonardo França em 1, 3d, 3g, 4, 6, AR, Adobe, Android, BI, Blogs, DRE, Design, Desktop, Dreamweaver, IE, Livro, Livros, O, PHP, Plugin, RIA, Review, Ria’s Geral, Scroll, SmartPhone, Software, Teste, UI, Wordpress, after effects, api, arte, blog, botão, browser, class, collection, dados, flash, flash lite, for, html, if, image, int, internet, iphone, lista, lite, mg, mobile, novidade, on, photoshop, produto, pt, serviço, site, uint, web @ 09 8th, 2010 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Site visto no Adobe Device Central CS5Não é novidade o crescimento do uso de dispositivos movéis como smartphones, tablets etc. Contando com o aumento do acesso a rede dados 3G, temos um novo ramo de usuários que necessitam de atenção especial. Por acaso seu site é compativél com dispositivos movéis? se não é, deveria ser pois o usuário movél pode ser justamente aquele que irá adquirir seu produto ou serviço.

Por acaso seu site é compativél com dispositivos movéis? se não é, deveria ser pois o usuário movél pode ser justamente aquele que irá adquirir seu produto ou serviço.

Os principais bancos já perceberam isso e a maioria já tem uma versão de seu internet banking para dispositivos movéis, inclusive para executar operações que você faz normalmente pelo site como pagar boletos, ver saldo, recarga do celular etc.
O Adobe Device Central é um software parte da familia Creative Suite da Adobe que tem como objetivo emular o funcionamento de dispositivos movéis em seu desktop. É usado principalmente para testar o funcionamento do Flash Lite nos smartphones. Mas pode ser usado também para testar suas páginas html e simular o funcionamento em algum dispositivo movél.

Para abrir uma página ou site no Adobe Device Central CS5, basta seguir os seguintes passos:

  • Após abrir o programa, vá em “Device Profiles” e clique em “Browse Devices”. Aparecerá uma lista de profiles de modelos de smartphones, selecione alguns para seus testes,(clique com o botão direito e peça “Add to Test Devices”)
  • Deve aparecer o dispositivo selecionado e sua especificação tecnica. Agora basta ir em “File->Open File…” para abrir um arquivo ou “File->Open URL…” para abrir um site diretamente. No meu caso, pedir para abrir a url do meu blog no Nokia 5230:
    Adobe Device Central CS5

    Adobe Device Central CS5

Você também tem a opção de chamar o Adobe Device Central CS5 diretamente pelo Adobe Dreamweaver, bastar pedir “File->Preview in Browser->Device Central”.
Em meu blog, uso o plugin WordPress Mobile Edition que formata o blog para ser acessado em dispositivos movéis.

O Adobe Device Central vem incluído nos seguintes produtos do Creative Suite 5:

  • Adobe Creative Suite® 5 Design Premium
  • Adobe Creative Suite 5 Design Standard
  • Adobe Creative Suite 5 Web Premium
  • Adobe Creative Suite 5 Production Premium
  • Adobe Creative Suite 5 Master Collection
  • Adobe Photoshop® CS5 Extended
  • Adobe Photoshop CS5
  • Adobe Illustrator® CS5
  • Adobe Flash® Professional CS5
  • Adobe Dreamweaver® CS5
  • Adobe Premiere® Pro CS5
  • Adobe After Effects® CS5

Mais:
http://www.adobe.com/br/products/creativesuite/devicecentral/

Livros recomendados:

Set 8

EXtreme Programming em Cinco Minutos

Escrito por Edgard Davidson em 1, 4, 6, AR, Agile, BI, Desenvolvedor, Desenvolvimento, Dica, Flex, Frameworks, Geral, IE, Mestrado, Motivação, O, Partilha, Projetos, RIA, Ria’s Geral, Software, Tema, Teste, Testes Automatizados, UI, Ved, Vários, XP, api, arte, auto, back, busca, class, cliente, comunicação, control, código, dados, desenvolvedores, err, erro, event, falha, for, framework, ide, if, image, int, jogo, lista, lógica, mg, mudanças, on, problema, problemas, processo, produto, programação, protótipo, rest, site, tag @ 09 8th, 2010 | via http://edgarddavidson.com | Sem comentários
Edgard Davidson
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

A eXtreme Programmig (XP) proposta por Kent Beck [BECK, 2004] tem o objetivo de propor uma metodologia ágil para equipes de tamanho pequeno a médio, onde o desenvolvendo de software está inserido em um contexto de requerimentos vagos ou que mudam rapidamente.  O próprio autor descreve a Programação eXtrema como: “A XP é uma maneira leve, eficiente, de baixo risco, flexível, previsível, científica e divertida de desenvolver software”. [BECK, 2004].  Ainda segundo [BECK, 2004], a XP reconhece que os projetos precisam dedicar-se à obtenção da redução dos custos e tirar vantagem daquilo que foi economizado. Além disso, defende a não especialização dos membros do time, ou seja, todos participam de todas as atividades, em pares e com sistema de rodízio dos pares o desenvolvimento de infra-estrutura e frameworks durante o desenvolvimento da aplicação, e a comunicação face a face ou por meio de testes eficientes e código cuidadosamente escrito.

Segundo [BECK, 2004], a XP se distingue das outras metodologias por:

  • Seu feedback antecipado;
  • O planejamento incremental, que gera rapidamente um plano geral que evolui com o decorrer do projeto;
  • Sua habilidade de implementar as funcionalidades de forma flexível considerando as necessidades mutáveis do negócio;
  • Sua confiança nos testes automatizados;
  • Sua confiança em comunicação oral;
  • Sua confiança em um processo de projeto evolutivo que dura tanto quanto o sistema;

Risco: O Problema Básico

A principal motivação da Programação eXtrema parte do princípio que o desenvolvimento de software tem falhas na entrega e falhas nos produtos entregues caracterizando o problema básico – o risco, portanto, produz-se software de baixa qualidade. Segundo [BECK, 2004], existem vários riscos associados ao desenvolvimento do software, como: (i) cronograma irreal; (ii) cancelamento do projeto por vários atrasos no cronograma; (iii) o sistema é descontinuado pelo alto custo de se fazer modificações ou a taxa de erros cresce tanto que o sistema deve ser substituído; (iv) o negócio é mal compreendido e o software desenvolvido não resolve o problema original; (v) as regras de negócio mudam antes que o software seja finalizado; (vi) funcionalidades inúteis. A missão da XP é aceitar o risco como problema a ser resolvido, onde o objetivo é encontrar a solução. Nesse sentido, a necessidade é criar um modelo de desenvolvimento de software que trate desses riscos.

Além de mitigar ao máximo os riscos, a metodologia XP advoga que quatro variáveis têm de ser controladas no projeto – custo, tempo, qualidade e escopo. Dessa forma, o modelo desenvolvimento de software é dirigido sob a perspectiva de controlar as referidas variáveis. Em um projeto, as referidas variáveis são restrições inerentes ao produto final. Eventualmente se o custo e/ou o tempo forem escassos, é muito provável que a qualidade do produto entregue possa estar muito inferior àquela esperada no escopo do projeto.  A XP cria valores, princípios de atividades básicas e práticas para tentar conduzir bem os problemas correlacionados à efetivação dos riscos do projeto. Esses valores podem ser caracterizados em:

  1. Comunicação: deve ser extremamente aberta e franca. A XP dá uma ênfase especial à comunicação e é essencial para tudo o que acontece no contexto de um projeto. Segundo [BECK, 2004], “Os problemas nos projetos podem ser invariavelmente rastreados a alguém não ter conversado com alguém mais sobre alguma coisa importante”.
  2. Simplicidade: é representada na XP pela busca pela “coisa mais simples que possa funcionar” [BECK, 2004]. O propósito é construir algo simples e direto que solucione problemas de hoje e ter certeza de que isso seja suficientemente flexível para ser refinado e expandido de modo a solucionar os problemas de amanhã, mas fundamentalmente não se preocupa hoje com os problemas de amanhã.
  3. Feedback: seu objetivo é criar ciclos de realimentação que atuam em intervalos de tempos pequenos como dias e minutos, em relação aos testes de unidade, e, grandes semanas (dias, semanas) em associação a teste de aceitação de usuário, e,  planejamento e cronograma de projeto.
  4. Coragem: é o valor que permite aos participantes da XP se aventurarem em projetos de alto risco e alta recompensa nas tarefas de desenvolvimento. Isso muitas vezes se manifesta na forma de desenvolvedores que constroem protótipos descartáveis durante a codificação.

Princípios Fundamentais da XP

De acordo com [BECK, 2004] os princípios fundamentais da XP são:

  1. Feedback rápido: o princípio é obter o feedback, interpretá-lo e aplicar o que é aprendido no sistema o mais rápido possível, realimentando o que foi aprendido em dias ou semanas, em vez de meses ou de anos.
  2. Simplicidade presumida: este princípio dita que a equipe deve pressupor que todo problema tem uma solução razoavelmente simples. Como conseqüência, o tempo poupado na maioria dos problemas para os quais isso é válido pode ser usado para abordar problemas que realmente necessitem de soluções complexas.
  3. Mudanças incrementais: parte do princípio que grandes modificações feitas de uma só vez têm grandes chances de não dar certo. Assim, qualquer problema é resolvido por meio de uma série de mudanças menores.
  4. Aceitação das mudanças: este princípio se apóia na premissa da XP que de desenvolver software no contexto de requerimentos vagos ou que mudam rapidamente. As idéias é que os membros da equipe devem simplesmente aceitar as mudanças como algo natural, diário, em vez de algo que ocorre eventualmente.
  5. Alta qualidade: ninguém gosta de fazer um trabalho de baixa qualidade. Todos gostam de fazer um bom trabalho. A XP defende que se você não vai fazer algo bem, então não faça independentemente das restrições de cronograma e orçamento.

Atividades Básicas do Desenvolvimento

[BECK, 2004] define quatro atividades básicas associadas ao desenvolvimento de software utilizando XP, sendo elas:

  1. Codificar: as práticas da XP utilizam o código como um mecanismo para atingir objetivos secundários incluindo o aprendizado rápido e uma melhor comunicação. Algumas das práticas citadas no tópico a seguir estão ligadas à codificação: refatoração, programação em pares e integração continua.
  2. Testar: está fortemente relacionada à codificação. Os desenvolvedores devem escrever códigos de teste de unidade antes escrever o código e verificar se o código passa por todos esses testes antes de se tornar um sistema. O cliente também é envolvido nos testes funcionais, onde os mesmos devem confirmar se o sistema satisfaz as regras de negócio.
  3. Escutar: refere-se à necessidade de estruturar a comunicação de modo que as conversas, sempre que possível, envolvam os problemas de hoje, não os de amanha, em um nível de detalhe apropriado.
  4. Projetar: está associado a necessidade de criar uma estrutura que organiza a lógica dentro do sistema de modo a torná-lo robusto e possível de manter. Nesse contexto, a prática utilizada é projetar simples.

Práticas do XP

[BECK, 2004] lista algumas práticas que devem ser seguidas pela equipe de desenvolvimento para que os valores, princípios e atividades básicas da metodologia sejam alcançados, são elas:

  1. O jogo do planejamento: determinar o escopo da próxima versão de forma que os requisitos mais importantes sejam contemplados e a entrega possa ser um praza não muito longo. Quando o planejado fugir do realizado, então o plano deve ser reajustado.
  2. Entregas freqüentes: dividir o desenvolvimento em pequenos módulos de acordo com as funcionalidades de forma que possa ser rapidamente colocado em produção.
  3. Metáfora: conduzir o desenvolvimento por meio de histórias simples, compartilhada por todos os envolvidos, sobre como o sistema deverá funcionar.
  4. Projeto Simples: o sistema deve ser pensado e projetado de maneira simplista. Complexidades desnecessárias são removidas assim que descobertas.
  5. Testes: os programadores escrevem os testes de unidade durante todo o desenvolvimento, o qual deve ser executado sem falha para o desenvolvimento continue.
  6. Refatoração: os programadores se preocupam sempre em deixar o código estruturado removendo códigos redundantes, simplificando e aumentando a flexibilidade.
  7. Programação em pares: todo o desenvolvimento é realizado por programadores trabalhando em pares.
  8. Propriedade coletiva: todos podem alterar o código em qualquer trecho e em qualquer momento.
  9. Integração contínua: integre e atualize as versões do sistema várias vezes por dia, cada vez que uma tarefa fora terminada.
  10. Semana de 40 horas: como regra, trabalhe no máximo quarenta horas por semana, evitando fazer hora extra por duas semanas consecutivas.
  11. Cliente presente: mantenha o cliente o mais próximo possível para responder a questões.
  12. Padrões de codificação: os programadores escrevem código respeitando as regras que enfatizam comunicação através do código.

Referência:  BECK, Kent (2004). Programação eXtrema explicada: escolha as mudanças, Bookman, 2004.

Set 7

Princípios do Pensamento Lean

Escrito por Edgard Davidson em 1, 4, 6, AR, Access, Agile, Arquitetura, BI, Banco de Dados, Curso, Desenvolvimento, Desenvolvimento de Software, Design, Dica, Documentação, Download, Excel, Flex, Google, IE, Java, Javascript, Livro, Mac, Mestrado, NaN, O, Projetos, RIA, Ria’s Geral, Software, TAT, Tecnologia, Tema, UI, UX, XP, análise, api, app, arte, auto, back, bar, business, checkBox, class, cliente, control, dados, desempenho, development, economia, exemplo, flash, for, function, fundo, git, gmail, html, ide, if, image, int, kit, lista, live, mg, mudanças, on, oop, player, problema, problemas, processo, produto, pt, site, swf, tool, toolkit, usabilidade, wave, web, zend @ 09 7th, 2010 | via http://edgarddavidson.com | Sem comentários
Edgard Davidson
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

O nome “Pensamento Lean” nasceu nos anos 90 com o lançamento do best seller The Machine That Changed the World : The Story of Lean Production.  Os princípios de demanda puxada, just-in-time, qualidade total, melhoria contínua e flexibilidade aplicados na indústria japonesa, mais precisamente na Toyota e conhecidos como Toyota Way inspiraram também a indústria de software e fez surgir a abordagem do Lean Software Development

O Lean Software Development provê uma série de princípios sobre a aplicação de um conjunto de técnicas oriundas da indústria e aplicadas em desenvolvimento de software. Esses princípios foram amplamente adotados na manufatura japonesa onde vieram a ser conhecidos como “Lean Production“.

Nesse contexto, Mary e Tom Poppendieck identificaram sete princípios fundamentais denominados “Lean Principles” e mostraram como eles podem ser aplicados em abordagens de desenvolvimento de software ágil.  Ao longo dos princípios, eles introduziram também e vinte e dois “thinking tools” para traduzir cada princípio em práticas ágeis, em particular eles apresentaram um toolkit para gerentes, lideres técnicos e gerentes de tecnologia que esperam adicionar valor ao invés de criarem barreiras para suas equipes de projetos, como os a seguir:

  • Melhoria contínua em direção à excelência: desenvolvimento de software é como um exercício de descoberta.
  • Gerenciando incertezas: “decidir o mais tardio possível” para adicionar mudanças dentro do sistema.
  • Reduzindo o fluxo de valor: desenvolvimento rápido, feedback, e melhorias contínua.
  • Dê autonomia ao time e ao indivíduo sem coordenação e comando-controle.
  • Software com qualidade: promovendo coerência, usabilidade, alta coesão, manutenabilidade e adaptabilidade.

Princípio 1: Elimine o Desperdício

Elimine qualquer coisa que não agrega valor ao produto e que não são percebidos pelo cliente. No pensamento Lean, o conceito de desperdício é um grande obstáculo. Se um programador implementa mais funcionalidades do que o necessário de imediato, isso é um desperdício.  Se a equipe produz documentação de análise apenas para estar em concordância com o processo, isso é um desperdício. Se o time entrega funcionalidades incompletas, isso é um desperdício. O ideal é perceber o que os clientes precisam para então fazer ou desenvolver e entregar exatamente o que eles querem, o mais rápido possível. Qualquer outra coisa que fica que não satisfaça as necessidades do cliente é um desperdício.

Princípio 2: Amplifique o Aprendizado

Desenvolvimento é um exercício de descoberta, enquanto produção é um exercício de redução de variações, e por essa razão, aprender a abordagem de desenvolvimento resultam em práticas que são bastante diferentes do que aprender abordagens de práticas de produção.

Desenvolvimento é como fazer uma nova receita, enquanto produção é como fazer um prato. Receitas são formuladas a partir da experiência de chefes de cozinha. Desenvolver uma receita é um processo de descoberta, onde o chefe utilizando de toda sua experiência e dos ingredientes a sua disposição faz iterações, experimentações, até encontrar a melhor combinação de ingrediente para o melhor sabor. Não se espera que os chefes obtenham uma receita perfeita na primeira tentativa; espera-se produzir diversas variações como parte do processo de aprendizagem. Desenvolvimento de software é concebido de forma melhor com um processo de aprendizado similar ao de criar uma nova receita. A melhor abordagem para melhorar o ambiente de desenvolvimento de software é pelo conhecimento amplificado, em um espiral de criação do conhecimento.

Princípio 3: Decida o Mais Tarde Possível

Práticas de desenvolvimento que assegurem a tomada de decisão tardia são mais eficazes em domínios que envolvem incertezas. Decidir o mais tarde possível significa manter suas opções aberta o maior tempo possível. O principal conceito deste princípio é diminuir as incertezas retardando as decisões até que possam serem feitas com base em acontecimentos mais firmes, previsíveis e conhecidos. Decisões tardias tendem a ser mais acertadas porque as melhores decisões são feitas baseadas em fatos, e não em suposições ou especulações. A principal estratégia de atrasar as decisões em um desenvolvimento de um sistema complexo é construí-lo com a capacidade de suportar mudanças.

Princípio 4: Entregue o Mais Rápido Possível

Sem entregas rápidas é impossível haver decisões tardias durante o desenvolvimento. Sem entregas rápidas não haverá feedbacks confiáveis no curto prazo.  No desenvolvimento o ciclo de descoberta é fundamental para a aprendizagem: estórias, implementação, feedback e melhorias. Quanto menor esse ciclo, mais pode ser aprendido.

Uma vez que os clientes decidam o que querem, seu objetivo deve ser para criar esse valor tão rapidamente quanto possível. Entregas rápidas garante que o cliente vai ter o que ele precisa hoje, e não o que ele precisa amanhã.

Em uma organização madura em desenvolvimento de software, tudo isso acontece em um fluxo rápido em resposta a uma necessidade dos clientes.

Princípio 5: Dê autonomia à Equipe

“Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.” Esse já é um dos doze princípios por atrás do manifesto ágil. A equipe de trabalho deve ter autonomia para adequar seus próprios processos de engenharia, fazer os seus próprios compromissos e reunir as informações necessárias para alcançar seus objetivos e cumprir as suas metas. Equipes autônomas são multidisciplinares, possuem indivíduos multidisciplinares, trabalham bem com a interdisciplinaridade  e promovem a autor organização. Nesse tipo de equipe mais um princípio ágil é adicionado: “em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.”

Nesse ambiente, a equipe de desenvolvimento está em melhor posição para saber responder a problemas difíceis e a pedidos urgentes. A melhor maneira de ter certeza de estar fazendo as coisas corretas é trabalhar diretamente com o cliente para entender suas necessidades, colaborar com os colegas para descobrir como satisfazer essas necessidades, e, frequentemente apresentar os resultados aos interessados para ter certeza de que estamos no caminho certo.

Princípio 6: Construa com Integridade

Qualidade é inegociável. Entregue qualidade intrínseca e explícita aos seus cliente, se eles perceberem isso, significa que foi uma entrega de qualidade. Mary e tom Poppendieck em seu livro identificaram duas dimensões de integridade: integridade percebida e integridade conceitual. A integridade percebida significa que a totalidade do produto alcança um equilíbrio entre as funções, usabilidade, confiabilidade, economia e isso encanta o cliente. A integridade conceitual significa que os conceitos centrais do sistema de trabalho em conjunto são facilitados e coeso. Ela é fator crítico de sucesso para a integridade percebida.

Um produto é considerado ter integridade percebida quando o cliente experimenta o produto e diz: Isso! Era exatamente isso que eu queria! Esse exemplo acontece com frequencia em aplicações do google. Eu particularmente senti isso quando experimentei o novo recurso de caixa prioritária do gmail.

Um produto de software deve estar sempre adicionando integridade. Isso prolonga o seu ciclo de vida operacional. Software com integridade possuem boas arquiteturas, possuem um alto nível de usabilidade e facilidade de uso, são fáceis de dar manutenção, de adaptar e de estender.

Princípio 7: Visualize o Todo

Integridade em sistemas complexo exigem um conhecimento holístico e profundo em diversas áreas. Um dos problemas mais intratáveis com o desenvolvimento do produto é que especialistas em qualquer área (por exemplo, banco de dados ou design) têm uma tendência natural em maximizar o desempenho da parte do produto que representa a sua própria especialidade, ao invés de focar no desempenho do sistema como um todo. Muitas vezes, a integridade do produto como um todo pode ser prejudicado se as pessoas atenderem aos seus próprios interesses especializados em primeiro lugar.

Digite um texto ou endereço de um site ou traduza um documento.
Cancelar
Ouvir

Tradução do inglês para português

práticas de desenvolvimento que assegurem a tomada de decisão tardia são eficazes em domínios que envolvem incerteza

Set 7

O mundo em 2014?

Escrito por Mauro Martins em .NET, 1, 4, 6, AR, Access, BI, Download, FullScreen, Google, IE, Inspiração, Links e sugestões, Mac, O, PHP, Random, Ria’s Geral, TAT, Tech, Tecnologia, Twitter, UI, XP, app, blog, class, demo, email, facebook, flash, for, gmail, image, int, linkedin, map, mg, on, pt, screen, social, swf, wave, yahoo @ 09 7th, 2010 | via http://imauro.com/blog/ | 1 comentário
Mauro Martins
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Se é em 2014 não sei, mas lá que é interessante é!

Se calhar ainda vai demorar algum tempo para este tipo de tecnologia estar disponível para todos, mas entretanto sonhemos um pouco com estas possibilidades:

  • Blog this on Blogger
  • Subscribe to the comments for this post?
  • Share this on del.icio.us
  • Digg this!
  • Share this on Facebook
  • Email this via Gmail
  • Post on Google Buzz
  • Share this on LinkedIn
  • Email this to a friend?
  • Post this to MySpace
  • Share this on Reddit
  • Stumble upon something good? Share it on StumbleUpon
  • Share this on Technorati
  • Tweet This!
  • Buzz up!
  • Email this via Yahoo! Mail



« Entradas anteriores |

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 1878 entradas vindas de 47 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


Está o rederia mias rápido??
Ver Resultados

AUTORES


Eduardo KrausAlexandreBindableDaniel LopesDaniel SchmitzDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com