понедельник, 17 сентября 2007 г.

Найди миссию своей компании на Dilbert.com

"We have committed to continually network corporate data so that we may quickly pursue progressive sources to stay competitive in tomorrow's world"

- Dilbert.com Mission statement generator

Как перенести Web User Control в Sharepoint

Это скорее напоминание себе, чем полноценоое описание, но и такое описание найти непросто :)
Итак, у вас есть ASP.Net-приложение, простроенное из "пользовательских контролов", или ascx-файлов, и вам хочется это приложение или его часть перенести на Sharepoint-портал. Простой способ выставить любое работающее веб-приложение в интерфейсе портала - стандартная "Веб-часть просмотр страниц", которая отобразит существующее приложение в iframe-е:



Такой способ, однако, не всегда подходит - если вам нужна какая-либо функция портала (авторизация, управление правами, хранение данных и т.п.), или вы собираетесь переносимое приложение в дальнейшем теснее интегрировать с порталом, мужайтесь - приложение придется переносить.
Переписывание интерфейса на web-части (server controls) может стать самой трудоёмкой задачей при переносе, поэтому логично в интерфейсе воспользоваться кодом существующих ascx-контролов.

Вот неполный и весьма поверхностный список задач, выполняемых при переносе интерфейса:

1. Выделите контролы, которые будут размещаться на страницах как веб-части. В грамотно написаном приложении некоторые ascx-контролы "верхнего уровня" прямо соответствуют веб-частям в будущем интерфейсе
2. Поменяйте структуру приложения:
2.1 Все ascx-контролы разместите в папке UserControls или UserControls\имяПриложения
2.2 Файлы ресурсов (картинки, css-стили, js-скрипты) разместите в папке wpresources или wpresources\имяПриложения
2.3 Вынесите весь код из ascx-файлов в code-behind файлы - проще будет потом решать проблемы с моделью безопасности Sharepoint
2.4 Весь код, не относящийся к интерфейсу, вынесите в отдельную сборку
3. Добейтесь работоспособности измененного приложения :)
4. Скачайте и разверните на сервере SmartPart - веб-часть, позволяющую отображать на портале Web user control-ы
5. Выделите участки кода, которые необходимо выполнять с правами пользователя-администратора или с "повышенными правами".
Чаще всего на портале включена имперсонация, поэтому код по умолчанию будет исполняться от имени пользователя - это обычно ломает код работы с БД, код работы с объектной моделью Sharepoint и т.п. Для исполнения кода с чужими правами ищем "user impersonation .net", или используем SPSecurity.RunWithElevatedPrivileges
6. Разверните приложение на сервере Sharepoint:
корень приложения - C:\Inetpub\wwwroot\wss\VirtualDirectories\номерПорта,
используемые сборки копируются в bin,
user controls - в UserControls,
ресурсы - в wpresources.

Asсx-контролы затем размещаются в экземплярах SmartPart на страницах портала.

воскресенье, 9 сентября 2007 г.

Почему MSF так скушен?

Уже которую неделю я борюсь с освоением Microsoft Solutions Framework - для экзаменов 70-300,70-301. Я пытаюсь читать Whitepapers, книжки и т.п. Это чудовищно скушно - учебные курсы Microsoft по чисто техническим дисциплинам выгялдят куда более оживленными и ориентированными на читателя.
Не говоря о независимых авторах - James Shore в своей книге по Agile на каждой странице четко фокусирует внимание читателя на насущных проблемах и способах их решения.
Microsoft же в учебных курсах на 400 страниц с трудом вмещает два столпа MSF - Process Model и Risk Management.

P.S. Ресурс Microsoft по MSF http://www.microsoft.com/msf теперь переадресует на страницу Visual Studio Team System Developer Center.

Этот блог не о Sharepoint

Из подзаголовка моего блога может показаться, что я в нем буду много писать о Sharepoint-технологиях - мне и самому так казалось по началу. Но опыт показал - это не так, я НЕ являюсь узким Sharepoint-специалистом. Я пишу много кода, мордой для которого выступает WSS 2, WSS3, изредка MSSPS2003/MOSS2007. Я сертифицированный специалист по разработкам на WSS3. Но я не Mike Walsh.

Большую часть своего времени я посвящаю огромному количеству задач, связанных с разработкой программных продуктов в целом - написанию Data Access / Business Logic слоёв, организации автоматизированного тестирования, развертыванию приложений у заказчика. Я специалист настолько широкого профиля, что иногда я даже разговариваю с заказчиком.

Поэтому и писать я буду на темы, которые меня в данный момент занимают - автоматизированном тестировании, .Net, WSS, ASP.Net, LAMP/WAMP, eLance.com, MSF, книжках там всяких :)