推荐阅读

深入剖析UML用例图关系中包含 扩展和泛化之间的联系
UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。1、包含(include)UML用例图的包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。基用例控制与包含用例的关系,以及被包含用例的事件流是否会插入到基用例的事件流中。基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。UML用例图包含关系对典型的应用就是复用,也就是定义中说的情景。但是有时当某用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流抽象成为一个被包含的用例;相反,用例划分太细时,也可以抽象出一个基用例,来包含这些细颗粒的用例。这种情况类似于在过程设计语言中,将程序的某一段算法封装成一个子过程,然后再从主程序中调用这一子过程。 例如:业务中,总是存在着维护某某信息的功能,如果将它作为一个用例,那新建、编辑以及修改都要在用例详述中描述,过于复杂;如果分成新建用例、编辑用例和删除用例,则划分太细。这时包含关系可以用来理清关系。2、扩展(extend)UML用例图的扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(ExtensionPoint)上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。对于一个扩展用例,可以在基用例上有几个扩展点。例如,系统中允许用户对查询的结果进行导出、打印。对于查询而言,能不能导出、打印查询都是一样的,导出、打印是不可见的。导入、打印和查询相对独立,而且为查询添加了新行为。因此可以采用扩展关系来描述:

电脑软件卸载后往往有残留文件,怎样防止其死灰复燃
电脑中的软件在卸载的过程中,往往有残留文件,很容易死灰复燃。那怎样彻底清除呢?方法一、重启电脑有的残留文件必须重启电脑才能彻底清除。方法二、用杀毒软件清除残留1.打开杀毒软件或者软件管家2.点击【一键清理】结语:软件的恶意捆绑下载和卸载困难一直是互联网的顽疾,所以下载软件请谨慎。

Win7 显卡硬件加速灰色不可用的恢复方法
在装WIN7系统默认是完全加速的,但因为某些软件必须得降低加速性能才能勉强运行,但WIN7硬件加速选项是灰色不可用。在装WIN7系统默认是完全加速的,但因为某些软件必须得降低加速性能才能勉强运行,但WIN7硬件加速选项是来色不可用,所有以前的老方法似乎不太可行。WIN7显卡硬件加速哪些里设置相信就不需要再次说明了。下面主要说说Win7显卡硬件加速灰色不可用的恢复方法。在疑难解答这里的【更改设置】按扭是灰色不可设置的。其实要解决 疑难解答这里的【更改设置】按扭不可用这个问题不是很难,把本文最下面提供的deskadp.dll,deskmon.dll,deskperf.dll替换掉系统里的windows/system32文件夹下的三个相应的文件,可以达到打开调节硬件加速选项的功能。也就是不再“灰色了”,但是,未必所有的win7都有右键有“管理员取得所有权”这个选项,(原因不明)所以,先把下载下面压缩包的文件中有一个导入.reg,双击即可直接导入就可以了获得管理员权限了,当然最好先备份你的注册表(虽然我每次操作都是很安全的)。导入之后在system32里找到上面提到的三个dll文件,右键选择“管理员取得所有权”然后把下面提供的三个dll文件替换过去就行了。设置完之后就可以看到疑难解答这里的更改设置按扭就可以用了。

Word2007中稿纸加载项不显示的解决方法
使用word2007打印稿纸时,发现“稿纸设置”选项不显示。几番操作,终于成功。今天,小编就教大家在Word2007中稿纸加载项不显示的解决方法。 Word2007中稿纸加载项不显示的解决步骤如下: 1、打开word 新建页面,在“页面布局”中应该有“稿纸设置”。若不显示,可按下面步骤操作: 2、点击下图左上角图标,如图红箭头所指。 3、弹出下图窗口,在右下角找到“word选项”,单击。 4、在弹出窗口中选择“加载项”如下图箭头所指。 5、在弹出窗口中选择“稿纸向导加载项”如下图箭头所指。 6、点击“确定”后,在“页面布局”中就可以看到“稿纸设置”。Word2007中稿纸加载项不显示的解决
最新发布

