Какие концепции разработки SharePoint труднее всего понять разработчикам ASP.Net?

StackOverflow https://stackoverflow.com/questions/1424643

Вопрос

Я пытаюсь собрать учебные материалы по SharePoint 2007 (и, в конечном итоге, 2010) для опытных разработчиков ASP.Net, и, занимаясь SharePoint в течение многих лет, я действительно не помню, где в начале были худшие камни преткновения - не отметим, что количество контента Googlable SharePoint на порядок больше, чем два года назад.

Тем не менее, какие концепции SharePoint труднее всего понять и/или какие части SharePoint достаточно эзотеричны, чтобы быть неочевидными для новичка-разработчика SharePoint, только погружающегося в него?

Это было полезно?

Решение

Грег,

По моему опыту, проблемы, связанные с правильной утилизацией объектов (SPWeb и SPSСайт объекты, которые, в свою очередь, ссылаются SPRequest оболочки вокруг неуправляемых COM-объектов) являются распространенной ошибкой и источником многих проблем с масштабируемостью, производительностью и другими проблемами кодирования.Как только Microsoft осознала масштаб проблемы и степень замешательства разработчиков в этой области, они написали большую статью-руководство (http://msdn.microsoft.com/en-us/library/aa973248.aspx) и разработал инструмент SPDisposeCheck (http://code.msdn.microsoft.com/SPDisposeCheck).

Это мой голос за «неочевидное для новичка-разработчика SharePoint, который только начинает погружаться» :-)

Чего бы это ни стоило!

Другие советы

Мой список вещей, которые труднее всего понять:

  • Безопасность доступа к коду и все Другие функции безопасности
  • Разница между сайтом и приложением страниц и Customized/Uncustomized Страниц
  • CAML в обоих запросах, и все Определения
  • Что уже есть в SharePoint, чтобы вы Не изобретайте велосипед
  • Отказ от контроля.

    Вы не контролируете, какие веб-части на странице и как они связаны.Вы просто должны сделать так, чтобы они могли повторное использование

    Вы не контролируете, какой список находится в site или какие поля они содержат

  • Отсутствие поддержки нескольких Языки
  • Не удаляйте SPWeb и SPSite, если вы получить их из SPContext.Current
  • делегировать элементы управления

Другие вещи, которые являются новыми, но, кажется, их легче понять:

  • Решения/функции
  • Все заполнители на мастер-страницах

* Отсутствие контроля *

Это ключевой вопрос: Упоминается Пер Якобсен . Двигаясь вдоль ...

<Ол>
  • Невозможно просто войти и отредактировать файлы .aspx и .master там, где вы захотите. Существуют такие последствия, как отсутствие поддержки, поддержка, и это часто просто не работает, как ожидалось. Хорошее понимание того, как SharePoint создает страницы, очень важно.

  • Нет (поддерживаемого и надежного) способа прямого запроса к базе данных. Это крайне неприятно для разработчиков ASP.NET, которые привыкли проектировать / работать со специально построенными и хорошо спроектированными базами данных. Запросы CAML не заменяют мощь хорошо оптимизированных запросов SQL.

  • (Больше из 2b): плохая поддержка реляционных данных между списками. Нечетно для корпоративного приложения.

  • Немного не по теме, но HTML-разметка и CSS были кошмаром в 2003 году и не намного лучше в 2007 году. Работать с ним больно, да и не красиво. Вы должны приложить все усилия, чтобы создать сайт, полностью соответствующий веб-стандартам и передовым методам.

  • Подводя итог, обычно нужно что-то делать «по пути SharePoint». Это часто не самый эффективный или элегантный способ, который предпочитает прямой разработчик ASP.NET. Разработчикам нравится элегантность, и им не нравится отказываться от контроля.

    Есть также некоторые проблемы прямо по продукту ( Шон упомянул о ключевом слове ), скрывающемся как маленькие путаницы для ничего не подозревающих. Единственный способ узнать и понять их - это знать SharePoint - и это большой продукт.

    Подробнее об этом можно узнать на Почему разработчики ASP.NET не используют WSS? в SharePointDevWiki.

    Что уже есть в SharePoint, поэтому вы не изобретаете велосипед. Я голосую за это.

    Пер покрыл для меня большинство вопросов, но я добавлю еще пару:

    <Ол>
  • SPContext - Концепция выполнения кода, например SPContext.Current или объект Properties в приемнике событий.

  • Исходя из контекста, также важно понимать, с кем выполняется код, и, следовательно, какие действия он может выполнять - повышение прав (повышение привилегий), олицетворение (токены) и выполнение (веб-службы / приемники событий) .

  • Обработка ошибок - все кричат, когда единственной ошибкой является "ошибка", поэтому понимание журналов SP и кодов ошибок является критическим. Это важно для сокращения затрат времени на погоню за бешеной ошибкой XML.

  • Инструменты Visual Studio - WSPBuilder, VS Tools для Sharepoint и т. д. Сократите сложность развертывания и отладки, сократив цикл интеграции.

  • Создайте отчет / панель мониторинга, используя службы отчетов SQL Server для реальных проблем, и покажите его на сайте sharepoint. Количество примеров / учебников, найденных в Интернете, но этот вопрос все еще недостаточен (я полагаю).

    Все, что связано с реальной архитектурой и реализациями. Я разработчик, но мне нужно испачкать руки, если я хочу иметь как можно ближе клиентскую среду в своих виртуальных средах, не дожидаясь официальной поддержки ИТ. Попробуйте создать небольшую ферму с интрасетью, Интернетом, экстрасетью, смешанным механизмом аутентификации, сопоставлениями альтернативного доступа, настройкой заголовка узла и т. Д. Это целая работа, но вам придется углубиться в нее, если вы хотите разработать средние и крупные реализации.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top