moss web part 开发部署详解

废话不多说,我将我在项目中使用的方法记录一下,一方面总结总结,另一方面从最基本的写起博客。

大家知道,开发webpart的方法是先开发自定义控件,而自定义控件只能在webapplication或者winform application中创建。这里我选择创建web application。当创建好user control 后,接下来就是创建web part了。

在同一个solution下添加一个 console library 项目,这个主要用来发布webpart。为了便于管理,我们先创建一个名为webpart的文件夹,里面再包含各自webpar的子文件夹。同时不要忘记添加user control代码中用到的逻辑层,数据访问层和sharepoint dll reference

以上就是一个截图,我们将创建一个名为LoblevelTracker的web part.接下来我们将web application中的user control 引用进来。注意这里只是加一个引用,而非copy。这样你在web application 中修改了user control ,而这边也会跟着修改。接下来我们必须创建三个文件。如图所示.首先解释一下wpLOBLevelTracker.cs

代码如下

ExpandedBlockStart.gif代码
 1 namespace PMO.MetLifeSecurity
 2 {
 3     [Guid("277D4B01-E98C-44c2-867B-EB70A44188D6")]/*一个唯一的guid*/
 4     public class wpLOBLevelTracker : System.Web.UI.WebControls.WebParts.WebPart
 5     {
 6         private UserControl objUserControl;
 7 
 8         protected override void CreateChildControls()
 9         {
10             base.CreateChildControls();
11             this.Controls.Clear();
12 
13             try
14             {
15                 objUserControl = (UserControl)Page.LoadControl(Constants.WEBPART_PATH + "LOBLevelTracker/LOBLevelTracker.ascx");/*load 这个user control,注意这里的Constants.WEBPART_PATH的值为"/_CONTROLTEMPLATES/",其实它指向moss的系统文件夹的目录。全称为”C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES".*/
16                 this.Controls.Add(objUserControl);
17             }
18             catch (Exception ex)
19             {
24                 throw new SPException(ex.Message);
25             }
26         }
27 /*将usercontro显示到页面*/
28         protected override void Render(HtmlTextWriter writer)
29         {
30             EnsureChildControls();
31             base.Render(writer);
32         }
33     }
34 }

 接下来我们看一下wpLOBLevelTracker.webpart文件中的内容,这是一个纯xml文件。

 

ExpandedBlockStart.gif代码
<?xml version="1.0" encoding="utf-8"?>
<webParts>
  
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    
<metaData>
      
<!--
      The following Guid is used as a reference to the web part class, 
      and it will be automatically replaced with actual type name at deployment time.
      
-->
      
<type name="PMO.MetLifeSecurity.WebParts.LOBLevelTracker.wpLOBLevelTracker,PMO.MetLifeSecurity,Version=1.0.0.0,Culture=neutral,PublicKey=93c5433da928d5eb" />
      
<importErrorMessage>Cannot import LOB Level Tracker Web Part.</importErrorMessage>
    
</metaData>
    
<data>
      
<properties>
        
<property name="Title" type="string">LOB Level Tracker</property>
        
<property name="Description" type="string">LOB Level Tracker</property>
      
</properties>
    
</data>
  
</webPart>
</webParts>

 

这里最重要的就是type节点。PMO.MetLifeSecurity.WebParts.LOBLevelTracker.wpLOBLevelTracker是指向了该wpLOBLevelTracker.cs的路径。后面则为该solution的dll。

接下来看看第三个文件内容

 

ExpandedBlockStart.gif代码
<?xml version="1.0" encoding="utf-8"?>
<Elements Id="277D4B01-E98C-44c2-867B-EB70A44188D6" xmlns="http://schemas.microsoft.com/sharepoint/" >
  
<Module Name="WebParts" List="113" Url="_catalogs/wp">
    
<File Path="wpLOBLevelTracker.webpart" Url="wpLOBLevelTracker.webpart" Type="GhostableInLibrary" />
  
</Module>
</Elements>

 

这里的guid必须和cs文件中一样。module结点不需变化,filepath就是该webpart的名称。到目前为止,我们的webpar创建已经结束了,接下来就是部署了。部署一般分为两类,一个就是在端口的bin下面,一个就是gac中。不管在哪个下面,我们首先必须将端口下面的web.config文件修改。路径一般为C:\Inetpub\wwwroot\wss\VirtualDirectories\8096(端口号是你用的端口)。首先必须再safecontrols结点下,将我们的webpart项目添加进去。如果发布在gac中的话,我们必须将引用的项目也加入进去。

<SafeControl Assembly="PMO.MetLifeSecurity, Version=1.0.0.0, Culture=neutral, PublicKeyToken=93c5433da928d5eb" Namespace="PMO.MetLifeSecurity" TypeName="*" Safe="True" />

其次在compilation结点中加入

<add assembly="PMO.MetLifeSecurity, Version=1.0.0.0, Culture=neutral, PublicKeyToken=93c5433da928d5eb" />

 

如果项目中使用了application.config文件,我们必须将application.config加入到根目录中。同时在appSettings 节点中加入文件名。

 <appSettings file="Application.config">

 

trust level 必须设为full

<trust level="Full" originUrl="" />
最后不要忘记把connectionstring放入connectionStrings结点中。 最后我们可以发布了,如果发布在端口的bin下面,直接将build后的dll进去,如果在gac中,则将dll直接拖入gac的目录下即可。

转载于:https://www.cnblogs.com/clark_lu/archive/2010/04/15/1712327.html

基于数据挖掘的音乐推荐系统设计与实现 需要一个代码说明,不需要论文 采用python语言,django框架,mysql数据库开发 编程环境:pycharm,mysql8.0 系统分为前台+后台模式开发 网站前台: 用户注册, 登录 搜索音乐,音乐欣赏(可以在线进行播放) 用户登陆时选择相关感兴趣的音乐风格 音乐收藏 音乐推荐算法:(重点) 本课题需要大量用户行为(如播放记录、收藏列表)、音乐特征(如音频特征、歌曲元数据)等数据 (1)根据用户之间相似性或关联性,给一个用户推荐与其相似或有关联的其他用户所感兴趣的音乐; (2)根据音乐之间的相似性或关联性,给一个用户推荐与其感兴趣的音乐相似或有关联的其他音乐。 基于用户的推荐和基于物品的推荐 其中基于用户的推荐是基于用户的相似度找出相似相似用户,然后向目标用户推荐其相似用户喜欢的东西(和你类似的人也喜欢**东西); 而基于物品的推荐是基于物品的相似度找出相似的物品做推荐(喜欢该音乐的人还喜欢了**音乐); 管理员 管理员信息管理 注册用户管理,审核 音乐爬虫(爬虫方式爬取网站音乐数据) 音乐信息管理(上传歌曲MP3,以便前台播放) 音乐收藏管理 用户 用户资料修改 我的音乐收藏 完整前后端源码,部署后可正常运行! 环境说明 开发语言:python后端 python版本:3.7 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:pycharm
MPU6050是一款广泛应用在无人机、机器人和运动设备中的六轴姿态传感器,它集成了三轴陀螺仪和三轴加速度计。这款传感器能够实时监测并提供设备的角速度和线性加速度数据,对于理解物体的动态运动状态至关重要。在Arduino平台上,通过特定的库文件可以方便地与MPU6050进行通信,获取并解析传感器数据。 `MPU6050.cpp`和`MPU6050.h`是Arduino库的关键组成部分。`MPU6050.h`是头文件,包含了定义传感器接口和函数声明。它定义了类`MPU6050`,该类包含了初始化传感器、读取数据等方法。例如,`begin()`函数用于设置传感器的工作模式和I2C地址,`getAcceleration()`和`getGyroscope()`则分别用于获取加速度和角速度数据。 在Arduino项目中,首先需要包含`MPU6050.h`头文件,然后创建`MPU6050`对象,并调用`begin()`函数初始化传感器。之后,可以通过循环调用`getAcceleration()`和`getGyroscope()`来不断更新传感器读数。为了处理这些原始数据,通常还需要进行校准和滤波,以消除噪声和漂移。 I2C通信协议是MPU6050与Arduino交互的基础,它是一种低引脚数的串行通信协议,允许多个设备共享一对数据线。Arduino板上的Wire库提供了I2C通信的底层支持,使得用户无需深入了解通信细节,就能方便地与MPU6050交互。 MPU6050传感器的数据包括加速度(X、Y、Z轴)和角速度(同样为X、Y、Z轴)。加速度数据可以用来计算物体的静态位置和动态运动,而角速度数据则能反映物体转动的速度。结合这两个数据,可以进一步计算出物体的姿态(如角度和角速度变化)。 在嵌入式开发领域,特别是使用STM32微控制器时,也可以找到类似的库来驱动MPU6050。STM32通常具有更强大的处理能力和更多的GPIO口,可以实现更复杂的控制算法。然而,基本的传感器操作流程和数据处理原理与Arduino平台相似。 在实际应用中,除了基本的传感器读取,还可能涉及到温度补偿、低功耗模式设置、DMP(数字运动处理器)功能的利用等高级特性。DMP可以帮助处理传感器数据,实现更高级的运动估计,减轻主控制器的计算负担。 MPU6050是一个强大的六轴传感器,广泛应用于各种需要实时运动追踪的项目中。通过 Arduino 或 STM32 的库文件,开发者可以轻松地与传感器交互,获取并处理数据,实现各种创新应用。博客和其他开源资源是学习和解决问题的重要途径,通过这些资源,开发者可以获得关于MPU6050的详细信息和实践指南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值