Ответы пользователя по тегу ASP.NET
  • Калькулятор на mvc с историей операций?

    Для лога можно использовать паттерн Memento: https://en.wikipedia.org/wiki/Memento_pattern
    Ответ написан
    Комментировать
  • Можно ли сделать верстку на html, js, чтобы потом программисты заиспользовали эту верстку для ASP?

    Подводный камень, судя по-всему, один - разработчик не умеет верстать по макетам. Да, нужно воспользоваться услугами толкового верстальщика.
    Ответ написан
    2 комментария
  • Как начать проект на asp.net?

    Советую почитать Pro ASP.NET Core MVC 2
    Ответ написан
    Комментировать
  • Как правильно написать интерфейс для БД?

    Правильно будет не мешать DbContext с Repository.

    Создать интерфейс IRepository<T>, определить там сигнатуры методов Add, Update, Delete etc. Реализовать этот интерфейс в абстрактном базовом классе RepositoryBase<T>, добавив туда типизированное свойство DbSet<T>. Затем для каждой сущности создать конкретный класс(CommentsRepo, PostsRepo ... etc.), наследуясь от абстрактного RepositoryBase<T>. При необходимости, можно ещё и интерфейс для этой же сущности реализовать(если там отличная от CRUD логика).
    Ответ написан
    1 комментарий
  • C# Как правильно организовать код, с преобразованием моделей?

    Модели предпочитаю делить на доменные(то, что мапится к БД) и модели представления(то, что нужно отдать клиенту). Реляционная модель данных в большинстве случаев не кореллирует с моделью представления(в вашем случае, например, списки категорий и пр.)

    Наследование же представления от домена, на мой взгляд, абсолютно имеет место быть для систем без сложной бизнес-логики (там, где просто CRUD - можно вообще без моделей представления обойтись); в ином случае можно закончить тем, что будет несколько уровней наследования в погоне за требуемым классом. И каждое изменение такого класса(особенно, если он родительский) может стать головной болью.

    Обычно, использую такую декомпозицию слоев приложения:
    View -> Controller <-Service <- Repository <- Database

    Уровень Repository оперирует доменом, уровень Service оперирует как доменом, так и представлением, уровень Controller - только представлением. Соответсвенно, в уровне сервисов и производится преобразование домена в представление.
    Ответ написан
    6 комментариев
  • ASP NET Identity - как подключить в разрабатываемый проект?

    Если нужен пример - создай пустой проект в Visual Studio на основе шаблона ASP.NET MVC, с отмеченным пунктом авторизации(Individual User Accounts он называется). И будет тебе создан контекст подключения к БД. Кроме того, автоматически реализуется простейшая логика регистрации, авторизации, восстановления пароля и т.д. - будет много чего посмотреть.

    UPD: В "Pro" версии книги по MVC 5 от Фримана уделяется отдельное внимание Identity. Если не ошибаюсь, чуть ли не 100 страниц - рекомендую взгянуть также. Pro ASP.NET MVC 5 Platform
    Ответ написан
    Комментировать
  • SQL Server Profiler - как разобраться в том что он показывает?

    Audit Login/Logout - индикация начала/завершения сеанса взаимодействия пользователя с сервером(во время создания/завершения connection-сессии).
    SQL:BatchStarting/BatchCompleted - индикация времени начала/завершения выполнения пакета. Под пакетом понимается набор одной или более T-SQL инструкций, передаваемых СУБД для исполнения в момент времени.
    RPC: Completed(Remote Procedure Call) - индикация успешного клиентского подключения извне и выполнения процедуры/пакета.

    Для анализа запросов достаточно отслеживать SQL:BatchStarting/Completed и RPC:Completed. Пользуйтесь фильтрами(имя пользователя, приложение), отбирайте наблюдаемые вхождения T-SQL перед началом трассировки.

    В вашем случае Entity Framework отправляет SQL-Batch на сервер; обращайте внимание на CPU - загрузка процессора сервера БД, Reads - количество чтений, Writes - записей , Duration - продолжительность операции в миллисекундах(10^-3). При выгрузке результатов трассировки в БД(очень удобная опция для анализа большого количества операций) или внешний источник секунды уже будут с приставкой "микро" или же 10^-6. Под RPC:Completed у вас выполняются регламентные команды SQL-сервера по установке/разрыву соединения.

    Полезные ссылки:
    SQL Server Tech Documentation - со стр. 878 инфа по профайлеру
    Batches
    Ответ написан
    Комментировать
  • Как в Asp Net Core подключиться к MS SQL Server и увидеть данные?

    Включить пакет SqlClient в файл project.json.

    {
        "dependencies": {
           ...//здесь идут ваши зависимости
            "System.Data.SqlClient": "4.1.0-*"//это нужно добавить
           ...
        }
      }
    }


    Сохранить изменения в файле. Подождать пока References проекта переопределятся.

    Затем все как обычно:
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
               connection.Open();
               using (SqlCommand command = new SqlCommand("SELECT * FROM dbo.Table", connection))
               {
                      var reader = command.ExecuteReader();
                      while(reader.Read())
                      {
                            var a = reader["Column"];//инициализация значения переменной полем из таблицы БД
                      }
               }
    }


    Примечание:
    connectionString = "Data Source=ServerName;Initial Catalog=DatabaseName;Persist Security Info=True;User ID=UserName;Password=Password;"))
    Ответ написан
    1 комментарий
  • Где найти "грязный" проект, для того чтобы на нем поучиться рефакторить?

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

    P.S. Полагаю, это челлендж ради челленджа находить проект под рефакторинг, чтобы улучшить этот навык.
    P.P.S. Если покопаться, можно и у себя найти парочку проектов, где можно бесконечно улучшать код.
    Ответ написан
    Комментировать
  • Как сделать выборку новостей по id asp.net mvc?

    Данные из БД выбираются запросом.

    Получить Id новости GET-запросом в методе News контроллера HomeController. Далее выполнить выборку данных из БД с условием имеющегося Id.

    Инициализировать модель вашей новости полученными данными и передать результат в представление новости.

    https://www.asp.net/mvc/overview/getting-started/i...
    Ответ написан
    1 комментарий
  • ASP .Net MVC своя система авторизации без Identity?

    Цикл жизни статичных переменных определяется циклом жизни приложения - это уже один минус. При перезагрузках вашего приложения нужно будет их восстанавливать. В случае хранения идентификационных данных в Session, либо в Db - этим моментом управляете Вы, определяя цикл жизни этих данных.

    Статичные переменные доступны только на одном сервере. Если Ваше приложение хостится на нескольких машинах, то опредленные переменные на одном сервере не доступны с другого.

    Статичные переменные доступны всем, т.е. являются глобальными в рамках App Domain. Думаю, это тоже о многом говорит. Придется делать костыли, боюсь представить какие, по доступу к ним; как-то параллелить клиентские запросы. В то время, как для Session есть Session concurrency

    В целом, если говорить об механизме Session, то скажу, что это понятные и широко распостраненные практики хранения идентификационных данных. Думаю, для большинства прикладных задач это вполне применимый подход. Если требуется больше безопасности, то уже смотрим в сторону Server-side для хранения состояния, например, в БД.
    Ответ написан
    Комментировать
  • Нужно ли привносить изменения в исходные коды сайта если обычный хост меняется на облачный?

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

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

    Полезные ссылки:
    How to: Migrate and Publish a Web Application to a...
    Migrate an enterprise web app to Azure App Service
    Ответ написан
    Комментировать