веб-приложение asp.net с c # & vb.net как в коде позади

2

В настоящее время у нас есть сайт asp.net с некоторыми модулями, разработанными в VB.Net, а некоторые - на С# (а не только на классах, а также на отдельных страницах aspx и в коде). Мы решили, что хотим перейти к модели веб-приложений, поскольку нам нужно реализовать CI с TFS.

Проблема:

Когда мы создаем веб-приложение С#, скопируем файлы с сайта и скажем, конвертируем в веб-приложение, оно дает Could not Parse errors (возможно, потому, что файлы являются файлами vb.net)

Когда мы создаем веб-приложение VB.NET, скопируем файлы и скажем, конвертируем в веб-приложение, он конвертирует только страницы vb.net и публикует ошибки на всех страницах С#, говоря Could not load type

Сайт asp.net будет работать с поддержкой нескольких языков.

Помощь будет высоко оценена!

  • 1
    Причина, по которой это работало, когда у вас был веб-сайт, заключалась в том, что код не компилировался до тех пор, пока он не был необходим, а затем каждая страница была бы скомпилирована отдельно. С веб-приложением все это скомпилировано в одну DLL, и вы не можете смешивать языки в одной DLL.
  • 0
    Я понимаю, что инвестиции были сделаны, но почему используются два языка? Кажется, это было бы кошмаром для поддержания.
Показать ещё 1 комментарий
Теги:
web-applications
projects-and-solutions

3 ответа

3

Можете ли вы разбить приложение на два отдельных веб-приложения, которые запускаются из одного корневого каталога? Просто поместите обработанную С# dll в корзину с помощью скомпилированной dll VB.net и поместите все страницы aspx везде, где они должны быть для вашей структуры сайта.

Я не пробовал это сам, но он должен работать. Вам нужно будет создать отдельный проект и ссылаться на любые слои данных и т.д. Просто переместите код С# в новое приложение и посмотрите, как это происходит. Не лучшее решение, но оно превосходит преобразование с одного языка на другой.

  • 0
    Спасибо Брент, ваше решение работает.
  • 0
    Просто добавлю немного информации о том, что сработало для меня: два проекта веб-приложения (один для vb, один для c #). Сделайте один проект своим «основным» - создайте ссылку на проект другого. Создайте событие после сборки, чтобы скопировать все ваши .aspx из дополнительного местоположения проекта в основное местоположение. Это должно привести вас в хорошее место.
0

Вы можете сделать это с веб-сайтами, но не с веб-приложениями. Также обратите внимание, что если вы хотите или должны делать это, у веб-приложений действительно нет дополнительного уровня мощности, который не хватает веб-сайтам. Веб-приложения могут иметь преимущества развертывания в некоторых средах, но visual studio 2010 и 2012 будут публиковать веб-сайты и веб-приложения asp.net как с легкостью.

0

Поместите все имена папок App_Code, содержащие код С#, в раздел CodeSubDirectories в вашем web.config

p.s. это как это делается в DotNetNuke

  • 0
    Что мне делать с отдельными страницами aspx, где некоторые коды позади vb.net, а некоторые c #?
  • 0
    вау ... ты должен это исправить, ты не можешь просто поменять языки
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню