Ответы пользователя по тегу ASP.NET
  • Как создать переменные и хранить их до определённого момента?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Обычно поиск выполняется один раз. Для повышения производительности, результаты поиска кэшируются и при последующих обращениях берутся из кэша. Кэш может храниться где угодно. Данные автоматически удаляются по истечению указанного срока жизни.

    Как выдавать данные частями - зависит от того, как они получаются.

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

    Что касается кэширования, то самый простой вариант:
    // или HttpContext.Current.Cache
    if (HttpContext.Cache["Ключ"] == null) 
    {
      // данных в кэше нет, получаем из базы и добавляем в кэш
      HttpContext.Cache.Add
      (
        "Ключ",
        "тут сами данные",
        null,
        DateTime.Now.AddMinutes(5), // срок годности пять минут
        TimeSpan.Zero,
        System.Web.Caching.CacheItemPriority.Normal,
        null
      );
    }
    else
    {
      // есть данные в кэше, используем их
      var data = HttpContext.Cache["Ключ"]; // типы строгие лучше использовать
    }

    Или использовать атрибут OutputCache и кэшировать страницы.

    Дополнительно, можно в базе создавать сессии со ссылками на результаты поиска. Т.е. выполнять поиск, записывать ключ в таблицу, затем делать выборку, используя найденные ключи. Устаревшие результаты можно удалять, либо со стороны ASP.NET, периодически выполнять запрос. Либо, если есть возможность, настроить SQL Server Agent. Это если данных много и поиск дорого обходится.
    Ответ написан
  • Asp.NET WebForms или MVC?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    ASP .NET WebForms - простые, относительно. Они скорее для начинающих подходят. В WebForms множество готовых компонентов, но большая часть сомнительного качества (в плане производительности). Можно делать простенькие сайты (хотя, можно и не простенькие, если сервер и пользователей не жалко) достаточно быстро и с минимальными знаниями HTML, CSS и JavaScript. Если потребуется нечто большее, то с ASP .NET WebForms придется изрядно повозиться и не факт, что будет достигнут желаемый результат.

    Хотя ASP .NET WebForms развиваются и, сейчас, проще и удобней получить контроль над происходящим, чем например в ранних версия (1.x/2.0/3.5). Но все равно, будет множество ограничений и для крупных проектов WebForms годятся плохо. Отмечу, что ASP .NET WebForms хороши вместе с Visual Basic .NET - работать удобней, чем с C#.

    Чтобы делать под ASP .NET WebForms нормальные проекты, придется делать это руками, минимизировать использование стандартных компонентов и решений. Но тогда все фишки WebForms превращаются в один большой геморрой. Жить можно, но не очень приятно :-)

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

    Лучше всего использовать ASP .NET MVC совместно с Razor и C#. Работать будет удобнее, код лаконичней и красивее.

    Я сейчас даже простые проекты делаю на ASP .NET MVC.

    Не сказал бы, что время ASP .NET WebForms прошло, оно все еще идет. Частенько приходится отвечать на вопросы по теме работы с WebForms. Собственно, по этой причине я и знаю о некоторых позитивных изменениях в последних версиях WebForms. Сайты, сделанные на WebForms тоже попадаются часто (обращаю на это внимание, даже когда специально не смотрю). Сам уже не использую, но старых проектов осталось много, надеюсь когда-нибудь и они будут переделаны на MVC.
    Ответ написан
    2 комментария
  • Как подключить к веб-приложению (ASP.NET MVC 4) БД MySql?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Необходимо скачать и установить Connector/Net.

    Работать также как и с любыми другими базами в .NET.

    Основные классы:
    • MySqlConnection - для подключения к базе;
    • MySqlCommand и MySqlDataAdapter - формирование запросов и получение данных.

    Подробности можно найти в документации.
    Ответ написан
    Комментировать
  • Entity framework validation for decimal type. Как сделать чтобы пропускало дробное значение?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Для редактирования использовать тип string. Перед сохранение в базу преобразовывать в decimal.
    В своих проектах использую вспомогательный класс, который имеет методы для работы с числами и умеет понимать любой десятичный разделитель. Конкретно, для данной ситуации, есть метод ToDecimal (код открыт, лицензия не запрещает использовать частями, если что).

    [DisplayName("Сумма")]
    public string Sum { get; set; }
    
    public decimal SumDec 
    { 
      get
      { 
        return Convertion.ToDecimal(this.Sum); 
      }
    }
    Ответ написан
    Комментировать
  • Как импортировать sql таблицу в SQL Server в Visual Studio 2013?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Создать множество файлов маленького размера и импортировать bat-ником:
    @echo off
    for /r C:\путь к папке с файлами .sql %%g in (*) do SQLCMD.EXE -d [в какой базе выполнить запросы] -i "%%~nxg" -o "%%~nxg.log"


    Или, если база создана в Visual Studio, то проще всего будет просто подключить ее к SQL Server Management Studio.

    20b6d487800e44eba3a4bd22de67c34d.png
    Ответ написан
    Комментировать