Классическая ASP Intranet и новые приложения ASP.NET - PullRequest
6 голосов
/ 01 октября 2008

У нас есть классическая ASP-интрасеть, состоящая из сотен страниц. Его структура каталогов выглядит следующим образом ...

/root
    app_1
    app_2
    ...
    img
    js
    style

Очевидно, что app_1 и т. Д. Имеют лучшие имена в реальной структуре каталогов.

Несмотря на то, что многие приложения ведут себя по-разному, все они являются частью одной интрасети и поэтому имеют общий внешний вид, включая таблицы стилей через / style, изображения через / img и клиентский скрипт через /js.

.

Проблема (по крайней мере для меня) возникает, когда я хочу добавить приложение интрасети в ASP.NET.

В конечном счете, я хотел бы эту структуру:

/root
    app_1
    app_2
    dotnetapp_1
    dotnetapp_2
    ...
    img
    js
    style

Мне кажется, что ASP.NET-приложениям нравится думать о себе как об отдельном от всего, что их окружает (это может быть просто моим пониманием того, как они есть). Вы создаете новый «проект» в Visual Studio, и у вас появляется новый «root» уровень ниже фактического root, который я хочу использовать. Как будто это новое приложение - вещь, стоящая в одиночестве, со своими изображениями, стилем и еще чем-то. Однако я хочу, чтобы он был частью существующей интрасети.

В конечном итоге я хочу, чтобы вся моя классическая интрасеть ASP была «корневой», и у меня есть ASP.NET «подпрограммы», которые по-прежнему могут обращаться к / style и / img, и, думаю, для ASP.NET я буду есть /masterpages.

Я пробовал это раньше, но я думаю, что VS захлебнулся парой сотен классических страниц ASP, которые он добавил в «проект», когда я сделал свой существующий корневой каталог интрасети корневым каталогом проекта ASP.NET (через File-> Открыть-> Веб-сайт). Было бы неплохо отредактировать мою существующую классическую ASP-интрасеть, используя VS 2008 SP1 (в настоящее время я использую превосходный Notepad ++ ), потому что я хотел бы получить больше опыта с VS, но я думаю, что это не совсем необходимо.

Я также пытался рассматривать каждое новое приложение ASP.NET как отдельное приложение, эффективно превращая каталог / dotnetapp_1 в «корень» приложения (опять же через File-> Open-> Web Site в VS2008). Однако VS тогда жаловался, когда я пытался ссылаться на / masterpages, потому что он «принадлежал другому приложению». Я думаю, что я запутал это, добавив виртуальный каталог внутри каждого каталога ASP.NET, который «указывал» на root / masterpages, но я не уверен, что VS смог с радостью предоставить WYSIWYG-редактирование, когда я делал это, в отличие от создания копии главной страницы в каждом приложении ASP.NET, которое я добавляю в интрасеть.

Я также вполне могу посетить .NET MVC Framework, поэтому, пожалуйста, предложите любые ответы с учетом этой среды. Я надеюсь, что «проекты» не очень важны для MVC, и, скорее, это просто набор файлов, которые создают приложение, которое вносит вклад в целое (то есть в интранет).

Итак, вопрос в следующем: Как я могу наилучшим образом добавить приложения ASP.NET в существующую классическую интрасеть ASP (меня не интересуют технические аспекты разделения сеансов между классическим ASP и ASP.NET, только структурная схема каталогов и проектов) и возможность редактировать эти отдельные приложения в Visual Studio 2008 с пакетом обновления 1 (SP1), и, тем не менее, эти приложения «связаны» друг с другом общим интрасетевым внешним видом *?

  • Пожалуйста, не размещайте ответ "используйте MasterPages". Я ценю, что MasterPages - это метод обмена стилями (и, что более вероятно,) между .NET в связанных приложениях . Я понимаю. То, что я ищу, - это лучший способ добавления приложений ASP.NET в существующую интрасеть как можно более плавным, что упрощает редактирование каждого приложения и позволяет каждому приложению использовать (если возможно) общий стиль интрасети.

Ответы [ 4 ]

2 голосов
/ 01 октября 2008

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

Microsoft поняла, что некоторые клиенты некоторое время будут смешивать классические ASP и ASP.NET, и они удовлетворили эту потребность, заставив классические страницы ASP работать на сайте ASP.NET. То, что вы пытаетесь сделать, - это обратное (заставить ASP.NET работать в ASP, и так далее), и вы уже столкнулись с трудностями.

2 голосов
/ 01 октября 2008

Одним из решений было бы использование IIS Manager для настройки веб-сайта (созданного для вашего приложения ASP.NET Visual Studio) и добавления виртуального каталога для каждой из общих папок таким образом (по «виртуальной» природе виртуального каталог) они «будут отображаться» в той же корневой папке, что и ваше приложение ASP.NET.

/root
  app_1
  app_2
  dotnetapp_1
    <virtual>img
    <virtual>js
  ...
  img
  js
  style

Вы, вероятно, можете написать скрипт IIS или отредактировать файл XML, если вам нужно сделать это массово, и я уверен, что должен быть еще более элегантный способ сделать что-то подобное, не требующее большой работы мыши! 1004 *

0 голосов
/ 26 мая 2009

Пара разных способов сделать это:

  1. Если указанная структура папок является требуемой структурой веб-папок, то любое из ваших приложений ASP.NET может просто ссылаться на /root/js/whwhat.js или ../js/whever.js, и оно попадет папки у вас уже есть в корне. Это альтернатива уже упомянутому решению для виртуальных каталогов. Это довольно грязное решение, которое делают некоторые проекты, которые я унаследовал на моей нынешней работе.
  2. На предыдущей работе я пару лет управлял гибридным классическим приложением ASP / ASP.NET и сделал это, создав веб-приложение ASP.NET в корне и переместив в него все свои страницы ASP. Любые «подпрограммы», которые вы хотите создать, должны быть просто папками в этом единственном проекте. [На страницах ASP больше нет цветовой кодировки в VS2008, что действительно раздражало.]
0 голосов
/ 12 декабря 2008

Не можете ли вы запустить сайт asp.net как виртуальный каталог?

www.site.com/dotnetapp/

Где dotnetapp - это отдельный виртуальный каталог?

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