如何指定人为搜索范围 / 使用 SharePoint 的内容源 2013 其余的 API

我有理由与 SharePoint 工作 2013 搜索 API 通过第一次休息. 我想要搜索的人, 不是文档. 主要学习这里您指定通过其 GUID 的内容源 (或至少在此情况下). 下面的 jQuery 代码段演示如何:

    loadExpertsAsync: 功能() {

        jQuery.support.cors = true;

        $.ajax({
            url: .CreateFullApiUrl() +
                "?querytext = '门户'&源 id ='b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,技能,怀念,利益,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&rowlimit = 99",
            方法: "获取",
            标题: { "接受": "应用程序/json; odata = 详细" },
            高速缓存: false,
            成功: 功能 (结果) {

以我为例, 我运行了 API 针对 SharePoint 在线. 若要获取 GUID, 跟随了这些步骤:

  1. 访问 SharePoint 管理员中心
  2. 选择从左侧导航栏的"搜索"
  3. 选择"管理结果来源"
  4. 选择"本地人结果"
  5. 看看该 URL.

我的 URL 看起来有点像:

https://xyzzy-admin.sharepoint.com/_layouts/15/searchadmin/EditResultSource.aspx?level=tenant&sourceid=b09a7990%2D05ea%2D4af9%2D81ef%2Dedfab16c4e31&view=1

源 id 参数是什么为我工作.

(我明白,源 id 实际上可能是永久的事与 SP, 但我还是会经常检查🙂 ).

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

示例 SharePoint 其余部分调用

这里有一组示例 REST 调用,工作对我来说,也会帮助你理解. 作为的 02/2014, there are two examples 🙂

  1. 引用其名称中的空格的列
  2. 多项选择的列的引用
  3. 执行通过 REST 的人搜索

 

将添加这随着时间的流逝.

在这里我也找到一些有用的油墨:

引用其名称中的空格的列

我用一个名为"博客作者"列创建自定义列表 (博客与作者之间的空间).

$select 来引用该列是:

image

只需替换"_x0020_"的空间. 我们看到互联网 _x0020_ 在许多例子中的,剩下的就是没有什么不同.

如果你不这样做, 你就有可能得到一个像这样的错误消息:

表达式 “博客作者” 是无效的.

足够简单.

参考多项选择查阅列

设置:

  1. 创建一个名为类别的自定义列表.
  2. 添加某些类别. 我广交添加类别:image
  3. 创建另一个称为 MockBlog 的自定义列表,添加类别作为一个多选列表列 (或网站列,如果这就是你的滚).

你 Mockblog 列表中添加一些项,你准备好了.

使用 jQuery Ajax 样式调用将会看起来像这样:

serverUrl   = "/_api/web/列表/GetByTitle('' MockBlog)/项目" +
             "?$选择 = 标题,类别/标题,Blog_x0020_Author/标题" + 
             "&$扩大 = Blog_x0020_Author,类别";

我们告诉 SharePoint"给我标题的所有类别 (类别/标题). 得到的实际值 标题$扩大ing 类别列表" (我宁静的意译是可能相当松散, 但是,这我如何解释它).

如果你这么做通过 JavaScript 和使用提琴手来看看输出, 你得到这样的回报:

 

image

(以上就是一个 JSON 对象)

执行通过 REST 的人搜索

我这博客上分别. 关键是要指定源 id 参数,其值是当地人民内容源的 GUID. (内容源用于被称为作用域,它是我 — — 哦 — — 我努力不去调用一切对我来说一个范围!).

了解更多关于它在这里: http://www.mstechblogs.com/paul/?p=10385

 

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

快速、 方便: 创建使用其余的 SharePoint 站点

有很多的周围显示资源如何执行此操作, 但我找不到一个全面转到链接, 所以在这里我们是.

您可以创建使用其他 API 的 SharePoint 站点。  这里是一个完全被烘烤的示例:

<!--
    SiteRequestForm.html: 收集信息,并为该用户创建一个站点.
-->

<中心>
<>
    <tr>
        <运输署>站点名称:</运输署>
        <运输署><输入 类型="文本" 名称="SiteName" id="SiteName" /></运输署>
    </tr>
    <tr>
        <运输署 colspan="2">
            <输入 类型="提交" id="CreateSiteButton" 价值="创建网站" />
        </运输署>
    </tr>
</>
</中心>

<脚本 src="../Plugins/jquery-1.11.0.min.js"></脚本>

<脚本>
var CreateSiteLogicContainer = {

    createSiteData: {
            "参数": {
                __metadata: { "类型": "SP。WebInfoCreationInformation" },
                Url: "Paultest1",
                标题: "Paultest1",
                说明: "其余创建 web 由保罗!",
                语言: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: false
            }
    },

    createSite: 功能 () {

        jQuery.support.cors = true;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").瓦尔();
        
        $.ajax({
            url: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            方法: "开机自检",

            标题: {
                "接受": "应用程序/json; odata = 详细",
                "内容类型": "应用程序/json;odata = 详细",
                "X-RequestDigest": $("# __REQUESTDIGEST").瓦尔()
            },

            数据: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            成功: 功能 () { 警报("成功"); },
            错误: 功能 () { 警报("错误"); }

        });
    },

    wireUpForm: 功能 () {
        $("#CreateSiteButton").单击(功能 () {
            警报("努力尝试,并创建网站。");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</脚本>

当成功时, 你得到一个 JSON 数据包中像这样的反应:

image

我的主要思想和知识包括从:

  • 此方法使用 jQuery。  以我为例, 我 jQuery 库位于"....../ 插件."  你会想要更改,使其指向您最喜爱的 JQ 位置.
  • 您可以复制并粘贴到页面上的内容编辑器 Web 部件的那整个代码段,它应该可以正常。  你会想要改变的 API 调用的结束点,请确保您正确地引用 JQ.
  • 该 URL 是相对于您的 API 的终结点。  以我为例, 它创建子网站下方 https://bigapplesharepoint.com
  • 您不需要提供一个内容长度. 一些博客文章和 MSDN 文档意味着你做, 但对我来说会自动发生, 我猜这是正在处理的 $虽然调用本身.
  • 这条线有需要提供避免"禁忌"的响应: "X-RequestDigest": $("# __REQUESTDIGEST").瓦尔().  还有其他的方法去做, 但这是很好。  提供此快捷方式的博客,我失去了联系。  H/T 到你, 神秘的博客!

好运,希望这可以帮助一个人出去.

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

克服恼人的问题与 SharePoint 快速启动中的相对 Url

我想要将链接添加到快速启动导航那天和 SharePoint 告诉我:

image

纯文字版本的是:

确保该 URL 是有效的和开头也是有效的字符 (数字符号 (#) 或正斜杠 (/)) 或有效支持的协议 (例如, http://’, https://’, 文件://’, ftp://’, mailto:’, ' 新闻:’).

"Blech 和痘!"我说.

对此的解决方法是使用 JavaScript 在快速启动中查找已知的链接和重写其行为.

对此进行测试, 添加新链接到您的测试站点难耐:

image

我使用 jQuery. 解决这个问题, 得到一些 JavaScript 和 jQuery 拖到页上使用您喜欢的方法和代码像这样的一条线:

 

$(文档).准备好了( 功能 () {

    $("一:包含(测试 URL 替换)").单击(功能 () { 警报("更改的单击行为!"); 返回 false;});

});

鲍勃的你叔叔.

JQuery 选择器查找每个 <一> 标记在其名称中包含"测试 URL 替换". 您可能想要查找-曲调,根据您的链接和这种.

笔者(功能() 重写 SharePoint 将所做的一切当用户单击. 请确保您"返回 false",否则它会做你的东西,然后尝试 href 东西太, 几乎可以肯定不是你的目标.

这样做的和在 SharePoint 的在线环境中测试,但应该很好的工作 2010 和早些时候太.

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

快速和简单: SharePoint 其余部分调用仅返回 100 记录

我一直在一个公共的面对网站上为我的 SharePoint 实践中 纽约 然后使用大量的 JavaScript 和休息的来电显示的内容.

期间主线发展, 我只是创建一个小的数据集与 10 或所以我休息电话和自定义列表中的行从那里拉扯了。  一次我撞了要有几个几百行的数据来测试预期的增长的列表, 我发现我正正好 100 返回回在我休息的电话行.

这是非常简单的事情到地址。  以我为例 (在大多数情况下,我相信), 默认的其余部分调用到 SharePoint (和可能作为一种工业标准?) 返回 100 行。  要比默认值更多的回报, 在您的电话上使用 $top 参数, 如在:

得到 /Insights Dev/_api/web/lists/GetByTitle('' MockBlog)/项目?$选择 = ID,标题,类别/标题,Blog_x0020_Author/标题,DatePublished,BlogSummary&$扩大 = Blog_x0020_Author,类别&$筛选器 =&$顶部 = 9999

我拿起 9999 在这种情况下既然都知道,正常的生长发育, 不会有多个 200 或者,所以一年中,我们已添加到此列表中行。  如果它变得笨拙, 我们可以实现一些分页在路上.

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

快速和简单: 解决"无效 URL 参数” UpdateListItems 在 lists.asmx 的问题

当通过 lists.asmx 和 UpdateListItems 一起工作, 很容易地生成错误:

无效的 URL 参数.

所提供的 URL 包含无效命令或值. 请再次检查 URL.

你可以得到此错误,当您忘了包括 ID 在要更新的字段的列表。  这, 像很多这些 SP 的 web 服务, 是有点违反直觉的因为你需要的 ID 属性中包含的 ID <方法> 元素。  你不更新 ID 和可能永远不会想在第一次的地方.

此 SOAP 信封工程:

<soapenv:信封 xmlns:soapenv =' http://schemas.xmlsoap.org/soap/envelope/'>
  <soapenv:正文>                      
    <UpdateListItems xmlns =' http://schemas.microsoft.com/sharepoint/soap/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <更新>                     
         <批处理 OnError ="继续">
          <方法 ID ="1" Cmd ="更新">
            <字段名称 ="CooperativeLock">锁定!</字段>
            <字段名称 ="ID">1</字段>
          </方法>
        </批处理>                     
        </更新>                
      </UpdateListItems>             
  </soapenv:正文>         
</soapenv:信封>

如果你带出来的 ID 字段引用然后你会令人讨厌的"无效 URL 参数"消息.

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

 

可怜的人在 JavaScript 中的缓存

[TL;博士版本: 使用 cookie 来存储异步调用的结果; 立即呈现过去异步调用的结果,然后在页面加载后验证它们。]

我一直在 SharePoint 的内联网网站为客户端的功能, 除其他外, 程式化的二级导航菜单选项都通过定期的老自定义列表管理。  想法是在客户端获取,不影响或受影响,由它推出的全球导航控制"他们的"网站的菜单.

(有件事令人难以置信颠覆有关添加指向一个 HTML 文件,加载一些 CSS 和 JS,从根本上改变几乎一切有关站点的行为......,但那是另一篇文章为 CEWP)

这个漂亮的简单的代码:

痛点这里是,每次有人点击其中一个站点的页面, 该用户的 web 浏览器伸出手来获取列表中的项。  一旦开发完成并测试已被证明是稳定和完整的东西, 此调用是不必要的多 99% 因为菜单中很少发生变化的时间。  它也有一个怪异的 UI 影响这是常见的这个勇敢新世界的超 ajaxy web 站点 — — 呈现页和菜单只然后呈现。  它是紧张不安,在我看来让人分心。  和紧张不安. 所以, 缓存。 

我修改了逻辑广交:

  • 查找包含菜单中,当我最后读到它的浏览器中的 cookie
    • 如果发现, 立即呈现它。  不要等待页面完成加载。  (您需要确保您的 HTML 战略性地放在这里, 但它是不难做到).
  • 等待页面完成加载,使异步调用以加载菜单项从列表中使用休息或 lists.asmx 或不管了
  • 比较与 cookie 得到了什么
    • 如果它匹配, 停止
    • 否则, 使用 jQuery, 如果动态填充一束 <李>中 <ul>
  • 使用 CSS 来做的所有格式
  • 利润!

你们中的一些将要说的话, "嘿,你! 有是没有真正缓存会在这里因为你反正读菜单中 每一次.”  你说得对 — — 我不会给服务器任何种类的休息。  但因为该调用是异步和发生后页面的初始 HTML 有效载荷完全呈现, 它"感觉"更能响应用户。  菜单中将呈现相当多为页绘制。  如果菜单中发生的变化, 用户被受到紧张不安重新绘制菜单, 但仅此一次.

有一些方法可以使此缓存更有效,同时也帮助了服务器:

  • 在"cookie 缓存"是有效的最低限度的规则中 24 小时或一些其他时限. 只要没有过期的 cookie, 使用 cookie 的菜单快照和永远不会撞到服务器.

好,这就是一切,现在我想 :). 

如果任何人有任何聪明的想法在这里我想知道他们.

最后 — — 这种技术可以用于其他的东西。  此客户机的页面在各种页面上有大量的数据驱动的事情, 很多人改变相对地很少 (如每周或每月一次).  如果您针对特定地区的功能, 你可以通过从本地 cookie 存储拉内容并立即呈现给一个响应更快的用户界面。  它感觉快到用户即使你不节省服务器任何周期。  你 可以 通过一些条件和触发器决定作废这本地 cookie 缓存保存服务器周期。  这就是所有情景和艺术的东西和真正最大的乐趣 :). 

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

如何: 配置单元测试和测试覆盖率与 QUnit.js 和 Blanket.js 办公室 365 SharePoint 应用程序

简介

我都一直在探索单元测试和测试覆盖率的 JavaScript 作为我为 SharePoint 在线在办公室工作一个新的 SharePoint 应用程序 365 套房。  明显的研究路径带我去 Qunit.js 在那之后的权利, 自 Blanket.js.

QUnit 让我设置了单元测试,并将其组合为模块。  一个模块只是简单方式组织相关的测试. (我用它作为不肯定, 但它为我工作到目前为止与迄今定义了的测试的小集).

Blanket.js 与 Qunit 集成,它将显示我的实际行的 JavaScript 是 — — 和更重要的是 — — 不实际执行过程中运行测试。  这是"覆盖"— — 执行的行测试覆盖的,有些则不.

设置好的测试用例和查看覆盖范围之间, 我们可以减少我们的代码已隐藏缺陷的风险。  好的时候.

Qunit

假设你有你的 Visual Studio 项目设置, 通过下载从 JavaScript 包开始 http://qunitjs.com.  向解决方案中添加的 JavaScript 和 CSS 相应。  我的看起来像这样:

image

图 1

如您所见, 我正在使用 1.13.0 当时我写了这篇博客. 别忘了下载和添加的 CSS 文件.

这让开, 下一步是创建某些种类的测试工具和参考的 Qunit 位。  我在一个叫"QuizUtil.js",所以,创造了一个叫"QuizUtil_test.html",如图所示的 HTML 页面的脚本文件中测试一堆函数:

image 图 2

下面是代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/ 1999/xhtml">
<>
    <标题>QuizUtil 试验与 Qunit</标题>
    <链接 区域快线="样式表" href="../CSS/qunit-1.13.0.css" />
    <脚本 类型="文本/javascript" src="QuizUtil.js" 数据覆盖></脚本>
    <脚本类型 ="文本/javascript" src ="qunit 1.13.0.js"></脚本>
    <脚本类型 ="文本/javascript" src ="blanket.min.js"></脚本>

    <脚本>
        模块("getIDFromLookup");
        测试("QuizUtil getIDFromLookupField", 功能 () {
            var goodValue = "1;#保罗 · 高尔文";

            平等(getIDFromLookupField(goodValue) + 1, 2), "ID 的 [" + goodValue + "] + 1 应该是 2";
            平等(getIDFromLookupField(未定义), 未定义, "未定义输入的参数应返回未定义的结果。");
            平等(getIDFromLookupField(""), 未定义, "空输入的参数应返回未定义的值。");
            平等(getIDFromLookupField("gobbledigood3-thq;dkvn ada;skfja sdjfbvubvqrubqer0873407t534piutheqw;vn"), 未定义,"应始终返回结果可转换为整数");
            平等(getIDFromLookupField("2;#一些其他人"), "2", "检查 [2;#一些其他人].");
            平等(getIDFromLookupField("9834524;#长整型值"), "9834524", "大值测试。");
            notEqual(getIDFromLookupField("5;#任何人", 6), 6, "测试 notEqual (5 不等于 6 对于此示例: [5;#任何人]");

        });

        模块("htmlEscape");
        测试("QuizUtil htmlEscape()", 功能 () {
            平等(htmlEscape("<"), "&这是;", "逃离小于运算符 ('<')");
            平等(htmlEscape("<div 类 = "someclass">一些文本</div>"), "&这是;div 类 =&quot;此处将有机可乘&quot;&gt;一些文本&这是;/div&gt;", "更复杂的测试字符串。");
        });

        模块("getDateAsCaml");
        测试("QuizUtil getDateAsCaml()", 功能 () {
            平等(getDateAsCaml(新增功能 日期("2013/12/31")), "2013年-12-31T:00:00:00", "测试硬编码的日期: [12/31/2013]");
            平等(getDateAsCaml(新增功能 日期("01/05/2014")), "2014年-01-05T:00:00:00", "测试硬编码的日期: [01/05/2014]");
            平等(getDateAsCaml(新增功能 日期("01/31/2014")), "2014年-01-31T:00:00:00", "测试硬编码的日期: [01/31/2014]");
            平等(getTodayAsCaml(), getDateAsCaml(新增功能 日期()), "getTodayAsCaml() 应等于 getDateAsCaml(新的日期())");
            平等(getDateAsCaml("一派胡言价值"), 未定义, "尝试获取一个废话值的日期。");
            平等(getDateAsCaml(未定义), 未定义, "尝试获取的日期 [未定义] 日期。");
        });

        模块("getParameterByName");
        测试("QuizUtil getParameterByName (从查询字符串)", 功能 () {
            平等(getParameterByName(未定义), 未定义, "尝试获取未定义的参数应返回未定义。");
            平等(getParameterByName("不存在"), 未定义, "尝试获取参数值,当我们知道该参数不存在。");

        });

        模块("Cookie");
        测试("QuizUtil 各种 cookie 功能。", 功能 () {
            平等(setCookie("测试", "1", -1), getCookieValue("测试"), "让我设置一个 cookie 应该工作。");
            平等(setCookie("anycookie", "1", -1), true, "设置有效的烹饪应返回 '真正的'。");
            平等(setCookie("疯狂的 cookie 名称 !@#$%"%\^&*(()?/><.,", "1", -1), true, "设置坏 cookie 的名称应返回 false。");
            平等(setCookie(未定义, "1", -1), 未定义, "传递作为该 cookie 的名称未定义。");
            平等(getCookieValue("不存在"), "", "Cookie 不存在测试。");
        });

    </脚本>
</>
<正文>
    <div id="qunit"></div>
    <div id="qunit 夹具"></div>

</正文>
</html>

有几个这里发生的事:

  1. 引用我的代码 (QuizUtil.js)
  2. 引用 Qunity.js
  3. 定义某些模块 (getIDFromLookup, 饼干, 和其他人)
  4. 放置 <div> 其 ID 是"qunit".

然后, 我只是把这页和你这样的东西:

image

图 3

如果你看的顶部, 你有几个选项, 其中两个是有趣:

  • 隐藏通过的测试: 很明显。  可以帮助您的眼睛只看到问题的范围和不多的杂波.
  • 模块: (下拉列表): 这将筛选到测试你想要的只是那些组测试.

至于测试本身 — — 几个评论:

  • 不用说您需要编写代码,它是可测试的放在第一位。  使用该工具可以帮助执行的纪律. 例如, 我有一个称为"getTodayAsCaml 函数()”.  这并不是非常可测试因为它需要没有输入的参数,并测试是否相等, 我们将需要不断更新的测试代码,以反映当前的日期。  我重构它通过添加数据输入的参数,然后传递时我想今天的日期加枫格式的当前日期.
  • 它看起来非常坚固和 Qunit 框架文件自行测试。  它可以做简单的事情,像相等性测试,并还提供了对支持 ajax 样式调用 ("真正"或嘲笑使用您最喜爱的亵).
  • 经历过程也会迫使你想通过边缘情况 — — 发生了什么"未定义"或 null 传递到一个函数。  它使死了简单的测试了这些方案。  好的东西.

覆盖面 Blanket.js

Blanket.js 是 Qunit 补充通过跟踪代码的执行过程中运行测试的实际行数。  它集成右 Qunit 即使它是整个单独的应用程序, 它很好地扮演 — — 它看起来真的像它是一个无缝的应用程序.

这是 blanket.js 在行动:

image 图 4

image

图 5

(你实际上必须单击顶部的"启用覆盖范围"复选框 [见图 3] 要启用此功能。)

在图中突出显示的行 5 我的测试中的任何没有执行过, 所以我需要设计一种测试不会导致他们能够执行如果我想要全覆盖.

获取 blanket.js 工作按照下面的步骤:

  1. 它从下载 http://blanketjs.org/.
  2. 将它添加到您的项目
  3. 更新您的测试线束页 (在我的案子中 QuizUtil_test.html) 如下所示:
    1. 引用的代码
    2. 装饰你 <脚本> 像这样的引用:
    <脚本 类型="文本/javascript" src="QuizUtil.js" 数据覆盖></脚本>

Blanket.js 拾取"的数据覆盖"属性并不会它的魔力。  它的挂接 Qunit, 更新的用户界面,若要添加"启用覆盖范围"选项和瞧!

摘要 (TL; 博士)

使用 Qunit 来编写测试用例.

  • 下载
  • 将它添加到您的项目
  • 写测试线束页
  • 创建您的测试
    • 重构您的代码可测试的一些
    • 有创意!  疯狂的想, 不可能的情况下,无论如何进行测试.

使用 blanket.js,以确保覆盖范围

  • 确保工作 Qunit
  • 下载 blanket.js 并将其添加到您的项目
  • 将它添加到您的测试线束页:
    • 将引用添加到 blanket.js
    • "数据-盖"将属性添加到您 <脚本> 标记
  • 运行 Qunit 测试.

我从来没有做之前,有一些基本的东西,在少数几个小时的工作。 

幸福测试!

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

最后一套衣服你会穿?

[快速注意 — — 这是一份工作,我在纽约的小组开放很长时间开机,您需要住在三州地区,如果你有兴趣。]

我在加入了激流回旋咨询 18 几个月前 这成了我最长持久以来的工作和 2007. 我并不是故意这样. 以前跳槽的字符串的开始与我飞跃到 SharePoint 世界, 我在一个地方已经十一年了. 我终于找到了一个新的, 持久的激流回旋在这里长期工作的地方.

这个地方是越来越我需要一些帮助来控制这种. 我需要的帮助这种通常称为"SharePoint 解决方案建筑师",虽然我发现建筑师以上和/或不正确地使用一词在 SharePoint 的空间相当一段时间现在. 我一直在挣扎如何对此博客. 我不想简单地列出一大堆的骰子/怪物样式中的要点. 我优秀的招募同行做了已经 :). 所以, 我决定采取一种"生活中的一天"方法. 看一遍,并考虑:

1) 如果它呼吁和

2) 你是否在你的骨头你可以做到.

如果是, 与我联系 (paul.galvin@slalom.com) 让我们谈谈.

这些都是你可以指望在典型周/月作为我的团队解决方案设计师做:

  • 运行项目, 经常超过一次. 一些项目大,那么你将自己的那一个项目. "运行"项目表示你有监督和交付的总体质量的责任. 在几乎每一种情况下你会有下午和很强的开发团队, BAs, UX 人, 等。, 支持你. 但你会在客户端看到的主要的脸, 信托基金, 等. 没有躲在这个角色中的阴影 :). 你会条例草案 》 这一次和的目标是让你够忙,若要执行此操作 80 %的时间.
  • 帮助文件 — — 母猪, Rfp, 甲板上 — — 所有这些好东西. 我认为我们有我们下来很紧和固体的母猪过程,所以它是相当刻板. 如果你习惯了今天写信给母猪, 我们的进程不会对你的挑战. Rfp — — 这些都是有点难. 他们倾向于首先将定制的性质和 Rfp 通常在多个不同的作者拉. 它是好的和坏, 但主要好. 这可以得到 scrambly,当我们需要杂耍也试图赢得新工作时需要优秀的客户服务. 你大概不会自己的 RFP,但将会要求您作出贡献的部分.
  • 销售电话, 但不是近. 在一个月的过程中, 你可以指望要走上几个与我们的销售团队的销售电话. 你会在房间里中小企业, 记笔记和帮助塑造解决方案. 不过, 你不会问或预期的处理销售周期从开始到结束. 你不需要"卖,"你只需要平静的声音在房间里的专家理性的. 此生成的信任和信心,这就是为什么你在那里. 答案是肯定的, 如果你想卖, 然后还有余地,你也在这里生长.
  • 招聘帮助. 我们有某种转诊程序, 所以如果你真的知道强社区人的你觉得应该是激流回旋的一部分, 您可以使用这种方式. 我们有专业的招聘人员 (优秀的是谁) 要做这种工作的狮子的份额. 真正的帮助面试候选人 — — 文化上他们是很合适? 他们知道他们的东西吗? 他们能让 * 我 * 生活更方便? 🙂 This comes in spurts, 每月几次, 虽然在几个月你不会做它在所有.
  • 帮助定义的最佳做法, 建立我们的 IP,使我们在市场中更具竞争力. 你是经验丰富的家伙 gal. 你一直在街区周围 — — 不只是在 SharePoint 中, 但你有经验在其他技术中,经历了好与坏 (甚至可怕) 各地项目. 结果, 你知道什么工作,什么不. 我们会想要与我们分享这一经验,对每天在战术意识 (e 小节. 真的很好运行您的项目) 但也具有战略. "最佳做法"是作为一个术语的使用有点过度,我犹豫,使用它. 基本的想法是你作为深部的相关工作经历经验丰富的人进来,我们想要将最好的你知识纳入我们与在日常基础上的客户的接洽.
  • 玩得愉快 — — 我们都是一种非常综合的群. 我想要避免又一次的陈词滥调, 但在这种情况下它是真的很贴切 — — 我们努力工作 (排序的) 我们甚至更难玩 :). 有戏谑这里 Aaron Sorkin 种, 房间里总是充满了聪明的人, 我们喜欢我们的饮料和我们组织公平一些有趣的事件 — — 电影之夜, 棒球旅行 (即使他们是 可怕, 实际上邪恶团队).

如果我能总结它所有入一个单词, 我会使用这个词"领导力"。铅项目, 在建立这种做法方面发挥主导作用 (IP, 团队的构建), 等.

但等待! 还有更多! 不然为什么工作在激流回旋?

  • 卓越团结的意图 — — 每个人都想长大这件事. "这件事"是纽约办事处. 每个人都是在船上与此.
  • 风中你的风帆 — — 妹妹办事处, 姐姐的做法 — — 激流回旋是咨询组织的"全面服务". 我带领了 SharePoint 实践 ("实践领域引领"在激流回旋邱林). 我有妹妹在做法 11 激流回旋的其他办事处. 所以即使我是国王很远的地方作为 SharePoint 感到这里关注的是激流回旋纽约, 我在芝加哥有同行的做法, 西雅图, 达拉斯, 亚特兰大, 波士顿, 等. 从中可以借鉴那支持. 这真的是最好的两个世界 — — 在纽约,但吨的整个组织人才获得很大的自主权.
  • 风在您的销售 (2) — — 我们做更多比 SharePoint — — 更多. 我们做 BI, CRM, UX, 业务咨询, 移动, 自定义开发和其他人. 我们擅长于交叉销售我们自己和我们很好的在绘画 — — 和更重要的是, 为我们的客户交付后 — —"全程服务"图片. 这是对我的吸引力特别. 我已经在很多较小的组织,一遍又一遍工作对 SharePoint 场演出和沮丧,因为我们鸽子洞作为"SharePoint 人"。这不会发生与激流回旋和我们能接触到更多有趣的工作结果.
  • 本地模式 — — 没有旅行.
  • 长期的增长 — — 激流回旋一直未及时赶到. 很多的经济增长和稳定. 增长也意味着我们需要雇领导人今天到了新的队头作为我们添加更多的客户和工作人员,以支持这些客户端.

我就能, 但我已经大概已经持续太久. 我认为我已经抓住了本质在这里. 如果你想改变工作岗位,这看起来对你很好, 我们来谈谈.

如果你是快乐你目前的工作 — — 让我们说话反正 :). 我已经在很多地方,当时是很"幸福". 激流回旋是不同,我会欢迎机会说服你的.

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

快速、 方便: 在 Windows 应用程序商店中的列表框中设置的项目大小

在 Windows 应用程序商店我创造, 我想要向用户显示不同的信息性消息。  我拿一个列表框作为工具来显示它,这样,他们可以滚动浏览他们和所有的好东西。 

消息只是信息性, 所以您不需要提供他们周围的所有多余空白,因为用户永远不能选择他们的东西。  列表框中的默认行为提供了大量的填充和我想要摆脱它。  嗯....... 你不能直接做这样的事在列表框中。  然而, 你可以到你添加的项目:

        私人 无效 AddGameStateLogMessage(字符串 留言者)
        {
            TextBox t = 新增功能 文本框();
            t.Text = GameStateCounter     + ": " + 留言者;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            厚度 thisPadding = 新增功能 厚度(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem 李 = 新增功能 ListBoxItem();
            零内容 = t;
            零MaxHeight = 25;
            thisPadding = 新增功能 厚度(5, 0, 5, 0);
            零填充 = thisPadding;

            GameStateLog.Items.Insert(0,李);
        }

在上面, 我创建一个文本框并设置其字体, 其填充, 等.

下一步, 创建 ListBoxItem 并将其内容设置为格式文本框.

最后, 列表框中插入 ListBoxItem。  (我想要显示在列表的顶部的最新消息, 因此插入(0,李) 而不是简单的添加() 调用。).

我将调整这一点,再真高兴与列表框行为但上面显示的模式已经非常富有成效。  希望别人发现它很有帮助.

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin