MOSS项目开发 周记.docx_第1页
MOSS项目开发 周记.docx_第2页
MOSS项目开发 周记.docx_第3页
MOSS项目开发 周记.docx_第4页
MOSS项目开发 周记.docx_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MOSS项目开发 周记(第一周) 企业内部门户网站开发周记(第一周) 项目的用户人数大约在1000人左右经费折合人民币35万左右(不含硬件和软件许可证的费用)指定项目是基于MS MOSS2007的方案项目的目标是提供用户一个唯一的信息和服务入口项目时间18周。项目领导小组由包括CIO在内的5位主管组成项目工作小组由来自7部门的11人组成项目小组组成如下项目经理1人(兼职)技术主管1人Web设计1人(兼职)程序员1人(兼职)测试员1 人(兼职)第一周大家基本上还没有进入状况,只有技术主管一个人在忙,其他人都在打哈哈。一个wmware已经做好了,上面有MOSS2007和SQL2005, 即将作为技术验证平台之用MOSS项目开发 周记(第二周) (第二周) 项目人力预算项目实际执行情况项目经理1人(兼职)不变技术主管1人不变Web设计1人(全职)Web设计1人(兼职)- 因为项目后期,UI基本没有变化。被抽调到其他项目。程序员3人(全职)1人(后备)- 以防有人离职程序员1人(兼职)- 因为项目的设计思想和理念的改变,导致程序员过剩,2人被抽调到其他项目。测试员1 人(兼职)- 10-18 周不变 进行2次问卷调查分别针对普通用户和管理层。(回收率是21% 和55%)。工作小组会议- 回顾和小结现有的门户网站。- 为新的门户网站的设计定下基调。因为项目小组的人数不少,项目经理和技术主管决定设定一些规则来规范开发活动规则1:QA和Production服务器上不允许安装开发工具- 以前的开发,因为无法在开发环境排错,往往会有人要求在QA和Production服务器上安装开发工具。造成Production服务器和开发环境的不一致。事后小结-项目小组的缩水,Sharepoint Designer,XML和XSL 的使用,使得无需安装开发工具在QA和Production服务器。规则2:VB.NET 2005 被指定为开发语言,使用其他语言需要得到批准。- 因为项目经理和技术主管有vb的背景- 有些人喜欢大段的大段的从sdk上拷贝源码,不求甚解。转换到至少可以让他们学点东西事后小结- 项目结束时,用开发的源码不到250k, 这个规则有点多余。在SPS2003开设的项目的Team Site.开始编写项目执行计划project execution plan (PEP)MOSS项目开发 周记(第三周) (第三周)n 问卷调查的结果摘要:-现有门户网站的满意度超过80%背后怪话 既然大家都满意,为何要再做一个新的。难道真的是老板的话一句顶一万句?现有门户网站截图Top 3 不满意的地方- 主页的内容拥挤- 有些部分的内容经年不变- 互动性不足背后怪话 说一万道一千,就是三年多了应该换一换了,又不是没钱。n 上周的工作小组的会议记录摘要- 现有门户网站的设计思想是80%的内容1键可取,16%的内容2键可取。- 新的门户网站的设计思想修正为50%的内容1键可取,35%的内容2键可取。最好用户可以自定义(option)三个方向的工作。1:用户界面(User Experience)- 由Web设计负责2: 信息及服务目录 (Information Category)- 由工作小组负责3: 后端服务及其他 (Back-end & Others)-由项目小组负责n 开发进度Infra Support Team 通知项目开发和QA的服务器申请被拒,必须改用VMWARE ESX上的虚拟服务器。Database Team 通知MOSS2007开发专用的SQL2005已经就绪,但是Reporting Service不工作。技术验证报告MOSS2007和SPS2003的Object Model 差异性很大,主要是由.NET 1.1和.NET2.0差异造成。SPS2003上的源码再用性(Reuse)问题不小。技术主管提出Project Execution plan (项目执行计划)和Project Plan (项目计划)草稿(项目经理无异议)本周没有工作小组会议下周领导小组会议(Steering Committee Meeting)MOSS项目开发 周记 (第四周) 第四周为了完善项目规格书,几乎每天都开几个会议.领导小组会议记录摘要- 同意把信息目录分成四个子目录 (sub information category)1:企业 Corporate2:业务 Business3:服务 Services4:员工 People并且指定专人负责- 同意Web设计要求1:所有的Web显示控制应该在CSS中定义2:任何开发行为如果涉及到显示的改变,必须要事先沟通- Web设计被要求1:不能用图形格式来表示设计概念,必须用HTML2:必须在程序开发之前,提供所有的详细设计,- 同意项目小组提案1:新门户网站将引入Ajax2:放弃使用Sharepoint webpart3:在后台管理上,基本沿用MOSS2007缺省功能4:使用中间层来简化开发强度和人工5:批准Project Execution plan (项目执行计划)和Project Plan (项目计划)- 项目小组被要求1:在新门户网站使用blog,wiki的可能性2:如何有效的个人网站MOSS项目开发 周记(第五周) 第五周web设计向项目小组提出三种网站基色(1浅蓝,2土黄,3:翠绿)三种网站布局(1三列式,2四列式,3导航式)经过投票选中浅蓝导航式项目小组提出中间层架构技术线路走 MOSS2007 + Ajax + XML + XSL所有的MOSS List 和 Doc Lib 将通过一个或者几个ASP.NET 程序(Call MOSS Object Model) 来转换处理显示的格式全部放在XSL文件中,ASP.NET程序不涉及到任何显示。MOSS项目开发 周记(第六周) 周记(第六周) 中间层的version 0.1 完成,由一组VB.NET 2005组成其中最主要的只有一个viewlist.aspx,其他均由这个变化而来在web.config中设定SiteID所在的List的URL基本参数如下SiteID:SiteID 的Key. 根据key,从List中取得项目Site,CSS文件的URL,XSLT文件库的URL,项目的图库的URL及其他信息List: List 的名字View: List 中某个View的名字XSL: 控制显示XSLT文件的名字Mode: 控制项 - xml : 只显示xml格式- 其他: 配合xsl显示html格式一般的调用格式如下:http:/server/app/viewlist.aspx?SiteID=myproject&List=info&view=All&xsl=Summary.xsl&mode=xml或者http:/server/app/viewlist.aspx?SiteID=myproject&List=info&view=All&xsl=Summary.xsl&mode=noxml第一个调用是显示list转换后的xml,例如 - - - iPAQ 6818 for sale (S$700) Message1 2007-09-16T00:00:00+08:00 2008-07-15T00:00:00+08:00 73 - Brand New Playstation 3 for Sale - $700 Message 2 140 - Portable DVD for sale at $100 Message 3 142 第二个调用是显示html通过不同的view来改变控制条件,排序,通过改变xsl文件来改变html显示(其中也可改变控制条件,排序)结论通过这一层web显示这部分被分离出来缺点List中的项目item个数不可太大。经过多次热烈讨论,最后从几个Ajax framework中选择了JQuery.原因主要是web设计认为JQuery使用方便。项目组方面无所谓,都是调用javascript文件。结果发现JQuery的确是方便,大大降低了编程的强度。基本上每个html格式都是TitleTitle.配合css文件得到各种不同风格例如Latest HappeningsAnnouncementsBulletinCoursesEventsRC NewsIT NewsMy BookmarkPolicies, Procedure, GuidelinesSocial & RecreationalCommunications Resources项目组开始学习jquery,并且要求web设计把主要的改用remote方式(这就形成了另类的webpart).MOSS项目开发 周记(第八周) (第八周) 在Steering Committee Meeting 会议记录摘要web设计提出了网站的结构和main page以JQERUY为基础的框架Our Portal中间层viewlist.aspx 演化到version 0.5基本上确定由3个部件组成1:将sharepoint List 转化到 xml 格式以下是其中一段代码Function GetListXML(ByVal SPList As SPList, ByVal SPviewName As String, ByVal SPFolder As SPFolder) As String Dim buf As String = String.Empty Dim ViewGUID As String = SPList.Views(SPviewName).ID.ToString(B).ToUpper() Dim ds As New DataSet Dim Dt As DataTable = Nothing Dim SPQuery As SPQuery = New SPQuery() Dim SPListItems As SPListItemCollection SPQuery.Folder = SPFolder SPListItems = SPList.GetItems(SPQuery, ViewGUID) If SPListItems.Count 0 Then Dt = SPListItems.GetDataTable() ds.DataSetName = List Dt.TableName = View ds.Tables.Add(Dt) buf = ds.GetXml.toString() End If Return bufEnd Function2:从doc lib取出XSL 文件3:把已放在string中的xml和xsl进行转换(transform)得到htmlMOSS项目开发 周记(第九周) 第九周- 信息目录o 服务子目录(Services Category) 草稿完成下图是项目完成时的最终版o 员工子目录(People Category) 草稿完成下图是项目完成时的最终版结语 信息目录影响公司的方方面面,明争暗斗贯彻项目的全过程。- 界面设计o 结合中间层的框架演化到version 0.6o 遇到webpart 乱序显示问题 每次webpart显示的次序混乱,例如banner会跑到下面去。代码如下 - 中间层设计o 放弃XML+XSLS+参数的结构 无法进行离线开发(Offline development) 把参数转换到param 节点下1/11/2007 12:00 所有的信息包括实时信息均在XML中简单的开发流程如下 生成MOSS列表(Create List)并加入模拟数据(必须和设计的显示代码用的数据相符) 使用中间层生成XML 并保存在local 根据XML和web设计的显示代码(design code )设计 XSLT文件(XMLSPY或者Sharepoint designer) 测试XSLT文件以完全符合设计的显示代码 上载XSLT文件 使用中间层动态生成html码并且和web设计的显示代码再一次比较(有时因为工具不同会有细微差别) 把JQUERY中的静态HTML码改为使用中间层动态代码。laughee MOSS项目开发 周记(第十周) laughee | 2008-1-18 3:19:41 MOSS项目开发 周记(第十周) 第十周-信息目录o业务子目录(Business Category)o企业子目录(Corporate Category)-界面设计o演化到version 0.7 (解决webpart乱序问题)新的jquery代码JTC Platinum-ViewList.aspx o演化到version 0.7为了显示folder结构,增加3个tagfolderPath : Item的路径folderlevel: item的深度cfolderPath: 因为folderpath无法被javascript直接处理代码如下Function GetListXMLwithFolder(ByVal SPList As SPList, ByVal SPviewName As String, ByVal SPFolder As SPFolder) As String Dim buf As String = String.Empty Dim ViewGUID As String = SPList.Views(SPviewName).ID.ToString(B).ToUpper() Dim ds As New DataSet Dim Dt As DataTable = Nothing Dim SPQuery As SPQuery = New SPQuery() Dim SPListItems As SPListItemCollection SPQuery.Folder = SPFolder SPListItems = SPList.GetItems(SPQuery, ViewGUID) If SPListItems.Count 0 Then Dt = SPListItems.GetDataTable() Dim dc, dc1, dc2 As DataColumn dc = New DataColumn(FolderPath, Type.GetType(System.String) Dt.Columns.Add(dc) dc1 = New DataColumn(FolderLevel, Type.GetType(System.String) Dt.Columns.Add(dc1) dc2 = New DataColumn(cFolderPath, Type.GetType(System.String) Dt.Columns.Add(dc2) Dim dr As DataRow For Each dr In Dt.Rows dr(FolderPath) = FullPathForListFolder(SPList, SPFolder) dr(FolderLevel) = FolderLevel(SPList, SPFolder).ToString() dr(cFolderPath) = FullPathForListFolder(SPList, SPFolder).Replace(, ).ToString() Next ds.DataSetName = List Dt.TableName = View ds.Tables.Add(Dt) buf = buf + ds.GetXml.Replace(, ).Replace(, ) End If Return buf End Function- 开始考虑用Masterpage 和MOSS online Code 来简化项目的编码工作laughee MOSS项目开发 周记(第十一周) laughee | 2008-1-18 3:20:33 MOSS项目开发 周记(第十一周) 今天看了一下留言,发现负面的居多,细想大概是以下的原因- 表达能力有问题- 中文表达能力有问题- 用中文表达一个方案的能力有问题- 这个方案太过简约(或者太过简陋),让人无法理解希望在后面的blog会有改进(没有保证),写这个周记原本是为了给自己留个底,看客的留言会设法回答“开发人员大多有一种极端主义思想:好的要最好,精的要最精,全的要最全。”大道至简-p129如果看客是有这种思想,或者有这种倾向,就不应该继续看这篇周记,因为这个方案充满了对这种思想反动。第十一周这个方案中不会出现sharepoint的webpart。但是也不会直接使用OM来直接显示内容。在周记中出现的webpart其实是jquery中使用remote mode调用的Div block(Html).Kaneboy等所著的office sharepoit server 2007开发入门指南中有以下一段webpart也许对一般意义上的MOSS2007的应用非常重要,但是,在我们的这个门户网站并不是不可或缺的- 管理员如果不要开发人员的参与,很难完成界面的定制,除非管理员是有相当的水准,但是,管理员通常只有基本的水准,要让他们精通MOSS2007,是有点过分了。而且管理员也不会只管MOSS.- 门户网站一般由Designer精心设计,尤其是主页,很少可能调整。- 80%以上的webpart是把运算逻辑(business logic),内容显示(content presetation)封装在一起,一般意义上是优点,但是在我们的这个门户网站项目中,是个缺点。- webpart的部署不易,在多服务器的Server Farm环境里,webpart是放在本地,而不是在SQL2005。加上有时为了一个小小的问题,必须重新部署webpart,重起IIS服务。和本项目的追求最少维护最易维护的目标背道而驰。- Ajex和webpart有些八字不合,可以找到一些ajex webpart,用过以后,便知离开实用还有距离。- webpart受限于Sharepoint本身的原因,与javascript的耦合不是非常容易。下表是一些区别 MOSS ProjectThis ProjectDevelopment toolVisual StudioSharepoint DesignerManagerWebpart managerJquery FrameworkWebpartASP.net2 WebpartHTML DivContent DisplayWithin WebpartXSLTLogicWithin Webpart or ViewView / XSLTAjexAjex WebpartJQuery FramworkFont/color/layoutwithin webpart or CSSCSSJavascriptnot easy with webpart or ASPXeasy- webpart 也可以想办法做到运算逻辑,内容显示分离。但是,难度不小。- webpart 的调试困难,必须加载后才能调试,无法做到离线开发。- 对webpart的开发者有相当的要求,对本项目的开发效率,人员配备有极大影响。- webpart的重用性,经验告诉我们,往往只是停留在纸面上而已。综上所述,本项目的方案是一个离经叛道的,偏离了正常的MOSS开发的方案。项目的构想是有技术含量,项目的实施却是没有难度。大部分的工作(XSLT coding)都可以交由低级的开发人员完成。所以,想从这个周记中找到高技术,高挑战的人会非常失望,只能在这里说“抱歉”本项目有以下一些基本的认知- 这个门户网站的主要功能是信息的显示。信息的输入是有一小部分被称为“内容管理者(content owner)”负责。- 普通用户的界面(User interface)必须尽善尽美。而内容管理者的界面(Content Publishinterface)可以因陋就简。- 在无关大局的情况下,性能,安全是可以妥协的- 尽量使用成熟的技术,不到万不得已不用新技术。- 不要求最好,只要求正好满足需求- 不要求最精,只要求最简- 不要求最全,只要求最容易,容易管理,容易维护,容易升级,容易移植。- 能够使用缺省得资源,界面。坚决不做客制,开发。即使需要有些牺牲也在所不惜。下面的一段在viewlist.aspx中的如何从一个doc Lib里取得XSLT文件(其他的文件类型亦可)Function getFilebystring(ByVal sPortalUrl As String, ByVal sSPSUrl As String, ByVal sListName As String, ByVal SPFilename As String, ByRef sException As String) As String Summary (2005.07.19) - 2007.1.5 sSPSURL is Site URL (such as /sites/testPlatinum ) sPortalUR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论