Quais são as Palestras de SharePoint no TechEd 2011?

A Microsoft já informou no site do TechEd as palestras e todas as trilhas técnicas das palestras de 2011. Embora não seja ano de mudança de ciclo de produtos, existem várias palestras bacanas. Veja só:

OSP - Plataforma Office e SharePoint
OSP201 - Visão Geral do Microsoft SharePoint Online (Office 365)
Esta sessão informativa e cheio de demonstração fornece uma visão geral do SharePoint Online e o máximo de detalhes como nós podem caber em uma hora.
Palestrante(s): Thiago Soares


OSP202 - Governança e Gestão de ciclo de vida do SharePoint utilizando Microsoft Project Server 2010
O SharePoint está tornando-se parte importante de sua TI? Se sim, é provável que você tem uma necessidade de gerenciar melhor as solicitações de negócios que envolvem o SharePoint – coisas como novos sites, workflows, aplicativos personalizados, web parts e dashboards de Business Intelligence. Junte-sediscussão sobre a importância do gerenciamento de ciclo de vida do SharePoint de uma perspectiva de governança de TI.
Palestrante(s): Fernanda Saraiva e Thiago Soares


OSP301 - Office 2010: tudo o que você precisa saber sobre deployment do Microsoft Office 2010
Conheca as ferramentas, dicas e truques para uma implantacao de sucesso do Microsoft Office 2010 em um ambiente corporativo
Palestrante(s): Herleson Pontes


OSP302 - Integrando Microsoft SharePoint 2010 com Windows Azure
Muitas empresas estão começando a usar o Windows Azure e olhando para integrar o SharePoint com Windows Azure. Nesta sessão, vamos explorar três principais maneiras que estas tecnologias se unem: integração de serviços baseados em nuvem, dados e armazenamento de informações, e barramento de serviços para integração com dispositivos remotos. Para ajudar a ilustrar esses padrões, esta sessão, com muitas demonstrações, vai mostrar como você pode construir, implantar e proteger soluções integradas. Tópicos específicos que serão abordados incluem integração com o serviço WCF, BI com SQL Azure, utilizando o Windows Azure BLOB storage, etc.
Palestrante(s): Hélio Sá Moreira


OSP303 - Levando o Office para a nuvem: Integrando Microsoft Office 2010 e Windows Azure
Nesta sessão, venha aprender como você pode projetar e desenvolver soluções que se conectam a plataforma de produtividade mais difundida com Windows Azure. Áreas específicas de cobertura incluem, mas não estão limitadas a, aproveitar serviços Windows Communication Foundation (WCF) em nuvem, usar Microsoft Business Connectivity Services para se conectar ao Microsoft SQL Azure, integrar o Windows Azure com Microsoft Office 365. Se você estiver querendo entender como você pode tirar proveito do Office (tanto em versões rich-client e nuvem), integrando com Windows Azure, você não pode perder esta sessão.
Palestrante(s): Alex Schulz


OSP304 - Automatizando processos de negócios com Microsoft InfoPath, Business Conectivity Services, Workflows no SharePoint e Microsoft Word Services
Aprenda como usar o Microsoft InfoPath 2010 e o Microsoft SharePoint Designer 2010 para construir aplicações. Nós mostraremos um aplicativo de gerenciamento de candidatos de trabalho e, em seguida, mostraremos como construí-lo passo a passo. Podemos projetar formulários do InfoPath, trazer dados de aplicações de negócio, criar fluxos de trabalho e gerar documentos Word e PDF usando o Word Services. Ao longo do caminho, podemos destacar novos recursos e cobrir as práticas recomendadas para a criação de aplicativos compostos no SharePoint.
Palestrante(s): Marcio Ribas, Jorge Tressino Rua e Vinícius Fortes


OSP305 - Interoperabilidade com SAP utilizando Duet Enterprise para Microsoft SharePoint e SAP, BCS, e Microsoft Office 2010
Com o Microsoft SharePoint 2010 e Office 2010, há inumeras maneiras de integrar com SAP para fornecer soluções de negócios. Algumas destas formas de integrar são out-of-box e outras são através de programação. Nesta sessão caminhamos através de algumas das diferentes opções de integração, dando especial atenção aoMicrosoft Business Connectivity Services (BCS), SharePoint services e Client Object Model e uma nova opção, Duet Enterprise. Se você estiver olhando para aproveitar a integração entre SharePoint, Office e SAP, você não vai querer perder esta sessão!
Palestrante(s): Marcelo Stamm


OSP401 - Criando SharePoint Service Applications customizadas
Microsoft SharePoint 2010 inclui um novo recurso para mover processamento intensivo dos servidores Web Front-End para servidores de aplicativos com balanceamento de carga. Uma Service Application Farm pode ser configurada para permitir que outras Farms delegem os processamentos intensivos para um conjunto centralizado e/ou dedicado de servidores de aplicativos. No entanto pode ser bastante complicado criar Services Applications. Nesta sessão, simplificaremos o processo para que todos possam ser bem sucedido na implementação de um Service Application.
Palestrante(s): Hélio Sá Moreira

Como criar um Evento, em .NET ?


Criação de Eventos

Evento é um ação bem definida no espaço e no tempo. Na programação é possível definir eventos como quando um botão receber um clique, ou quando um formulário for aberto. Em .NET é possível criar eventos de acordo com um delegate específico. Isto é bastante interessante por não amarrar a ação de algum determinado acontecimento na aplicação.

Passos para criar um evento numa classe

