我想知道我是否可以对sharepoint webparts和Visual Studio结构的最佳实践有所了解。我的意思是,我有几个sharepoint表单应用程序项目,在他们的项目中都有几个选项卡或页面(管理页面,查看记录页面等),并且都在同一个盛大的内部网络和#34;公司项目。我看到很多教程和其他网站似乎都在单独的解决方案中制作所有的Web部件,而不是。我有三个问题:
1。)每个"部分"表单项目,即使它的另一个页面位于不同的webparts或同一个项目中?我会想到后者,因为如果它在另一个项目中,那么在运行期间很难获得控制权。
2.。)应该是同一个主内部网项目的其他形式,但在自己的Visual Studio项目中是否在同一个解决方案中?或者不同的。
3。)类库...它们是否与WPF或ASP.net完全相同?
答案 0 :(得分:1)
那真的取决于你的要求。大多数时候我使用WebPart作为包装来动态加载我的UserControls(在不同的项目中,但在同一个解决方案中)。如果您需要更“静态”的东西,我建议使用Application Page而不是WebPart。
我会尝试用一个例子来解释它:
假设您想创建一个可以帮助您的项目经理完成工作的解决方案(哈哈:-)。你会把这个应用称为“PM App”。它由3部分组成:问题跟踪器,时间跟踪器和报告应用程序。
显然,第一步是创建名为“PM App”的空白解决方案。由于解决方案的所有3个部分都有一些共同点,例如记录器组件或DataAccessLayer,因此您将创建一个名为“Common”的新项目。
那真的取决于你的解决方案设计。让我们说我们去寻找WebPart / UserControl解决方案。您创建一个名为“SP PM”的新项目,这是一个SharePoint项目(实际上,我还没有为此项目找到合适的名称)。然后为解决方案的每个部分创建一个WebPart(IssueTrackerWebPart等...)。现在,如果每个WebPart只有1个UserControl,那么很容易。 WebPart基本上充当UserControls的包装器。
如果您(想)拥有多个UserControl,那就非常棘手。我总是最终创建一个名为“UserControls”的新ASP.NET WebApplication项目,并在那里添加我的UserControls。这样做的问题是引用“SP PM”项目中的UserControls。 引用dll是没有问题的,另一方面引用.ascx文件是。
我所做的是将.ascx文件从我的“UserControls”项目复制到我的“SP PM”项目,并使用后期构建的脚本。我知道这绝对不是最好的解决方案,但是我和很多其他开发者谈过这个问题,但到目前为止还没有人找到更好的解决方案。
这在SharePoint上下文中是一个非常棘手的问题(实际上与其他任何内容一样),据我所知,并没有任何最佳实践。最好的办法是和你的开发人员一起坐下来,问他们如何创建解决方案/项目结构,然后找到一个好的中途。
tl; dr没有“通用”方式 - 实际上取决于您的要求。
我很快就把这个解决方案放到了我认为它看起来如何:
希望这对你有意义,并随时问你是否还有其他问题。此外,我想听听一些关于其他人如何处理这些问题的意见: - )