1. C# / Говнокод #8167

    +113

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public List<ReducedPayer> red_pay_list
            {
                get
                {
                    if (Session["red_pay_list"] == null)
                        Session["red_pay_list"] = new List<ReducedPayer>();
    
                    return (List<ReducedPayer>)Session["red_pay_list"];
                }
    
                set { Session["red_pay_list"] = value; }
            }

    без коментариев

    Запостил: bercerker, 12 Октября 2011

    Комментарии (72) RSS

    • >без коментариев
      Нет, уже позвольте)
      Ответить
    • А вот и он, красный плата список&reg;
      http://govnokod.ru/8103#comment111949
      Ответить
    • > ReducedPayer
      страшная история одного Payer, который не хотел pay, за это его внесли в страшный red_pay_list и сделали из него Reduced в лесу.
      Ответить
    • Так что же в коде не нравится постеру? Отложенная инициализация, стандартный приём (языковонезависимый).
      Ответить
      • > без коментариев
        он ещё сам не понял
        Ответить
      • Ему не нравиться, что храниться List в сессии
        Ответить
      • за такой стиль программирования нужно руки поламать. Session - это приемлемо в asp 1.1, но никак не в ASP.NET 4

        такое нубы пишут
        Ответить
        • Грешно смеяться с нубов.
          Ответить
          • если человек учится, то да.
            но если он "програмит" 3 года и еще других жизни кодерской учит, то это нужно озвучить
            Ответить
            • 3 года 3 годам рознь. Вот у меня, допустим, опыт работы с джавой около 10 лет, и вроде бы этот срок достаточный, а в том же шарпе я бы еще и не такое нагородил )
              а теперь вопрос: позволительно ли мне учить других жизни кодерской?
              Ответить
              • если кодер чего то не знает, то он спросит. верно?
                по поводу джавы просто процитирую фразу автора кода:
                "та что там джава! как делфи, шарп. Те же яица, только в профиль!"
                Ответить
                • если кодер чего то не знает, то он спросит.
                  если программист чего-то не знает, то он прочитает книжку, залезет в ман или референс, а если вопрос нестандартный - пойдет искать хелпа по форумам
                  Ответить
                  • +1
                    "спросит" - спросит хелп (гугл, книжку, команду)
                    Ответить
                    • тут важен порядок. если чел сразу лезет создавать на любимом форуме тему с заголовком "ПОМОГИТЕ!!!!" и расплывчатым описанием, то хреновый это кодер.
                      а вот если сначала книжку, потом ман, а потом уже гугл и форумы (причем в режиме рид-онли), тогда да.
                      Ответить
                      • Сначала официальный мануал.
                        А уж после факи, книжку, форум...ну и сюдой можно заглянуть.
                        Ответить
                        • > сюдой можно заглянуть
                          чтобы посмотреть, как делать не надо?
                          жизненный опыт - знания о том, что не нужно делать в ситуациях, которые никогда не повторятся
                          Ответить
                          • Даааа...и не только, иногда толковый техносрач стоит больше всяких супер факов.
                            >жизненный опыт
                            В некоторых случая «знания о том что не надо делать» помогают упредить ситуации в которые не следует попадать.
                            Ответить
                        • > Сначала официальный мануал.
                          хорошо, если есть статья "quick start" с хелловорлдом и базовыми понятиями, а так, обычно это всего API Reference в стиле javadoc
                          Ответить
                          • http://govnokod.ru/ - лучший "quick start" с хелловорлдом и базовыми понятиями.

                            >если кодер чего то не знает...
                            он во-первых кодер, а уж потом «чего-то не знает».
                            Ответить
                            • > http://govnokod.ru/ - лучший "quick start" с хелловорлдом и базовыми понятиями.

                              неа, скорее, это вакцина "как не надо делать", нубам только во вред
                              Ответить
                • а сравнение с джавой не только шарпа, но и делфи, как минимум забавно, а как максимум, значит, что автор двух из трех в глаза не видел.
                  Ответить
                  • «Вы забываете, что с высоты моего происхождения не видно никакой разницы даже между королем и вами.»
                    Ответить
        • интересно, расскажите, чем так сессия изменилась со времен .net 1.1 до 4.0?
          Ответить
    • А начерта set в данном свойстве? Слишком уж корявый подход.
      Ответить
      • А вдруг? Правда если Set, то стоило еще сделать что-то вроде OnPropertyUpdate(блабла), хотя в веб это не так важно.
        Ответить
      • Ну, по идее типа проинициализировать его можно через set, чтобы не лезть в сессию.

        Если эта хрень в базовом классе хранится, а в дочернем уже можно обращаться к проперти, а не к сессии.

        Кстати, а что теперь в asp.net вместо сессии появилось?
        Ответить
        • 1. сессия работает на стороне сервера, а это значит что по таймауту (20 мин по умол) все сгорает. и человек что то делал. попил кофе сел. увидел что пропало и орет: какая же сцуко это написала!
          2. несколько веб-серверов. как работать? только делать еще какие то костыли, только зачем?
          3. так делают нубы, которые не знают как передать данные между формами
          Ответить
          • 2. про asp.net state service часом не слыхали? а зря
            Ответить
            • а нахрен использовать то, от чего отказались?
              Ответить
              • Отказались кто и где? Вы это, пруф предоставьте чтоли. Я понимаю, чесать языком модно сейчас.
                В веб ферме без state service\SqlServerMode сессия то работать не будет, так же как и в ажурном инстансе.
                Ответить
                • клауд не работает с сессиями , уважаемый товаришь
                  Ответить
                  • Клауд какой?
                    Если Azure, то они рекомендуют использовать кастомный SessionProvider с хранением в Table Storage\Sql Azure
                    http://stackoverflow.com/questions/1023108/how-does-microsoft-azure-handle-session-state

                    Остальные клауды типа Amazon-а просто дают виртуалку\etc, а на ней поднимается веб верма с дефолтными StateService\SqlServerMode
                    Ответить
                    • дункан макклауд
                      Ответить
                    • поддержу guest и bugmenot " рекомендуют использовать кастомный SessionProvider с хранением в Table Storage\Sql Azure" это никак с сессиями не связано. писать в Table Storage\Sql Azure равносильно обычному запросу в базу. верно?
                      а они рекомендуют, потому что у них нету какого то решения

                      и вопрос : так где же сессии в Azure?
                      Ответить
                      • Это равносильно обычной веб ферме, а не Azure. Для Azure как хранилище сессии можно использовать Azure\Windows AppFabric Caching, который хранит все в памяти, и схож с state service.

                        Я кагбы не доказываю, что нужно использовтаь только сессию в клауде, а говорю о томчто она вполне возможна. Так как некий guest, говорил что клауд не умеет работать с сессией.

                        Да, в случае с клаудом - использование сессии даёт свои проблемы, и не всегда это целесообразно
                        Ответить
                        • AppFabric Caching работает то с кешем, который является общедоступным, а переменная сессии завязывается на сессию пользователя на исе и соответственно он а уникальна для каждого юзера.

                          а с guest частично можно согласится, так как Azure на поддерживает встроеные сессии. только через кастом. 2 инстанса и ппц. бери и переписывай все
                          Ответить
                          • AppFabric Caching работает с данными в памяти, а что в ней хранить - кэш данных, либо уникальные сессионные данные пользователя - это вопрос понятий.

                            Вместе с Azure AppFabric SDK в комплекте идёт их AppFabricCacheSessionStoreProvider, который умеет работать с сессией через AppFabric Cache - http://msdn.microsoft.com/en-us/gg457897
                            Ответить
                          • Насчет 2 инстансов - у них AppFabric Cache идёт отдельным сервисов, за который идет отдельная плата, и его не нужно поднимать на отдельном инстансе.
                            Ответить
                            • AppFabric Cache идёт отдельным сервисов, за который идет отдельная плата - ну это по любому. это же МС :)

                              Azure на поддерживает встроеные сессии вот в чем недостаток. а то что используя костыли можна что то реализовать об этом даже не стоить спорить
                              Ответить
                              • Да, MS такой MS :)
                                По поводу встроенных сессий - я ответил сбоку.
                                Можно использовать стандартный - теряя смысл клауда, так как на каждом инстансе своя сессия.
                                Можно взять отдельный инстанс и поднять на нём StateService\Memcache и использовать его для этого
                                Можно взять AppFabric Cache и юзать его уже готовый сессионный провайдер.

                                Опять же, я не доказываю что это хорошо, а говорю, что есть разные варианты. А не просто "в Azure сессии нет"
                                Ответить
                          • "а с guest частично можно согласится, так как Azure на поддерживает встроеные сессии. только через кастом"
                            Он поддерживает встроенную сессию, но ведь если сессия InMemory, то теряется смысл клауда, так как нельзя будет расширить кол-во инстансов. А для этого всеравно нужно переписывать, как минимум проверить корректность сериализации для всех объектов в сессии.
                            Ответить
                            • согласен. но я имею ввиду системы с нескольками инстансами
                              Ответить
                              • Да, но ведь это проблема не Azure, а всех WebFarm\клауд хостингов. Такая же проблема так же присуща и всем остальным фреймворкам, которые поддерживают сессионность.
                                Ответить
                  • Так что guest, найдешь чем умным ответить, или опять состришь на тупняке?
                    Ответить
          • 1. Ну, в целом сессию можно и рефрешить, дергая хэндлер в фоне. И хранить её, как нам подсказывает уважаемый Анонимус, на sql server'e ;)
            2. web farm в смысле или что имеется в виду? Анон верно подметил, что там SqlServerMode рулил, рулит и будет рулить.

            Вообще говоря, тут не понятно, что там в этой сессии хранится и какой объем этого красного-хрено-листа. Если класс красно-хрени не состоит чуть более чем полностью из сериализуемых типов, то его на клиенте не особенно похранишь.

            ну и если красно-списковая-хрень занимает там 50 мегабайт пер лист, то лучше её держать на серваке, чем перегонять по каналу клиент/сервер.
            Ответить
    • КГ / АМ
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий