RSS 2.0 Feed
2008-02 Entries
摘要:WSS 3.0 SDK 1.3MOSS 2007 SDK 1.3另外,WSS 3.0也发布了SP1之后的第一个比较大的hotfix package...[阅读全文]

posted @ | Feedback (1) | Filed Under [ SharePoint ]

摘要:这两天帮一个朋友调试使用BDC(Business Data Catalog)来连接MySql中的数据,发现不少需要特别注意的地方。在使用BDC连接时,MySql和MS Sql Server的区别还是很大的。我的朋友在服务器上是使用的MyODBC这个Driver。对于LobSystemInstance的定义,基本类似:<LobSystemInstance Name="MySQL_Lob">      <Properties>        <Property Name="rdbconnection Driver" Type="System.String">{MySQL ODBC 3.51 Driver}</Property>        <Property Name="rdbconnection server" Type="System.String">MySQL服务器名称</Property>        <Property Name="rdbconnection database" Type="System.String">MySQL Database名称</Property>        <Property Name="rdbconnection user" Type="System.String">root</Property>        <Property Name="rdbconnection password" Type="System.String">123456</Property>        <Property Name="rdbconnection option" Type="System.String">3</Property>        <Property Name="RdbConnection Trusted_Connection" Type="System.String">true</Property>        <Property Name="DatabaseAccessProvider" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider">Odbc</Property>        <Property Name="AuthenticationMode" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAuthenticationMode">PassThrough</Property>      </Properties></LobSystemInstance>不同的Database Driver,其Connection String是不同的。所以如果你使用的并非MyODBC Driver,那么LobSystemInstance的写法会有不同。由于我对MySQL并不熟悉,所以在写Entity的Method的时候,又遇到不少问题。其中之一是SQL语句的Parameter的问题。对于MS SqlServer,我们可以使用类似“@ParameterName”的格式来定义SQL语句中的参数。但是,这对于MySQL并不一定有效。使用不同的Database Driver去连接MySQL,对于参数,都有不同的定义方法。我搜索了一下MyODBC的文档,发现它不支持命名参数,而直接使用“?”来代表参数,然后按照顺序来添加参数的值。所以,在写Entity Method的SQL查询语句时,如果其中有参数,就只能写成类似:Select CustomerID, CustomerName, ContactName from Customers where CustomerID = ?但是Entity中Parameter的定义,仍然可以按与命名参数一模一样的写法即可。...[阅读全文]

posted @ | Feedback (0) | Filed Under [ SharePoint ]

摘要:此文是《关于SharePoint 2007的用户组和用户》一文最后一段的继续。关于SharePoint Server中的用户信息管理,choral也写过一篇相关的《SharePoint中的用户信息同步》。本文对相关的信息进行了更进一步的解释和说明。先上一副图(图中的A、B、C、D、E等标记是为了下面文字更容易指定图片中相应部分而用,下文用类似“A标记”、“B标记”来进行标识):  在一个标准的SharePoint Server服务器场部署模型中,一个用户的信息会同时存在于多个地方:1、Active Directory(“A标记”)在AD中会保存我们的基础信息,AD通常是企业中用户基础ID信息的所在。 2、SharePoint Server SSP User Profile(“C标记”)在SharePoint Server服务器场的共享服务(SSP)的用户配置文件(User Profile)中,也会保存用户的信息。SSP User Profile中的用户信息,是作为SharePoint服务器场中集中的用户信息存储所在。如果在SharePoint应用中需要存放一些用户的特定属性信息,建议就存放在SSP User Profile中。User Profile是可以进行属性扩展的,比如,管理员可以添加一个新的“QQ号码”属性。 User Profile中的用户信息默认是从AD中导入而来的(“B标记”标识了这个过程),在SSP User Profile管理中,我们可以配置这个导入过程,比如指定相隔多长时间就从AD中重新完全导入用户信息一次。 当SSP User Profile从AD中导入用户信息的时候,SSP会根据User Profile的属性映射定义,来决定将AD中用户的哪个属性的值,赋值给User Profile的哪个属性。比如,SSP会将AD中的“显示名称”这个属性的值,导入到User Profile的“名称”这个属性中。通过SSP管理中“编辑用户配置文件属性”这个页面,就可以编辑(或者取消)这种属性映射关系。如何修改保存在User Profile中的用户属性信息呢?首先,管理员可以在SSP管理中直接修改所有用户的属性信息。其次,每个用户通过自己的个人网站(“我的网站”),就可以修改自己的User Profile信息。 特别说明1:为什么用户不能修改某些属性?比如上图中的“名称”属性,默认就不能修改?在SSP User Profile管理中,管理员可以指定哪些属性允许用户自己修改,哪些属性不允许。比如,如果管理员允许用户自己修改User Profile的“名称”属性: 那么用户就可以在自己的个人网站修改“名称”属性的值了: 特别说明2:用户自己修改(或者管理员修改)了User Profile的值,但是岂不是在下一次从AD中完全导入用户信息时,又被覆盖成AD中的值了?是的。比如上面我们允许用户修改User Profile的“名称”属性的值,但是由于默认“名称”属性映射到AD中的“显示名称”属性,所以下一次进行AD完全导入(“B标记”)时,User Profile中用户的“名称”属性又被自动置成了AD中的“显示名称”的值。但是,管理员可以取消这种映射关系,比如,我们取消掉“名称”属性与AD“显示名称”属性的映射: 改成: 特别说明3:修改了User Profile中的用户信息,能否自动反向同步回AD?不能。除了从AD中导入User Profile信息之外,SharePoint还支持从其他数据源导入,比如LDAP Server。此外,你还可以用代码来往User Profile中添加用户的信息。3、SharePoint站点(“E标记”)在每个SharePoint站点中(更准确说应该是站点集中),还会保存每个站点用户的信息。这些信息是保存在各个站点的内容数据库的UserInfo表中(别直接修改数据库表,那不是一个好主意,正确做法是通过SPUser对象模型来访问SharePoint站点中的用户信息)。我们在页面右上方看到的那个“欢迎XXX”信息中的“XXX”,就来自SharePoint站点中存储的用户信息数据。 用户(以及管理员)不能直接修改存储在SharePoint站点中的用户信息,如果你试图修改,你只会看到这个: 当把用户第一次添加到SharePoint站点中时,SharePoint自动以用户的AD信息为基础,来写入到UserInfo表中。然后,“D标记”所示的同步操作,会将存储到SharePoint站点中的用户信息同步到User Profile中。同时,SharePoint Server还会自动定时的,将用户在User Profile中的信息,同步到各个SharePoint站点。这种同步是双向的。但是由于用户实际上不能在SharePoint站点中修改用户信息,所以实际上,这种同步绝大部分时候,都是将User Profile中的用户信息推送到SharePoint站点中。“D标记”所示的同步过程是由2个SharePoint计时器作用(Timer Job)来完成的,“配置文件同步”(进行完全同步)和“配置文件快速同步”(进行差量同步): 由于SharePoint Server是以User Profile来作为用户信息存储中心,所以SharePoint Server不允许用户直接修改存储在SharePoint站点中的用户信息,而是定时自动的将User Profile中的用户信息推送到每个站点中。也就是说,即使你手工修改了UserInfo表中存储的用户信息数据,或通过SPUser对象模型修改了用户的属性信息,但它们很可能很快就会又被自动的覆盖成User Profile中的值。我们应该通过修改User Profile用户信息,来达到更新和维护用户信息的目的。User Profile应该是整个SharePoint Server服务器场中唯一的用户信息存储中心。特别说明1:如何手工来快速进行“D标记”中所示的将User Profile用户信息同步到SharePoint站点用户信息的过程?尝试在服务器上手工执行下面两个stsadm指令:stsadm -o execadmsvcjobsstsadm -o sync特别说明2:为什么似乎“D标记”所示的同步过程,不能同步某些用户在SharePoint站点中的信息?因为“D标记”所示配置文件同步操作,只会同步那些SharePoint认为是SharePoint站点“活动用户”。一个用户是否是活动用户由UserInfo表中的某个字段来标识。当一个用户在站点中进行某些“确实的”操作时,比如上传一个文件,他就会自动被标记为“活动用户”。总结:简单来说,就如同第一张图片所示的那样,AD -> User Profile <-> Site User Info。...[阅读全文]

posted @ | Feedback (6) | Filed Under [ SharePoint ]

摘要:下载Visual Studio Extensions for SharePoint v1.1    User Guide1、此版本(1.1)稍后会发布中文版2、此版本仍然只支持Visual Studio 20053、此版本仍然必须安装在包含了SharePoint Server(或WSS)、Visual Studio的机器上4、下个版本(1.2)会支持Visual Studio 2008,大概年中发布...[阅读全文]

posted @ | Feedback (2) | Filed Under [ SharePoint ]

摘要:根据这篇文章,在微软刚过去的08财年第二季度(即日历年2007/10 - 2007/12这三个月),微软的SharePoint销售数据是10亿美元!如果你觉得人们不喜欢SharePoint,那么微软的利润报表会告诉你,不,无数人都很喜欢SharePoint!:)更新:应群主大S要求,如果您对MOSS开发有心得,欢迎加入目前来看似乎已经是最大的MOSS开发MSN群:group194869@xiaoi.com。...[阅读全文]

posted @ | Feedback (19) | Filed Under [ SharePoint ]

摘要:“WF本质论”(“Essential Windows Workflow Foundation”),其重要性确实可以与“COM本质论”相提并论。“WCF服务编程”(“Programming WCF Services”),基本上把WCF Developer应该了解的都讲到了。两本书的中文版翻译质量皆佳,值得推荐。另外对WPF基本没有了解,就不推荐了......[阅读全文]

posted @ | Feedback (5) |