Миграция от Классика ASP к.NET и смягчению боли

Вы можете использовать pivot_table с unstack :

print df.pivot_table(index='Symbol', 
                     columns='Year', 
                     values='Action',
                     fill_value=0, 
                     aggfunc='count').unstack()

Year  Symbol
2001  AAPL      2
      BAC       0
2002  AAPL      0
      BAC       2
dtype: int64

Если вам нужен вывод как DataFrame, используйте to_frame :

print df.pivot_table(index='Symbol', 
                     columns='Year', 
                     values='Action',
                     fill_value=0, 
                     aggfunc='count').unstack()
                                     .to_frame()
                                     .rename(columns={0:'Action'})

             Action
Year Symbol        
2001 AAPL         2
     BAC          0
2002 AAPL         0
     BAC          2

5
задан Alvaro Joao 16 December 2017 в 10:52
поделиться

8 ответов

Верьте мне, я знаю точно, куда Вы происходите из.. Я в настоящее время перемещаю крупное приложение от классика ASP к.NET.. И я все еще изучаю ASP.NET! :S (да, я испуган!).

Главное, которое я сохранил в своем уме, является этим:

  • Я не отклоняюсь слишком далекий от текущего дизайна (т.е. не крупный "позволяет, срывают Все это и делают это ASP.NET волшебный!) из-за невероятно большого количества связи, которую классик ASP склонен иметь, это было бы очень опасно. Конечно, если Вы уверены, заполняете свои начальные загрузки :) Это может всегда быть пересмотрено позже.
  • Создайте резервную копию всего с тестами, тестами и большим количеством тестов! Я действительно очень стараюсь войти в TDD, но его очень трудное для тестирования существующих приложений, таким образом, каждый раз я удаляю блок классика и замены.NET, я удостоверяюсь, чтобы у меня было как можно больше тестов зеленого света, поддерживающих меня.
  • Исследование много, существуют некоторые Существенные изменения между классиком и.NET и иногда что может быть многими строками кода и включает в классика, может быть достигнут в нескольких строках кода, думайте перед кодированием.. Я изучил это твердый путь, несколько раз :D

Очень как проигрывание Jenga с Вашим кодом :)

Всего наилучшего с проектом, больше вопросы, затем спросите :)

6
ответ дан 13 December 2019 в 22:20
поделиться

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

Doing it wrong

Обычно я не поклонник TDD, но в случае рефакторинга его действительно способ пойти.

Запишите некоторые тесты сначала, которые проверяют то, что на самом деле делает бит, на который Вы смотрите. Затем осуществите рефакторинг. Это НАМНОГО более надежно, чем просто, 'похоже, что это все еще работает'.

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

2
ответ дан 13 December 2019 в 22:20
поделиться

Вы идете от классического ASP до ASP с 3,5 без просто перезаписи? Skillz. Я должен был иметь дело с некоторым ASP прежней версии @work, и я думаю, что просто легче проанализировать его и переписать его.

1
ответ дан 13 December 2019 в 22:20
поделиться

ASP-страница с 1500 строками? С большим количеством из обращается, включают файлы? Не говорите мне - функции не имеют никакого соглашения о присвоении имен, которое говорит Вам, которые включают файл, имеет их реализацию... Это возвращает памяти (дрожь)...

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

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

Удачи!

1
ответ дан 13 December 2019 в 22:20
поделиться

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

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

ASP.NET помогает следовать за вызовами функции вокруг, таким образом, Вы могли бы запустить, вспыхнув Ваши большие блоки кода в несколько меньших функций.

0
ответ дан 13 December 2019 в 22:20
поделиться

Я однажды столкнулся с приложением .NET, которое было портировано от ASP. .aspx страницы были полностью пробелом. Для рендеринга UI разработчики использовали StringBuilders в коде позади и затем сделали response.write. Это было бы неправильным способом сделать это!

0
ответ дан 13 December 2019 в 22:20
поделиться

Не говорите мне - функции не имеют никакого соглашения о присвоении имен, которое говорит Вам, которые включают файл, имеет их реализацию... Это возвращает памяти (дрожь)...

Как Вы предполагали?;)

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

Это было чем-то, о чем мы говорили. На основе синхронизации (пытающийся разбить сайт конкурента для запуска) и ресурсы (в основном два разработчика) имело смысл не уничтожать сайт с орбиты. Дела на самом деле шли намного лучше, чем я ожидал. Мы знали даже от перспективного проектирования, что этот код собирался дать нам большинство проблем. Необходимо видеть историю пересмотра классических включенных ASP-страниц, это - кровопролитие.

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

У меня на самом деле было это неудовольствие работы с унаследованным кодом вполне немного, таким образом, у меня есть достойное понимание высокого уровня системы. Вы правы относительно функциональной длины, существуют некоторые стандартные программы (большинство, я осуществил рефакторинг вниз в намного меньшие), которые 3-4x пока любая из aspx страниц/помощника, classes/ORMs на новом сайте.

0
ответ дан 13 December 2019 в 22:20
поделиться

Я однажды столкнулся с приложением .NET, которое было портировано от ASP. .aspx страницы были полностью пробелом. Для рендеринга UI разработчики использовали StringBuilders в коде позади и затем сделали response.write. Это было бы неправильным способом сделать это!

Я видел сделанный другой путь, код позади страницы был пробелом, за исключением объявления globals, затем VBScript оставили в ASPX.

0
ответ дан 13 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: