• Разработка архитектуры ПО (БД+web). Какие варианты подскажете?

    effetto
    @effetto
    .Net разработчик
    Предлагаю:
    1. Каждый сишный скрипт обернуть в микровебсервис, не забыть про безопасность
    2. Саму систему реализовать по архитектуре SPA на классической трехслойке
    3. Скрипты подключить в слой данных или слой бизнес логики в зависимости от назначения скриптов


    В направлении думаете в правильном.

    Для клиентской части я использую Durandal + KnockOut (альтернатива им - Angular), украшая это бутстрапом.

    По серверной php части не подскажу, я работаю на .net.
    Ответ написан
    Комментировать
  • Какие интересные NuGet пакеты вы используете?

    effetto
    @effetto
    .Net разработчик
    Тут все от задачи зависит. Мои пакеты для vNext разработки: https://gist.github.com/anonymous/a0aaa05d84e814dd2ea9. Из них можно рассказывать про сам vNext, про Lucene, про ImageProcessor, про HangFire, про EntityFramework.
    Ответ написан
    1 комментарий
  • Прокси клиент для windows 7 x86, чтобы работал с разными прокси серверами в разных учетных записях системы?

    effetto
    @effetto
    .Net разработчик
    А зачем Вам для этого программа?
    Здесь описывается как настроить прокси из реестра для каждого пользователя. Подготовьте *.reg файлы для пользователей и настройте автозапуск. Сама система хорошо справляется с поставленной Вами задачей.
    Ответ написан
  • Какие ошибки присутствуют в коде JS?

    effetto
    @effetto
    .Net разработчик
    В сегодняшнем веб-мире Ваша основная ошибка в том, что вы изобретаете велосипед. Использование, например, jQuery очень облегчит задачу, сведя ее к 3-5 строчкам.

    Ошибки, которые бросаются в глаза:
    • Размещение html в тексте js, - используйте шаблонизаторы;
    • Отсутствие модульного подхода, например requirejs;
    • Использование строгого режима в теле самой функции, - это не ошибка, но лучше использовать его всегда;
    • Потенциальная уязвимость функции к инъекции кода js в результирующий html;
    • Неправильная обработка событий: каждый вызов функции вешает обработчик событий на загрузку документа, вам действительно нужно такое поведение?


    При беглом анализе заметил эти недочеты. Уверен, при детальном можно найти поболе.
    Ответ написан
  • Как сделать один к нулю/одному в Entity Framework?

    effetto
    @effetto
    .Net разработчик
    Используйте нотацию "тип?" для вторичного ключа. Например: Guid? или int?. EF автоматом поймет что вы хотите 0..1.
    Ответ написан
    Комментировать
  • Какой алгоритм быстрее для поиска информации?

    effetto
    @effetto
    .Net разработчик
    Это зависит какой у вас поиск и какие данные. Мало конкретики. В общих случаях сложность прохода для алгоритмов просчитана и известна. Еще есть хеш-таблица ;) https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%...
    Ответ написан
    Комментировать
  • Какую выбрать логику запросов к БД (задачка)?

    effetto
    @effetto
    .Net разработчик
    Конечно, дублирование информации в бд - не нормальный вариант. Но рекурсивный проход для SQL систем - тоже ненормальный вариант. Об этом на википедии даже статья есть: https://en.wikipedia.org/wiki/Hierarchical_and_rec...

    Я решаю такую задачу одним из двух вариантов, как и Вы.

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

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

    Другие варианты:

    Еще я реализовывал рекурентный обход через хранимые функции, - это медленный вариант.

    При разработке соцсети, я бы использовал второй вариант. Рекомендую реализовать оба и провести нагрузочное тестирование при больших объемах. А дальше выбрать на основе анализа данных после тестирования.
    Ответ написан
    Комментировать
  • Что за зверь "yatr_scr" или "iframe yatr.ru"?

    effetto
    @effetto
    .Net разработчик
    Как Вы правильно заметили, - Вас взломали. Причем скорее всего автоматом. Такое могло произойти скорее всего одним из двух способов:
    • Подобрали ваш пароль к админке / фтп / хостингу;
    • Использовали уязвимость в компонентах вашего сайта;

    Я бы действовал так:
    1. Сохранил состояние сайта;
    2. Используя логи нашел место вторжения;
    3. Обновил все компоненты до последней версии;
    4. Восстановился из бекапа и закрыл дырку;
    5. Выполнил разностный анализ бекапа и текущего зараженного сайта для понимания того, какой код где добавился.

    Описанные действия касаются не только файлов, но и базы данных, если таковая имеется.

    А что за зверь именно этот код в iframe - не важно. Там может быть один из тысячи любых других способов заработать на взломанном сайте.
    Ответ написан
    1 комментарий
  • Как сделать прогресс бар с данными?

    effetto
    @effetto
    .Net разработчик
    Средствами CSS - никак. Вам надо контроллировать процесс загрузки. По факту загрузки надо будет резко увеличить скорость (это можно сделать и через CSS).

    У бутстрапа есть хороший скролл: getbootstrap.com/components/#progress.
    И у jQuery: https://api.jqueryui.com/progressbar/

    Вот неплохое решение вашей задачи с объяснениями: incode.pro/jquery/ajax-na-praktike-progress-bar-in...
    Ответ написан
    Комментировать
  • Цикл выполнятся 1 раз и встает в конец?

    effetto
    @effetto
    .Net разработчик
    Укажите, пожалуйста, контекст. Или предоставьте исходник (например посредством сервиса https://gist.github.com/ ).
    Скорее всего один из вызываемых методов делает что-то с потоком выполнения.

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

    Но на самом деле ваша проблема заключается в том, что Вы взялись за задание, для которого у Вас не хватает знаний. Изучите для начала многопоточность в среде Windows Froms. Изучите работу с отладчиком. Изучите событийный подход в разработке. Вы пытаетесь работать с Windows Forms так, как если бы писали простенькую консольную программку.
    Ответ написан
  • Как установить windows 7 с флешки?

    effetto
    @effetto
    .Net разработчик
    Смотря какой у Вас BIOS. Не все BIOSы видят не все версии флешек. Для некоторых систем имеет значение размер флешки, для других - версия USB протокола.

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

    Microsoft предлагает специальную утилиту для создания загрузочного "диска" из флешки.
    Ответ написан
    Комментировать
  • Что за ошибка Линковки?

    effetto
    @effetto
    .Net разработчик
    Типовая ошибка. Попробуйте отключить Incremental Linking ключем /INCREMENTAL:NO.

    Здесь обсуждение на данную тему.
    Ответ написан
  • Как таблицу из Excel поместить в массив программы?

    effetto
    @effetto
    .Net разработчик
    Эксель предусматривает прямое получение массива средствами языка, например так:
    object[,] arr = activeSheet.get_Range("A1:B300").Value

    Для получения границ диапазона Вы можете использовать свойство End объекта класса Range.
    Ответ написан
    Комментировать
  • HTML5 Семантика?

    effetto
    @effetto
    .Net разработчик
    Когда появляются вопросы толкования тегов, я обращаюсь к источнику, в данном случае источником является стандарт от w3.org.

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

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

    Тэг header, в свою очередь, представляет вводную к тексту, вопреки пониманию верстальщиков о хедере и футере. В вашем случае этот элемент стоит применить к абзацам с превью справа.

    Тэг aside служит для представления блока дополнительного контента, как например блок справа на примере.

    Тэг nav используется для указания блоков навигации.

    Тэг section используется для тематической группировки контента.

    Я предлагаю Вам такую структуру, но возможны и варианты.

    Главной ошибкой предложенной Вами семантики я вижу отсутствие выделения основной статьи тегами (Вы используете для этого классы).
    Ответ написан
    Комментировать
  • Кто может посоветовать сервер для аутентификации?

    effetto
    @effetto
    .Net разработчик
    Для создания сервера уатентификации я использую решения команды thinktecture . Решения легко настраиваются, имеют широкие возможности и предоставляются как open source по Apache License Version 2.0.
    Ответ написан
    Комментировать
  • Парное обучение WEB технологиям. Кто? Где?

    effetto
    @effetto
    .Net разработчик
    Мы практикуем парное программирование на базе нашей Лаборатории в Красноярске. Набираю учеников и ищу коллег для совместного написания open source проектов.
    Ответ написан
  • Какой способ лучщий для авторизации REST API в сборке JS(клиент) и PHP(сервер)?

    effetto
    @effetto
    .Net разработчик
    Я рекомендую Вам использовать открытый стандарт OAuth. Для API я использую авторизацию на основании токенов Bearer. Вот, например, реализация от Твиттера. У всех больших социальных сетей существуют соответствующие решения.
    Ответ написан
  • Как работает организация связи между модулями Javascript?

    effetto
    @effetto
    .Net разработчик
    С целью разбивки клиентского приложения на модули я использую подход AMD. Наиболее популярная реализация данного механизма представлена в RequireJS. Подход AMD в целом ныне очень популярен, потому что малыми силами позволяет реализовать асинхронную загрузку модулей.
    Ответ написан
  • Как исправить ошибку при установке yeoman?

    effetto
    @effetto
    .Net разработчик
    Если Вам, как и мне нравится использовать компоненты системы node.js. при разработке сайтов, но Вы любите Visual Studio, то я рекомендую Вам использовать Preview Visual Studio 2015, в которой поддержка NPM и Bower идет из коробки.
    Ответ написан
    Комментировать
  • Как работает lazy loading?

    effetto
    @effetto
    .Net разработчик
    Судя по вопросу, Вы имеете ввиду Entity Framework?

    По поводу lazy loading есть отличная статья Джулии Лерман от '11 года. Несмотря на то, что статья довольно старая, она актуальна.

    Здесь краткий пример использования технологии, а здесь - официальное описание.

    В общих чертах Lazy Loading работает через создание прокси классов над Вашим кодом, который обеспечивает вызов методов загрузки - cвоеобразная реализация dependency injection.

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

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

    Lazy loading можно непосредственно отключить в конструкторе контекста или указать непосредственную загрузку методом Include как писалось ранее.

    На модель данных способ загрузки не оказывает иного влияния, кроме создания прокси классов.

    Обращение к сущностям происходи прозрачно, через оператор ".", как к свойствам объекта.
    Ответ написан
    3 комментария