2014-11-14 2 views
3

Я унаследовал огромное приложение веб-форм, которое было создано автоматически с классического сайта asp.Как я могу получить код C# и vb.net в одном приложении ASP.NET Web Forms?

Это оставляет страницы .aspx со встроенным в них кодом (без отдельного кода). Некоторые попытки были сделаны для модернизации, поэтому некоторые страницы существуют с кодом C#. Они смешиваются в тех же папках, что и страницы с встроенным vb.net.

У меня есть желание получить кодовую базу в какой-то форме ... и моим первым шагом было переместить встроенный код в код позади ... но я не могу, поскольку компилятор ожидает, что codebehind будет в C# и не распознает файлы codebehind, которые я создаю (ни Visual Studio не объединит файлы в своем графическом интерфейсе).

Какие шаги я могу предпринять здесь? Если я должен вытащить файлы C# в отдельные папки, я могу это сделать, но я не уверен, что смогу получить отдельный проект, он значительно изменит шаги развертывания (я думаю)

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

+0

Я считаю, что если вы откроете свой сайт в качестве веб-сайта в Visual Studio (через «Открытый веб-сайт» и указав локальную папку или виртуальный каталог IIS), вы должны иметь возможность компилировать и запускать смешанные и сопоставленные код. –

+0

Ну, я могу открыть его вот так ... он тогда не сможет построить полностью! Есть ли блог, который поможет мне понять разницу в открытии как обычно или в качестве веб-сайта? – Loofer

+0

Возможно, я ошибаюсь, но из опыта каждый проект должен иметь все его файлы кода на одном языке. Файлы aspx отличаются друг от друга, поскольку они скомпилированы при доступе к странице. –

ответ

1

Это невозможно. Когда компилятор строит ваш проект, он ожидает один язык. Вам либо нужно оставить VB.Net в aspx (который интерпретируется и не компилируется), либо переместить код за файлами для этих страниц VB.Net в другую сборку, на которую ссылается основное приложение.

1

Один проект должен иметь единый язык. (Папки в значительной степени неактуальны, за исключением того, что вы правильно держите свои пространства имен.) Но я успешно создал отдельный проект C# для проекта aspx VB.Net со сложным переплетенным кодом на странице, как вы описываете , То, как я это сделал, что работал очень хорошо, был

  1. Создать отдельный C# проект с бизнес-логикой
  2. Вызовите C# бизнес-логики от VB ASPX страниц

Каждый проект компилируется в его собственную сборку (dll), и ее легко вызвать в одном проекте из другого. У меня не было проблем (я все равно помню) с развертыванием. И если ваш проект «обширен» и содержит много папок, он, вероятно, должен быть разбит на отдельные проекты. Удачи! :)

Смежные вопросы