• Указание имени БД в строке подключения?

    NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=admin;");
    var databasesTable = conn.GetSchema("Databases", null);
    // проверяем наличие базы данных в таблице databasesTable
    Ответ написан
    Комментировать
  • Как добавить действия обработчикам событий стандартных компонентов?

    Nipheris
    @Nipheris Куратор тега C#
    на изменение выделенного элемента

    Ежели так, то вам нужен TreeView и OnSelectedItemChanged.
    Ответ написан
    2 комментария
  • Какие есть архитектурные паттерны без ORM для ASP.NET MVC?

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

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

    Даже если вы не хотите ORM целиком, вы возможно захотите часть из её функционала реализовать самостоятельно для удобства. Например, вы вероятно все-таки захотите иметь Identity Map, что ваши объекты (которые будет отдавать ваш Репозиторий, реализованный ручными SQL-запросами) действительно были объектами, а не записями. Или даже какой-нибудь Lazy Load.

    В общем, сейчас создаётся ощущение, что вы не задачу решаете, а пытаетесь собрать рекордную коллекцию паттернов.
    Ответ написан
    Комментировать
  • Как подключится к postgreSQL?

    Какая в меня ошибка ?

    Ваша ошибка: Fatal error: Call to undefined function pg_connect() in /var/www/mysite/lab2/stocks.php on line 17
    Как ее исправить ???

    Если уж вы используете расширение для работы с постгрес, его необходимо загрузить. Конкретный рецепт зависит от вашей операционки: stackoverflow.com/questions/7438059/fatal-error-ca...
    Ответ написан
    Комментировать
  • Как в RAML убрать некоторые параметры из типа, который используется для тела запроса?

    создать тип OrderRequest и наследовать его в Orders, но это тоже какой-то костыль...

    Согласен. Но почему бы не наследовать и Order и OrderRequest от OrderInfo, в котором будут все общие поля?
    Ответ написан
  • Visual Studio. Вместо кнопки "запустить" появилась кнопка "присоединение". F5 не работает Как запустить проект?

    Nipheris
    @Nipheris Куратор тега C#
    Возможно, у вас не открыт ваш солюшен. Проверьте, что в Solution Explorer отображается содержимое солюшена.
    Ответ написан
    Комментировать
  • Как смоделировать человеческий мозг в 3d среде?

    https://en.wikipedia.org/wiki/Blue_Brain_Project

    Что такое "3D среда" и в чем смысл этого понятия применительно к нейронной сети? Вам знакомо математическое определение ИНС?
    Ответ написан
  • Зачем нужен Stream в C#?

    Nipheris
    @Nipheris Куратор тега C#
    GetBytes возвращает long, не знаю где вы нашли, что он возвращает массив байт:
    https://msdn.microsoft.com/ru-ru/library/system.da...

    Так что передача буфера третьим параметром более чем логична.

    И оно кстати ругается: Cannot convert type long to byte[]

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

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

    При передаче буфера, значение которого равно null, метод GetBytes возвращает длину строки в байтах.

    Поэтому, если вы не знаете длину буфера - вызовите метод с null для получения этой длины, создайте буфер и поместите туда значение вторым вызовом GetBytes.
    В .net и C# нормальная документация, ее полезно читать.
    Почему во всех примерах используются какие-то Streams?

    Потому что BLOB они на то и BLOB, что Large Object. Блоб может быть килобайтовый, а может быть и гигабайтового размера. Гигабайт читать в массив целиком далеко не всегда целесообразно, как правило - вообще не целесообразно.

    Стримы - это абстракция в стандартной библиотеке, реализующая концепцию потоковой обработки. Файловый поток не будет загружать 10-гиговый файл в память целиком, если вы прочтете только первый килобайт. С блобами из базы аналогичная ситуация. Даже если конкретно ваш драйвер БД не поддерживает загрузку блоба по частям, в принципе такая практика существует.
    Ответ написан
    5 комментариев
  • Зачем используют интерфейсы при проектировании архитектуры приложения?

    Nipheris
    @Nipheris Куратор тега C#
    Я думаю интерфейсы в этом примере применяются как и везде - для контроля за связями между компонентами крупной системы и для обеспечения заменяемости компонент.

    Раз уж так, разрешите мне прилинковать старый ответ: Какова роль интерфейсов в ООП?
    Ответ написан
    Комментировать
  • Почему большинство графовых БД написаны на Java?

    Экосистема способствует. Многие БД вышли из научных проектов или были экспериментальными. В среде computer science из не-нативных языков джава достаточно популярен.
    Не знаю, что причина а что - следствие, но могу сказать, что в джаве есть такое: https://github.com/tinkerpop , а в дотнете я такого не припомню.

    Собственно, а что вы получите, узнав, почему графовые БД написаны на Джаве? Вам как-то легче станет? Или реальный вопрос все-таки в другом?
    Ответ написан
    1 комментарий
  • Кто у нас ведущие разработчики игр в России?

    Ответ написан
    Комментировать
  • Как обойти максимальное количество ребер неориентированного взвешенного графа?

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

    Если я ничего не путаю но ночь глядя, то это задача коммивояжёра. Странно, что до сих пор про неё никто ничего не упомянул.

    Задача NP-полная, достаточно быстро (что-то около 60-70 вершин) становится трансвычислительной, для 200 вершин ни о каком полном переборе не может быть и речи. Советую посмотреть метод ветвей и границ.
    Ответ написан
    1 комментарий
  • Что нужно знать для написания backend игрового сервера?

    Nipheris
    @Nipheris Куратор тега C#
    Александр Александров к сожалению, вынужден присоединиться к Сергей в том, что вы не знаете, что вам нужно от сервера.

    Понимаете, все эти архитектурные паттерны - "бэкенды" в web-понимании, REST-ы - это все хорошо и удобно, но стандартные подходы web - это не всегда про игры и риалтайм-приложения.

    Вы должны принять много различных решений, прежде чем браться что-то делать.

    > есть сервер, к которому обращается игровое приложение что бы записать или извлечь определенных данные игрока
    Вот в этих "определенных данных" и вся суть. Можно по-разному распределять логику между клиентом и сервером, но нередко, особенно в играх, где нужна устойчивость к мошенничеству, большая часть игровой логики находится на сервере. Это гораздо больше, чем "извлечь данные игрока". Если игровая логика находится на сервере, то тогда и требования к процессу обмена данными соответствующие - в REST особого смысла нет, т.к. все равно придется вводить понятие "сессии" или "соединения" с сервером, и хранить его состояние. И ваша основная задача будет не в легкой масштабируемости на заранее неизвестное число клиентов, а наоборот, в поддержании максимально комфортного игрового процесса для имеющихся игроков, а масштабирование будет на втором месте и будет достигаться немного иными архитектурными решениями.

    Многие крупные игровые проекты с большой долей логики на сервере используют свои протоколы обмена (как правило, бинарные) поверх обычного TCP-соединения. Многие применяют различные языки описания таких протоколов, чтобы было проще управлять разработкой, и вносить изменения в протокол (например, по таким описаниям можно автоматически генерировать часть серверного и клиентского кода). Например, Близзы, насколько мне известно, используют Protocol Buffers для Diablo 3.

    С другой стороны, если ваша игра - по сути однопользовательская (например, маджонг какой-нибудь), и вам нужно только сохранять статистику, без особых требований к доверию (т.е. только ради удобства игрока), то тогда простенький REST-сервис вам прекрасно подойдет.

    возможность сохранить процесс прохождения игры

    вам нужно решить, какой уровень доверия у этих данных. Это во многом и будет определять архитектуру. Если ваш проект соревновательного характера, и подмена данных о достижениях или подтасовка результатов отдельных игр или матчей может поставить крест на всем проекте, то тогда клиент не может быть доверенной стороной, и критичная логика должна быть на сервере.
    Ответ написан
    8 комментариев
  • Как загрузить готовую 3D модель(из .obj) в программу, использующую DirectX (С++)?

    Nipheris
    @Nipheris Куратор тега C++
    Посмотрите https://github.com/syoyo/tinyobjloader - на беглый взгляд вроде работоспособная либа.
    Ответ написан
    Комментировать
  • Модульность в C++ как это может выглядеть?

    Nipheris
    @Nipheris Куратор тега C++
    Пакеты Джавы и сборки Дотнета - это про модули в терминах крупной структуры приложения, они тут не при чем.
    Речь идет о модулях на уровне программного кода.
    Хотите примерно понять как это будет выглядеть - посмотрите, например, на юниты в Паскале. Это примерно и есть то, что хотят получить в конечном счёте - возможность по-человечески, на уровне языка, объявлять интерфейсы модулей, подключать их друг к другу, следить за зависимостями между модулями (разве что модули C++ вроде как не привязываются к единице компиляции, в отличие от юнитов Паскаля).
    Сейчас в C++ это достигается большим хаком на уровне препроцессора (а не компилятора языка), называющимся include-файлы. Этот механизм, основанный на правиле "много объявлений, одно определение", унаследован из Си, и по сути представляет собой замену отсутствующей возможности передавать метаданные от одной единицы компиляции к другой при сборке проекта. С помощью инклудов вы напихиваете в один файл ВСЕ, что может потребоваться компилятору. По факту выливается в то, что бОльшая часть единицы компиляции после обработки препроцессором - это содержимое инклуд-файлов. И всё это обрабатывается компилятором каждый раз заново (в каждой единице компиляции). В Си это еще куда ни шло, но в плюсах, где многие библиотеки содержат тяжелый шаблонный код, это становится совсем печальным. Помимо этого, сама работа с инклудами - это непростая практика, и если следовать ей неверно, особенно новичкам, они могут получить от компилятора удивительнейшие ошибки. За примером далеко ходить не надо - попробуйте в большом проекте не ставить защиту от множественного инклуда.
    Вся эта препроцессорная магия красоты и прозрачности языку не добавляет. Пока в других языках пишут "package foobar" и "import foobar", мы пишем "#pragma once" или даже "#ifndef FOOBAR_H ...". Уже грустно как-то становится.

    Вышесказанное в одно предложение: модули хотят сделать настоящими, вместо имитации средствами препроцессора.
    Ответ написан
    Комментировать
  • Современные тенденции разработки на C#?

    Nipheris
    @Nipheris Куратор тега C#
    Общие тенденции сейчас такие - пользоваться NuGet по-нормальному (т.е. как в DNX, а не сбоку прилепленным, как в классических C# проектах), наконец по-нормальному поддерживать все платформы (как должно было быть изначально), т.е. хотя бы Линух и Фряху помимо Винды, не бояться portable-версий библиотек.

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

    MS пытается сейчас сделать весь дотнет и конкретно C# более легковесными. По .net core и asp.net core это ясно видно - альтернатива большому полноразмерному .net framework, asp.net теперь распространяется через NuGet, новые Roslyn-компиляторы и DNX позволяют пользоваться C# как другими популярными языками вроде Питона и Руби, например дают возможность не компилировать весь проект заранее, а делать это на ходу, по-требованию и при изменении файлов исходников. Entity Framework старается не отставать, т.к. это сейчас рекомендуемый подход для доступа к данным в БД. Не так давно вроде впилили поддержку документных баз (не знаю правда зачем :) ) работают в направлении поддержки NoSQL-баз (поправил Роман ).

    К чему вы упомянули dependency injection не совсем понятно, это паттерны, полезные в любом языке и в любом проекте.
    Ответ написан
  • В чём смысл PayPal? За счёт чего эта платежная система смогла получить такую популярность?

    Я вот никогда своей зарплатной картой не пользовался для покупок в интернете (я же не сумасшедший). Вопрос - а чем тогда пользоваться? У нас вот популярен Qiwi и аналогичные услуги у других банков (виртуальные карты и счета). За бугром роль такого сервиса играет Палка. Большинство операций нужно подтвердить, авторизовавшись на сайте Пэйпала, если есть подозрения на компрометацию - меняешь пароль или даже акк, и дело в шляпе. А вот если карту надо перевыпустить - не знаю как в западных банках, а у нас время ожидания от 3-4 дней (в лучшем случае) до пары недель. Не очень удобно. И денежек стоит.

    3D-Secure не так давно стал появляться у банков. До этого спереть данные кредитки было куда проще.
    Ответ написан
    Комментировать
  • Где хранится закрытый ключ в Windows?

    https://msdn.microsoft.com/en-us/library/windows/d... , см. секцию Key Directories and Files.

    Но работать вам лучше через WinAPI, например CryptAcquireCertificatePrivateKey
    Ответ написан
    Комментировать
  • Нельзя изменить путь установки visual studio 2015.Как исправить?

    Скорее всего что-то еще установлено в указанной папке, и это тоже нужно удалить (это основная причина невозможности сменить путь). Если сейчас Студия удалена, что еще осталось в папке VS2015?
    Ответ написан
    3 комментария