Расширения SharePoint для VS - какая у меня версия?

Я использую Visual Studio 2008 и скачал VSeWSS.exe 1.2, чтобы разрешить разработку веб-частей. Я новичок в разработке SP и уже озадачен количеством различных версий SP и надстроек VS. Возникла эта конкретная проблема, которая подчеркивает мое замешательство.

Я выбрал Добавить -> Новый проект -> Visual C # -> SharePoint-> Веб-часть, принял значения по умолчанию, и VS создал проект с основным файлом WebPart1.cs.

using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

namespace WebPart1
{
    [Guid("9bd7e74c-280b-44d4-baa1-9271679657a0")]
    public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
    {
        public WebPart1()
        {
        }

        protected override void CreateChildControls() // <-- This line
        {
            base.CreateChildControls();

            // TODO: add custom rendering code here.
            // Label label = new Label();
            // label.Text = "Hello World";
            // this.Controls.Add(label);
        }
    }
}

В книге Джеффа Уэбба Essential SharePoint 2007, за которой я следую, для проекта по умолчанию есть следующее:

using System;
<...as previously>

namespace WebPart1
{
    [Guid("9bd7e74c-280b-44d4-baa1-9271679657a0")]
    public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
    {
        // ^ this is a new style (ASP.NET) web part! [author's comment]
        protected override void Render(HtmlTextWriter writer) // <-- This line
        {
            // This method draws the web part   
            // TODO: add custom rendering code here.
            // writer.Write("Output HTML");
        }
    }
}

Настоящая причина моего беспокойства заключается в том, что в этой главе книги автор часто упоминает различие между веб-частями «старого стиля» и веб-частями «нового стиля», как отмечалось в его комментарии к методу Render.

Что случилось? Почему моя веб-часть по умолчанию имеет другую подпись авторов?


person Stephen Hosking    schedule 04.02.2010    source источник
comment
Несвязано: доступна версия 1.3: microsoft .com / downloads /   -  person Rubens Farias    schedule 05.02.2010
comment
Спасибо. У меня были проблемы с установкой 1.2, поэтому, когда она заработала, я не хотел рисковать и пробовать 1.3. Я просмотрел примечания к изменениям для 1.3, и, похоже, они не имеют отношения к этой проблеме. Поскольку 1.3 вышла в 2009 году, а моя книга - 2007, маловероятно, что мой VSeWSS или книга будет иметь 1.3.   -  person Stephen Hosking    schedule 05.02.2010
comment
У меня такое ощущение, что его (авторский) код предназначен для VSeWSS 1.0 или 1.1, и это то, что он называет новым стилем, а мой код для 1.2 является новым новым стилем и заменяет его. Все еще пытаюсь найти руководство по началу работы для этой версии.   -  person Stephen Hosking    schedule 05.02.2010
comment
Я так и не нашел ответа на этот вопрос. Я застрял при развертывании и, чтобы решить эту проблему, начал использовать WSPBuilder. Он поставляется с собственным проектом C # по умолчанию, который создает веб-часть Hello World. Это близко к первой программе в вопросе.   -  person Stephen Hosking    schedule 26.02.2010


Ответы (1)


Различие, которое автор делает с веб-частями «нового стиля», заключается в том, что они представляют собой веб-части ASP.NET 2.0 (выпущенные в 2005 году), которые можно использовать как в SharePoint, так и в ASP.NET. Веб-части старого стиля были характерны для SharePoint

  • Новый стиль System.Web.UI.WebControls.WebParts.WebPart, доступный в ASP.Net 2.0 (2005 г.) и WSS 3.0 (2006 г.)
  • Старый стиль Microsoft.SharePoint.WebPartPages.WebPart (все еще поддерживается)

В примерах кода в вопросе обе веб-части выполнены в новом стиле, т. Е. они являются веб-частями ASP.NET. Единственная разница в том, что визуальная студия перешла на другой метод, нежели книга. Однако как методы, так и многие другие, например. OnLoad, OnInit доступны и будут настроены для работы веб-части.

После нескольких месяцев разработки веб-части я рекомендую использовать первую в качестве основы для веб-части «привет, мир», т.е.

      protected override void CreateChildControls() 
    {
        base.CreateChildControls();
        Label label = new Label();
        label.Text = "Hello World";
        this.Controls.Add(label);
    }

А затем начните добавлять код к этому методу или добавлять другие методы (например, OnLoad, OnPrerender) для добавления функциональности.

Метод Render не переопределяется в большинстве веб-частей.

person Stephen Hosking    schedule 31.05.2010