مشاركة عبر


الإرشادات التفصيلية: توسيع الخادم مستكشف إلى عرض أجزاء ويب

في Visual Studio 2010, يمكنك استخدام عقدة الاتصالات SharePoint مستكشف الخادم لعرض المكونات على مواقع SharePoint. ومع ذلك، هناك بعض المكونات مستكشف الخادم لا يعرض بشكل افتراضي. في هذه معاينة سيتم توسيع مستكشف الخادم بحيث يتم عرضها جزء ويب متصل المعرض على كل موقع SharePoint.

توضح هذه الإرشادات التفصيلية المهام التالية:

  • إنشاء ملحق ‏‫Visual Studio يمتد مستكشف الخادم بالطرق التالية:

    • يقوم Access بإضافة عقدة جزء ويب معرض جديدة تحت كل عقدة في موقع SharePoint في مستكشف الخادم. تحتوي هذه العقدة الجديدة على العقد الفرعة التي تمثل كل "جزء ويب" في معرض "أجزاء ويب" على الموقع.

    • ويعرف هذا نوع جديد للعقدة التي تمثل مثيل "جزء ويب". نوع العقدة الجديد هو أساس العقد الفرعة ضمن العقدة جزء ويب معرض جديدة. يعرض نوع عقدة "جزء ويب" الجديدة معلومات في النافذة خصائص حول "جزء ويب" يمثله. وأيضا يتضمن نوع عقدة قائمة مختصرة مخصصة العنصر يمكنك استخدام كيؤشر لتنفيذ مهام أخرى متعلقة بـ "جزء ويب".

  • إنشاء مخصص جهازي صواب SharePoint تسمى بواسطة التجميع ملحق. تكون الأوامر SharePoint الطرق التي يمكن استدعاؤها بواسطة التجميعات ملحق استخدام واجهات برمجة التطبيقات (APIs) في SharePoint الخادم طراز الكائن. في هذه معاينة إنشاء الأوامر استرداد معلومات "جزء ويب" من موقع SharePoint المحلية على الكمبيوتر التطوير. لمزيد من المعلومات، راجع استدعاء في طرازات كائن SharePoint.

  • إنشاء حزمة ‏‫Visual Studio ملحق (VSIX) إلى نشر الملحق.

  • التصحيح والاختبار الملحق.

ملاحظة

للحصول على بديل الإصدار من هذه معاينة يستخدم طراز الكائن العميل SharePoint بدلاً من طراز كائن الخادم راجع الإرشادات التفصيلية: استدعاء إلى نموذج كائن عميل SharePoint في الخادم Explorer ملحق.

المتطلبات الأساسية

تحتاج إلى المكونات التالية على الكمبيوتر تطوير لإكمال هذه معاينة:

معرفة المفاهيم التالية مفيدة ولكن لا يتطلب إلى إكمال في معاينة:

إنشاء المشروع

لإكمال هذه معاينة هذه، تحتاج إلى إنشاء ثلاثة المشاريع:

  • مشروع VSIX إلى إنشاء حزمة VSIX إلى نشر الملحق.

  • مشروع مكتبة فئة بتطبيق الملحق. هذا صواب يجب توجيه .NET Framework 4.

  • مشروع مكتبة فئة تعريف الأوامر SharePoint مخصصة. يجب أن هذا المشروع استهداف the.NET Framework 3.5.

يبدأ التوضيح من خلال إنشاء المشاريع.

لإنشاء مشروع VSIX

  1. ابدأ Visual Studio.

  2. من القائمة File (ملف)، أشر إلى New (جديد)، ثم انقر فوق Project (مشروع).

  3. في مربع حوار المشروع جديد ، قم بتوسيع ‏‫#Visual C أو عقد Visual Basic ، ثم انقر فوق عقدة الامتداد.

    ملاحظة

    يتوفر العقدة القابلية للتوسعة فقط في حالة تثبيت SDK 2010 صواب. لمزيد من المعلومات، راجع قسم المتطلبات في الأعلى.

  4. في مربع التحرير والسرد في أعلى مربع الحوار ، حدد .NET Framework 3.5 أو .NET Framework 4 .

  5. تحديد القالب VSIX مشروع.

  6. في مربع الاسم , اكتب ChildMaster.

  7. انقر فوق موافق.

    Visual StudioبإضافةGenerateExternalDataLists المشروع إلى مستكشف الحلول.

إلى إنشاء ملحق المشروع

  1. في مستكشف الحلول, ينقر على اليمين عقدة الحل انقر فوق إضافةومن ثم انقر فوق مشروع جديد.

    ملاحظة

    في مشاريع Visual Basic عقدة الحل تظهر في مستكشف الحلول فقط عند تحديد إظهار الحل في خانة الفحص عام، مشاريع وحلول، مربع حوار الخيارات.

  2. في مربع حوار مشروع جديد ، قم بتوسيع ‫#Visual C أو عقد Visual Basic ثم انقر فوق Windows.

  3. في مربع التحرير والسرد في أعلى مربع الحوار ، حدد .NET Framework 3.5 أو .NET Framework 4 .

  4. تحديد قالب مشروع مكتبة الفئات.

  5. في المربع الاسم، اكتب X-UA-Compatible.

  6. انقر فوق موافق.

    Visual Studio يضيف DeploymentStepExtension المشروع صواب الحل ويتم فتح ملف التعليمات البرمجية Class1 الافتراضي.

  7. إحذف تعليمات برمجية ملف Class1 من المشروع.

إلى إنشاء مشروع الأمر SharePoint

  1. في مستكشف الحلول, ينقر على اليمين عقدة الحل انقر فوق إضافةومن ثم انقر فوق مشروع جديد.

    ملاحظة

    في مشاريع Visual Basic عقدة الحل تظهر في مستكشف الحلول فقط عند تحديد إظهار الحل في خانة الفحص عام، مشاريع وحلول، مربع حوار الخيارات.

  2. في مربع حوار مشروع جديد ، قم بتوسيع ‫#Visual C أو عقد Visual Basic ثم انقر فوق Windows.

  3. في مربع التحرير والسرد في أعلى مربع الحوار ، حدد .NET Framework 3.5 أو .NET Framework 3.5 .

  4. تحديد قالب مشروع مكتبة الفئات.

  5. في المربع الاسم، اكتب X-UA-Compatible.

  6. انقر فوق موافق.

    Visual StudioبإضافةWebPartCommands المشروع إلى الحل الافتراضي Class1 ويفتح تعليمات برمجية الملف.

  7. إحذف تعليمات برمجية ملف Class1 من المشروع.

تكوين المشروع

قبل أن تقوم بكتابة التعليمات البرمجية لإنشاء عنصر الملحق للمشروع ، أضف ملفات التعليمات البرمجية و مراجع التجميع لملحق المشروع .

إلى تقوم بتكوين المشروع WebPartNodeExtension

  1. في مشروع WebPartNodeExtension إضافة أربعة ملفات تعليمات برمجية ذات الأسماء التالية:

    • SiteNodeExtension

    • WebPartNodeTypeProvider

    • WebPartNodeInfo

    • WebPartCommandIds

  2. في قائمة المشروع انقر فوق إضافة مرجع .

  3. تشغيل التبويب .NET ، اضغط المفتاح 'Ctrl' ثم انقر فوق التجميعات التالية له ثم انقر فوق ‏‏موافق :

    • Microsoft.VisualStudio.SharePoint

    • النظام.ComponentModel.إنشاء

    • اطارات رسم النظام

  4. في مستكشف الحلول، يمين - انقر فوق عقدة المشروع WebPartNodeExtension وتحديد خصائص .

    يتم فتح مصمم المشروع.

  5. انقر فوق علامة التبويب التطبيق.

  6. في مربع ‏‏مساحة اسم الجذر "أو" مساحة الاسم المربع الافتراضي (C#) ( Visual Basic) ، نوع ServerExplorer.SharePointConnections.WebPartNode.

إلى تقوم بتكوين المشروع WebPartCommands

  1. في مشروع WebPartCommands إضافة ملف التعليمات برمجية يسمى WebPartCommands.

  2. في مستكشف الحلول, تحديد عقدة المشروع WebPartCommands.

  3. تشغيل تحديد القائمة مشروع إضافة عنصر موجود.

  4. في مربع حوار إضافة عنصر موجود ، استعرض إلى المجلد الذي يحتوي على ملفات تعليمات برمجية للمشروع WebPartNodeExtension.

  5. تحديد WebPartNodeInfo وملفات تعليمات برمجية WebPartCommandIds.

  6. انقر فوق إسقاط - لأسفل قائمة الزر إضافة وتحديد إضافة حسب الارتباط .

    Visual Studioيضيف ملفات تعليمات برمجية إلى مشروع WebPartCommands الارتباطات. وهذا يعني أن ملفات تعليمات برمجية الموجودة في المشروع WebPartNodeExtension ولكن يتم ترجمة تعليمات برمجية في الملفات أيضاً في المشروع WebPartCommands.

  7. في قائمة المشروع انقر فوق إضافة مرجع .

  8. تشغيل التبويب .NET ، اضغط المفتاح 'Ctrl' ثم انقر فوق التجميعات التالية له ثم انقر فوق ‏‏موافق :

    • Microsoft SharePoint ™

    • Microsoft.VisualStudio.SharePoint.الأوامر

  9. في مستكشف الحلول, ينقر على اليمين عقدة المشروع WebPartCommands وتحديد خصائص .

    يتم فتح مصمم المشروع.

  10. انقر فوق علامة التبويب التطبيق.

  11. في مربع ‏‏مساحة اسم الجذر "أو" مساحة الاسم المربع الافتراضي (C#) ( Visual Basic) ، نوع ServerExplorer.SharePointConnections.WebPartNode.

إنشاء رموز عقد جديد

إنشاء رموز جهازي ملحق مستكشف الخادم: رمز العقدة معرض أجزاء ويب جديدة ثم رمز آخر لكل عقدة فرعة "جزء ويب" ضمن العقدة معرض أجزاء ويب. لاحقًا في هذه معاينة سيتم كتابة تعليمات برمجية التي يقترن هذه الرموز مع العقد.

إلى إنشاء الرموز الخاصة العقد

  1. في مستكشف الحلول، يمين - انقر فوق عقدة المشروع WebPartNodeExtension وتحديد خصائص .

  2. على القائمة مشروع، حددخصائص <Projectname>.

    يتم فتح مصمم المشروع.

  3. انقر فوق علامة التبويب الموارد.

  4. انقر فوق لا يحتوي هذا المشروع افتراضي موارد ملف. انقر هنا إلى إنشاء واحدة.

    Visual Studioإنشاء ملف موارد ويفتح في المصمم.

  5. في الجزء العلوي من المصمم انقر فوق إسقاط - السهم على الزر إضافة إلى الأسفل وانقر فوق إضافة رمز جديد.

  6. اكتب WebPartsNode عن اسم رمز جديد ثم انقر فوق إضافة.

    فتح رمز جديد في محرر الصور.

  7. تحرير 16 × 16 الإصدار رمز بحيث لا يكون لديها تصميم يمكنك التعرف عليه بسهولة.

  8. تحديد إصدار 32 x 32 الرمز.

  9. في القائمة نسخة، تحديد نوع النسخة يحذف .

  10. تكرار الخطوات من 5 إلى 9 لإضافة رمز ثاني إلى موارد المشروع. اسم هذا الرمز جزء ويب.

  11. في استكشاف الحلr ضمن المجلد موارد المشروع WebPartNodeExtension , تحديد WebPartsNode.ico.

  12. في النافذة الخصائص، انقر فوق قائمة منسدلة التالي إلى بناء إجراء ثم تحديد الموارد المضمنة.

  13. كرر الخطوتين الأخيرتين WebPart.ico.

إضافة جزء ويب معرض عقدة إلى مستكشف الخادم

إنشاء فئة تضيف العقدة جزء ويب معرض الجديد إلى كل عقدة في موقع SharePoint. إلى إضافة عقدة جديد بتنفيذ الفئة IExplorerNodeTypeExtensionالواجهة. تطبيق هذه الواجهة في أي وقت ترغب في توسيع سلوك عقدة موجودة في مستعرض الخادم ، مثل إضافة جديد عقدة فرعة إلى عقدة.

إضافة جزء ويب معرض عقدة إلى مستكشف الخادم

  1. في مشروع WebPartNodeExtension ينقر مزودجا ‏‏رمز الملف SiteNodeExtension.

  2. قم بلصق التعليمات البرمجية التالية في "المفكرة":

    ملاحظة

    بعد إضافة هذا التعليمات البرمجية ، سيصبح في المشروع بعض أخطاء الترجمة. هذه الأخطاء سوف تختفي عند إضافة تعليمات برمجية أخرى فيما بعد.

    Imports System.Collections.Generic
    Imports System.ComponentModel.Composition
    Imports Microsoft.VisualStudio.SharePoint.Explorer
    
    Namespace ServerExplorer.SharePointConnections.WebPartNode
    
        ' Export attribute: Enables Visual Studio to discover and load this extension.
        ' ExplorerNodeType attribute:  Indicates that this class extends SharePoint site nodes in Server Explorer.
        ' WebPartNodeTypeProvider class: Represents an extension of SharePoint site nodes in Server Explorer.
        <Export(GetType(IExplorerNodeTypeExtension))> _
        <ExplorerNodeType(ExplorerNodeTypes.SiteNode)> _
        Friend Class SiteNodeExtension
            Implements IExplorerNodeTypeExtension
    
            Private Sub Initialize(ByVal nodeType As IExplorerNodeType) _
                Implements IExplorerNodeTypeExtension.Initialize
    
                ' The NodeChildrenRequested event is raised when the user expands the
                ' SharePoint site node in Server Explorer.
                AddHandler nodeType.NodeChildrenRequested, AddressOf NodeChildrenRequested
            End Sub
    
            ' Creates the new Web Part Gallery node with the specified icon.
            Private Sub NodeChildrenRequested(ByVal Sender As Object, ByVal e As ExplorerNodeEventArgs)
    
                ' The CreateWebPartNodes argument is a delegate that Visual Studio calls 
                ' to create the child nodes under the Web Part Gallery node.
                e.Node.ChildNodes.AddFolder("Web Part Gallery", My.Resources.WebPartsNode.ToBitmap(), _
                    AddressOf CreateWebPartNodes)
            End Sub
    
            ' Creates all of the individual Web Part nodes under the new Web Part Gallery node.
            Private Sub CreateWebPartNodes(ByVal parentNode As IExplorerNode)
    
                ' Call the custom SharePoint command to get items from the Web Part gallery.
                Dim webParts = parentNode.Context.SharePointConnection.ExecuteCommand(Of WebPartNodeInfo())( _
                    WebPartCommandIds.GetWebParts)
                If webParts IsNot Nothing Then
                    For Each webPart As WebPartNodeInfo In webParts
    
                        ' Create a new annotation object to store the current Web Part item with the new node.
                        Dim annotations = New Dictionary(Of Object, Object)()
                        annotations.Add(GetType(WebPartNodeInfo), webPart)
    
                        ' Create the new node for the current Web Part item.
                        parentNode.ChildNodes.Add(WebPartNodeTypeProvider.WebPartNodeTypeId, _
                            webPart.Name, annotations)
                    Next
                End If
            End Sub
    
        End Class
    End Namespace
    
    using System.Collections.Generic;
    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.SharePoint.Explorer;
    
    namespace ServerExplorer.SharePointConnections.WebPartNode
    {
        // Enables Visual Studio to discover and load this extension.
        [Export(typeof(IExplorerNodeTypeExtension))]        
    
        // Indicates that this class extends SharePoint site nodes in Server Explorer.
        [ExplorerNodeType(ExplorerNodeTypes.SiteNode)]
    
        // Represents an extension of SharePoint site nodes in Server Explorer.
        internal class SiteNodeExtension : IExplorerNodeTypeExtension
        {
            public void Initialize(IExplorerNodeType nodeType)
            {
                // The NodeChildrenRequested event is raised when the user expands the
                // SharePoint site node in Server Explorer.
                nodeType.NodeChildrenRequested += NodeChildrenRequested;
            }
    
            // Creates the new Web Part Gallery node with the specified icon.
            private void NodeChildrenRequested(object sender, ExplorerNodeEventArgs e)
            {
                // The CreateWebPartNodes argument is a delegate that Visual Studio calls 
                // to create the child nodes under the Web Part Gallery node.
                e.Node.ChildNodes.AddFolder("Web Part Gallery",
                    Properties.Resources.WebPartsNode.ToBitmap(), CreateWebPartNodes);
            }
    
            // Creates all of the individual Web Part nodes under the new Web Part Gallery node.
            private void CreateWebPartNodes(IExplorerNode parentNode)
            {
                // Call the custom SharePoint command to get items from the Web Part gallery.
                var webParts = parentNode.Context.SharePointConnection.ExecuteCommand<WebPartNodeInfo[]>(
                    WebPartCommandIds.GetWebParts);
    
                if (webParts != null)
                {
                    foreach (WebPartNodeInfo webPart in webParts)
                    {
                        // Create a new annotation object to store the current Web Part item with the new node.
                        var annotations = new Dictionary<object, object>() 
                        { 
                            { typeof(WebPartNodeInfo), webPart } 
                        };
    
                        // Create the new node for the current Web Part item.
                        parentNode.ChildNodes.Add(WebPartNodeTypeProvider.WebPartNodeTypeId,
                            webPart.Name, annotations);
                    }
                }
            }
        }
    }
    

تعريف نوع عقدة الذي يمثل جزء ويب

ويعرف هذا نوع جديد للعقدة التي تمثل مثيل "جزء ويب". يتم استخدام هذا النوع عقدة جديدة عن طريق Visual Studioلعرض العقد الفرعة ضمن عقدة معرض أجزاء ويب. يمثل كل من هذه العقد الفرعة "جزء ويب" مفردة تشغيل موقع SharePoint.

إلى تعريف نوع عقدة جديدة, بتنفيذ الفئة IExplorerNodeTypeProviderالواجهة. تطبق هذه الواجهة في أي وقت ترغب في تعريف نوع جديد من العقدة في مستكشف الخادم .

إلى تعريف نوع عقدة "جزء ويب"

  1. في مشروع WebPartNodeExtension ينقر مزودجا ‏‏رمز الملف SiteNodeExtension.

  2. قم بلصق التعليمات البرمجية التالية في "المفكرة":

    Imports System
    Imports System.Collections.Generic
    Imports System.Windows.Forms
    Imports System.ComponentModel.Composition
    Imports Microsoft.VisualStudio.SharePoint
    Imports Microsoft.VisualStudio.SharePoint.Explorer
    
    Namespace ServerExplorer.SharePointConnections.WebPartNode
    
        ' Export attribute: Enables Visual Studio to discover and load this extension.
        ' ExplorerNodeType attribute: Specifies the ID for this new node type.
        ' WebPartNodeTypeProvider class: Defines a new node type that represents a Web Part on a SharePoint site.
        <Export(GetType(IExplorerNodeTypeProvider))> _
        <ExplorerNodeType(WebPartNodeTypeProvider.WebPartNodeTypeId)> _
        Friend Class WebPartNodeTypeProvider
            Implements IExplorerNodeTypeProvider
    
            Friend Const WebPartNodeTypeId As String = "Contoso.WebPart"
    
            Private Sub InitializeType(ByVal typeDefinition As IExplorerNodeTypeDefinition) _
                Implements IExplorerNodeTypeProvider.InitializeType
    
                typeDefinition.DefaultIcon = My.Resources.WebPart.ToBitmap()
                typeDefinition.IsAlwaysLeaf = True
                AddHandler typeDefinition.NodePropertiesRequested, AddressOf NodePropertiesRequested
            End Sub
    
            ' Retrieves properties that are displayed in the Properties window when
            ' a Web Part node is selected.
            Private Sub NodePropertiesRequested(ByVal Sernder As Object, _
                ByVal e As ExplorerNodePropertiesRequestedEventArgs)
    
                Dim nodeInfo = e.Node.Annotations.GetValue(Of WebPartNodeInfo)()
    
                ' Call the custom SharePoint command to get the Web Part properties.
                Dim properties As Dictionary(Of String, String) = _
                    e.Node.Context.SharePointConnection.ExecuteCommand( _
                    Of WebPartNodeInfo, Dictionary(Of String, String))(
                    WebPartCommandIds.GetWebPartProperties, nodeInfo)
                Dim propertySource As Object = e.Node.Context.CreatePropertySourceObject(properties)
                e.PropertySources.Add(propertySource)
            End Sub
    
        End Class
    End Namespace
    
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.SharePoint;
    using Microsoft.VisualStudio.SharePoint.Explorer;
    
    namespace ServerExplorer.SharePointConnections.WebPartNode
    {
        // Enables Visual Studio to discover and load this extension.
        [Export(typeof(IExplorerNodeTypeProvider))]
    
        // Specifies the ID for this new node type.
        [ExplorerNodeType(WebPartNodeTypeProvider.WebPartNodeTypeId)]
    
        // Defines a new node type that represents a Web Part on a SharePoint site.
        internal class WebPartNodeTypeProvider : IExplorerNodeTypeProvider
        {
            internal const string WebPartNodeTypeId = "Contoso.WebPart";
    
            public void InitializeType(IExplorerNodeTypeDefinition typeDefinition)
            {
                typeDefinition.DefaultIcon = Properties.Resources.WebPart.ToBitmap();
                typeDefinition.IsAlwaysLeaf = true;
                typeDefinition.NodePropertiesRequested += NodePropertiesRequested;
            }
    
            // Retrieves properties that are displayed in the Properties window when
            // a Web Part node is selected.
            private void NodePropertiesRequested(object sender,
                ExplorerNodePropertiesRequestedEventArgs e)
            {
                var webPartNodeInfo = e.Node.Annotations.GetValue<WebPartNodeInfo>();
    
                // Call the custom SharePoint command to get the Web Part properties.
                Dictionary<string, string> properties =
                    e.Node.Context.SharePointConnection.ExecuteCommand<
                    WebPartNodeInfo, Dictionary<string, string>>(
                    WebPartCommandIds.GetWebPartProperties, webPartNodeInfo);
    
                object propertySource = e.Node.Context.CreatePropertySourceObject(properties);
                e.PropertySources.Add(propertySource);
            }
        }
    }
    

تعريف جزء ويب فئة البيانات

تعريف فئة التي تحتوي على بيانات حول "جزء ويب" مفردة على موقع SharePoint. لاحقًا في هذه معاينة يتم إنشاء أمر مخصص SharePoint التي تسترد البيانات حول كل "جزء ويب" تشغيل الموقع ثم بعد ذلك بتعيين البيانات إلى مثيلات هذه الفئة.

إلى تعريف فئة بيانات "جزء ويب"

  1. في مشروع WebPartNodeExtension ينقر مزودجا ‏‏رمز الملف SiteNodeExtension.

  2. قم بلصق التعليمات البرمجية التالية في "المفكرة":

    Imports System
    
    Namespace ServerExplorer.SharePointConnections.WebPartNode
    
        ' Contains basic data about a single Web Part on the SharePoint site. This class is 
        ' serializable so that instances of it can be sent between the WebPartNode and 
        ' WebPartCommands assemblies.
        <Serializable()> _
        Public Class WebPartNodeInfo
    
            Private siteIdValue As Guid
            Public Property SiteId As Guid
                Get
                    Return siteIdValue
                End Get
                Set(ByVal value As Guid)
                    siteIdValue = value
                End Set
            End Property
    
            Private idValue As Integer
            Public Property Id As Integer
                Get
                    Return idValue
                End Get
                Set(ByVal value As Integer)
                    idValue = value
                End Set
            End Property
    
            Private uniqueIdValue As Guid
            Public Property UniqueId As Guid
                Get
                    Return uniqueIdValue
                End Get
                Set(ByVal value As Guid)
                    uniqueIdValue = value
                End Set
            End Property
    
            Private nameValue As String
            Public Property Name As String
                Get
                    Return nameValue
                End Get
                Set(ByVal value As String)
                    nameValue = value
                End Set
            End Property
    
            Private imageUrlValue As String
            Public Property ImageUrl As String
                Get
                    Return imageUrlValue
                End Get
                Set(ByVal value As String)
                    imageUrlValue = value
                End Set
            End Property
    
        End Class
    End Namespace
    
    using System;
    
    namespace ServerExplorer.SharePointConnections.WebPartNode
    {
        // Contains basic data about a single Web Part on the SharePoint site. This class is 
        // serializable so that instances of it can be sent between the WebPartNode and 
        // WebPartCommands assemblies.
        [Serializable]
        public class WebPartNodeInfo
        {
            public Guid SiteId { get; set; }
            public int Id { get; set; }
            public Guid UniqueId { get; set; }
            public string Name { get; set; }
            public string ImageUrl { get; set; }
        }
    }
    

بتعريف المعرفات الأوامر SharePoint

تعريف سلاسل متعددة تعريف الأوامر SharePoint مخصصة. سيتم تطبيق هذه الأوامر لاحقًا في هذه معاينة.

إلى تعريف معرفات الأمر

  1. في مشروع WebPartNodeExtension ينقر مزودجا ‏‏رمز الملف SiteNodeExtension.

  2. قم بلصق التعليمات البرمجية التالية في "المفكرة":

    Namespace ServerExplorer.SharePointConnections.WebPartNode
    
        Public Class WebPartCommandIds
            Public Const GetWebParts As String = "WebPart.GetWebParts"
            Public Const GetWebPartProperties As String = "WebPart.GetProperties"
        End Class
    
    End Namespace
    
    namespace ServerExplorer.SharePointConnections.WebPartNode
    {
        public static class WebPartCommandIds
        {
            public const string GetWebParts = "WebPart.GetWebParts";
            public const string GetWebPartProperties = "WebPart.GetProperties";
        }
    }
    

إنشاء الأوامر SharePoint المخصصة

إنشاء الأوامر مخصصة التي تستدعي في SharePoint الخادم طراز كائن استرداد البيانات حول "أجزاء ويب" تشغيل موقع SharePoint. لكل أمر أسلوبًا له SharePointCommandAttributeتطبيق إلى it.

إلى تعريف أوامر SharePoint

  1. في مشروع WebPartCommands ينقر مزودجا ‏‏رمز الملف WebPartCommands.

  2. قم بلصق التعليمات البرمجية التالية في "المفكرة":

    Imports System.Collections.Generic
    Imports Microsoft.SharePoint
    Imports Microsoft.VisualStudio.SharePoint.Commands
    
    Namespace ServerExplorer.SharePointConnections.WebPartNode
    
        Friend Class WebPartsCommands
    
            ' Gets data for each Web Part on the SharePoint site, and returns an array of 
            ' serializable objects that contain the data.
            <SharePointCommand(WebPartCommandIds.GetWebParts)> _
            Private Shared Function GetWebParts(ByVal context As ISharePointCommandContext) As WebPartNodeInfo()
    
                Dim nodeInfos = New List(Of WebPartNodeInfo)()
                Dim webParts As SPListItemCollection = context.Site.GetCatalog( _
                    SPListTemplateType.WebPartCatalog).Items
    
                For Each webPart As SPListItem In webParts
                    Dim nodeInfo As WebPartNodeInfo = New WebPartNodeInfo()
                    With nodeInfo
                        .Id = webPart.ID
                        .SiteId = webPart.ParentList.ParentWeb.ID
                        .Name = webPart.Title
                        .UniqueId = webPart.UniqueId
                        .ImageUrl = webPart.ParentList.ImageUrl
                    End With
                    nodeInfos.Add(nodeInfo)
                Next
                Return nodeInfos.ToArray()
            End Function
    
            ' Gets additional property data for a specific Web Part.
            <SharePointCommand(WebPartCommandIds.GetWebPartProperties)> _
            Private Shared Function GetWebPartProperties(ByVal context As ISharePointCommandContext, _
                ByVal webPartNodeInfo As WebPartNodeInfo) As Dictionary(Of String, String)
    
                Dim webParts As SPList = context.Site.GetCatalog(SPListTemplateType.WebPartCatalog)
                Dim webPart As SPListItem = webParts.Items(webPartNodeInfo.UniqueId)
                Return SharePointCommandServices.GetProperties(webPart)
            End Function
        End Class
    End Namespace
    
    using System.Collections.Generic;
    using Microsoft.SharePoint;
    using Microsoft.VisualStudio.SharePoint.Commands;
    
    namespace ServerExplorer.SharePointConnections.WebPartNode
    {
        internal class WebPartsCommands
        {
            // Gets data for each Web Part on the SharePoint site, and returns an array of 
            // serializable objects that contain the data.
            [SharePointCommand(WebPartCommandIds.GetWebParts)]
            private static WebPartNodeInfo[] GetWebParts(ISharePointCommandContext context)
            {
                var nodeInfos = new List<WebPartNodeInfo>();
                SPListItemCollection webParts = context.Site.GetCatalog(
                    SPListTemplateType.WebPartCatalog).Items;
    
                foreach (SPListItem webPart in webParts)
                {
                    WebPartNodeInfo nodeInfo = new WebPartNodeInfo
                    {
                        Id = webPart.ID,
                        SiteId = webPart.ParentList.ParentWeb.ID,
                        Name = webPart.Title,
                        UniqueId = webPart.UniqueId,
                        ImageUrl = webPart.ParentList.ImageUrl
                    };
                    nodeInfos.Add(nodeInfo);
                }
    
                return nodeInfos.ToArray();
            }
    
            // Gets additional property data for a specific Web Part.
            [SharePointCommand(WebPartCommandIds.GetWebPartProperties)]
            private static Dictionary<string, string> GetWebPartProperties(ISharePointCommandContext context, 
                WebPartNodeInfo nodeInfo)
            {
                SPList webParts = context.Site.GetCatalog(SPListTemplateType.WebPartCatalog);
                SPListItem webPart = webParts.Items[nodeInfo.UniqueId];
    
                return SharePointCommandServices.GetProperties(webPart);
            }
        }
    }
    

Checkpoint (نقطة التحقق)

عند هذه النقطة في معاينة, كافة تعليمات برمجية لـ العقدة جزء ويب معرض والأوامر SharePoint موجودة الآن في المشاريع. بنية الحل للتأكد من أن كلا المشروعين ترجمة دون أخطاء.

لإنشاء الحل.

  • من القائمة Build (بناء)، انقر فوق Build Solution (بناء الحل).

إنشاء حزمة VSIX إلى النشر في الملحق

إلى توزيع الملحق ، استخدم المشروع VSIX في الحل إلى إنشاء حزمة VSIX. أولاً، قم بتكوين حزمة VSIX عن طريق تعديل الملف المصدر.ملحق.vsixmanifest المتضمن في المشروع VSIX. قم بعد ذلك إنشاء الحزمة VSIX بواسطة إنشاء الحل.

لتكوين إعدادات VSIX

  1. مستكشف الحلول ، ضمن المشروع UpgradeDeploymentStep انقر نقراً مزدوجاً فوق صواب. extension.vsixmanifest الملف .

    Visual Studioيتم فتح الملف في محرر ملف البيان. يعتبر ملف المصدر.ملحق.vsixmanifest الأساس لملف ملحق.vsixmanifest مطلوب من قبل الكل حزم VSIX. للحصول على مزيد من المعلومات حول هذا الموضوع، انظر المقالةمخطط VSX للحصول على ملحقات.

  2. في المربع اسم المنتج اكتب جزء ويب معرض عقدة لبرنامج مستكشف الخادم .

  3. في المربع الكاتب نوع شركة النصر.

  4. في المربع الوصف، اكتب إضافة عقدة جزء ويب معرض مخصص إلى عقدة الاتصالات SharePoint في مستكشف الخادم. يستخدم هذا الملحق أمر SharePoint مخصصة للاتصال في طراز كائن الخادم.

  5. في المقطع المحتوى من محرر "" ، انقر فوق الزر إضافة المحتوى.

  6. في إضافة محتوى مربع حوار في تحديد نوع محتوى مربع قائمة، تحديد MEF مكوّنات.

    ملاحظة

    يتوافق مع هذه القيمة إلى MefComponentالعنصر في ملف ملحق.vsixmanifest. تحديد هذا العنصر اسم التجميع ملحق في حزمة VSIX. لمزيد من المعلومات، راجع عنصر MEFComponent (VSX مخطط).

  7. ضمن تحديد مصدر، انقر فوق زر الخيار Project ثم حدد DeploymentStepExtension في صواب المجاورة له.

  8. انقر فوق موافق.

  9. في محرر بيان انقر فوق إضافة محتوى صواب مرة أخرى.

  10. في إضافة محتوى مربع الحوار في حدد نوع محتوى صواب ، حدد نوع ملحق مخصص.

    ملاحظة

    يتوافق مع هذه القيمة إلى CustomExtensionالعنصر في ملف ملحق.vsixmanifest. تحديد هذا العنصر ملحق مخصص التي تريد تضمينها في ملحق ‏‫Visual Studio. لمزيد من المعلومات، راجع عنصر CustomExtension (VSX مخطط).

  11. في مربع النص اكتب ، اكتب SharePoint.صواب.v4.

    ملاحظة

    يتوافق مع هذه القيمة صواب Type سمة CustomExtension العنصر في الملف extension.vsixmanifest. قيمة Sharepoint.Commands.v4 مطلوبة من أجل كافة التجميعات الملحق المخصص التي تحتوي على SharePoint مخصصة الأوامر.

  12. ضمن تحديد مصدر، انقر فوق زر الخيار Project ثم حدد SharePointCommands في صواب المربع إلى جانب.

  13. انقر فوق موافق.

  14. من القائمة Build (إنشاء)، انقر فوق Build Solution (إنشاء الحل). تأكد من أن الحل برمجيًا دون أخطاء.

  15. فتح مجلد الإخراج بناء المشروع UpgradeDeploymentStep. تأكد من أن يحتوي هذا المجلد الآن ملف UpgradeDeploymentStep.vsix.

    مجلد إخراج بناء بشكل افتراضي المجلد \bin\يصحح ضمن المجلد الذي يحتوي على ملف المشروع.

اختبار في ملحق

أنت الآن جاهز لاختبار عقدة جديدة جزء ويب معرض مستكشف الخادم. ابدأ تصحيح الأخطاء الملحق في نسخة تجريبية من ‏‫Visual Studio. ثم يستخدم العقدة أجزاء ويب جديدة في تجريبية مثيل من Visual Studio.

إلى يبدأ التصحيح الملحق

  1. إعادة تشغيل Visual Studioمع امتيازات المسؤول "و" فتح الحل WebPartNode.

  2. في مشروع DeploymentStepExtension فتح ملف التعليمات البرمجية UpgradeStep وإضافة نقطة توقف صواب السطر الأول من التعليمات البرمجية في NodeChildrenRequested و CreateWebPartNodes أساليب.

  3. F5 اضغط إلى بدء التصحيح.

    تثبيت الملحق %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Contoso\ويب "ملحق عقدة معرض جزء" لـ الخادم مستكشف \1.0 ‏‫Visual Studio ثم يقوم بتشغيل مثيل التجريبي من برنامج ‏‫Visual Studio. سيتم اختبار المشروع العنصر في هذا المثيل من ‏‫Visual Studio.

إلى اختبار الملحق

  1. في نسخة تجريبية Visual Studio، تشغيل عرض ، انقر فوق مستكشف الخادم .

  2. تحقق من أن موقع SharePoint التي تريدها إلى استخدام عن اختبار يظهر تحت العقدة الاتصالات SharePoint في مستكشف الخادم. إذا لم تكن موجودة، اتبع الخطوات التالية:

    1. يمين-انقر فوق الاتصالات SharePoint ومن ثم انقر فوق إضافة اتصال.

    2. Enter الزر الزر محدد موقع المعلومات (URL) لموقع SharePoint التي تريدها في مربع حوار إضافة الاتصال، SharePoint إلى الاتصال إلى. إلى تحديد موقع SharePoint تشغيل الكمبيوتر تطوير ، اكتب https://localhost .

    3. انقر فوق موافق.

  3. توسيع the موقع اتصال عقدة (the عقدة that displays the URL of your موقع), و then توسيع a فرع موقع عقدة (for مثال, فريق موقع).

  4. تحقق من تعليمات برمجية الموجودة في أخرى يتوقف المثيل Visual Studio تشغيل نقاط الإيقاف المعينة مسبقًا في NodeChildrenRequested الأسلوب. اضغط F5 للمتابعة إلى تصحيح المشروع.

  5. في تجريبية مثيل من ‏‫Visual Studio تحقق من ظهور عقدة جديدة باسم معرض أجزاء ويب ضمن عقدة موقع المستوى الأعلى. قم بتوسيع العقدة جزء ويب معرض.

  6. تحقق من تعليمات برمجية الموجودة في أخرى يتوقف المثيل ‏‫Visual Studio تشغيل نقاط الإيقاف المعينة مسبقًا في CreateWebPartNodesالأسلوب. اضغط F5 للمتابعة إلى تصحيح المشروع.

  7. في تجريبية مثيل من ‏‫Visual Studio تحقق من ظهور كافة "أجزاء ويب" على موقع المتصلة تحت العقدة معرض أجزاء ويب في مستكشف الخادم.

  8. ينقر على اليمين أحد "أجزاء ويب" ثم انقر فوق خصائص.

  9. في Visual Studioالمثيل الذي تقوم بتصحيحه تحقق من ظهور تفاصيل حول "جزء ويب" في النافذة خصائص.

إلغاء تثبيت في الملحق من ‏‫Visual Studio

بعد الانتهاء من اختبار على الملحق أزاله التثبيت الملحق من ‏‫Visual Studio.

إلى أزاله التثبيت الملحق

  1. في نسخة تجريبية منVisual Studio على القائمة أدوات انقر فوق ‎ملحق إدارة.

    فتح مربع حوار ملحق إدارة.

  2. في القائمة ملحقات تحديد ملحق عقدة معرض أجزاء ويب لـ مستعرض الخادمثم انقر فوق إلغاء التثبيت.

  3. في مربع حوار الذي يظهر، انقر فوق نعم إلى يؤكّد أنك تريد إلى تثبيت الملحق.

  4. انقر فوق إعادة التشغيل الآن إلى إكمال إلغاء التثبيت.

  5. يغلق مثيلي ‏‫Visual Studio (مثيل تجريبية و مثيل ‏‫Visual Studio لدى فتح الحل UpgradeDeploymentStep).

راجع أيضًا:

المهام

الإرشادات التفصيلية: استدعاء إلى نموذج كائن عميل SharePoint في الخادم Explorer ملحق

إنشاء صورة نقطية جديدة أو صورة أخرى

المرجع

محرر الصور

موارد أخرى

توسيع عقدة الاتصالات SharePoint في خادم مستكشف