Para criar um evento é importante ficar atento a uma pequena receita de bolo, que segue:

  1. Criar um delegate que defina a assinatura do evento
  2. Criar um event que utilize uma implementa;ao do delegate criado
  3. Criar um método para acionar o evento
Para utilizar um evento também é necessário que se siga alguns passos:
  1. Criar um objeto da classe criada
  2. Criar uma implementação do evento criado (Seja com método anônimo ou nomeado)
  3. Fazer uma chamada ao método criado que aciona o evento

Exemplo de classe com evento

public delegate void Falar(string texto);

    public class Pessoa
    {
        public event Falar onFalar;

        public void Falar(string texto)
        { onFalar(texto); }
    }

Exemplo de uso de um evento

static void Main(string[] args)
{
Pessoa p = new Pessoa();

p.onFalar += delegate(string texto)
      {
            Console.WriteLine(texto);
};
     
p.Falar("teste");

      Console.ReadKey();
}

O que são Delegates, em .NET ?


Criação de Delegates

Os delegates são ponteiros definidos formalmente, em aplicações .NET.  Os delegates definem os protótipos de métodos que são válidos para sua implementação. Quando um delegate em específico for utilizado é necessário que seja associado a ele um método que tenha um protótipo equivalente ao definido.


Exemplo de protótipo, ou assinatura de método:

Int somar(int i, int j);
String fazer(string j, Double k);

Os delegates utilizam métodos que tenham uma implementação segundo um protótipo pré-definido. Esta implementação pode já existir ou ser criada na definição de um delegate. Quando utiliza-se um método já existente, chama-se de método nomeado; quando cria-se a implementação na chamada do delegate, chama-se de método anônimo.

Aplicação com método nomeado

Os métodos nomeados são semelhantes a chamadas de ponteiros para métodos utilizados em linguagens como C.

public delegate int pular(int i);

public static void Main()
{
pular p = new pular(pulo);

int valorFinalDoPulo = p(500);      // Retorna 600
}

public static int pulo(int i)
{
Return i+100;
}

Aplicação com método anonimo

public delegate void pular(int i);

public static void Main()
{
pular p1 = delegate(int i)
      {
            return i+100;
};

int valorFinalDoPulo = p(500);      // Retorna 600
}

O que são Generics, em .NET ?


Generics

                Generics é uma tecnologia para criação de tipos dinamicamente em tempo de compilação. Com a utilização de um truque, o compilador deixa que tipos não sejam expressamente definidos na classe, e quando a classe for acionada, o tipo é passado, como um parâmetro.
                Esta tecnologia é muito importante por utilizar menos System.Objects em classes e até mesmo diminuir o numero de classes na aplicação.Como conseqüência a aplicação faz menos boxing e unboxing,e também melhoria no desempenho.
                Além de classes genéricas, é possível criar interfaces, delegates e métodos com parâmetros genéricos.

Veja um exemplo:

Classe genérica
public class meu_generico :IList where T: IDisposable
    {
        public T t;
        public U u;

        public meu_generico(T t, U u)
        {
            this.t = t;
            this.u = u;
        }

        public void disposeT()
        {
            this.t.Dispose();
        }


#region IDisposable Members

        public void Dispose()
        {
            throw new NotImplementedException();
        }


        #endregion   
}
Chamada:
meu_generico<int, char> objeto = new meu_generico<int, char>(150, 'o');
objeto.disposeT();

Como funciona a Interface ICloneable, do .NET ?


ICloneable

                A Interface ICloneable deve ser utilizada em classes que necessitem que duplicatas. Os tipos por valor quando são atribuídos a outras variáveis, são copiados; os tipos por referência são apenas apontados. Nos tipos por referência não existem cópias ou duplicatas. Esta interface vem tentar resolver este problema.
                A interface possui um método object clone() que retorna uma duplicada do objeto em questão. O .NET nos auxilia na realização desta tarefa com um método chamado object MemberwiseClone(). Este método somente pode ser acessado por dentro da classe em quastão.
                A forma de criação do clone pode criar problemas em tempo de execução. Existem 2 tipos de clone: Shallow Copy e Deep Copy. Tomemos como exemplo a figura 1. Ela apresenta uma classe chamada Objeto1 que possui um atributo chamado Objeto2.
Figura 1: Objeto possui um atributo, que é outro objeto

                Quando se realiza a Shallow Copy, os objetos internos não são clonados. Isto pode ser bastante desagradável. Utilize esta forma, somente, quando o objeto clonável tiver apenas tipos por valor. As classes que herdarem desta classe clonável devem ter implementações próprias do Clone(), caso contrário, as classes herdeiras criarão clones da classe base. 
Objeto clone continua apontando para o mesmo Objeto2, que é apontado também pelo Objeto 1
A forma Deep Copy realiza cópia dos objetos internos do objeto pai. Para fazer isto, basta criar uma nova instancia da classe clonável no clone(), com todos os objetos chamando seus próprios clones. Esta tarefa pode ser tediosa, mas importante para evitar duplicatas. Todos os atributos da classe clonável devem implementar ICloneable ou serem passíveis de duplicação manual.
Objeto 1 e Objeto 2 são totalmente clonados

Exemplo:

public class Pessoa: ICloneable
    {
        String nome;
        Int32 idade;
        Telefone telefone;

        public Pessoa(String nome, Int32 idade, Telefone telefone)
        {
            this.nome = nome;
            this.idade = idade;
            this.telefone = telefone;
        }

        #region ICloneable Members

        public object Clone()
        {
            // Shallow Copy
            //return this.MemberwiseClone();

            // Deep Copy
            return new Pessoa(this.nome, this.idade, new Telefone(this.Telefone.Numero));
        }

        #endregion
    }