powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC - слетела настройка отображения ошибок
165 сообщений из 165, показаны все 7 страниц
ASP.NET MVC - слетела настройка отображения ошибок
    #38525558
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раньше у меня было своё отображение сообщений об ошибках, но почему-то вдруг всё сбилось (хотя настройки не менял) и стала отображаться полная информация об исключении, типа такой, как показана на картинке.

Настройки веб-конфига такие:

<customErrors mode="Off" />

<compilation debug="false"

Ошибки перехватываю в Global.asax в методе Application_Error. В нём формируется лог, который пишется на сервере, и сообщение для пользователя, которое отображается на специальной странице через направление на специальный контроллер и действие:

this.Response.Redirect("/Error/ErrorPage");


Так вот, раньше всё работало. Пришёл сегодня, покодил немного (вышеупомянутые настройки не менял) - лог перестал писаться, перенаправление не работает, зато вот эту дефолтную байду, что на картинке, показывает. При этом на изменение compilation debug не реагирует. Делал ребилд проекта - не работает.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38525583
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага! Нашёл строчку, что это натворила. Когда писал лог (всё в том же методе Application_Error), добавил строчку

Код: c#
1.
ctx.Request.ServerVariables["X_FORWARDED_FOR"].Split(',').ToList().ForEach(adress => sb.AppendLine(adress));



где sb - предварительно созданный в том же методе StringBuilder.

Как это может к такому привести?! О_о

Не, я, конечно, щас раскрою эту строчку и по строчке отслежу, но...



...Пока такая догадка - при возникновении ошибки в самом Application_Error, отображается вот то, что на картинке, несмотря на все compilation debug="false".
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38525584
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ctx - это HttpContext ctx = this.Context;
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38525606
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, всё, решил
http://stackoverflow.com/questions/17521277/http-x-forwarded-for-missing-from-servervariables-in-c-sharp .

Надо проверять наличие такой переменной. Но всё же странно, почему при возникновении ошибки в Application_Error показывается подробная информация об исключении даже при compilation debug="false"?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38525842
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320
Код: c#
1.
ctx.Request.ServerVariables["X_FORWARDED_FOR"].Split(',').ToList().ForEach(adress => sb.AppendLine(adress));


Что это за гавнокод?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38525859
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУuser7320
Код: c#
1.
ctx.Request.ServerVariables["X_FORWARDED_FOR"].Split(',').ToList().ForEach(adress => sb.AppendLine(adress));


Что это за гавнокод?
А что не так? Достаю переменную из сервера ( в ней адреса ), разделяешь адреса по разделителю и каждый адрес логируешь (сначала в стринг билдер, затем весь билдер - в лог).
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38525913
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320, учи Linq. Зачем делать лишний цикл ToList, а потом заново по нему бегать?

http://msdn.microsoft.com/ru-ru/library/system.linq.enumerable.aggregate(v=vs.110).aspx

Код: c#
1.
var sb = ...Split(',').Aggregate(new StringBuilder(), (a, b) => a.AppendFormat(b));
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38525926
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУuser7320, учи Linq. Зачем делать лишний цикл ToList, а потом заново по нему бегать?

http://msdn.microsoft.com/ru-ru/library/system.linq.enumerable.aggregate(v=vs.110).aspx

Код: c#
1.
var sb = ...Split(',').Aggregate(new StringBuilder(), (a, b) => a.AppendFormat(b));


А если стринг билдер создан ранее и там уже много других строк?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38525975
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320А если стринг билдер создан ранее и там уже много других строк?
А если подумать?

Код: c#
1.
...Aggregate(sb, (a, b) => a.AppendFormat(b))
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38526043
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, Ну что............... опять бан ?((
по восьмому пункту не сошлись, или мод -р турбину перекрутил на сухую...
тут вам не там...
А вобще бан не за что имхо...
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38526500
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУuser7320, учи Linq. Зачем делать лишний цикл ToList, а потом заново по нему бегать?

http://msdn.microsoft.com/ru-ru/library/system.linq.enumerable.aggregate(v=vs.110).aspx

Код: c#
1.
var sb = ...Split(',').Aggregate(new StringBuilder(), (a, b) => a.AppendFormat(b));



ещё вариант

Код: c#
1.
sb.Append(String.Concat(ctx.Request.ServerVariables["X_FORWARDED_FOR"].Split(',').Select(x => x + "\n"));



но вот это самый очевидный и быстрый. никаких в данном случае абсолютно ненужных сплитов и LINQ:

Код: c#
1.
sb.Append(ctx.Request.ServerVariables["X_FORWARDED_FOR"].Replace(",", "\n"));



человеки, что с вами? почему всё надо обязательно сделать, хоть и красиво, но через Ж?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38526501
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЗачем делать лишний цикл ToList, а потом заново по нему бегать?

кстати, ToList был сделан ради ForEach я так понимаю )) но всё равно говнокод, да.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38526519
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУЗачем делать лишний цикл ToList, а потом заново по нему бегать?

кстати, ToList был сделан ради ForEach я так понимаю )) но всё равно говнокод, да.
Да, ради. Да, говнокод.

Просто первое, что пришло в голову - аналог форича, но не хотелось городить цикл. Почему метод (именно метод) ForEach есть только у списков и массивов? Его неплохо бы для всех коллекций сделать, чтобы потом удобно, в одну строку лямбдами проходиться по ним. На StackOverflow есть даже примеры подобных циклов как расширяющих методов, а в сам .NET почему-то не завезли.

Впрочем ...
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38526520
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ещё такие извращения через селект http://stackoverflow.com/a/9092364/808128
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38526521
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Есть ещё такие извращения через селект http://stackoverflow.com/a/9092364/808128
Как у Хвоста.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38526981
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем, всем спасибо. Сделал как у Хвоста - с Replace.

А Aggregate вот где нашёл удобно применять - для итераций с дествием по NameValueCollection. Только я раньше делал с Select, а теперь с Aggregate. Например, есть у нас коллекция NameValueCollection. Надо пройтись по ней и что-нибудь с ней сделать. Раньше я делал так (пример с параметрами формы, sb - стринг билдер, созданный ранее)

Код: c#
1.
2.
3.
4.
5.
6.
7.
sb.AppendLine(
    String.Join(
        "\n",
        Request.Unvalidated.Form
            .Cast<string>()
            .Select(key => new KeyValuePair<string, string>(key, Request.Unvalidated.Form[key]))
            .Select(pp => String.Format("{0}='{1}'", pp.Key, pp.Value))));




а теперь делаю так

Код: c#
1.
2.
3.
4.
5.
6.
Request.Unvalidated.Form
    .Cast<string>()
    .Aggregate(sb, (stringBuilder, nextKey) => stringBuilder.AppendFormat(
        "{0}='{1}'",
        nextKey,
        Request.Unvalidated.Form[nextKey]));



Ну, как вам мои лямбды? Кто тут говорил, что за лямбды бьют?

Кстати, не помню, нафига я использовал раньше KeyValuePair. В первом случае можно было обойтись одним селектом и аналогичной лямбдой, как во втором случае. Наверное, тупо передрал пример, не подумав.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38527476
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

рекомендую обзавестись привычкой вложенные проперти сохранять в локальную переменную и потом работать с ней:

Код: c#
1.
2.
3.
4.
5.
var uform = Request.Unvalidated.Form;

uform
    .AllKeys
    .Aggregate(sb, (b, key) => b.AppendFormat("{0}='{1}'", key, uform[key]));



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

к тому же код чище и лучше подвержен сопровождению.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38527483
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320На StackOverflow есть даже примеры подобных циклов как расширяющих методов, а в сам .NET почему-то не завезли.

дело в том, что LINQ это язык запросов (все методы расширения должны возвращать значение(я)). расширение ForEach не нужен, так как есть прекрасные нативные for(in) и for(;;), которые подходят лучше. вот где действительно уместно применение такой конструкции, это Parallel.ForEach
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38527728
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320На StackOverflow есть даже примеры подобных циклов как расширяющих методов, а в сам .NET почему-то не завезли.

дело в том, что LINQ это язык запросов (все методы расширения должны возвращать значение(я)). расширение ForEach не нужен, так как есть прекрасные нативные for(in) и for(;;), которые подходят лучше. вот где действительно уместно применение такой конструкции, это Parallel.ForEach
Да я и сам привёл ссылку на ссылку на Липперта. Насколько я понял, там философские рассуждения. Просто они (Липперт и Ко, которые рулили созданием Дотнета) решили сделать вроде как самый оптимальный для всех случаев вариант. Но есть и много случаев, когда такой вот форич в виде метода очень даже подошёл бы. Можно, конечно, циклом, но метод с лямбдой - короче и сахарнее.

hVosttuser7320,

рекомендую обзавестись привычкой вложенные проперти сохранять в локальную переменную и потом работать с ней:

Код: c#
1.
2.
3.
4.
5.
var uform = Request.Unvalidated.Form;

uform
    .AllKeys
    .Aggregate(sb, (b, key) => b.AppendFormat("{0}='{1}'", key, uform[key]));



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

к тому же код чище и лучше подвержен сопровождению.
Не понял, причём тут вычисляемые свойства? Тут же поля формы.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38527769
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Но есть и много случаев, когда такой вот форич в виде метода очень даже подошёл бы.

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


user7320Не понял, причём тут вычисляемые свойства? Тут же поля формы.

ещё раз. SomeObject.SomeProperty.SomeSubProperty и т.д. надо загонять в локальную переменную, если требуется к свойству SomeSubProperty обращаться в теле метода более одного раза. такая мелочь, а выдаёт новичка с головой.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38527895
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320Но есть и много случаев, когда такой вот форич в виде метода очень даже подошёл бы.

дело не в филосовских рассуждениях. LINQ это язык запросов. соответственно для программиста, который будет читать и поддерживать код, должно быть как минимум кристально очевидно, что цепочка возвращает какой-то результат. даже результат работы Aggregate надо присваивать по-любому, а не паразитировать на "текучем" свойстве того же StringBuilder.
Т. е. когда надо пройтись методом по каждому элементу коллеции, то, по-вашему, лучше использовать обычный цикл, чем "метод, который проходит по всем элементам коллекции, с лямбдой"? И при этом это правильно не с точки зрения выполнения кода программы, а с точки зрения чтения и понимания кода другим программистом? Поэтому чисто технически ничего не мешает сделать форич для коллекций в виде расширяющего метода или ещё чего (на том же StackOverflow есть много простейших реализаций), но вот философия не позволяет?

Я же и говорю - философия. Достаточно поменять одно слово в определении LINQ (query... ну или понимать его шире, чем просто запрос, на который должен прийти ответ), и проблемы как не бывало. Да?

hVosttuser7320Не понял, причём тут вычисляемые свойства? Тут же поля формы.

ещё раз. SomeObject.SomeProperty.SomeSubProperty и т.д. надо загонять в локальную переменную, если требуется к свойству SomeSubProperty обращаться в теле метода более одного раза. такая мелочь, а выдаёт новичка с головой.
Перестраховка? Или традиции и "философия общего случая" и "надо делать универсально"?

Так ведь это свойство измениться не может - мне на сервер форма со своими значениями "приехала" от клиента и там всё жёстко забито. Поэтом в данном конкретном случае я не вижу причины заводить отдельную переменную для считываемых полей. А вот в тех случаях, когда во время чтения могут поменяться значения - да, надо бы "зафиксировать момент". Но и тогда может быть нужно, чтобы считывались именно текущие значения полей, а не зафиксированные на какой-то момент.

Я к тому, что это всё от случая зависит, а вы как бы хотите подвести общее правило - "делать так всегда и везде". Да?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38527936
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Я же и говорю - философия. Достаточно поменять одно слово в определении LINQ

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

user7320Т. е. когда надо пройтись методом по каждому элементу коллеции, то, по-вашему, лучше использовать обычный цикл, чем "метод, который проходит по всем элементам коллекции, с лямбдой"?

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

user7320Я к тому, что это всё от случая зависит, а вы как бы хотите подвести общее правило - "делать так всегда и везде". Да?

нет, я всего лишь порекомендовал обзавестись полезной привычкой, если имеется желание когда-нибудь в обозримом будущем поработать над разработкой проектов в команде.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38527961
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

в защиту новшевств добавлю, что когда прикрутили LINQ, ещё долгое время основная масса боялась его серьёхно использовать, предпочитая обычные циклические конкструкции для перебора элементов. да и сейчас ещё не каждый способен написать на LINQ что-нибудь по-сложнее обычного фильтра и конверта. однако уже повадились с гордостью писать свои кул-расширения типа ForEach, предварительно скопипастив кусок со StackOverflow...
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529005
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320Я к тому, что это всё от случая зависит, а вы как бы хотите подвести общее правило - "делать так всегда и везде". Да?

нет, я всего лишь порекомендовал обзавестись полезной привычкой, если имеется желание когда-нибудь в обозримом будущем поработать над разработкой проектов в команде.
А что, когда проекты в команде, то везде и всюду фичекат? "Так, эти средства языка не используем - это слишком голову засоряет", "Тут лямбды не надо... и вообще лямбды не надо - у нас за них бьют", "Элементы коллекций менять только циклом. А Линк у нас вообще забанен на уровне кастомного дистрибутива Дотнета, из которого он выкинут"?

hVosttuser7320,

в защиту новшевств добавлю, что когда прикрутили LINQ, ещё долгое время основная масса боялась его серьёхно использовать, предпочитая обычные циклические конкструкции для перебора элементов. да и сейчас ещё не каждый способен написать на LINQ что-нибудь по-сложнее обычного фильтра и конверта. однако уже повадились с гордостью писать свои кул-расширения типа ForEach, предварительно скопипастив кусок со StackOverflow...
"Боятся использовать" - муахаха! Так и сказали бы, что не слезают с заказчиков, которые на 2.0 всё заказывают и на XP без сервис паков сидят - думают, что деньги экономят.

"Бояки" тупо ленятся учить что-то новое. Зато знатно работают в командах - наверное, из тиммитингов-говорилен не вылезают, бездельники хреновы.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529090
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320А что, когда проекты в команде, то везде и всюду фичекат? "Так, эти средства языка не используем - это слишком голову засоряет", "Тут лямбды не надо... и вообще лямбды не надо - у нас за них бьют", "Элементы коллекций менять только циклом. А Линк у нас вообще забанен на уровне кастомного дистрибутива Дотнета, из которого он выкинут"?

я откеда знаю, во всех командах мира мне не довелось учавствовать. иногда без слёз не взглянешь.

user7320Так и сказали бы, что не слезают с заказчиков, которые на 2.0 всё заказывают и на XP без сервис паков сидят - думают, что деньги экономят.

весьма распространённая ситуация
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529135
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320Так и сказали бы, что не слезают с заказчиков, которые на 2.0 всё заказывают и на XP без сервис паков сидят - думают, что деньги экономят.

весьма распространённая ситуация
Ну так это не "программист плохой", а заказчики такие, а заодно и исполнители, которые ведутся на таких заказчиков, не смея настоять на хотя бы небольшом улучшении условий труда для своих разработчиков.

Нет, реально удивили, мягко говоря, слова "за Линк бьют" (не помню, вы или кто-то другой в моей теме где-то с месяц назад это мне сказал). Линк появился в 2007 году, а некоторые всё ещё к нему относятся как "Не люблю я этих новомодных штучек - непроверено там всё и вообще забаговано. Пусть бетатестерами другие работают". Что такие делают в Дотнете - непонятно. Им бы на С++98 сидеть и ... на свои указатели.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529137
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Ну так это не "программист плохой", а заказчики такие, а заодно и исполнители, которые ведутся на таких заказчиков, не смея настоять на хотя бы небольшом улучшении условий труда для своих разработчиков.

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

user7320Нет, реально удивили, мягко говоря, слова "за Линк бьют"

существуют конторы, где знание линка -- обязалово. при чём хорошее знание. и не только знание, но и умение применять на практике. а также умение принять решение, когда его стоит использовать, а когда нет.

а бывают и бьют. объяснить наверное можно тем, что другие члены команды старпёры, и ни сном ни духом. всякое бывает
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529138
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Им бы на С++98 сидеть и ... на свои указатели.

немного неправильное утверждение. наверное всё-таки Дельфи.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529270
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320Нет, реально удивили, мягко говоря, слова "за Линк бьют"

существуют конторы, где знание линка -- обязалово. при чём хорошее знание. и не только знание, но и умение применять на практике. а также умение принять решение, когда его стоит использовать, а когда нет.

а бывают и бьют. объяснить наверное можно тем, что другие члены команды старпёры, и ни сном ни духом. всякое бывает
"Знание Линка - обязалово" - хахаха! Линк в части "языка запросов" и расширяющих методов (аналогичных этому языку запросов) - синтаксический сахар. Это как "мы требуем от вас знания foreach и использования его вместо for). Нет, если в компании строгие корпоративные шизы правила написания кода, то ещё куда ни шло, но если чел может сделать то же, но без Линка - зачем его заставлять? Чтобы мог в "умение разбираться в чужом коде"? Для таких случаев больше подойдёт нормальное ТЗ или ещё какие-нибудь документирующие вещи (типа юнит-тестов и прочего), по которым можно просто написать функциональность заново, но по-другому, чем копаться в чьих-то тоннах говнокода - может даже меньше времени на это уйдёт.

Я это к тому, что обязательное знание синтаксического сахара больше шиза, чем реальная необходимость. Знаешь Линк и используешь - молодец. Не знаешь, но твой код также быстро и хорошо работает - тоже молодец. А перекладывать ответственность с руководства, которое не раскошелилось на технических писателей и оформителей ТЗ, на обычных программистов, которые должны знать Линк в совершенстве - глупо.

Но, вообще, я за Линк.


hVosttuser7320Им бы на С++98 сидеть и ... на свои указатели.

немного неправильное утверждение. наверное всё-таки Дельфи.
Ну да, вы правы.
авторВ России также более востребованы программисты на Delphi, Visual Basic и .NET
И комментарии там... ))) Россия - "банановая республика" в области программирования, но с самых холодным климатом.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529420
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я например бывает так пишу:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
/// <summary>
/// Updates the site structure references in order to display the correct data in context menu.
/// </summary>
public void UpdateReferences(IPageEntity pageEntity)
{
    this.FindByPageEntityId(pageEntity.Id).Do(si => si.LinkPageEntity(pageEntity));

    if (pageEntity.IsTemplate)
    {
        this.ForEach(si => si.LinkedPage.If(p => p.TemplateId == pageEntity.Id).With(p => p as SiteStructurePageReference).Do(p => p.TemplateName = pageEntity.Name));
    }
}


Бейте меня!
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529513
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯ например бывает так пишу:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
/// <summary>
/// Updates the site structure references in order to display the correct data in context menu.
/// </summary>
public void UpdateReferences(IPageEntity pageEntity)
{
    this.FindByPageEntityId(pageEntity.Id).Do(si => si.LinkPageEntity(pageEntity));

    if (pageEntity.IsTemplate)
    {
        this.ForEach(si => si.LinkedPage.If(p => p.TemplateId == pageEntity.Id).With(p => p as SiteStructurePageReference).Do(p => p.TemplateName = pageEntity.Name));
    }
}


Бейте меня!
Какой-то, прости хоспади, "монадический синтаксис". Тут, похоже, самопальный лютый фрэмворк заделан - тогда, действительно, надо ещё и изучать, что там в этом фрэмворке понаписали, чтобы понять, что ДЕЙСТВИТЕЛЬНО делают все эти Ду, Виз, Иф, Форич. Вот за это надо как раз бить просить удлинения сроков разработки, т. к. некоторые (не будем показывать пальцами) вместо нормальных изкоробочных делегатов понапишут своего...

И всё в одну строку. - Надо каждый вызов нового метода с новой строчки писать, как это делаю Я!

А ты это, высокий и сильный? Если нет, то можно и побить.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529524
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ всё в одну строку. - Надо каждый вызов нового метода с новой строчки писать, как это делаю Я!
У меня даже горизонтальная полоса прокрутки в брузере появилась. У некоторых до сих пор 17" стоят, а вы тут "Виндовас ХП", "Дотнет 2.0". Как вам "корпоративные требования к оформлению кода - строки длиной не более 150 символов, чтобы на семнашки влезало"? А ведь я и подобное встречал. Это вдобавок к "функция должна укладываться в один экран кода". И вдобавок ко "всё должно быть подробно откомментировано".
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529543
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Какой-то, прости хоспади, "монадический синтаксис".Именно. Есть что-то конкретное сказать против монад? user7320Тут, похоже, самопальный лютый фрэмворк...Использование расширений обозвать лютым фреймворком.. Зачёт!
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529546
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320У некоторых до сих пор 17" стоятА у некоторых 6 мониторов с различными диагоналями
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529563
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я победил!
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38529613
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Я победил!Кого?

Пока я вижу только то, что наличие в проекте пары-тройки методов расширения сильно влияет на твою производительность.
Плюс у тебя фиговый работодатель: жмётся купить хотя бы пару нормальных мониторов.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530171
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

skyANAЯ например бывает так пишу:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
/// <summary>
/// Updates the site structure references in order to display the correct data in context menu.
/// </summary>
public void UpdateReferences(IPageEntity pageEntity)
{
    this.FindByPageEntityId(pageEntity.Id).Do(si => si.LinkPageEntity(pageEntity));

    if (pageEntity.IsTemplate)
    {
        this.ForEach(si => si.LinkedPage.If(p => p.TemplateId == pageEntity.Id).With(p => p as SiteStructurePageReference).Do(p => p.TemplateName = pageEntity.Name));
    }
}



Бейте меня!

Не вижу профита. Вижу очевидные проблемы с сопровождением и усвоением кода. Для примера, linq по сравнению с циклами даёт огого какой выигрыш, и расширяет декларативные возможности языка. А такой «монадический» подход выглядит среди остального кода как хитрожопый китаец, затесавшийся среди баскетболистов.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530180
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttВижу очевидные проблемы с сопровождением и усвоением кода.Какие?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530377
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVosttВижу очевидные проблемы с сопровождением и усвоением кода.Какие?

1. this.ForEach -- шо за хрень вообще? какие элементы перебираются и вообще правильно ли я понял утверждение ForEach? шо за this? кто вообще так делает?

2. If(p => p.TemplateId == pageEntity.Id) -- WAT?! если вы так пишите. если попугай зелёный.

3. With(p => p as SiteStructurePageReference) -- хз вообще что это, требуется вникать в безумный полёт фантазии создателя этого метода.

4. Do(p => p.TemplateName = pageEntity.Name) -- переболел ещё этим супер-Do с лямбдой очень давно. хрень абсолютно бесполезная и бессмысленная.

в итоге. одно дело используемая библиотека решает какую-то задачу, там работа с файловой системой, работа с данными, отправка сообщений... а это? зачем? в чем смысл?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530385
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

в конце концов:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
/// <summary>
/// Updates the site structure references in order to display the correct data in context menu.
/// </summary>
public void UpdateReferences(IPageEntity pageEntity)
{
    foreach(var si in FindByPageEntityId(pageEntity.Id))
    {
       si.LinkPageEntity(pageEntity);
    }

    if (pageEntity.IsTemplate)
    {
        foreach(var si in LinkedPages)
        {
           if(si.TemplateId == pageEntity.Id)
           {
              (si as SiteStructurePageReference).TemplateName = pageEntity.Name;
           }
        }
    }
}



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

но пришлось пожертвовать количеством строчек
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530467
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANA,

в конце концов:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
/// <summary>
/// Updates the site structure references in order to display the correct data in context menu.
/// </summary>
public void UpdateReferences(IPageEntity pageEntity)
{
    foreach(var si in FindByPageEntityId(pageEntity.Id))
    {
       si.LinkPageEntity(pageEntity);
    }

    if (pageEntity.IsTemplate)
    {
        foreach(var si in LinkedPages)
        {
           if(si.TemplateId == pageEntity.Id)
           {
              (si as SiteStructurePageReference).TemplateName = pageEntity.Name;
           }
        }
    }
}



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

но пришлось пожертвовать количеством строчек
Я, пожалуй, соглашусь, что все эти штуки, включая мой ForEach - "извращения". Это подходит для людей, которые "в теме", давно в таком виде работают. А кто придёт новенький - пусть даже хорошо знает сам Сишарп - вот нахрена ему во всю эту байду вникать, если результат от этого не меняется? Даже скорость набора почти не меняется. Но нет, в требованиях к вакансии "умение знать и понимать чужой код" и "у нас особая уличная методология и свой кустарный фреймворк".

Насчёт строчек - просто у Скайаны всё в одну, а надо каждый новый вызов на новой строке. А у тебя можно открывающую скобку на предыдущей строке оставлять, как большинство джавистов делает. Тогда разницы почти не будет. Зато несомненный плюс - читаемость у тебя лучше, т. к. синтаксис знакомее.

Вот если бы это было частью Дотнета, тогда ещё канало бы "знать нужно всем", а так - высеры местных "царьков от программирования". В какую контору не придёшь - каждый 23-летний сеньор, каким-то чудом дорвавшийся до тимлидерства, норовит свою "философию" всем навязать.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530471
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320А у тебя можно открывающую скобку на предыдущей строке оставлять, как большинство джавистов делает.

автоформатирование Visual Studio делает так, и лучше с этим согласиться

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

ну так грубо не стоит. может быть мы всего не знаем, и в таком подходе действительно имеется какой-то смысл. просто пока я его не наблюдаю. объяснить эту "сахарную приблуду" нечем.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530519
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttну так грубо не стоит. может быть мы всего не знаем, и в таком подходе действительно имеется какой-то смысл. просто пока я его не наблюдаю. объяснить эту "сахарную приблуду" нечем.
Как я говорил, я допускаю, что это где-то может пригодиться. Но скорее всего, это нишевое применение. Как тот же Линк.

Кстати, эти "монады" в том виде, как их Скайана представил, действительно дополняют уже имеющиеся Action, Func, Predicate и Линк-расширения, или это какая-то кустарная замена?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530523
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если сайт скомпилить на рабочем кампутере и залить на сервер, предварительно убив IIS (иначе не зальёшь), он жеж не запустится там? Как-то не пытался сделать подобное.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530550
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Но скорее всего, это нишевое применение. Как тот же Линк.

не стоит катить бочку на линк. в своё время линк буквально перевернул мышление о том, как можно работать с коллекциями в императивном языке (касательно C# и VB.NET). до линка видал на своём веку решения, когда использовался кроме основной базы данных подключенный SQLite только для того, чтобы обрабатывать массивы данных с помощью SQL. больше такие извраты не нужны.

а требования к хорошему знанию линка требуются для того, чтобы программер не спотыкался на каждом линк-выражении, встречающемся в чужом коде, и умел сам его грамотно применять.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530551
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Кстати, эти "монады" в том виде, как их Скайана представил

не имеют смысла. одно дело, реализация паттерна (команда, визитёр, т.п.), или распараллеливание вычислений. другое дело переписывание нативных возможностей "на новый лад" -- проще уж тогда сменить язык программирования, если возможности C# не устраивают. например Nemerle, вот уж где можно творить чо хочешь.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530552
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stА если сайт скомпилить на рабочем кампутере и залить на сервер, предварительно убив IIS (иначе не зальёшь), он жеж не запустится там? Как-то не пытался сделать подобное.

вебдеплой.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530570
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttst_stА если сайт скомпилить на рабочем кампутере и залить на сервер, предварительно убив IIS (иначе не зальёшь), он жеж не запустится там? Как-то не пытался сделать подобное.

вебдеплой.

30 минут валялся, запуститься не мог, сейчас вроде очнулся. 80-ый порт полностью на внешку закрываю, жму в браузере на серваке 127.0.0.1 и собственно начинается компиляция, w3wp.exe тут же забивает проц на 100% и висит бесконечно. Про заливку скомпиленого сайта имел ввиду то, чтоб взять скомпиленую версию с рабочего компьютера из C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\ и закинуть её на сервак, но даже если винда и настройки совпадут, есть шанс что непроканает. Да и чтоб загрузить, нужно сайт предварительно остановить, IIS держит файлы в той папке открытыми.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530650
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stА если сайт скомпилить на рабочем кампутере и залить на сервер, предварительно убив IIS (иначе не зальёшь), он жеж не запустится там? Как-то не пытался сделать подобное.
Я деплою на своём локальной машине в директория. Потом всё копирую с заменой в директория с сайтом на сервере. Директория с сайтом замаплена на виртуальную директория на IIS. IIS при этом не останавливается. Просто при первых обращениях к новым сборкам джиттер отработает (сайт подвиснет немного) и всё. Можно сразу в нужную директория на сервере, но чёта это как-то исторически сложилось, мои все эти действия.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530651
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, у меня уже крыша едет - падежи путаю.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530701
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_st,

http://habrahabr.ru/post/192150/

user7320,

http://habrahabr.ru/post/192150/


читать обоим в обязательном порядке.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530713
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttst_st,

http://habrahabr.ru/post/192150/

user7320,

http://habrahabr.ru/post/192150/


читать обоим в обязательном порядке.
Да у меня 7. А на сервере - да, Сервер. Я только не пойму, зачем веб-деплой? Тот же самый publish в директорию, только сразу в ту, что замаплена на IIS. Правда, у меня проектик маленький - может, этот веб-деплой для удобства публикации больших проектов или чего ещё?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530738
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Да у меня 7. А на сервере - да, Сервер. Я только не пойму, зачем веб-деплой? Тот же самый publish в директорию, только сразу в ту, что замаплена на IIS. Правда, у меня проектик маленький - может, этот веб-деплой для удобства публикации больших проектов или чего ещё?

зачем делать всё через Ж, когда можно сразу по-нормальному? веб-деплой это готовый к употреблению механизм для публикации веб-приложения на сервере. при чём подразумевается как прямой деплой через подключение, так и через zip-файл (для публикации во всяких интранетах). при деплое кроме непосредственного размещения файлов, также настраиваются соответствующие права на файлы и папки. не требуется остановка или перезапуск IIS. кроме того, при деплое автоматически подменяются web.config-и (с различными настройками подключения к СУБД для разработки, тестирования и продакшена, например), и также возможны любые программируемые кастомные сценарии.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530857
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320Да у меня 7. А на сервере - да, Сервер. Я только не пойму, зачем веб-деплой? Тот же самый publish в директорию, только сразу в ту, что замаплена на IIS. Правда, у меня проектик маленький - может, этот веб-деплой для удобства публикации больших проектов или чего ещё?

зачем делать всё через Ж, когда можно сразу по-нормальному? веб-деплой это готовый к употреблению механизм для публикации веб-приложения на сервере. при чём подразумевается как прямой деплой через подключение, так и через zip-файл (для публикации во всяких интранетах). при деплое кроме непосредственного размещения файлов, также настраиваются соответствующие права на файлы и папки. не требуется остановка или перезапуск IIS. кроме того, при деплое автоматически подменяются web.config-и (с различными настройками подключения к СУБД для разработки, тестирования и продакшена, например), и также возможны любые программируемые кастомные сценарии.
Так я вас и спрашиваю, чем, по-вашему (исходя из личного опыта) веб-публикация лучше публикации в директорию? И в директории тоже всё, что надо, подменяется. И не требуется остановка IIS. И тоже в один клик как бы.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530872
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблему компиляции веб-деплой не решит, а точнее создаст новые проблемы, ибо идеального мира нет. Вот в данный момент сайт на сервере валяется (грузит cpu на 100% или вообще остановлен, в данном случае это одно и то же), веб-деплой соответственно тоже валяется. Внёс изменения в проект, а задеплоить могу только по старинке - по FTP через VS. Для компилинга со стороны IIS фиолетово, что через порт 8172 файлы в папке подменились, что через 21-ый, компилить всё равно будет. Ну а всякие плюшки - это хорошо, когда они нужны.

В VS проект строится (построение длится доли секунды) и далее в построеном виде из VS деплоится по FTP в папку на сервере (wwwroot). Ну а дальше при первом обращении к сайту, начинается этот жуткий компиллинг самим IIS-ом в темповую папку веб-сервера (temporary asp.net files), всё стандартно.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530893
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stВ VS проект строится (построение длится доли секунды) и далее в построеном виде из VS деплоится по FTP в папку на сервере (wwwroot). Ну а дальше при первом обращении к сайту, начинается этот жуткий компиллинг самим IIS-ом в темповую папку веб-сервера (temporary asp.net files), всё стандартно.
У меня в первой части всё так. А вот "жуткий компилинг самим IISом" - не понял. Вроде, компилятор только в BAML компилит, а на сервере - уже джиттер в натив конкретного процессора. Оттого и тормоза поначалу.

Хотя, у меня asp.net mvc и маленький сайтик - может, с обычным, без mvc, всё не так.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530913
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320А вот "жуткий компилинг самим IISом" - не понял. Вроде, компилятор только в BAML компилит, а на сервере - уже джиттер в натив конкретного процессора. Оттого и тормоза поначалу.

Я про это -
When ASP.NET runs your app for the first time, it copies any assemblies found in the /bin folder, copies any source code files (found for example in the App_Code folder) and parses your aspx, ascx files to c# source files. ASP.NET then builds/compiles all this code into a runnable application.


Компилится и запихивается в Temporary ASP.NET Files. Если из Temporary ASP.NET Files файлы конкретного проекта удалить, то снова при первом запросе подвиснет на компилинг. Там всякие dll валяются (assembly), скомпиленый global.asax и прочая шняжка.

Но это хрен с ним, нашёл от чего тормозит. В Application_Start() лежит метод "долгоработающий", дерево строит в кэш из 300000 записей.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530986
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Так я вас и спрашиваю, чем, по-вашему (исходя из личного опыта) веб-публикация лучше публикации в директорию? И в директории тоже всё, что надо, подменяется. И не требуется остановка IIS. И тоже в один клик как бы.

через окно тоже можно в дом входить, и через дымовую трубу, и через подвал. но почему-то люди через входную дверь ходят. вот странные.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38530989
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stНу а дальше при первом обращении к сайту, начинается этот жуткий компиллинг самим IIS-ом в темповую папку веб-сервера (temporary asp.net files), всё стандартно.

ну и конечно сразу IIS виноват да, тяжёлые вещи лучше фоном запускать, если дерево строится каждый раз так долго, то лучше кешировать его прям в базу данных.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531024
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320,

рекомендую обзавестись привычкой вложенные проперти сохранять в локальную переменную и потом работать с ней:

Код: c#
1.
2.
3.
4.
5.
var uform = Request.Unvalidated.Form;

uform
    .AllKeys
    .Aggregate(sb, (b, key) => b.AppendFormat("{0}='{1}'", key, uform[key]));



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

к тому же код чище и лучше подвержен сопровождению.
Вы, случаем, не это имели ввиду? Правда, это в контексте событий-делегатов, но и как общий паттерн для работы со свойствами подойдёт, а? Или такой паттерн только для делегатов, т. к. "multi-cast delegates are immutable", а для обычных ссылочных типов это не подходит?

Тут же вот в чём штука - если вложенные свойства формы являются ссылочными типами, то смысл их сохранять? А если типами значений (или вообще немутабельными типами), то тогда смысл есть.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531025
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320Так я вас и спрашиваю, чем, по-вашему (исходя из личного опыта) веб-публикация лучше публикации в директорию? И в директории тоже всё, что надо, подменяется. И не требуется остановка IIS. И тоже в один клик как бы.

через окно тоже можно в дом входить, и через дымовую трубу, и через подвал. но почему-то люди через входную дверь ходят. вот странные.
А зачем тогда нужен деплой в папку? Чтобы на флешке потом сайт перенести?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531136
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Вы, случаем, не это имели ввиду? Правда, это в контексте событий-делегатов, но и как общий паттерн для работы со свойствами подойдёт, а? Или такой паттерн только для делегатов, т. к. "multi-cast delegates are immutable", а для обычных ссылочных типов это не подходит?

Тут же вот в чём штука - если вложенные свойства формы являются ссылочными типами, то смысл их сохранять? А если типами значений (или вообще немутабельными типами), то тогда смысл есть.

и это в том числе. достаточно понять одну простую вещь: проперти, это на самом деле методы. да, они могу инлайнится, но часто код работы с проперти закрыт, поэтому уместно почти всегда при обращении к свойству больше одного раза, сохранять вложенное свойство в локальную переменную. вообще, очень полезная привычка.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531139
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320А зачем тогда нужен деплой в папку? Чтобы на флешке потом сайт перенести?

чтоб на флешке сайт перенести используется тот же веб-деплой в ZIP. в папку и через FTP деплой конечно делается, но это не очень хорошая практика. кроме того через веб-деплой, скорость публикации на порядки выше, чем не оргумент?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531155
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320А зачем тогда нужен деплой в папку? Чтобы на флешке потом сайт перенести?

чтоб на флешке сайт перенести используется тот же веб-деплой в ZIP. в папку и через FTP деплой конечно делается, но это не очень хорошая практика. кроме того через веб-деплой, скорость публикации на порядки выше, чем не оргумент?
Ну а если так... порассуждать. Деплой в папку - тупо копируем файлики в папку. Деплой на веб - копируем файлики в папку виртуального каталога (всё одно на жёсткий диск - как и в случае с папкой), плюс, может, ещё куда-то дубли копируем (во всякие кэши сборок и прочие), плюс какие-то настройки.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531198
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320тупо копируем

этим всё сказано

а, например, открыть при очередном деплое права на запись в папке Upload? хотя допускаю, что отдельные одепты предпочитают грубую ручную работу .
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531267
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAпропущено...
Какие?

1. this.ForEach -- шо за хрень вообще? какие элементы перебираются и вообще правильно ли я понял утверждение ForEach? шо за this? кто вообще так делает?

2. If(p => p.TemplateId == pageEntity.Id) -- WAT?! если вы так пишите. если попугай зелёный.

3. With(p => p as SiteStructurePageReference) -- хз вообще что это, требуется вникать в безумный полёт фантазии создателя этого метода.

4. Do(p => p.TemplateName = pageEntity.Name) -- переболел ещё этим супер-Do с лямбдой очень давно. хрень абсолютно бесполезная и бессмысленная.

в итоге. одно дело используемая библиотека решает какую-то задачу, там работа с файловой системой, работа с данными, отправка сообщений... а это? зачем? в чем смысл?Метод ForEach рекурсивно пробегает по дереву и выполняет необходимое действие для каждого из его узлов. Что за дерево? См. комментарии.

this просто говорит о том, что метод принадлежит текущему классу.

Остальные методы - это так называемые монады. Взяты из статьи про монадический синтаксис в C#.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531283
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМетод ForEach рекурсивно пробегает по дереву и выполняет необходимое действие для каждого из его узлов. Что за дерево? См. комментарии.

this просто говорит о том, что метод принадлежит текущему классу.

Остальные методы - это так называемые монады. Взяты из статьи про монадический синтаксис в C#.

это понятно, откуда ноги растут. непонятно только, в том числе из статьи, для чего всё это? единственно-полезная монада maybe скоро нафиг не нужна будет в след. версии языка (надеюсь). остальное, уши от осла (псевдо-фрп, кого обманываем, зачем, непонятно).

кстати, вот известный срач на тему.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531286
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, а для чего ForEach, понятно?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531310
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVostt, а для чего ForEach, понятно?

чтобы рекурсивно, видимо. плохо смешивать коллекцию (дерева, не важно) с логикой, отсюда эти костыли с this (для вызова расширений), отсюда плохая семантика.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531312
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAhVostt, а для чего ForEach, понятно?

чтобы рекурсивно, видимо. плохо смешивать коллекцию (дерева, не важно) с логикой, отсюда эти костыли с this (для вызова расширений), отсюда плохая семантика.Ни фига не понял. Особенно про this.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531610
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНи фига не понял. Особенно про this.

this необходим, чтобы использовать метода расширения. для вызова внутренних методов класса не нужен. поэтому сделал вывод, что используется расширение. раз используется расширение на this, значит класс представляется собой коллекцию, по которой делается какой-то ForEach, и ХЗ что он делает. если класс представляет собой коллекцию и реализует при этом логику, это плохо. плохо потому что до программирования дорвался какой-то форменный извращенец и садист.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531628
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAНи фига не понял. Особенно про this.

this необходим, чтобы использовать метода расширения. для вызова внутренних методов класса не нужен. поэтому сделал вывод, что используется расширение. раз используется расширение на this, значит класс представляется собой коллекцию, по которой делается какой-то ForEach, и ХЗ что он делает. если класс представляет собой коллекцию и реализует при этом логику, это плохо. плохо потому что до программирования дорвался какой-то форменный извращенец и садист.Фигню какую-то несёшь. Я уже объяснил зачем используется this.

Класс - это бизнес-объект, а не просто коллекция. И инкапсулирует в себе определённую логику.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531665
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAНи фига не понял. Особенно про this.

this необходим, чтобы использовать метода расширения. для вызова внутренних методов класса не нужен. поэтому сделал вывод, что используется расширение.
Я стараюсь всегда использовать this. Чтобы было сразу понятно, что это член текущего класса, а не что-то откуда-то из какого-то пространства имён. Единственное, для полей делаю исключение - т. к. поля я начиная с префикса подчёркивания. Тоже, чтобы было сразу понятно, что это поле текущего класса.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531734
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAФигню какую-то несёшь. Я уже объяснил зачем используется this.

ага:

skyANAthis просто говорит о том, что метод принадлежит текущему классу.

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

skyANAКласс - это бизнес-объект, а не просто коллекция. И инкапсулирует в себе определённую логику.

про это я и говорю. смешивание, котлет, мух, говна и лопаты. всё вместе.

короч. думал, мож я эт чего не понимаю... что могу сказать, всё это печально
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531737
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Я стараюсь всегда использовать this. Чтобы было сразу понятно, что это член текущего класса, а не что-то откуда-то из какого-то пространства имён.

ещё один умник this нужен не для того, чтобы кому-то чо-то указывать. полный пипец.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531748
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, нормальные аргументы будут, а не в стиле "ваша музыка говно, потому что она говно"?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531761
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320Я стараюсь всегда использовать this. Чтобы было сразу понятно, что это член текущего класса, а не что-то откуда-то из какого-то пространства имён.

ещё один умник this нужен не для того, чтобы кому-то чо-то указывать. полный пипец.StyleCopSiteStructure\SiteStructureSection.cs(306,1): error : SA1101: The call to ForEach must begin with the 'this.' prefix to indicate that the item is a member of the class. [D:\WA\CMS\CMS.Model\CMS.Model.csproj]
Жду от тебя аргументов, чтобы пойти к методологической команде и отменить данное правило.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531769
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttкороч. думал, мож я эт чего не понимаю...Не понимаешь.. Но выводы делаешь..hVosttчто могу сказать, всё это печально
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531800
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttuser7320Я стараюсь всегда использовать this. Чтобы было сразу понятно, что это член текущего класса, а не что-то откуда-то из какого-то пространства имён.

ещё один умник this нужен не для того, чтобы кому-то чо-то указывать. полный пипец.
А как ты сможешь одурачить меня, что такой-то метод не из этого класса, если он будет вызываться через this? This не даёт тебе одурачить меня. Не на того напали!

hVosttпро это я и говорю. смешивание, котлет, мух, говна и лопаты. всё вместе.

короч. думал, мож я эт чего не понимаю... что могу сказать, всё это печально
Да... Уровень образования падает, а споры в курилках растут.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531935
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVostt, нормальные аргументы будут, а не в стиле "ваша музыка говно, потому что она говно"?

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

2. нельзя из класса вызвать Метод Другого Класса, без указателя объекта. нельзя. поэтому this, это лишнее.

3. с другой стороны, именно this даёт возможность вызвать Метод Другого Класса, значит программеру, читающему код придётся ещё почесать репу на тему, чей же это Метод, и нафига (каза баяна) этот this?

4. по поводо монадического барахла не нужного в C# чуть менее, чем. сколько не вопрошал, пока не услышал в чём же таки профит. какую задачу вы таким образом решили? или это из серии "нуачо, увидели статью, клёвая, взяли так и сделали, нуачо"?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531936
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320А как ты сможешь одурачить меня, что такой-то метод не из этого класса, если он будет вызываться через this? This не даёт тебе одурачить меня. Не на того напали!

иди четай летиратуру через this можно вызвать метод совершенно другого класса. без this -- Нельзя.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531966
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAStyleCopSiteStructure\SiteStructureSection.cs(306,1): error : SA1101: The call to ForEach must begin with the 'this.' prefix to indicate that the item is a member of the class. [D:\WA\CMS\CMS.Model\CMS.Model.csproj]
Жду от тебя аргументов, чтобы пойти к методологической команде и отменить данное правило.

http://stackoverflow.com/questions/1562540/why-does-stylecop-recommend-prefixing-method-or-property-calls-with-this

стайлкоп против быдло кодеров. если соблюдать соглашения, и делать по уму, то этого не потребуется.

посмотрим:

if(Name == blablabla) -- это явно свойство

if(GetName() == blablablb) -- это явно метод класса

if(name == blabvlablb) -- это явно локальная переменная или параметр функции

if(_name == blbablab) -- это явно приватное поле

если не придерживаться соглашений (не обязательно таких, как я привёл, главное единообразие), то хз что это такое, понятно только про GetName().

this -- не уверен, поможет ли он программеру не отстрелить себе ногу. но как я и говорил, есть побочный эффект: расширения. стайлкоп слопает и не подавится.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38531971
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сразу предупреждая заносы в сторону статических методов класса, свойств, констант и прочего... чем изобилует обсолютное большинство классов , конечно от этого надо как-то защищаться
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38532060
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAпропущено...
Жду от тебя аргументов, чтобы пойти к методологической команде и отменить данное правило.

http://stackoverflow.com/questions/1562540/why-does-stylecop-recommend-prefixing-method-or-property-calls-with-this

стайлкоп против быдло кодеров. если соблюдать соглашения, и делать по уму, то этого не потребуется.

посмотрим:

if(Name == blablabla) -- это явно свойство

if(GetName() == blablablb) -- это явно метод класса

if(name == blabvlablb) -- это явно локальная переменная или параметр функции

if(_name == blbablab) -- это явно приватное поле

если не придерживаться соглашений (не обязательно таких, как я привёл, главное единообразие), то хз что это такое, понятно только про GetName().

this -- не уверен, поможет ли он программеру не отстрелить себе ногу. но как я и говорил, есть побочный эффект: расширения. стайлкоп слопает и не подавится.Так и не увидел конструктивных аргументов против использования this как индикатора того, что метод/свойство/переменная является членом класса.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38532072
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAhVostt, нормальные аргументы будут, а не в стиле "ваша музыка говно, потому что она говно"?

1. согласно SRP, смешивать две разных функции (коллекции и бизнес-логики) в одном классе -- плохо. об этом даже Рихтер писал...Для начала объясни где и как конкретно нарушен принцип единственности ответсвенности, а потом уже на Рихтера ссылайся. Кстати на какую конкретно главу ссылаешься, назвать можешь?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38532097
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVosttпропущено...


http://stackoverflow.com/questions/1562540/why-does-stylecop-recommend-prefixing-method-or-property-calls-with-this

стайлкоп против быдло кодеров. если соблюдать соглашения, и делать по уму, то этого не потребуется.

посмотрим:

if(Name == blablabla) -- это явно свойство

if(GetName() == blablablb) -- это явно метод класса

if(name == blabvlablb) -- это явно локальная переменная или параметр функции

if(_name == blbablab) -- это явно приватное поле

если не придерживаться соглашений (не обязательно таких, как я привёл, главное единообразие), то хз что это такое, понятно только про GetName().

this -- не уверен, поможет ли он программеру не отстрелить себе ногу. но как я и говорил, есть побочный эффект: расширения. стайлкоп слопает и не подавится.Так и не увидел конструктивных аргументов против использования this как индикатора того, что метод/свойство/переменная является членом класса.
Нажал в методе класса Ctrl+пробел - действительно, левых методов не обнаружено. Через this же можно обнаружить ещё и расширяющие. hVostt молодец - надоумил меня.

Попробовал не писать this. Трудновато пока. Руки сами тянутся написать this. Посмотрим, что из этого выйдет.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38532106
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Попробовал не писать this. Трудновато пока. Руки сами тянутся написать this. Посмотрим, что из этого выйдет.Да ничего особенного из этого не выйдет :) Я например в личных проектах this не пишу, и меня это никак не напрягает.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38532111
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320Попробовал не писать this. Трудновато пока. Руки сами тянутся написать this. Посмотрим, что из этого выйдет.Да ничего особенного из этого не выйдет :) Я например в личных проектах this не пишу, и меня это никак не напрягает.
А в неличных заставляют?

А есть какие-нибудь анализаторы кода, которые сами, где надо, добавляют this, или наоборот, убирают его? Как часть автоматического оформителя кода. По идее, это же раз плюнуть - анализатор же и так языковые конструкции распознаёт - т. е. может где надо сам this дописать-убрать. Ну т. е. дома пишешь с настройкой "для дома", а на работе - "для работы". Домой приходишь - снова "для дома" включаешь.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38532120
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320skyANAпропущено...
Да ничего особенного из этого не выйдет :) Я например в личных проектах this не пишу, и меня это никак не напрягает.
А в неличных заставляют?

А есть какие-нибудь анализаторы кода, которые сами, где надо, добавляют this, или наоборот, убирают его? Как часть автоматического оформителя кода. По идее, это же раз плюнуть - анализатор же и так языковые конструкции распознаёт - т. е. может где надо сам this дописать-убрать. Ну т. е. дома пишешь с настройкой "для дома", а на работе - "для работы". Домой приходишь - снова "для дома" включаешь.На работе это тупо одно из правил.
Никто не заставляет, просто StyleCop ругается и проект не компилится

Но я тебе одну вещь скажу, только ты не обижайся. Меня это нисколько не напрягает.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38532128
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320пропущено...

А в неличных заставляют?

А есть какие-нибудь анализаторы кода, которые сами, где надо, добавляют this, или наоборот, убирают его? Как часть автоматического оформителя кода. По идее, это же раз плюнуть - анализатор же и так языковые конструкции распознаёт - т. е. может где надо сам this дописать-убрать. Ну т. е. дома пишешь с настройкой "для дома", а на работе - "для работы". Домой приходишь - снова "для дома" включаешь.На работе это тупо одно из правил.
Никто не заставляет, просто StyleCop ругается и проект не компилится

Но я тебе одну вещь скажу, только ты не обижайся. Меня это нисколько не напрягает.
Так автоматом this дописывается-отписывается, или тебя не напрягает каждый раз перенастраивать себя на другой стиль написания кода?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38532167
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320, последнее.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38532290
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320, последнее.
Но ты хотел бы, чтобы автоматом? И ты считаешь, что это не сложно было бы им реализовать?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38532313
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320skyANAuser7320, последнее.
Но ты хотел бы, чтобы автоматом? И ты считаешь, что это не сложно было бы им реализовать?Нет. Я об этом особо не задумываюсь.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533076
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТак и не увидел конструктивных аргументов против использования this как индикатора того, что метод/свойство/переменная является членом класса.

с появлением методов расширений это больше не индикатор. какие ещё аргументы нужны?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533085
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДля начала объясни где и как конкретно нарушен принцип единственности ответсвенности

судя по методу UpdateReferences(IPageEntity pageEntity), класс является более сложной сущностью, чем простая коллекция. значит класс не должен быть коллекцией (не реализовывать IEnumerable, ICollection и т.п.), вместо этого коллекция для Entity (или что там у вас) должна быть представлена соответствующим свойством класса.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533099
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAТак и не увидел конструктивных аргументов против использования this как индикатора того, что метод/свойство/переменная является членом класса.
с появлением методов расширений это больше не индикатор.С чего вдруг?

Покажи-ка код, где это не индикатор. А то я никак понять не могу, чего ты всё методы расширения сюда приплетаешь.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533105
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVosttпропущено...

с появлением методов расширений это больше не индикатор.С чего вдруг?

Покажи-ка код, где это не индикатор. А то я никак понять не могу, чего ты всё методы расширения сюда приплетаешь.
По-вашему, метод расширения - член класса, который он расширяет?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533112
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320skyANAпропущено...
С чего вдруг?

Покажи-ка код, где это не индикатор. А то я никак понять не могу, чего ты всё методы расширения сюда приплетаешь.
По-вашему, метод расширения - член класса, который он расширяет?Нет. Просто вызывается, как если бы он им был.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533120
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAДля начала объясни где и как конкретно нарушен принцип единственности ответсвенности

судя по методу UpdateReferences(IPageEntity pageEntity), класс является более сложной сущностью, чем простая коллекция. значит класс не должен быть коллекцией (не реализовывать IEnumerable, ICollection и т.п.), вместо этого коллекция для Entity (или что там у вас) должна быть представлена соответствующим свойством класса.Ну наконец-то

Наконец-то ты сказал про UpdateReferences. Хотя разговор вроде про ForEach был:hVosttskyANAhVostt, а для чего ForEach, понятно?
чтобы рекурсивно, видимо. плохо смешивать коллекцию (дерева, не важно) с логикой, отсюда эти костыли с this (для вызова расширений), отсюда плохая семантика.
Успокойся. Класс не реализует ни IEnumerable, ни ICollection. Соответствующее свойство из него торчит. Метод UpdateReferences канул в лету.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533132
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
public class SiteStructureService : ISiteStructureService
{
    /// <summary>
    /// Finds and updates all references associated with the specified page.
    /// </summary>
    public void UpdateReferences(IPage page)
    {
        var sectionType = page.IsSystem ? SectionType.SystemPages : page.IsInMenu ? SectionType.Menu : SectionType.NotMenu;
        var section = this.GetSection(sectionType);

        section.FindByPageEntityId(page.Id).Do(si => si.LinkPageEntity(page));
    }

    /// <summary>
    /// Finds and updates all references associated with the specified template.
    /// </summary>
    public void UpdateReferences(IPageTemplate template)
    {
        Action<ISiteStructureItem> updateTemplateName =
            si => si.LinkedPage.If(p => p.TemplateId == template.Id).With(p => p as PageReference).Do(p => p.TemplateName = template.Name);

        ISiteStructureSection menuSection = this.GetSection(SectionType.Menu);
        ISiteStructureSection notMenuSection = this.GetSection(SectionType.NotMenu);
        ISiteStructureSection systemSection = this.GetSection(SectionType.SystemPages);
        ISiteStructureSection templateSection = this.GetSection(SectionType.Templates);

        templateSection.FindByPageEntityId(template.Id).Do(si => si.LinkPageEntity(template));

        menuSection.ForEach(updateTemplateName);
        notMenuSection.ForEach(updateTemplateName);
        systemSection.ForEach(updateTemplateName);
    }
}


this-ы на месте
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533141
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAthis-ы на месте

да и хрен бы с ними, с this-ами. один только факт, что на страже перед компиляцией у вас стоит стайлкоп, уже вызывает уважение. пусть он местами маразматичен (я бы отключил в нём правило на счёт this), но всё равно айс.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533146
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

правда без var, код выглядит грязно. тоже такое правило? сочувствую
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533150
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНет. Просто вызывается, как если бы он им был.

да, но он им не является, соответственно "this, как индикатор класса" -- филькина грамота.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533197
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANA,

правда без var, код выглядит грязно. тоже такое правило? сочувствую Без var? Грязно? Правила такого нет.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533202
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAthis-ы на месте

да и хрен бы с ними, с this-ами.Вот именно, это тупо индикатор, а ты слюной слюной брызжешь
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533210
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAНет. Просто вызывается, как если бы он им был.

да, но он им не является, соответственно "this, как индикатор класса" -- филькина грамота.Филька, пример кода уже приведи, где "this." не индикатор.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533224
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVosttпропущено...


да, но он им не является, соответственно "this, как индикатор класса" -- филькина грамота.Филька, пример кода уже приведи, где "this." не индикатор.
Код: c#
1.
this.Groovy();


что это? Метод класса или расширяющий метод? Ответ "да какая разница" не принимается.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533231
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
class My
{
   My()
   {
        this.Groovy(); // метод класса или расширяющий?
   }
}



Код: c#
1.
2.
3.
4.
5.
6.
7.
class My
{
   My()
   {
        Groovy(); // однозначно метод класса
   }
}
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533236
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВот именно, это тупо индикатор, а ты слюной слюной брызжешь
нет.
skyANAВот именно, это тупо индикатор, а ты слюной слюной брызжешь

Код: c#
1.
2.
3.
4.
5.
6.
class MyClass: ISomeInterface {
  public void Method()
  {
    this.SomeMethod();
  }
}



где:

Код: c#
1.
2.
3.
4.
5.
6.
7.
public static SomeClass
{
  public static void SomeMethod(this ISomeInterface ifs)
  {
     ifs.BlaBlaBla();
  }
}



так что this нифига не показатель принадлежности к классу. излишняя хрень, изначально нужная для передачи ссылки на себя куда-то там. а ныне, ещё и для вызова методов-расширений.

я подозреваю такой формат требуется для того, чтоб сгладить углы пришедшим из JavaScript программерам (там типо this обязателен в режиме псевдо-ООП).
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533247
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttтак что this нифига не показатель принадлежности к классу. излишняя хрень, изначально нужная для передачи ссылки на себя куда-то там. а ныне, ещё и для вызова методов-расширений.

я подозреваю такой формат требуется для того, чтоб сгладить углы пришедшим из JavaScript программерам (там типо this обязателен в режиме псевдо-ООП).
Ещё в С++. Я помню, в книжках по программированию везде его писали. Там же глобальные методы всякие могут быть. Вот, чтобы не перепутать, либо стили написания для названий методов придумывали, либо this везде добавляли для всех членов класса (данных, функций и пр.).
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533249
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторлибо this везде добавляли для всех членов класса (переменных, функций и пр.).
В смысле, где эти члены вызываются внутри этого класса. Чтобы отличать от глобальных переменных и глобальных функций.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533253
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAБез var? Грязно? Правила такого нет.

конечно грязно. есть разные мнения на этот счёт. моё — использование var декларативно лучше, т.к. позволяет сосредоточиться на главном, а не выполнять работу компилятора вручную. если компилер сам может вывести тип, зачем мозги канифолить? тем более, строгое использование var по-максимуму позволяет более точно выражать мысли :

Код: c#
1.
ISomeInterface si = SomeMethodWithResultSomeClass();



или

Код: c#
1.
var si = SomeMethodWithResultSomeClass() as ISomeInterface;



-- видно, что программист абсолютно явно хочет именно определённый интерфейс. в первом случае ХЗ чо хочет программист.

но это именно моё имхо, основанное на собственном опыте. программировал и так, и так. выбор в пользу var очевиден.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533255
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воводить метод расширения и использовать его внутри класса - это какая-то форма извращения, вам не кажется?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533260
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВоводить Вводить
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533273
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВоводить метод расширения и использовать его внутри класса - это какая-то форма извращения, вам не кажется?

не кажется. самый распространённый случай такого использования в Razor для базового класса страницы. просто я за то, чтобы использовать декларативные возможности языка, а не создавать ненужную видимость типо-защищённого-кода.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533279
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAВоводить метод расширения и использовать его внутри класса - это какая-то форма извращения, вам не кажется?
не кажетсяЖаль.

Получается класс знает, что его что-то расширяет и зависит от этого. А расширение знает о классе.
Циклическая зависимость получается.

hVosttраспространённый случай такого использования в Razor для базового класса страницыНе использую Razor. Покажешь пример, любопытно?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533283
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПолучается класс знает, что его что-то расширяет и зависит от этого. А расширение знает о классе.
Циклическая зависимость получается.

совсем не обязательно, я же привёл пример, расширяется интерфес, который наследуется классом. расширение совершенно ничего не знает о классе.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533292
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAПолучается класс знает, что его что-то расширяет и зависит от этого. А расширение знает о классе.
Циклическая зависимость получается.

совсем не обязательно, я же привёл пример, расширяется интерфес, который наследуется классом. расширение совершенно ничего не знает о классе.А теперь скажи мне, как это будет работать:
Код: c#
1.
2.
3.
4.
5.
6.
class MyClass: ISomeInterface {
  public void Method()
  {
    this.SomeMethod();
  }
}

если сборку с расширениями не подключить к проекту?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533302
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttтак что this нифига не показатель принадлежности к классу
Расширения тоже принадлежат классу. )
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533311
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAесли сборку с расширениями не подключить к проекту?

достаточно не объявлять неймспейс в файле с классом, не обязательно отключать сборку конечно не будет работать, так и задумано.

что касается Razor, из-за отсутствия метода переопределения секции удобно использовать соответствующее расширение типо this.RedefineSection("scripts"). конечно можно расширить базовый класс, но расширение в данном случае идеологически лучше.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533330
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAесли сборку с расширениями не подключить к проекту?

достаточно не объявлять неймспейс в файле с классом, не обязательно отключать сборку конечно не будет работать, так и задумано.О, да ты даже пробовал сиё извращение.

И в чём смысл? Почему не тупо не дёрнуть ISomeInterface.BlaBlaBla()?

hVosttчто касается Razor, из-за отсутствия метода переопределения секции удобно использовать соответствующее расширение типо this.RedefineSection("scripts")Расширение чего? Какого класса? И почему тупо не изменить сам исходный тип?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533338
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ в чём смысл? Почему не тупо не дёрнуть ISomeInterface.BlaBlaBla()?

оставим причины использования или неиспользования в стороне, мы съехали с обсуждения :) я показал на конкретном примере, что this не является гарантией вызова внутреннего метода. с этим будем спорить?


skyANAРасширение чего? Какого класса? И почему тупо не изменить сам исходный тип?

расширение BaseWebViewPage<TModel>, если хотим сделать универсальное расширение, которое можно применять невозбранно в любом количестве проектов.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533381
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAИ в чём смысл? Почему не тупо не дёрнуть ISomeInterface.BlaBlaBla()?

оставим причины использования или неиспользования в стороне , мы съехали с обсуждения :)Нет уж, мне любопытно
MSDNМетоды расширения позволяют "добавлять" методы в существующие типы без создания нового производного типа, перекомпиляции или иного изменения исходного типа.

...

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

hVosttя показал на конкретном примере, что this не является гарантией вызова внутреннего метода. с этим будем спорить? Буду. Ты расширил интерфейс, у тебя гарантировано дёргаются внутренние методы, хоть и через одно место
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533385
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttрасширение BaseWebViewPage<TModel>, если хотим сделать универсальное расширение, которое можно применять невозбранно в любом количестве проектов.А можешь показать код этого универсального расширения?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533411
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТы используешь методы расширения не по назначению. У тебя нет гарантии, что код вообще будет работать. Нахуа?

а если у тебя в коде убрать какой-нибудь метод из класса? просто выделить строчки и delete. что? сломалось всё? вот так-то. плохой класс, ломается из-за потери каких-то нескольких строчек.

я не использую методы расширения не по назначению. просто существует возможность такого использования. раз вы дёргаете постоянно this, чтобы типо застраховаться от случайно неправильного вызова, то ваша страховка дырявая как ведро. а если идёт речь о том, чтобы всё делать правильно, и не делать неправильно, то в таком случае и this не нужен. зачем ненужные буквы в коде?

skyANAБуду. Ты расширил интерфейс, у тебя гарантировано дёргаются внутренние методы, хоть и через одно место

я показал как можно сделать чёткую дыру последовательно в ботинке-ноге-подошве-полу
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533415
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА можешь показать код этого универсального расширения?

канеш

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
	public static class WebViewPageExtensions
	{
		public static void RedefineSection(this WebPageBase page, string sectionName)
		{
			if (page.IsSectionDefined(sectionName))
			{
				page.DefineSection(sectionName, () => page.Write(page.RenderSection(sectionName)));
			}
		}

		public static void RedefineSection(this WebPageBase page, params string[] sectionNames)
		{
			foreach (var s in sectionNames)
			{
				RedefineSection(page, s);
			}
		}
	}
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533468
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttа если идёт речь о том, чтобы всё делать правильно, и не делать неправильно, то в таком случае и this не нужен. зачем ненужные буквы в коде?

А если только для переменных, тоже неправильно?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533532
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонhVosttа если идёт речь о том, чтобы всё делать правильно, и не делать неправильно, то в таком случае и this не нужен. зачем ненужные буквы в коде?

А если только для переменных, тоже неправильно?
Каких переменных? Я поля класса с подчёркивания и маленькой буквы начинаю, а дальше CamelCase. А свойства - с большой и тоже дальше CamelCase.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533632
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Каких переменных? Я поля класса с подчёркивания и маленькой буквы.

General Naming Conventions

msdnDO NOT use underscores, hyphens, or any other nonalphanumeric characters.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533662
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонuser7320Каких переменных? Я поля класса с подчёркивания и маленькой буквы.

General Naming Conventions

msdnDO NOT use underscores, hyphens, or any other nonalphanumeric characters.
Ну пиши "this.", если тебе так больше нравится. А мне удобнее подчёркивание написать. В выражениях внутри класса с интенсивным использованием полей этого класса всё пестрит этими "визами", что читабельности отнюдь не добавляет.

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

Уж проще отойти чуток от догм и подчёркнуть, где это явно проще и удобнее. "Только со смертью догмы начинается наука".
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533664
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, никто на Вин АПИ не писал? Там ТАКИЕ имена всяких втроенных констант и прочих штук...
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533795
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон General Naming Conventions

msdnDO NOT use underscores, hyphens, or any other nonalphanumeric characters.

актуально для публичных имён. для приватных -- пофигу совершенно. я использую подчёркивания, потому что мегаудобно. решарпер генерит подчёркивания, потому что считает также.

кроме того, вот это выглядит просто отвратно:

public ClassCtor(string name)
{
this.name = name;
}

фу. хотя и name = name тоже сработает правильно. а всё потому, что компилятор не дибил, и не надо выполнять работу за компилятор. золотое правило.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533796
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,

а вот грамотные рассуждения без налёта дикого фанатизма: http://scottreed.eu/csharp/underscore/
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533837
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПарамон,

а вот грамотные рассуждения без налёта дикого фанатизма: http://scottreed.eu/csharp/underscore/
Опять "DO NOT use underscores, hyphens, or any other nonalphanumeric characters". Это мне напоминает "Не убий", "Не укради"...

авторCoding everywhere uses ‘this’ keyword
когда this где-нибудь в формуле с кучей внутренных полей класса, то это уже не смешно. Да даже просто пару-тройку раз this в выражении. И вообще, подчёркивание - один символ, хоть и набирать его надо двумя клавишами, а "this." - 5 символов. Причём после точки у вас целая портянка всех членов класса, а после подчёркивания - только поля.

авторLooking on forums you can find Microsoft employees stating that they do not use underscores but still some of the developers that have been around a long time do
Ну ясно же, что эмплойи не будут говорить наперекор тому, что у них в догмах написано. Но у себя дома в тёмном чулане, под одеялом, когда никто не видит, они шалят с этими своими подчёркиваниями ещё как.

автор http://msdn.microsoft.com/en-us/library/ms229045(v=vs.100) which shows .NET 4 suggest conventions lists Do not use underscores, hyphens, or any other nonalphanumeric characters. as one of the standards, so Microsoft are most definitely not suggesting the use of underscores
Не люблю священные писания. В основном за то, что они ничего не объясняют, а только требуют. Это позволяет всяким пастырям трактовать написанное как они хотят.

авторWhy the hell would they add the ‘this’ keyword if it wasn’t to be used
Если я вижу молоток, то обязательно надо ударить себе по пальцам - это же очевидно. Ну а так - для вызова расширяющих методов, например. И для разрешения каких-нибудь неоднозначностей (ну а вдруг?).

авторStylecop the internal tool created by Microsoft to check code for standards compliance doesn’t like underscores but likes the ‘this’ keyword
У меня этой хрени нет. А что ещё не нравится Стайл-копу?


Реально, если Стайл-полицай такой умный, почему бы ему не заменять на работе везде подчёркивания на this, а дома - наоборот? "Хули тут так мало?!"

Почитайте в комментах - голимый любитель автосвойств. Т. е. он тупо почти не имеет дела с полями, но чего-то советует тем, кто с ними имеет дело постоянно.

Ну и он не упоминает о том, что с this нельзя сразу отличить, метод расширения это или метод-член класса.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533882
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,



существуют правила, рекомендации, но и мозгами пользоваться иногда надо. и желательно своими.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533885
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем мозг, если есть шаблоны?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533886
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилзачем мозг, если есть шаблоны? +100500
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533945
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил, skyANA,

всё бы вам по-гыгышеньки
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533951
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttа если у тебя в коде убрать какой-нибудь метод из класса? просто выделить строчки и delete. что? сломалось всё? вот так-то. плохой класс, ломается из-за потери каких-то нескольких строчек.гыгышеньки
hVosttвы дёргаете постоянно this, чтобы типо застраховаться от случайно неправильного вызованеа, гыгышеньки два раза
hVosttа если идёт речь о том, чтобы всё делать правильно, и не делать неправильно, то в таком случае и this не нужен. зачем ненужные буквы в коде?тупо индикатор, гыгышеньки три раза
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38533964
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA тупо индикатор

