All streams
Search
Write a publication
Pull to refresh
19
0
Влад @pil0t

User

Send message
текст из комментария — «Средняя цена» будет использоваться для отображаемого имени кнопки
если в комментарии поменять «Средняя цена» на «Некоторая цена» — то на кнопке будет «Некоторая цена»
При этом для локализации можно редактировать не исходный код, а файл с xml-комментариями
Что значит бесполезен?
Он может быть простым переводом, но при этом он используется в отображении кнопки
Кроме того, последующие строки могут быть использованы для ToolTip-а
в данном случае это не только комментарий, но и текст используемый для отображения кнопки
спасибо, поправил
В данном случае мы можем генерировать идентификатор исключения e1 хитрым образом, например:
var text = string.Forma("Лимит превышен на {0} рублей", summ);
var e1 = someGuid.CombineWithHashOf(text);
ExceptionHelper.Interactive(e1, text);

Где CombineWithHashOf преобразует каким-то хитрым образом идентификатор исключения для учета сообщения о превышении.
про второй случай возможна ситуация:

Исключение — вы превышаете лимит операции на 10 рублей, продолжить?

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

При этом, после нажатия на продолжить, система не обратит внимание на то что лимит уже превышен не на 10 а на 100 000.
Google Talk-а не будет?
в оригинале «the mobile web app for Google Talk» — надеюсь его не будет только для телефонов, а в десктопном браузерном Gmail он останется.
Ваш личный менеджер подтвердит актуальность тура и перезвонит вам. Потом вы сможете оплатить ваш тур любым из способов:нее… всё равно надо созваниваться и всё такое.
Надеялся что будет так: что нажимаю, продолжить, говорят — блабла, тур зарезервирован, 15 минут на оплату картой.
Отличные панорамы!
Но на небе вполне видно виньетирование (выражается в волнообразности темно-светло), а не пробовали использовать профили коррекции линз для избавления от этого артефакта?
Когда-то, ещё в школе, учитель забрала записку передаваемую другому ученику на уроке (не на контрольной).
А это законно?
return new SelectList(new List<short>{ 2011, 2012 }, DefYear);

А в 2013 году надо будет добавлять ещё один год?
Я думал будет что-то про эксплуатацию уязвимостей…
А почему вы считаете события костылями?
действительно, задача очень даже типовая и встречается часто, и вот как бы я её решил:
1. Выделил бы интерфейс для сущностей в которых необходимо кэшировать ник/имя
public interface  IWithCachedUser
{
    /// <summary>Ссылка на пользователя</summary>
    User User { get; set; }
        
    /// <summary>Имя пользователя (для кэширования)</summary>
    string UserName { get; set; }
        
    /// <summary>Ник</summary>
    string UserNick { get; set; }
}
2.Написал бы простой код проставляющий значения этих полей:
public class CacheUserEvent<TEntity> : IEntityEvent<TEntity>
    where TEntity : EntityBase, IWithCachedUser
{
    public void AfterSave(TEntity item)
    {
        item.UserName = item.User.Name;
        item.UserNick = item.User.Nick;
    }
}<source>
Теперь для всех классов, реализующих этот интерфейс есть кэширование и не обязательно делать джойны.
lair, спасибо за ответ, хочу дополнить:
А если вам надо перебрать к примеру 1000 записей в цикле, вы что, будете (неявно) создавать 1000 объектов, читать данные из БД и вызывать 1000 * 20 сеттеров?
Если эти объекты невозможно обработать запросом, то в любом случае они будут загружены в память.
При этом мы можем сделать выборку только нужных (например 3-4 полей вместо 20).
События
Они на то и события, чтобы указывать возможность выполнить код.
Для зависимых полей у нас тоже есть решение, виртуальные поля
может выглядеть например так:
/// <summary>
/// Выражение для поля суммы
/// </summary>
private Expression<Func<RentOfferBase, decimal>> SummExpression = a => a.Price * a.Count;
        
/// <summary>
/// Сумма
/// Вычисляемое поле
/// </summary>
[VirtualField("SummExpression")]
public decimal Summ { get; set; }


Там, где классический разработчик напишет 1-2 простых запроса без джойнов, ORM нагенерирует такое

К сожалению, классические разработчики не всегда узнают о новых возможностях, например появился в SQL server новый способ выполнить эффективнее запрос, мы «обучаем» делать это ORM и он везде где может применяет это, не забывая, не требуя времени на исправления во всех местах.
минимально сложная бизнес логика требует написания кода
ваш вариант — писать его в процедурах
мой — в классах/методах

для валидации кода нужно будет выполнить выполнить этот код для каждой записи.

так чем же процедура удобнее метода?
В основном для удобства использования поиска-фильтраци, а так же удобно показать пример фильтра
1. Так у нас тоже не надо думать какой сгенерится sql
2. C# — это не только SQL, но и вся мощь ООП
3. Очень спорный момент, и может подпортить много нервов и админу и разработчику и не только
5. А вы попробуйте ;)
API может быть сгенерировано автоматически
от разработчика задача только описать класс сущности
Что делать если к этой базе должно подключаться стороннее приложение?
Предполагается, что доступ до приложения (данных) будет через сервис (XML/JSON и т.д.)

Что делать если структура данных изменилась?
1. Удаляем метро
2. Добавляем ЖЭК
3. Заполняем ЖЭК

Что делать при регулярно-меняющейся отчётности?
Мы используем ReportingServices, который потребляет данные через XML источник данных.
Конкретно для суммы по комнатам — один метод
public static decimal GetAgentsRoom(string name)
{
    return Query.All<RoomOffer>().Where(a => a.Creator.Name == name).Sum(a => a.Price);
}
Отличная штука!
Когда-то тоже думал о похожей программе/сервисе
Чего не хватает лично мне для полного счастья:
Показывания слова в контексте
Клиента для андроида/iOS

Для чего хочу использовать:
Смотрю фильм на английском с субтитрами.
Загружаю субтитры.
Показываются незнакомые слова.
Когда что-то непонятно — могу легко их посмотреть, увидеть понять что они значат в контексте.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity