Flickr Images

Pages

Banner 468

domingo, 21 de agosto de 2011

70-573: Microsoft SharePoint 2010, Application Development

0 comentários
 
A todos boa noite!!!!
Após muito estudo passei na prova 70-573 Sharepoint Application Development.
Já li em alguns outros blogs algumas informações sobre a prova. Como existem várias e várias questões vou falar um pouco só sobre a minha:
Caiu o que é novo no Sharepoint 2010 e como utilizar bem o Visual Studio. Nesse último item a ajuda do @rojao333 foi muito útil pois ele adora ver o que tem de novo em cada versão do VS.
Outra coisa que me chamou a atenção foi a parte de Client Object Model e interfaces. WCF para quem ainda não começou a estudar é melhor correr atrás do prejuízo...
Caíram umas 2 questões mais "bobinhas" estilo a prova 70-571, creio que somente para ninguém zerar a prova.
Outra coisa que gostei muito foi que, apesar de ser uma prova para desenvolvedores, agora são expostos alguns cenários que são resolvidos apenas usando conceitos e boas práticas. Dessa forma acho que a prova fica uma coisa mais real.
Agora um lado bem chato: O curso 10175 que deveria ser o preparatório não achei que prepara muito bem não... tem que buscar fontes em muitos outros locais.
Bom agora alguns sites que usei de referência:

http://msdn.microsoft.com/en-us/library/ee557253.aspx
http://msdn.microsoft.com/en-us/library/ee556427.aspx
http://fabiangehrke.com.br/
http://larahvidotti.wordpress.com/
http://blogs.msdn.com/b/alexschulz/
http://rodrigoromano.net

Abraços a todos!!!


Readmore...
terça-feira, 2 de agosto de 2011

Monitorar Mudanças de Propriedades

0 comentários
 
Olá para todos!!!!!
Essa semana, que começou ontem, tive a necessidade de monitorar quando uma determinada propriedade de minha classe teve seu valor alterado. Dei uma pesquisada por ai até que cheguei na interface INotifyPropertyChagend. Ela basicamente cria um evento que será disparado quando a propriedade for alterada.
Para demonstrar o uso dessa interface criei um exemplo bem bobo. Nesse caso tenho uma classe com o nome de Aluno com as propriedades: Nome, AnoNascimento, Horario que é um enum do tipo Turno. Vamos ao código?

Primeiro vou criar um projeto do tipo console application. Em seguida adicionar uma classe com o nome de Aluno.

Não esqueça de adicionar using System.ComponentModel.

Agora informamos que a classe Aluno implementa a interface INotifyPropertyChaged. Observe que a interface gerou o seguinte evento:




Agora criamos o metodo Notify, que será responsável por invocar o evento criado.


Vamos agora na propriedade que queremos monitorar, no caso a propriedade turno. Nela chamamos o método Notify quando a propriedade receber um novo valor. Observe:


Apenas para o exemplo falei que o set é um tipo privado, logo poderemos alterar o valor da propriedade Horario somente pela própria classe aluno.

Por fim criamos um método que apenas irá alterar o valor da propriedade Horario.


Feito isso vamos a classe Program do nosso projeto. Dentro do método main vou criar um objeto da classe Aluno e preencher algumas propriedades. Em seguida adicionar o evento ProperyChanged.


No método gerado vamos exibir os novos valores da propriedade Horario da variável aluno:

Agora todas as classes:



   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Linq;
   4:  using System.Text;
   5:  using System.ComponentModel;
   6:   
   7:  namespace TrabalhandoComPropriedades
   8:  {
   9:      public class Aluno : INotifyPropertyChanged
  10:      {
  11:          public enum Turno
  12:          {
  13:              Manha,
  14:              Tarde,
  15:              Noite
  16:          }
  17:   
  18:          #region INotifyPropertyChanged Members
  19:   
  20:          public event PropertyChangedEventHandler PropertyChanged;
  21:   
  22:          #endregion
  23:   
  24:          public string Nome
  25:          {
  26:              get;
  27:              set;
  28:          }
  29:   
  30:          public int AnoNascimento
  31:          {
  32:              get;
  33:              set;
  34:          }
  35:   
  36:          private Turno _horario = Turno.Manha;
  37:          public Turno Horario
  38:          {
  39:              get
  40:              {
  41:                  return _horario;
  42:              }
  43:              private set
  44:              {
  45:                  _horario = value;
  46:                  Notify("Horario");
  47:              }
  48:          }
  49:   
  50:          private void Notify(string property)
  51:          {
  52:              if (PropertyChanged != null)
  53:              {
  54:                  PropertyChanged.Invoke(this, new PropertyChangedEventArgs(property));
  55:              }
  56:          }
  57:   
  58:          internal void ProcessarTurnos()
  59:          {
  60:              this.Horario = Turno.Tarde;
  61:              System.Threading.Thread.Sleep(1000);
  62:              this.Horario = Turno.Noite;
  63:          }
  64:      }
  65:  }





   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Linq;
   4:  using System.Text;
   5:  using System.ComponentModel;
   6:   
   7:  namespace TrabalhandoComPropriedades
   8:  {
   9:      class Program
  10:      {
  11:          static void Main(string[] args)
  12:          {
  13:              Aluno aluno = new Aluno();
  14:              aluno.Nome = "Pedro Marques";
  15:              aluno.AnoNascimento = 1984;
  16:              aluno.PropertyChanged += new PropertyChangedEventHandler(aluno_PropertyChanged);
  17:              aluno.ProcessarTurnos();
  18:              Console.ReadKey();
  19:          }
  20:   
  21:          static void aluno_PropertyChanged(object sender, PropertyChangedEventArgs e)
  22:          {
  23:              Console.WriteLine("Propriedade {0} alterada para {1}", e.PropertyName, ((Aluno)sender).Horario.ToString());
  24:          }
  25:      }
  26:  }

E o resultado:

Readmore...