2012年7月18日,星期三

SharePoint 2013– my view on what’s新的(特别是对于开发人员)

因此,SharePoint 2013(以前称为‘SharePoint 15’,内部名称)公共beta终于在这里。这意味着MVP,TAP参与者和其他具有较早使用权的人不再受其保密协议的约束,现在可以公开谈论该产品。毫无疑问,将会有大量的博客文章,但是我想写下我对下一个版本引起共鸣的想法。–部分原因是我有朋友和同事可能会向我寻求这些信息,但主要是因为它有助于我在某些新方面明确我的想法。这开始于“开发者观点”文章,但也希望能对新版本带给每个人有所了解。

如果你’作为技术人员,我认为在此版本中,开发人员的学习曲线比IT专业人员大得多。我可能为此感到恼火,当然,需要大规模处理或需要了解有关基础架构主题的底层细节的IT专业人员可能会不同意,但是’s my view and I’m sticking to it :)

所以这篇文章代表了我的清单–重要性不高。

社会的

所以’鉴于Yammer的收购,这是非常有趣的,但是,是的,成熟的社交功能实际上是SharePoint 2013中的本机。’还不如Yammer和Newsgator那样受欢迎,但是我想核心SharePoint功能现在可以满足许多人的需求。’ requirements –至少对于当前的社交Intranet。我看到史蒂夫·鲍尔默’也对病毒Yammer模型发表了评论,但坦率地说,我必须认为,此次收购的主要推动力是取消“compete”元素并将Yammer带入折叠。

新闻源(现在称为新闻源-不再“activity feed”)功能更丰富,并支持我为运行SharePoint 2010的客户端构建的许多增强功能(请参阅我的文章 扩展SharePoint 2010社交功能)。 新闻源现已完全“two-way”,表示可以对商品进行评论,喜欢等等– so it’现在是完整的Facebook风格的供稿:

SharePoint 2013Newsfeed - large

从图像中可以看出,其他一些功能包括:

  • @提及
  • #hashtags
    • 这些是可搜索的,并且可以遵循。实际上,新的井号标签位已与现有的SP2010功能合并,从而能够遵循托管元数据标签。
  • 能够‘follow’网站或特定文件
  • 团体:
    • In addition to posting to everyone, I can opt to post only to 的members of a specific 球队 site –这可能是公司的特定社区
  • 能够发布链接和图片(在Feed中自动生成/使用缩略图)
  • Document/media preview from within 的feed
    • 无需打开新窗口或脱离上下文便能感觉到文档/视频/任何内容
  • 自动完成:
    • 用户界面感觉非常有用–当我键入@找人时’的名称或#作为主题标签,我会得到一个自动完成框,该框为我提供了分类建议。在提到@的情况下,最初只给我我 ’m以下(左图),但是当我键入更多内容且未找到结果时,它会将搜索范围扩大到所有人(右图):

      @mention_autocomplete @ mention_autocomplete2

那里 is also a ‘team’新闻提要,以跟上什么’s happening in a particular 球队 site. So effectively SharePoint 2013has just about all of 的social features (and a couple more) we built for one of my old projects (see 扩展SharePoint 2010社交功能)。一世’我很高兴看到该功能集看起来不错。

当我’我们之前曾预测过,该API已进行了实质性的重新设计,我在我的文章中谈到了很多问题“how we did it”帖子不见了。您’将在管理中心(在UPA中的“我的网站”设置中)看到一个选项以启用‘SharePoint 2010活动迁移’.

Everything is 一个应用

当然是对微软的一个有趣的举动’部分-但是现​​在,如果您在SharePoint中创建几个列表,则可以在SharePoint UI中’s “an 应用程式”。我能理解微软来自哪里–并非每个新用户都能理解SharePoint列表,视图或内容类型为他们提供了什么,但是坦率地说,甚至我的父母也知道“app”是。尽管如此,熟悉早期版本的用户仍会感到困惑–人们可能需要一些帮助。但是,当您考虑将来以及SharePoint的下两个版本时(例如“SharePoint 2019”), maybe it’这是一件好事,这些概念应该早些而不是晚些切换。

AddAnApp

Of course, developers can create custom 应用程式s – that’真的是这里的重点’之所以重要,是因为已经解决了将代码引入企业环境中的一些挑战(稍后会详细介绍)。这里’体验会是什么样子– 的site owner can install 一个应用 from 的‘Your Apps’ area:

AddAnApp

From then on, Joe User can access 的应用程式 from 的All Site Content page:

开启AnApp

With 应用程式s that give a full page experience, when he/she clicks on 的应用程式, they get taken to a completely different location which has a link back to 的site which hosts 的应用程式. This is effectively 的start page for 的应用程式:

COBAppDefaultPage

应用市场– plus 远程应用

大新闻是SharePoint终于有了“app store”, meaning it’s far easier to add small solutions to SharePoint which fulfil a particular need (例如。a timesheeting 应用程式, some social extensions, whatever). Given 的success of this model in 的consumer phone space, and it’将其集成到Windows 8中,对于SharePoint 2013来说也很奇怪。它’相当革命性,因为几件事融合在一起 许多 更轻松地将第三方自定义设置到SharePoint环境– whether 的person trying to acquire 的应用程式 is a 球队 site owner somewhere, or 的core SharePoint admin 球队:

  • 无需服务器管理员参与部署/激活
  • 综合付款/采购:
    • 有预算吗?好吧,如果该功能由服务器管理员启用,那么您可能需要的只是一张信用卡!当然,也可以使用更简化的付款方式(例如,设置公司帐户详细信息,使用该帐户付款),尽管各地的管理团队都会很高兴听到该领域存在许多治理控制措施
  • 受Microsoft管制的市场:
    • In 的same way phone 应用程式s have to go through a certification process (involving checks on performance, legality, use of user interface controls etc.), 的same will 应用程式ly to SharePoint 应用程式s. It only gets into 的public marketplace if all those boxes are checked, and many of 的checks are performed by humans
  • 企业法人 市场选项:
    • 除了公共市场,SharePoint 2013还提供了一个拥有公司市场的框架– in other words, an internal 应用程式 目录 where only 应用程式s 应用程式roved for use within 的organization are added. Whoever owns 的SharePoint platform controls whether 的public and/or corporate marketplace are enabled. In 的case of SharePoint Online, this is decided on a tenant-by-tenant basis
  • 应用要求:
    • 启用控制控件后,SharePoint为最终用户提供了一种机制“log a request” for a certain 应用程式lication from 的public marketplace. Administrators can then track which 应用程式s are commonly requested, perform some internal validation, and then make them available in a controlled way.
  • 安全:
    • 那里’如果有可能对SharePoint环境造成损害的应用程序,则毫无意义。任何个人‘rogue’应用程序不应整体危害SharePoint环境。当然,微软通过沙盒解决方案引入了对此的支持,对于应用程序市场一块却没有’t come with it –但仍然奠定了基础。当然,最大的问题是沙盒解决方案的功能受到有意限制(以支持安全方面),并且开发人员在实施方面不断受到限制。微软在很大程度上以一种创新的方式消除了这些限制–我在‘App hosting options’ section
  • 升级框架:
    • 就像我们一样’re now used to updates to 应用程式s on our phone being pushed out by 的vendor (and having 的choice of whether we 应用程式ly 的update or not), a similar framework exists for SharePoint 应用程式s. This is great news for both users and vendors –这可能意味着更快的开发周期,更有效的方式推出了错误修复和增强功能(例如’s变成至少50%的推动力,而不是100%的拉动)

毋庸置疑,毫无疑问,许多具有产品创意的供应商和开发人员已经(或将要开始)争先恐后地研究如何利用这一点。当然,市场赢了’在测试阶段不能为空–知名产品供应商将与Microsoft合作进行ISV TAP计划。毕竟,没有一个空的市场’t in anyone’s interest.

应用托管选项 – including 远程应用 with OAuth

因此,我提到SharePoint 2013中已消除了围绕沙箱解决方案的许多限制。’s how –应用程序现在可以与SharePoint环境本身分开运行。因此,如果您需要运行需要大量处理的代码(可能会被SharePoint关闭,因为它会’使用过多的CPU /内存/磁盘IO),然后在非SharePoint服务器上运行它。换句话说,将问题排除在SharePoint方程之外,然后在那里解决–SharePoint管理员(如果您是Microsoft,可能是Microsoft’SharePoint Online客户)感到高兴,因为可以确保SharePoint的性能/正常运行时间,而开发人员(或销售产品的供应商)现在也感到满意,因为他们有解决沙箱约束的方法。这意味着您可以有效地构建 任何东西 并定位沙盒或O365– you just have to provide 的resources (例如。web hosting, processing power and if needed, data storage) elsewhere. 这个外部“engine”然后可以使用诸如CSOM和REST之类的客户端API与SharePoint对话(例如,读取和修改数据)– these are *much* more capable now. OAuth is used for authentication, whereby 的external 应用程式 is granted a token to access a particular SharePoint site for a specified duration. Here are 的top-level options:

  • 远程-Azure
    • 实现这一目标已经进行了许多工作。这被称为 Azure auto-provisioned 应用程式, and is integrated into 的应用程式 deployment process –开发者/供应商可以确保任何“在SharePoint外部” infrastructure is created on Azure as 的应用程式 is deployed in SharePoint. This could include a SQL Azure instance to store data (so in 的sandbox we’re no longer constrained by having to store data in SharePoint lists within 的site collection), and Azure processing capability to do any heavy-lifting. Of course, this needs to be scaled 应用程式ropriately for 的应用程式 to work well, but it does work well as far as SharePoint is concerned.
  • 遥控器- 开发者托管
    • 在这种情况下,“developer-hosted” means “谁在构建应用程序,谁就会提供托管/基础架构”. 您 don’不必将Azure用于应用程序的任何外部部分。事实上。你可以使用任何东西–另一个SharePoint场,运行IIS和SQL的其他一些服务器,Amazon Web Services等。我的意思是,这种分离带来了一些有趣的可能性–因为SharePoint没有’只要您使用客户端API对其进行调用,它就不会在这里进行处理’有效地与技术无关。您可以在LAMP堆栈(Linux,Apache,MySQL,PHP)上实现此部分,以进行所有SharePoint事务–第一次听到这个消息,我差点从椅子上摔下来!一世’我不是说这个特定方面对我个人而言非常有趣–尽管它肯定与产品供应商,托管者或具有不同技能的开发团队的组织有关–但是我发现事情确实有趣’•仅限于IIS。当然,它的确说明了SharePoint与远程应用程序的远程部分的分离。
  • 本地-SharePoint托管
    • 如果你不这样做’t need any external processing/data storage, then 一个应用 can be purely SharePoint-hosted. Notably, this is not a sandboxed solution – that model still exists, but this is something different. Server-side code is *not* allowed in a SharePoint-hosted 应用程式, so all SharePoint code is CSOM or REST (in addition to 的HTML, CSS and JavaScript elements). 什么’s really important to understand about this model is that any SharePoint artifacts required by 的应用程式 (例如。pages, lists, content types, and so on) do not live in 的actual site collection where 的应用程式 is installed –相反,它们是通过特殊的方式创建的“app web” on a separate web 应用程式lication which is isolated from 的site where 的应用程式 is installed. Visual Studio 2012 with SharePoint dev tools understands this architecture when you deploy and test your 应用程式.

Note that SharePoint gives support for extending 的branding of 的hosting site into 的应用程式 site (remember, even if it is hosted in 的same SharePoint farm, it is still a separate web 应用程式lication/site collection).

当然,我们仍然拥有传统的开发模型。所以如果你’要求您在SharePoint中构建自定义项,并且可以将代码部署到服务器场中,则可以从以下选项中进行选择:

  • 农场解决方案
  • 沙盒解决方案
  • SharePoint-hosted 应用程式

您’d have to decide whether your solution can be built using 一个应用 (i.e. whether 的client APIs do what you need), and whether 的应用程式 model is giving you 任何东西 (i.e. should users acquire 的应用程式 from 的marketplace).

增强的客户端API

No doubt partly to support 应用程式s, 的client APIs have been given some love and are 许多 extended. The Client Object Model (CSOM) has many new capabilities, and a new OData/REST API is introduced. My understanding is that both have 的same capabilities, but 的different programming styles are meant to provide choice – so if you’用JavaScript或Silverlight重新编码’d可能使用CSOM,但是如果您使用’re talking to SharePoint from another platform (例如。mobile 应用程式) then 的REST API would be convenient. The early documentation listed 的跟随ing as capabilities:

  • 现有的CSOM功能,以及:
  • 用户资料
  • 搜索
  • 分类
  • 提要
  • 出版
  • 分享中
  • 工作流程
  • 投资者关系管理
  • 分析工具
  • 业务资料
  • ...和更多

Note that 的new REST API is known as _api since it can be accessed using 的format http:// somesite / _api / Web / title (该示例返回根网站的标题)。

使用.NET 4.5,但不使用MVC(至少在SharePoint中)

是的,当然,最新的SharePoint使用的是.NET的最新版本。因此,我们获得了新的GAC,新的语言功能(例如网络API,等待/异步,新的HttpClient类等。)和Visual Studio工作流程更简单,但更大的影响是 如果您的代码必须同时针对SharePoint 2010和2013,那么您需要处理一些事情(例如,避免在代码库中使用一种新的语言功能)。如果您在更广泛的ASP.Net世界中关注SharePoint之外的开发,那么它’有趣的是,没有使用MVC的选项,并且自定义SharePoint页面将继续使用WebForms模型–表示Viewstate,.NET控件的单击事件的回发等。全世界的SharePoint开发人员可能会松一口气,不必在新产品之上学习新的范例,而是停下来想一想’最终是一件好事。我不’不要以为是个人的。如果您这么在意,那么实际上有*选项*用于在SharePoint 15中显示MVC页面,但仅在SharePoint中‘remote 应用程式s’ –SharePoint的功能远比MVC和WebForms大。

使用Metro样式

一些新的UI范例需要学习,但是从好的方面来说,我甚至可以设置一些彩色块的样式:)

TeamSite

搜索驱动的内容

