Introdução ao desenvolvimento com SharePoint 2010

Olá SharePointers,

Após analisar o mercado e participar de vários projetos com o SharePoint 2010, identifiquei que:

1) Na maioria das vezes, profissionais de .NET atuam em um projeto de SharePoint acreditando que é a “mesma coisa”.

2) Muitos desenvolvedores não entendem, realmente, o porquê do SharePoint 2010 ser considerado uma plataforma de desenvolvimento e, muito menos, quais tecnologias estão envolvidas.

 

Para desenvolvedores que estão começando a desbravar esse “novo” mundo, várias dúvidas surgem na cabeça: “Como alterar/manter o banco de dados da aplicação?”, “Qual linguagem devo utilizar?”, “Qual a extensibilidade da ferramenta?”, “Desenvolver em SharePoint é igual à desenvolver com .NET?”, entre outras.

Para responder todas essas perguntas, devemos primeiro entender  a arquitetura do produto:

SharePoint 2010 consiste em várias camadas de tecnologia. Basicamente, é uma aplicação ASP.NET que armazena os dados no SQL SERVER e roda em um servidor Windows.

 

SharePoint 2010: Recursos e tecnologias envolvidas

 

SharePoint é um produto, que como todos, precisa ser respeitado. Você precisa entender os seus limites e tirar proveito de suas funcionalidades ao seu favor. Devemos mudar nossa forma de pensar. Desenvolver em uma plataforma nova, pode ser um desafio bem interessante. Para isso, tente identificar similaridades com outras ferramentas que você possui experiência, bem como particularidades do produto.

Respondendo uma das perguntas: “O que preciso saber?”

Para entender melhor o que você precisa conhecer, vamos analisar a frase “Basicamente, é uma aplicação ASP.NET que armazena os dados no SQL SERVER e roda em um servidor Windows”.

Uma aplicação ASP.NET – ASP.NET é uma tecnologia do .NET Framework para aplicações WEB. Toda aplicação WEB precisa de um servidor para que a aplicação seja hospedada. Esse servidor é o IIS.

Visando uma melhor aparência do Site, precisamos entender e conhecer os Temas e Skins do ASP.NET de forma a garantir um “look-and-feel” consistente e para criar e aplicar “brandings”, por exemplo.

Como disse anteriormente, é uma aplicação WEB. Os browsers só entendem – de forma bem superficial e básica – HTML, CSS, JavaScript.

E, por fim, conhecer as Web Parts do ASP.NET. São como uma “mini-página” que utilizamos para customizar comportamentos, inserir funcionalidades com o SharePoint.

Então, resumidamente, precisamos conhecer:

ASP.NET, ASP.NET Temas e  Skins, Html, CSS, JavaScript, ASP.NET Web Parts e IIS.

 

Depois de estudar mais sobre a base do produto, podemos partir para o produto, própriamente dito.

Object Model do SharePoint – Como o SharePoint é um framework/plataforma de desenvolvimento, programaticamente, você deve usar a sua própria API (API = Object Model).

Um dos grandes diferenciais da versão 2010 do produto, é o Client Object Model. É uma API para rodar do lado do cliente – como o nome já diz – de forma que você consiga interagir com o servidor (Criar uma lista, inserir itens, excluir, editar, etc).

O SharePoint 2010 tem integração nativa com Silverlight e XAML, então vale a pena estudar essa forma de extensibilidade visual.

Workflows – os Workflows são utilizados para automação de processos longos.

Além de outros recursos como: Windows Communication Foundation, Web Services, REST APIs, Excel Services, Windows Identity Foundation, Claims, etc

Para entender melhor, as verticais do produto, as APIS e em qual versão do produto elas estão disponíveis, vejam a tabela abaixo:

Building Block

Description

SharePoint Foundation

SharePoint Server Standard

SharePoint Server Enterprise

Access Services

Publish Access databases to SharePoint

     

Administration

Programmatically administer SharePoint Foundation and Server

     

Alerts

Send email or SMS

     

ASPX Pages

Build Web pages with .NET code-behind

     

BCS

Bring external data into SharePoint

     

BCS Client-Side API

Access BCS data from client computers

     

CAML

Declarative query language expressed as XML

     

Column, Field Types

Define domain definitions for data in lists and libraries.

     

Content Types

Define prototypes for list items.

     

Custom Action

Create links, toolbar buttons, menu items

     

Custom Views

Define view for lists and document libraries

     

Dashboards and KPIs

Web part for reports, charts, and KPIs

     

Document Libraries

Storage for documents or files of any type

     

Document Metadata

Sophisticated document categorization

     

ECMAScript Client Object Model

Access SharePoint data from ECMAScript / JavaScript

     

Event Receivers

Provide behavior when SharePoint lists or libraries are updated

     

Excel Services

Load, calculate, and display Excel workbooks

     

Excel Services ECMAScript Interface

Access the Excel Web Access Web Part control from ECMAScript

     

Excel Services REST API

Access workbook parts or elements directly through a URL

     

Excel Services User Defined Functions (UDF)

Write high-performance functions for use in server-side spreadsheets

     

Excel Web Services

Access Excel Services programmatically using Web services

     

Features

Unit of deployment

     

Health Rules

Codify how you monitor health in a large installation

     

InfoPath Forms Services

Make forms to be filled out in a browser

     

LINQ to SharePoint

Use LINQ to query SharePoint lists and document libraries

     

Lists

User editable storage of data

     

Managed Client Object Model

Access SharePoint data from client computers

     

Mobile Pages, Controls, and Adaptors

Brings SharePoint data to phones

     

OData REST APIs

Provides REST access to SharePoint data using the OData proposed standard.

     

Office Client Managed Add-Ins

Enhance Office clients to use SharePoint data and documents

     

Open XML SDK

Use Open XML for document generation and transformation

     

Performance Point Services

Build dashboards, scorecards, reports, and key performance indicators (KPIs)

     

PowerPivot

Create business intelligence solutions

     

Sandboxed Solutions

The Sandbox infrastructure isolates and shuts down bad code, preventing it from taking down the farm

     

Search Customization

Enable search through varied content, including ECTs.

     

Secure Store Service

Securely access legacy systems

     

Security

Ensure that sensitive information is available only to authorized users

     

Server Object Model

Server-side .NET API for accessing data and content

     

Server Ribbon

Customize the SharePoint ribbon

     

Service Application Architecture

Create shared services that can be consumed by multiple SharePoint applications

     

SharePoint Dialog Framework

JavaScript programming interface for putting up dialog boxes and other client-side user interface elements

     

SharePoint Themes

Apply custom branding to a SharePoint site or site collection

     

SharePoint Web Services

Access SharePoint data through Web services

     

Silverlight Web Part

Create user interfaces that are better looking and easier to use

     

Site Definition

Create, configure, and provision SharePoint sites

     

Site Pages

User customizable pages that conserve resources

     

Timer Jobs

Execute code at specific times or intervals

     

Variations

Tailor sites for different cultures, markets, and languages

     

Visio Services

Share and view Microsoft Visio drawings

     

Visual Studio SharePoint Tools Extensibility

Extend Visual Studio to enable developers to create custom solutions more quickly

     

WebDAV

Upload and download files efficiently

     

Web Parts

Web parts and Web part pages enable users to customize their user interface.  Building Web parts is the most common way to extend SharePoint.

     

Web Services

Key component of building scalable, distributed, and loosely coupled SharePoint applications.

     

Windows Identity Foundation

Provides claims-based identity services based on trusted providers

     

Word Automation Services

Provides services to convert documents to and from various file formats

     

Workflows

Automate business processes using tasks and forms

     

 

Conclusão

Esse post foi mais uma ajuda de como começar a entender o SharePoint, como estudar, as verticais que ele engloba no mundo de desenvolvimento. Existem muitas referências boas no mercado sobre isso que valem a pena serem estudadas:

http://blogs.msdn.com/b/ericwhite/archive/2010/10/26/sharepoint-developer-building-blocks-technologies-for-creating-sharepoint-applications.aspx

http://office.microsoft.com/pt-pt/sharepoint-server-help/introducao-ao-sharepoint-server-2010-HA010371435.aspx

http://msdn.microsoft.com/en-us/sharepoint/ee513147.aspx

https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=pt-BR&EventID=1032456921&CountryCode=BR

https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=pt-BR&EventID=1032441652&CountryCode=BR

 

Abraços

11 ideias sobre “Introdução ao desenvolvimento com SharePoint 2010

  1. Pingback: Sua aplicação customizada escrevendo no Logs (ULS) do SharePoint! « Thiago Silva

  2. Pingback: Guia de formação para Desenvolvedores SharePoint… « Wagner Amorim

  3. Wallace Gonçalves

    Parabéns pelo post!!! Muito esclarecedor 🙂
    Bom, aproveitando a oportunidade gostaria de tirar uma dúvida.
    Sou desenvolvedor Java há 6 anos e nos últimos 2 anos, venho trabalhando com ferramentas de ECM/GED e isso fez com que eu tivesse que desenvolver outras habilidades como: Mapeamento de processos, BPM e BPMN, gerenciamento e orquestração de workflows e por ai adiante. Sempre tive a vontade de trabalhar com ferramentas da Microsoft e hoje depois de descobrir mas essa “perna” da área de TI que é trabalhar com produtos/plataformas como o “sharepoint”, fico me perguntando “qual seria o peso em aprender tudo o que é necessário para ser um bom profissional nessa plataforma?” Faço-me esse questionamento, pq não tenho mas vontade em ser apenas desenvolvedor e ter aquela mesma rotina sempre. O mundo do ECM/GED/Portal é algo gostoso de ser trabalhar “Pelo menos esse é o meu sentimento”, exitem várias etapas desde a condução de reunião com o cliente até a implementação do projeto passando pelo treinamento para os profissionais que vão usar o que foi implementado, isso tudo deixa o trabalho muito dinâmico e gostoso de ser realizado :). O que você poderia dizer sobre a minha ideia em migrar para o Sharepoint?
    Obs.: Essa decisão gira em cima de que todas as ferramentas que eu conheço o Sharepoint é a que tem mais material disponível para o aprendizado.

    Abraço.

    Responder
    1. RodrigoRomano Autor do post

      Olá Wallace,
      Obrigado pelo apoio. Há algum tempo estou pensando sobre o que e como te responder da melhor maneira possível….

      Eu posso dizer pela minha própria experiência: comecei com Delphi e depois fui para o Java. Confesso que no início não gostava de tecnologias Microsoft. Entretanto, quando venci a minha barreira do “pré-conceito” consegui perceber algumas coisas que fizeram toda a diferença. Não quero entrar no âmbito de qual plataforma é melhor e coisas do tipo, estou contando apenas a minha experiência.

      Com o SharePoint, consegui me aproximar mais de pessoas/áreas que tomam decisão e criar soluções estratégicas, que fogem apenas da “escovação de bits”. Gosto de programar, não me entenda mal. Mas programar por programar, existem vários por aí e, com certeza, terá alguém melhor do que você.

      Precisamos sempre buscar algo melhor. Nos destacarmos em algo para sermos reconhecidos. Com o SharePoint, consegui entregar soluções muito mais rápido do que com as outras plataformas sem usar muitos plug-ins e agregando bastante valor para o cliente.

      Fiz até um post falando do porquê eu escolhi o SharePoint para trabalhar: http://rodrigoromano.net/2014/01/11/porque-sharepoint/

      Muito obrigado pelo seu comentário e por acompanhar o blog 😀

      Abraços!

      Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *