Можно ли использовать Visual Studio / C # для разработки для SharePoint 2007 без развертывания DLL в Hive - PullRequest
1 голос
/ 12 августа 2011

Если клиент не разрешает установку DLL в своем кусте SharePoint 2007 (или GAC), есть ли способ создания веб-частей и т. Д. С помощью Visual Studio, для которых не требуется развертывание DLL-файловв улей (или GAC)?Если нет, есть ли другой способ использовать Visual Studio и / или C # с функциональностью пространства имен SharePoint аналогичным образом, даже если не совсем стандартным способом?Этот клиент не собирается позволять нам устанавливать что-либо на коробке, кроме страниц и, если не в GAC или кусте, связанных с SharePoint .dll, разработанных нами.

Примечание: есть какой-то конкретный проектподробности в конце публикации.


Окончательное резюме принятого ответа:

  • Не было получено никакого ответа с альтернативным методом развертывания пользовательских сборок SharePoint (например, не GAC ине куст).
  • Однако можно использовать C #, встроенный в страницу, и вы можете ссылаться на сборку SharePoint и использовать ее в коде.(подробности см. в принятом ответе)
  • Многим вещам, которые я ожидал, понадобился пользовательский код, и, похоже, во многих случаях это было бы даже возможно / полезно сделать.

У меня есть несколько базовых идей о том, как это может работать («волшебство происходит»), но, будучи твердо в квадранте «не знаю, чего я не знаю», вернотеперь я не знаю, можно ли это сделать, и я не знаю, получит ли какой-нибудь возможный альтернативный маршрут что-то большее, чем просто разработка непосредственно в SharePoint Designer без C # / Visual Studio.

ideas:

  • Разработка с Visual Studio в обычном режиме, с использованием WSPBuilder или стандартного проекта SharePoint, но вместо обычного развертывания установка библиотеки DLL в не относящееся к кустам местоположение на компьютере,а затем каким-то образом включить элементы в качестве внешнего ресурса.

  • Создать самодостаточный веб-сервис, который так или иначе можно назвать, обслуживать компоненты, которые могут быть включены в сайт SharePoint.

  • Разработка отдельных веб-страниц / веб-элементов управления в веб-проекте, не относящемся к SharePoint, с последующим их включением в сайт SharePoint;или, как-то создавая ссылку на них в каталогах IIS

  • Разработка отдельных веб-страниц / веб-элементов управления в веб-приложении и использование Hostable WebCore для доставки того, что необходимо, и, конечно же,каким-то образом включая обслуживаемые страницы в SharePoint.

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

(Приношу свои извинения, если ответ очевиден; я новичок в разработке SharePointи у меня есть опыт работы только с веб-разработкой высокого уровня (например, довольно простой .ascx / .aspx, ия использую конструктор страниц), поэтому мне нужно быстро ориентироваться.Когда я ищу помощь по «очевидным» поисковым терминам, я получаю огромное количество информации для нормальных сценариев, но не нашел ответа на это.)


По запросу, вот подробности, которые я могу дать о конкретном проекте.В настоящее время у меня есть информация только о ее части, и это долгосрочный проект с множеством частей, которые будут основываться друг на друге.Поэтому, к сожалению, если решение не является достаточно общим, мне, вероятно, придется пойти по пути SharePoint Designer, чтобы избежать риска, связанного с использованием метода, который может быть несовместим с частями, которые появятся в будущем.Кроме того, я прошу прощения за то, как они являются общими;Я пытаюсь предоставить список необходимых возможностей, а не детализацию реального проекта.

  • возможность иметь домашние страницы отдельных пользовательских сайтов, которые позволяют им просматривать различную информацию о проектах, которыми они владеют, ипроекты, в которых они участвуют,
  • имеют возможность иметь шаблоны сайтов, в которых хранятся шаги типа мастера, которым должны следовать пользователи
  • возможность связывать шаблоны мастера с различными документами и, возможно, другими вещами, связанными с различнымиsteps
  • возможность сохранять различные связанные роли и атрибуты (например, сколько времени отводится на выполнение задачи) с элементами в шаблонах
  • возможность использовать мастерсоздавать экземпляры элементов сайта и разрешать или обеспечивать назначение других пользователей на основе атрибутов шаблона
  • возможность для некоторых ролей, связанных с элементом, редактировать документ и сохранять его обратно, а также ограничивать редактирование других пользователейих
  • способность к использованиюкроме создателя проекта (возможно, на основе роли проекта, назначенной пользователем), чтобы просмотреть всю информацию (временные шкалы и т. д.) и редактировать все документы в способности проекта
  • для связанных пользователей, которые имеютроли, назначенные для пометки, когда они завершают свою часть задачи
  • способность вычислять временные рамки на основе информации из атрибутов для различных элементов в проекте
  • возможность уведомлять пользователей (черезуведомления электронной почты и домашней страницы сайта) в ролях, которые должны выполнять действия или помечены как необходимые для получения обновлений по одному или нескольким элементам проекта
  • возможность заблокировать элементы проекта от изменения после завершения шага;и, возможно, разблокировать и / или отозвать шаги
  • возможность автоматически создавать отчеты и отправлять их в соответствующие местоположения (возможно, по электронной почте, а также, возможно, на страницу администрирования сайта или на другой сайт целиком).
  • возможность отмечать завершенные проекты и архивировать их в отдельном разделе, доступном только для просмотра определенным группам окон или группам, определенным на месте

Я также знаю, что есть намерение значительно увеличитьМасштаб этого проекта, как только мы завершим первую часть к удовлетворению клиента.Я пытаюсь узнать больше информации и опубликую здесь, если / когда это будет доступно.

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

Ответы [ 3 ]

1 голос
/ 16 августа 2011

Можно было бы развернуть код в каталоге BIN вместо GAC.

Каталог BIN работает с минимальным доверием .Однако некоторые вещи нельзя развернуть здесь (например, приемники событий).

См. Также, Как развернуть веб-часть SharePoint в bin .

1 голос
/ 12 августа 2011

Если вы вообще можете это сделать, вы должны увидеть, будет ли возможно сделать обновление с sharepoint 2007 до 2010, потому что многие из описываемых вами проблем намного легче решить в 2010 году.

Что-то, что действительно помогло бы мне разработать более подробный ответ, - это очень краткое описание того, какой функциональности вы пытаетесь достичь.


ОК, спасибо за обновление. Я сделаю все возможное, чтобы рассмотреть все пункты проекта.

  • Ваша первая точка легко доступна с помощью так называемого Mysite .
  • По всем пунктам, где вы обсуждаете шаблоны мастера, которые могут хранить документы и связанные с ними данные, вы, возможно, захотите взглянуть на Microsoft Infopath , не гарантируя, что он будет идеально соответствовать, но примите посмотри и реши.
  • Самое замечательное в infopath заключается в том, что когда вы объединяете его с рабочими процессами Sharepoint, вы можете устанавливать правила для выполнения действий и различные представления, что позволит вам назначать роли, связанные с правами редактирования и тому подобным для документов.
  • Опять же, поскольку у infopath есть возможность легко отправлять данные в список общих ресурсов или в библиотеку документов, любые вычисления на основе данных так же просты, как и выбор данных, которые вы хотите, и того, что вы хотите с ними делать.
  • Для уведомлений рабочие процессы sharepoint в Microsoft SharePoint позволяют легко создавать электронные письма.
  • Что касается вашего последнего пункта, это еще один рабочий процесс, и возможность сделать сайты видимыми только для определенных групп является основной функциональностью sharepoint.

Все они доступны в SP 2007, но, честно говоря, это будет более финансово ответственным, если учитывать сложность и длительность проекта для использования SP 2010. Кроме того, процесс перехода проходит гладко, и вы ничего не потеряете. Прибыль. Однако из того, что вы сказали, это может быть невозможно, это позор, но в любом случае удачи!


Эта часть должна помочь вам со страницами C #, вот базовая страница hello world.

<%@ Page Language="C#" %>
<script runat="server">
  public void Page_Load(object sender, EventArgs e){
    Response.Write("<h1>Hello World!</h1>");
  }
</script>

Обычно я пишу это в конструкторе sharepoint. Также, скажем, если вам нужно работать с Microsoft.SharePoint.dll, предоставляемым на сервере, вы можете добавить эту строку: <%@ Import Namespace="Microsoft.Sharepoint" %>, так как это страница на сервере, вам не нужно специально связывать ее каким-либо образом, только одна маленькая строчка после объявления языка страницы. Надеюсь, это все прояснит!

0 голосов
/ 12 августа 2011

У нас есть решение, использующее сценарии IronPython. Здесь есть веб-консоль IronPython, общий приемник событий IronPython, страница, рабочий процесс, отметка времени, библиотека сценариев, которую также можно редактировать через веб-интерфейс, и список необходимых настроек. Я надеюсь в какой-то момент открыть исходный код, но полная версия может сделать намного больше.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...