этим и всё сказано
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534005
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANA тупо индикатор

этим и всё сказано я могу надёргать твоих фраз и выделить в них кучу замечательных слов, будет ещё больше гыгышенек
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534088
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Ну пиши "this.", если тебе так больше нравится. А мне удобнее подчёркивание написать.
Соглашения существуют именно для того, чтобы каждый не писал как ему нравится.

hVosttа вот грамотные рассуждения без налёта дикого фанатизма: http://scottreed.eu/csharp/underscore/
Грамотный автор считает тех, кто использует подчеркивания старперами и невеждами. :)
авторBasically if I see code with underscore I will assume your old or ignorant.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534246
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонuser7320Ну пиши "this.", если тебе так больше нравится. А мне удобнее подчёркивание написать.
Соглашения существуют именно для того, чтобы каждый не писал как ему нравится.

hVosttа вот грамотные рассуждения без налёта дикого фанатизма: http://scottreed.eu/csharp/underscore/
Грамотный автор считает тех, кто использует подчеркивания старперами и невеждами. :)
авторBasically if I see code with underscore I will assume your old or ignorant.
Автор не приводит всех плюсов подчёркивания, зато бОльшая часть минусов (точнее, все) из разряда "не по Библии живёшь" и "авторитеты-с догмы-с написали-с". Минусов "this." не приводит вообще. Т. е. автор как-будто не имеет особого опыта использования и того, и другого - ему не с чем сравнить и он не имеет своего мнения. Кроме как процитировать чьи-то шаблоны, он больше ничего не умеет.

А я и правила эти пресловутые читал (и не только у МС), и свой опыт имею. И своё мнение, которое аргументировал.

И ещё меня всегда отталкивала бескомпромиссность подобных авторов. Всегда и везде делать так-то, даже если это явно неудобно, больно и не нужно. А бескомпромиссность, подкреплённая неаргументированностью и повальным упованием на авторитеты и догмы без понимания их происходждения - ...
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534261
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонГрамотный автор считает тех, кто использует подчеркивания старперами и невеждами. :)
авторBasically if I see code with underscore I will assume your old or ignorant.

рад что уловили сарказм
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534268
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAя могу надёргать твоих фраз и выделить в них кучу замечательных слов, будет ещё больше гыгышенек

индикатор ненужен. на сегодняшний день среды разработки достаточно развитые, чтобы уже не париться на этот счёт. да и компилятор не дурак.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534285
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAя могу надёргать твоих фраз и выделить в них кучу замечательных слов, будет ещё больше гыгышенек

индикатор ненужен. на сегодняшний день среды разработки достаточно развитые, чтобы уже не париться на этот счёт. да и компилятор не дурак.Ты считаешь так, кто-то считает иначе.. В итоге делается выбор в пользу одного из правил и команда следует последнему.

Твоя проблема в том, что ты не можешь просто это осознать, без употребления слов дурак, дибил, отвратно и т.п.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534328
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttиндикатор ненужен.
Совсем?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 public class MyTest
    {
        int myVal = 1;
        public void MyMethod()
        {
            int myVal = 2; // грабли
            int result = this.myVal + 1;
        }
    }


hVosttда и компилятор не дурак

Код должен быть понятен не только компилятору )
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534360
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТы считаешь так, кто-то считает иначе.. В итоге делается выбор в пользу одного из правил и команда следует последнему.

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

если в моей команде будет принято this и стайлкоп, меня это особо не напряжёт как бы и в нашей строне есть законы, отдельные из которыз не всем нравятся, их нужно соблюдать, но ругать при этом их не запрещено
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534372
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонСовсем?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 public class MyTest
    {
        int myVal = 1;
        public void MyMethod()
        {
            int myVal = 2; // грабли
            int result = this.myVal + 1;
        }
    }



hVosttда и компилятор не дурак

Код должен быть понятен не только компилятору )

ну и в чём прикол? как раз этот случай показывает полную уместность применения подчёркивания для приватных полей, а this здесь определённо -- грабля, забудешь про которую и стайлкоп не вякнет (есть же локальная переменная), и по лбу как треснет.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534387
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

да, кстати. типо к члену класса можно обратиться по this, а что делать с локальными переменными? какой модификатор? local. ?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534424
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttну и в чём прикол? как раз этот случай показывает полную уместность применения подчёркивания для приватных полей
Тогда подчеркивание и будет индикатором, но в случае если чел локально объявит _myVal, то this подстрахует, профит? )
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534431
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAя могу надёргать твоих фраз и выделить в них кучу замечательных слов, будет ещё больше гыгышенек

индикатор ненужен. на сегодняшний день среды разработки достаточно развитые, чтобы уже не париться на этот счёт. да и компилятор не дурак.
Среды - достаточно грамотные. А юзеры - нет. И видя name = name вместо this.name = name, даже у меня могут возникнуть ненужные отвлечённые мысли.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534450
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонhVosttну и в чём прикол? как раз этот случай показывает полную уместность применения подчёркивания для приватных полей
Тогда подчеркивание и будет индикатором, но в случае если чел локально объявит _myVal, то this подстрахует, профит? )
Чтобы локально объявлялись переменные, начинающиеся с подчёркивания - уж этого-то я ни в одной доктрине не встречал.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534453
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320hVosttпропущено...


индикатор ненужен. на сегодняшний день среды разработки достаточно развитые, чтобы уже не париться на этот счёт. да и компилятор не дурак.
Среды - достаточно грамотные. А юзеры - нет. И видя name = name вместо this.name = name, даже у меня могут возникнуть ненужные отвлечённые мысли.
Но _name = name, конечно, лучше.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534519
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Чтобы локально объявлялись переменные, начинающиеся с подчёркивания - уж этого-то я ни в одной доктрине не встречал.
Это не доктрина, а когда каждый пишет как ему удобно :)
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534522
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Но _name = name, конечно, лучше.
Но гарантий нет, как в случае this )
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534616
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонuser7320Но _name = name, конечно, лучше.
Но гарантий нет, как в случае this )
Гарантий нет всегда.

Только с this гарантий нет даже при соглашениях. А с _ гарантии есть при соглашениях.

Или так: соглашение "переменные-члены класса начинать с _" выполнить проще, чем соглашения вида "не называть параметры и локальные переменные именами, совпадающими с переменными-членами класса". Чтобы выполнить первое соглашение, достаточно писать _. Чтобы второе - надо каждый раз проверять список переменных-членов класса.


И вообще - муахаха !
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534634
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320И вообще - муахаха !
Кто не понял - я наделал у себя в классе переменны-членов с подчёркиванием. В конструкторе напечатал подчёркивание - вывалились мои переменные-члены и вот эта гадость. Парамон прав - гарантий нет. Но если соблюдать соглашения, то гарантии есть.

По соглашениям же Дотнета с this нет гарантий, что метод такой-то является методом класса - он может быть расширяющим методом, в то время, как мне нужен именно метод класса.

И ещё - а как компилятор догадывается, что variable = variable - это присвоение параметра или локальной переменной члену класса? А почему не присвоение локальной переменной самой себе? А я так хочу! Вот как в Студии присвоить локальную переменную самой себе, если её имя совпадает с именем члена класса?
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534637
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонhVosttну и в чём прикол? как раз этот случай показывает полную уместность применения подчёркивания для приватных полей
Тогда подчеркивание и будет индикатором, но в случае если чел локально объявит _myVal, то this подстрахует, профит? )

подчёркивание в этом случае больше чем индикатор: имена локальных и приватных переменных никак не пересекаются, так что нет нужды танцевать перед компилятором полькой
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534638
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320И ещё - а как компилятор догадывается, что variable = variable - это присвоение параметра или локальной переменной члену класса?

это логика, Спок (с) стыреный трек...
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534657
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANA,

да, кстати. типо к члену класса можно обратиться по this, а что делать с локальными переменными? какой модификатор? local. ? Откровенные глупости-то не пиши уж.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534732
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320По соглашениям же Дотнета с this нет гарантий, что метод такой-то является методом класса - он может быть расширяющим методом, в то время, как мне нужен именно метод класса.

Мы говорим о переменных, а в случае расширения студия показывает рядом срелочку и в скобочках пишет (extension), не ошибешся :)
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534828
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

как сделать так?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
class My
{
	int i = 5;
	My(int i)
	{
		// хочу присвоить значение члену класса
		i = i; 
	}
}



Парамонuser7320По соглашениям же Дотнета с this нет гарантий, что метод такой-то является методом класса - он может быть расширяющим методом, в то время, как мне нужен именно метод класса.

Мы говорим о переменных, а в случае расширения студия показывает рядом срелочку и в скобочках пишет (extension), не ошибешся :)
Т. е. если я вижу уже написанный код, я должен либо поставить курсор после точки, нажать ктрл+пробел и ввести имя метода, либо посмотреть всплывающую подсказку и свериться, к какому классу принадлежит метод? Мне проще не писать this.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534830
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонuser7320По соглашениям же Дотнета с this нет гарантий, что метод такой-то является методом класса - он может быть расширяющим методом, в то время, как мне нужен именно метод класса.

Мы говорим о переменных, а в случае расширения студия показывает рядом срелочку и в скобочках пишет (extension), не ошибешся :)
А если у меня нет Студии? Я открыл единственный файл кода в Notepad, чтобы не загружать всю Студию.
...
Рейтинг: 0 / 0
ASP.NET MVC - слетела настройка отображения ошибок
    #38534880
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320А если у меня нет Студии? Я открыл единственный файл кода в Notepad, чтобы не загружать всю Студию.
Если у тебя один файл, в котором две строчки кода, то можешь спать спокойно ).
...
Рейтинг: 0 / 0
165 сообщений из 165, показаны все 7 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC - слетела настройка отображения ошибок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]