SharePoint 2013 – ve znamení zásadních koncepčních změn

Stále ještě není SharePoint 2013 v RTM verzi, některé změny jsou však již definitivní a velká část z nich také ovlivní dosavadní chápání vývoje na této platformě, nejen vždy pozitivně. Architektura zůstává v podstatě bez změn, stále je SP strukturovaný jako farma, webová aplikace, kolekce webů, weby, servisní aplikace, joby atd. Dokonce i UI je z pohledu vývojáře nezměněné, pořád se staví všechno na ribbonu a CustomActions – velký důraz je nyní ale kladen na asynchronní zpracování na klientské straně, tedy přímo v browseru – nový typ aplikací pro SharePoint 2013 nemá přístup k serverovému API, veškeré akce probíhají na klientské straně – a to včetně renderingu webpart – to samozřejmě zásadním způsobem boří dosud zažité způsoby vývoje v .NET/C#, nynější verze nutí vývojáře k javascriptu, REST, JSON, potažmo WCF – což pro jednoduché aplikace může znamenat nepodstatné zvýšení pracnosti.

[more]

  • Sandboxed solutions – už je mrtvé a přitom přišlo teprve s verzí 2010, ve verzi 2013 je již označeno jako Deprecated!!! Na MSDN je k verzi 2010 doporučení, že by to měla být hlavní a jediná správná cesta vývoje, ve verzi 2013 je všechno jinak a všichni kdo pracně upravovali řešení pro podporu sandbox módu mohou jenom zaplakat.
  • Klasický mód autentifikace již není dostupný při vytváření nové webové aplikace, defaultně jsou všechny nové aplikace v claims módu (je možné ještě obejít vytvořením webové aplikace pomocí PowerShellu – nebudou ale fungovat některé nové služby, které claims vyžadují pro server-to-server authentifikaci – S2S)
  • Workflow – těsná integrace s Azure – procesy nyní budou hostované buď přímo v cloudu Azure nebo on premise instanci Azure kontejneru.
  • Workflow – deklarativní workflow – s přechodem na nový .NET Framework 4.0 se kompletně mění i způsob implementace, kdy nyní nebude možné vytvářet programové/kódované workflow, ale pouze deklarativní – pokud budete potřebovat vykonat vlastní programový kód z WF, dle Microsoftu je správná cesta vytvoření vlastní WCF služby a zavolání její funkce z WF pomocí připravených aktivit. Změna koncepce má ale i svoje výhody – nyní bude možné v SharePoint Designeru jednoduše vytvářet v pracovních procesech smyčky a složitější flowchart procesy, kdy je také možné se vrátit do předchozího kroku – tedy mnohem flexibilnější procesy než bylo možné vytvářet pomocí stavového stroje (state machine)
  • Workflow bude možné spouštět i nad záznamy z externího zdroje obsahu – External Content Types
  • Event Receivers – je možné registrovat i pro External Content Types, nově bude také možné zachytávat další a tolik chybějící zprávy: ItemVersionDeleting, GroupAdding, GroupUpdating, GroupDeleting, GroupUserAdding, GroupUserDeleting, RoleDefinitionAdding, RoleDefinitionUpdating, RoleDefinitionDeleting, RoleAssignmentAdding, RoleAssignmentDeleting, InheritanceBreaking, InheritanceRestoring, ItemVersionDeleted, GroupAdded, GroupUpdated, GroupDeleted, GroupUserAdded, GroupUserDeleted, RoleDefinitionAdded, RoleDefinitionUpdated, RoleDefinitionDeleted, RoleAssignmentAdded, RoleAssignmentDeleted, InheritanceBroken, and InheritanceRestored
  • Remote Event Receivers – při definici se neuvádí třída v assembly, ale WCF služba, kterou SharePoint vykonává
    http://msdn.microsoft.com/en-us/library/jj220048(v=office.15).aspx
  • WCM – Web Content Management konečně umožňuje snadný vývoj designu a vůbec všech úprav pomocí jakýchkoliv aplikací třetích stran, tedy nikoliv jen v SharePoint Designeru (nyní je pomocí webdav knihovna layoutů a masterpages viditelná). Další podstatnou novinkou je možnost vytváření katalogových řešení, automatické mapy webu, URL kustomizace a další “SEO” nice-to-have vlastnosti.
  • Javascriptové API (CSOM)– rozšířeno o další sadu funkcí pro MarketPlace, sociální funkce, klientské webparty, správu workflow, aplikační služby atd.
    JavaScript API reference for SharePoint 2013 – http://msdn.microsoft.com/en-us/library/jj193034(v=office.15)

 

Ze všech změn je cítit silná snaha Microsoftu odříznout vývojáře doplňků od serverového API a doslova je vypudit ze svého prostoru – logiku to samozřejmě má, Microsoft si snaží usnadnit život s bojem proti některým nešetrným vývojářským praktikám, které různé blokují servery, zvyšují latenci a nejsou z jejich pohledu bezpečné pro distribuci skrz MarketPlace. První náznak přišel už s verzí 2010, kdy byl zaveden tzv. List View Threshold – ze zkušenosti ale vím, že to ničemu zásadnímu nepomohlo, vývojáři stále používají staré dobré foreach(SPList.Items) a další libůstky, ideálně úplně vypnou SPList.EnableThrottling. Tak se zjevně MS dopálil a zkouší jinou cestu…