управление несколькими общими проектами для публикации?

#.net #asp.net #wcf #web-services #visual-studio-2010

#.net #asp.net #wcf #веб-сервисы #visual-studio-2010

Вопрос:

вот мой сценарий. У меня есть 3 веб-проекта, выполняющих аналогичную работу, и эти веб-сайты используют проекты библиотеки общих классов как BSL (бизнес-уровень) и DAL (уровень базы данных). поэтому другая часть находится только в проекте веб-сайта. если я внесу изменения в общие проекты, мне придется публиковать / загружать для каждого веб-сайта на моем веб-сервере. У меня также есть веб-сервис, предоставляющий содержимое этих веб-сайтов. в основном используются библиотеки общих классов веб-сайтов и возвращаются в виде выходных данных soap.

Теперь мой вопрос в том, как я могу централизовать свои проекты библиотек общих классов, для которых требуется только 1 публикация и веб-сайты для внесения изменений?

Похоже, что веб-сервис — это правильный путь. но мне не нравится производительность webservice. Я считаю, что это будет медленнее, если я использую веб-сервис.

Комментарии:

1. Если вы имеете в виду «веб-сервис ASMX», когда говорите «веб-сервис», то вы правы в том, что он медленный. Если вы используете WCF с привязкой net.tcp или, возможно, даже с привязкой именованных каналов, то это может быть достаточно быстро для вас.

2. Да, я имею в виду веб-службы asmx. Я также думал о сетевой привязке wcf tcp, но я никогда не использовал ее, и я не знаю, насколько быстро она работает в интрасети. Я полагаю, это должно быть достаточно быстро. Я просто хотел узнать, есть ли лучшие подходы для рассмотрения. Спасибо

3. WCF всегда является лучшим подходом, чем ASMX. Кроме того, если два конца находятся на одном компьютере, то привязки именованных каналов должны быть еще быстрее.

Ответ №1:

Вы могли бы развернуть сборки в GAC. Благодаря развертыванию сборок DAL в GAC их можно использовать во всех веб-приложениях, и их нужно будет обновлять только в одном месте.

Информацию о том, как выполнить развертывание в GAC, и другие соображения можно найти в MSDN, здесь

Комментарии:

1. глобальный кэш сборок — это общее хранилище для сборок в системе Windows. вы можете устанавливать в него сборки и использовать их в разных приложениях. дополнительная информация о MSDN: msdn.microsoft.com/en-us/library/yf1d93sz (v=VS.100).aspx

2. Я знаю , что такое GAC! Я имел в виду, пожалуйста, уточните в своем ответе!

3. это быстрее, чем привязка Wcf tcp, если у меня есть и Tcp, и веб-сайт на одном компьютере? с другой стороны, как я могу использовать код из этого GAC? Это как общий класс или что-то в этом роде. Спасибо.

4. да, веб-сайты ссылаются на сборки во время разработки и загружают их в домен приложений web applications. вы не будете развертывать сборки уровня сервиса с веб-приложением.