Какие концепции разработки SharePoint труднее всего понять разработчикам ASP.Net?
-
07-07-2019 - |
Вопрос
Я пытаюсь собрать учебные материалы по 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. Количество примеров / учебников, найденных в Интернете, но этот вопрос все еще недостаточен (я полагаю).
Все, что связано с реальной архитектурой и реализациями. Я разработчик, но мне нужно испачкать руки, если я хочу иметь как можно ближе клиентскую среду в своих виртуальных средах, не дожидаясь официальной поддержки ИТ. Попробуйте создать небольшую ферму с интрасетью, Интернетом, экстрасетью, смешанным механизмом аутентификации, сопоставлениями альтернативного доступа, настройкой заголовка узла и т. Д. Это целая работа, но вам придется углубиться в нее, если вы хотите разработать средние и крупные реализации.