今天看了一下留言,发现负面的居多,细想大概是以下的原因
- 表达能力有问题
- 中文表达能力有问题
- 用中文表达一个方案的能力有问题
- 这个方案太过简约(或者太过简陋),让人无法理解
希望在后面的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 Project |
This Project |
|
Development tool |
Visual Studio |
Sharepoint Designer |
Manager |
Webpart manager |
Jquery Framework |
Webpart |
ASP.net2 Webpart |
HTML Div |
Content Display |
Within Webpart |
XSLT |
Logic |
Within Webpart or View |
View / XSLT |
Ajex |
Ajex Webpart |
JQuery Framwork |
Font/color/layout |
within webpart or CSS |
CSS |
Javascript |
not easy with webpart or ASPX |
easy |
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 )
' sPortalURL is Server URL (such as http://devweb4.mymoss.com
' sListName is List name (such as Shared Documents )
' sException is Error information
Dim doesUserHaveAccess As Boolean = False
Dim spSite As SPSite = Nothing
Dim spWeb As SPWeb = Nothing
Dim spbuffer As String = Nothing
Dim url As String = sListName + SPFilename
sException = ""
Try
spSite = New SPSite(sPortalUrl)
If (String.Compare(spSite.Url, sSPSUrl) = 0) Then
spWeb = spSite.RootWeb
Else
spWeb = spSite.OpenWeb(sSPSUrl)
End If
spSite.CatchAccessDeniedException = False ' turn off force login
spbuffer = spWeb.GetFileAsString(url).ToString
Catch ex As Exception
spbuffer = sException
Finally
If Not (spSite Is Nothing) Then
spSite.Dispose()
End If
If Not (spWeb Is Nothing) Then
spWeb.Dispose()
End If
End Try
Return spbuffer
End Function