moss 2010 如何取到MOSS列表中item的链接
SPListItem的Url属性返回的不是绝对路径,形式如下面:http://cary/Lists/Discussion/itemtitle 这种形式是不能作为链接打开的,很多时候我们在取到这个item的同时还要得到这个item的url,比如你筛选出列表中指定的数据并发邮件给相关人员的时候,在邮件的内容中就需要有个这个item的链接。Moss中提供了一个PAGETYPE枚举,具体如下表:我们就可以通过如下代码来得到item的链接: SPList list = site.Lists.GetList("/Lists/Discussion "); SPListItem item = list.Items[id]; String strUrl=list.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url + "?ID=" + item.ID利用这个可以得到下面形式链接:http://cary/Lists/Discussion/DispForm.aspx?ID=680 这个就可以作为链接打开了. 附录: DataTable dt = new DataTable(); dt.Columns.Add("标题"); dt.Columns.Add("路径"); SPSite site = new SPSite("http://sharepoint02:9003"); SPWeb web = site.OpenWeb(); SPList list = web.GetList("/Lists/List1"); String strUrl = ""; for (int i = 0; i < list.Items.Count; i++) { strUrl = list.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url + "?ID=" + list.Items[i].ID; DataRow dr = dt.NewRow(); dr["标题"] = list.Items[i].Title; dr["路径"] = "<a href='/" + strUrl + "'>" + list.Items[i].Title + "</a>"; dt.Rows.Add(dr); }

moss 2010 ...处不存在任何项目。项目可能已被其他用户删除或重命名 解决方法
位置 http://portal/Pages/Show...aspx?id=..&list=..处不存在任何项目。项目可能已被其他用户删除或重命名。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: Microsoft.SharePoint.SPException: 位置 http://portal/Pages/ShowArticle.aspx?id=19&mylist=866e1c61-f4a5-46ec-9773-9bb1caf1109c 处不存在任何项目。项目可能已被其他用户删除或重命名。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪: [SPException: 位置 http://portal/Pages/ShowArticle.aspx?id=19&mylist=866e1c61-f4a5-46ec-9773-9bb1caf1109c 处不存在任何项目。项目可能已被其他用户删除或重命名。] Microsoft.SharePoint.SPContext.get_Item() +1447 Microsoft.SharePoint.SPContext.get_ListItem() +31 Microsoft.SharePoint.Publishing.TemplateRedirectionPage.ComputeRedirectionVirtualPath(TemplateRedirectionPage basePage) +687 Microsoft.SharePoint.Publishing.Internal.CmsVirtualPathProvider.CombineVirtualPaths(String basePath, String relativePath) +101 System.Web.Hosting.VirtualPathProvider.CombineVirtualPaths(VirtualPath basePath, VirtualPath relativePath) +40 System.Web.Hosting.VirtualPathProvider.CombineVirtualPathsInternal(VirtualPath basePath, VirtualPath relativePath) +31 System.Web.UI.DependencyParser.AddDependency(VirtualPath virtualPath) +18 System.Web.UI.DependencyParser.ProcessDirective(String directiveName, IDictionary directive) +8618976 System.Web.UI.PageDependencyParser.ProcessDirective(String directiveName, IDictionary directive) +22 System.Web.UI.DependencyParser.ParseString(String text) +141 System.Web.UI.DependencyParser.ParseFile(String physicalPath, VirtualPath virtualPath) +209 System.Web.UI.DependencyParser.GetVirtualPathDependencies() +169 System.Web.Compilation.TemplateControlBuildProvider.GetBuildResultVirtualPathDependencies() +36 System.Web.Compilation.BuildManager.GetVirtualPathDependencies(String virtualPath) +68 Microsoft.SharePoint.ApplicationRuntime.SPVirtualFile.CalculateFileDependencies(HttpContext context, SPRequestModuleData basicRequestData, ICollection& directDependencies, ICollection& childDependencies) +769 Microsoft.SharePoint.ApplicationRuntime.SPDatabaseFile.EnsureDependencies(HttpContext context, SPRequestModuleData requestData) +835 Microsoft.SharePoint.ApplicationRuntime.SPDatabaseFile.EnsureCacheKeyAndViewStateHash(HttpContext context, SPRequestModuleData requestData) +1385 Microsoft.SharePoint.ApplicationRuntime.SPDatabaseFile.GetVirtualPathProviderCacheKey(HttpContext context, SPRequestModuleData requestData) +39 Microsoft.SharePoint.ApplicationRuntime.SPVirtualFile.GetVirtualPathProviderCacheKey(String virtualPath) +245 Microsoft.SharePoint.ApplicationRuntime.SPVirtualPathProvider.GetCacheKey(String virtualPath) +71 Microsoft.SharePoint.Publishing.Internal.CmsVirtualPathProvider.GetCacheKey(String virtualPath) +47 System.Web.Hosting.VirtualPathProvider.GetCacheKey(VirtualPath virtualPath) +23 System.Web.Compilation.BuildManager.GetCacheKeyFromVirtualPath(VirtualPath virtualPath, Boolean& keyFromVPP) +27 System.Web.Compilation.BuildManager.GetVPathBuildResultFromCacheInternal(VirtualPath virtualPath) +24 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +59 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +101 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +126 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +62 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +33 System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +40 System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +160 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +93 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 解决办法:自定义的页面,参数名称不能使用ID,List,View等系统已经使用的,调试的时候不会出现什么症状,但是实际部署好后,会随机出现以上错误!请小心使用

SharePoint 母版页定制实例教程
我们使用SharePoint做门户网站,经常需要定制母版页,但是2010提供的Ribbon的方式,定制干掉了他以后,使用起来会发生不便,很多功能接口都需要从Ribbon里面进入,编辑也会无法编辑等出现各种问题,或者弹出脚本异常等。所以,我们要考虑下其他的方式,更加合理的使用Ribbon和左侧导航。 方法一 使用JS脚步的方式 所以就想用JS隐藏的方式,处理一下母版页,把不需要的默认隐藏掉,然后通过url传参,在需要的时候,把Ribbon还原回来。这就是我的思路,给大家看看我做的例子吧。 如下图,是引用的SharePoint默认母版页的一个页面,大家很熟悉吧,V4.master就是我引用的母版页,效果就是这样的,我要处理掉Ribbon和左侧导航,因为要做门户首页嘛,这两个挺碍事儿的,呵呵。 通过IE开发工具栏,找到Ribbon和左侧导航区域的id,分别是” s4-ribbonrow”和” s4-leftpanel”,使用脚本把这两个东西隐藏掉,就变成了下图我们需要的效果,中间灰色区域是PlaceHolderMain的区域,我加了一个Div,方便识别和调整。 我们要做的不仅仅是隐藏,还要在Url上传一个参数,我这里明明为“show”,通过JS获取到参数,然后进行操作,如果有参数show并且show的值是“true”的情况下,我们把ribbon和左侧导航还显示出来。

SharePoint 如何部件通过EditorPart自定义属性面板
需求:编写一个新闻展示的WebPart,要求可以分类,类别是从WebService中获取的字符串,要求可以在属性中勾选分类,显示该分类的信息,分类可能会增加。我要做的就是动态生成属性中的新闻类别,至于新闻展示就很简单了。 首先,新建一个WebPart的类,然后添加引用,添加强命名,修改输出路径到bin下,然后加到网站中,引用进去,方便查看效果。 然后,添加另一个类,EditorPart类,我们要做的,就是生成我们的控件,然后重写EditorPart的两个方法,来把类别输出到SharePoint属性面板中去。 protected override void CreateChildControls()//初始化控件public override bool ApplyChanges()//保存设置public override void SyncChanges()//初始化EditorPart protected override void CreateChildControls()//初始化控件 这个函数,是初始化控件的,编写方法,我们需要的控件,我这里只是需要CheckBox做勾选,还有一个Button做全选。

SharePoint 如何读取选项字段所有Choise
对象模型SPFieldChoiceSPSite site = SPContext.Current.Site;SPWeb web = site.OpenWeb(SubWebUrl);SPList list = web.Lists[ListName];SPFieldChoice fieldchoice = (SPFieldChoice)list.Fields["年份"];for(int i=0;i<fieldchoice.Choices.Count;i++){ writer.write( fieldchoice.Choices[i].ToString());}

Sharepoint 如何自定义WebService 找不到网站应用程序
错误描述:Net 开发WebService调用Microsoft.SharePoint.dll的服务器端对象模型,出现找不到网站的应用程序,或者出现500错误。错误截图:[Webservice调用页错误] [完整的错误提示] [WebMethod(Description = "获取WebID")]public string GetWebID(string SiteUrl){

SharePoint 如何搜索爬网第三方网站配置
SharePoint的搜索着实强大,而且最近用到SharePoint搜索第三方爬网,感觉收获挺大,而且网上资料没找到太多类似的,就小记录一下,分享给大家。 首先,我自己写了一个net页面,里面读取所有我需要内容,充当SharePoint爬网的数据源,对这个页面进行爬网,页面如下图: 然后,打开SharePoint管理中心,搜索设置,新建内容源Crawl,爬网http://moss:9000,如下图。爬网设置可以按照自己的需要进行设置,比如想要爬网页面深度,可以进行设置,我的爬网,只是爬网页面下面的链接,所以深度设置为1;设置完成,先不要爬网,还需要设置爬网规则。设置爬网规则: 打开爬网规则,设置路径,我的路径是9000端口下的所有页面,所以设置为http://moss:9000/*,当然,你的规则应该按照需要进行设置,可以排除这些路径,也可以包含这些路径,同时,如果有爬网到的任何结果,都可以在这里进行排除。 特别的是,我的页面上的链接,包含“?”问号,所以勾选了对复杂的URL进行爬网,下面的指定认证,可以选择认证的账号,如果需要Form认证的网页,可以设置指定其他内容访问账户【特别:如果登录需要验证码的,SharePoint是无法爬网的】。设置完爬网规则,点击确定保存,然后可以对Crawl内容源进行完全爬网了。对Crawl内容源进行完全爬网,查看爬网日志,如下图:

SharePoint 开发TimerJob 介绍
项目需要写TimerJob,以前也大概知道原理,不过,开发过程中,还是遇到一些问题,网上看了好多博客,也有写的灰常好的,不过,自己还是想再写一下,也算是给自己一个总结,也算给大家多一个参考吧。 TimerJob项目结构,主要有两个Class,一个是用来定义TimerJob功能的,一个是用来部署开发好的TimerJob的,分别继承两个不同的类。如下图,先建一个如下结构的项目: 文件描述:TimerJob定义类:ModifyTitle.cs(继承自SPJobDefinition)TimerJob安装类:ModifyTitleInstall.cs(继承自SPFeatureReceiver)激活TimerJob的Feature.xml添加强命名,因为将来生成的dll是要放到GAC里面去的

SharePoint 管理中心TimerJob”计时器作业定义”页面报错
部署完成自己开发的TimerJob,发现“计时器作业定义”页面报错,进不去了,但是TimerJob可以正常运行,这样,肯定不行的,估计还是代码有问题,把这个脆弱的sharepoint页面搞死了。如下图,http://URL/_admin/ServiceJobDefinitions.aspx未知错误,最烦人了,而且改了web.config也不抛冷静下来,想了一下,可能有问题的几个点:1、配置文件格式问题,删了配置文件,依然报错,而且格式有问题,基本上Timer服务起不来。2、读取配置文件有问题,但是程序是控制台调好的,不应该。3、本身有问题,这个先不靠谱,因为没改过,不应该。4、代码本身有问题。所以,查看日志,sharepoint日志和windows应用程序日志查看windows应用程序日志,发现:

SharePoint 单列表模糊查询SPD定制
应用场景:项目中总会遇到一些列表,存着是用户、项目等数据,而我们需要查询有哪些项目,这时候,就需要用到模糊查询了,而这样的查询,基本不需要跨列表,所以,也没必要配置复杂的搜索,用Designer(简称spd)配置数据视图,就可以做到。如下图,我们先建个测试列表,插入测试数据,比较乱,大家不要见笑啊。打开spd,打开网站,根据母版页新建一个页面(当然,你开心的话,也可以建一个页面布局,新建一个页面,只要能用spd,就OK),如下图:然后,插入数据视图(先选中要插入数据视图的位置,最好在spd设计模式下,然后插入就可以了,否则位置可能不太准),如下图显示我们要查询的列表数据,如下图然后,选择我们需要的字段(我这里用了标题、创建时间),插入多项目视图(其他选项也有应用场景,有兴趣可以试试)