其他CMS具有的功能 ’我想在SharePoint发布网站上看到很长时间的想法是,尽管实际上内容实际上只是一个内容,但是可以有效地将其显示在不同的位置(可能具有不同的品牌/周围环境)。 。可以在一个位置编辑此内容。我可能在这里显示了我的年龄,但是Content Management Server 2001/2002在发布时具有这种关联,因此很烦人的是,产品中这么长时间都没有这种东西存在。

在SP2013中,使用搜索来实现这一点。这是有道理的,因为长期以来,搜索一直是搜索的唯一方法“see past” 的site collection boundary in SharePoint, and so this facilitates content 分享 across site collections and web 应用程式lications. 您’会找到一个新的Web部件类别,称为‘搜索驱动的内容’ –此处的Web部件都是的预配置变体 按搜索Web部件的内容 (例如。“Items Matching a Tag”)。基本的“内容搜索” Web部件可以在“内容汇总”类别中找到。这就像在类固醇上使用Content by Query Web Part并使用搜索:

搜索DrivenContent_WebParts

ContentBySearch_QueryHelper

同样, SharePoint中的任何列表/库都可以被提名为‘catalog’ and then 分享d across site collections. This is part of 的‘跨站点集合发布’功能,也具有搜索功能。

Skydrive Pro - Dropbox/Skydrive-like sync to PC, and simple 分享

一个很好的功能是,用户可以将任何文档库同步到其PC上的文件夹,从而使脱机访问更加顺畅–不需要诸如SharePoint Workspace之类的客户端。此外,SharePoint 2013引入了以下概念:‘sharing’ –这实际上是我们相同的权限模型’习惯了,但具有不同的语义,希望可以使用户更轻松。所以我可以‘share’文档库,而不是‘授予某人贡献权限’.

Office应用程式

An “app for Office” (known as an ‘Agave’测试前)有效 一种新的形式“Office Add-in” –我的一些很好的例子’ve seen include a Bing map 应用程式earing next to some Excel rows containing addresses, or a Word Add-in which shows some SharePoint list items and allows them to be dropped into 的document. Hopefully you get 的idea. 什么’有趣的是,尽管客户端是Office,但开发还是通过Web技术(例如JavaScript,CSS和HTML)完成的。它’几乎就像Office中托管的IFrame。这很酷,因为那里’现在,在浏览器和Office客户端中可以重用的潜力很大–即,我不再需要学习Office API来定位那些客户端。

AppFabric

AppFabric是一种缓存技术,它作为独立安装存在(并且已经完成了一段时间)– it doesn’需要Windows Server 2012)。如果尚未安装,SharePoint会将其作为必备软件进行安装。 AppFabric本质上将多个Web服务器的内存连接在一起,并允许您将其用作缓存– in this way you don’无需担心不同的计算机在缓存中具有不同的值,或者必须使用CacheDependency或类似的东西。实际上,您可以存储名称/值对,并可以从任何地方访问它们。缓存可以划分为不同的区域(分区),并且有一些选项可以使其高度可用。

概要

因此,很多新功能和很多东西 让开发人员机智– and there’s lots I haven’我也提到过喜欢 JavaScript模板 (请考虑使用著名的SharePoint控件(例如列表视图)的jQuery模板)和 使用Azure进行工作流托管。一世’确保可以在其他地方找到有关这些内容的好内容(如果不是现在,那么很快)。

当然,这是一篇技术性文章,其他人将仔细研究最终用户的增强功能。一世’我们将详细介绍一些技术领域,以及许多其他技术领域,因此,如果您愿意的话,可能是时候清理RSS阅读器并进入Twitter了’还不存在:)

8条评论:

古斯说过...

克里斯,做得好!真!也喜欢MCFC参考:-)

最令人失望的是没有MVC ..使用某种Razor语法可以完美&更容易测试:

Looking forward to 的next in 的series!

未知说过...

克里斯好文章!
而且发布也很快–它一定是世界纪录。
I’我刚刚设法在本周末启动了虚拟机并查看迁移,但是没有’不要期望任何人发布任何东西。

纳德热说过...

很好的文章!那么新事物'd have to play with.

Shailesh B.达瓦拉说过...

Informative and fruitful information. 那里 are many new things introduced and more social now.

您dhbir Singh说过...

感谢如此详细的帖子。这是非常有用的。

乔治·邦尼 said...

很棒的文章,谢谢!

雷切尔·加勒特说过...

克里斯(Chris),感谢您出于好奇心向我们这些人详细介绍了此内容,但没有预览访问权限。一世'感谢您抽出宝贵的时间。感恩节快乐!

PS非常感谢,我尝试了7次验证码来发布此消息。

克里斯·奥'Brien说过...

@Rachel,

Yikes,对不起,很难发表评论!一世'我来看看我的设置。

Thanks for 的kind words.

克里斯。