Ответы пользователя по тегу .NET
  • Как Реализовать многослойный canvas с поддержкой прозрачности слоев?

    Nipheris
    @Nipheris Куратор тега C#
    Вам нужно определиться с количеством ресурсов, которое вам доступно. Безусловно, редактор с ядром на opengl будет очень шустрым (вон сейчас фотошоп активно пользуется аппаратным ускорением), но не факт, что вам хватит времени и умения использовать его напрямую.
    С другой стороны, вы можете попробовать написать нужные вам обработки самостоятельно, в виде обычного CPU-кода, но без использования WinForms для чего либо, кроме вывода изображения. Вы видимо пытались применить панельки для работы со слоями, это конечно будет крайне неудобно, и многое чего не выйдет. Советую попробовать поработать с этими задачами (смешение слоев, работа с прозрачностью и т.д.) самому, т.е. использоват только один picturebox для вывода готовой картинки.
    Ответ написан
    1 комментарий
  • Разница между экземпляром класса и классом C#?

    Nipheris
    @Nipheris Куратор тега C#
    > экземпляр класса и обьект выходит тоже разные вещи?
    К сожалению, в рамках современной терминологии и с учетом разнообразия объектных моделей сложно ответить однозначно на ваш вопрос. Скажу так: если у вас статически-типизированный классовый язык (class-based, т.е. C#/C++/Java), то всякий объект - всегда это экземпляр класса, но в других языках и объектных системах может быть по-другому. Чтобы получить конкретный ответ, нужно точно знать о каком языке идет речь.
    Вообще, небольшая разница есть и между самими терминами: объект это прежде всего черный ящик с identity и некоторым известным интерфейсом, и вовсе не факт, что этот объект "создан по чертежу", как сказал brainick, однако если рассматривать классы как множества, то во многих языках есть понятие корневого класса в иерархии (класса object или "класса всех объектов"). Вот если такое понятие существует, то тогда можно сказать, что любой объект является экземпляром класса object.
    Ответ написан
    Комментировать
  • Какой из парсеров JSON для C# самый простой?

    Nipheris
    @Nipheris Куратор тега C#
    @Mr_Sinister
    > но он создает кучу объектов
    безусловно, библиотека библиотеке рознь, но если вы всерьез заморочились производительностью этой де-факто стандартной JSON-либы, то:
    0) вы ищите проблему производительности там, где ее нет (а есть в другом месте)
    1) самое время все-таки протестировать, и написать свое, более подходящее (редко, но бывает и такое)
    2) вам не нужен JSON, возьмите protocol buffers
    3) вам не нужен C#, возьмите C++
    Ответ написан
    Комментировать
  • Как научиться строить модели БД sql в связке с С# (Цель- писать понятные ТЗ для программистов С#)?

    Nipheris
    @Nipheris Куратор тега C#
    Сложно вам посоветовать в такой ситуации что-либо. Интересно, чем занималась контора та, что программисты C# с sql не знакомы, разве что играми..
    В целом вам надо ознакомиться с современным представлением о реляционных БД (вы же все-таки аналитик, вам нужно знать на разных уровнях и масштабах), с архитектурой приложений, использующих РБД (толстые и тонкие клиенты, веб-приложения), и потом уже некоторые детали касающиеся языка.
    С точки зрения программиста C#, я бы от вас как от аналитика ожидал знание различных принципов и дисциплин доступа к рел. данным, а именно:
    - использование ORM: когда можно и нужно), когда хочется, но нельзя, когда можно "толстую" ORM (Entity Framework, NHibernate), а когда - тонкую (LINQ to SQL); использование кода на стороне БД - триггеры, хранимые процедуры;
    - принципы построения слоев доступа к данным в сочетании с бизнес логикой (паттерны и антипаттерны в этих ситуациях, например Anemic Data Model);
    - способы контроля версий схемы реляционной БД - миграции, source control для триггеров и хранимых процедур (если они есть), политики обновления схемы вместе с выкатыванием новой версии ПО;
    - формирование тестовых данных в тестовых базах;

    Вот если сможете по этим вопросам проконсультировать, то разработчикам останется только подучить SQL и конкретную ORM, если будете использовать.
    Ответ написан
    5 комментариев
  • Как показать диалог в потоке BackgroundWorker'a на WPF?

    Nipheris
    @Nipheris Куратор тега C#
    Может попробуем решить более общую задачу? Вам зачем показывать диалог в потоке? Что в принципе это даст?
    Ответ написан
  • Наследование интерфейсов и приведение по типу интерфейса: они добавляются в метаданные класса?

    Nipheris
    @Nipheris Куратор тега C#
    dad1fdc6f77e49efab5032ce7efa934c.png
    Возможно я не понял вопроса, но так или иначе в метаинфе о классе есть инфа об интерфейсах, которые он реализует (было бы странно, если бы ее не было :)). Т.к. указана и сборка, и полное имя интерфейса, и IDE-шкам ничего не мешает идти по дереву типов и смотреть где что есть.
    Оффтоп: т.к. "наследовать" из интерфейса нечего, принятно говорить, что интерфейс "реализуется" (implemented) классом, чтобы подчеркнуть отличие от наследования, когда помимо установления отношения is-a классом наследуется и какая-то реализация. То, что в описании класса и базовый класс и интерфейсы перечисляются в одном списке не значит, что суть одна и та же.
    Ответ написан
  • Не удается разрешить сборку VC90.DebugCRT?

    Nipheris
    @Nipheris Куратор тега C++
    Значит так, во-первых вам для Qt и для вашего приложения нужно использовать один тулчейн (компилятор), иначе будет огромное количество странных проблем. Т.к. вы разрабатываете в 2012-й студии, а, к сожалению, официально 4-й кьют под эту студию не собирался, вам придется как минимум поставить компилятор из 2010-й студии (не помню, возможно 2012-ю можно таргетировать на старый компилятор, чтобы не ставить 2010-ю студию целиком). Можно и попробовать собрать из исходников, но я не могу назвать это простым делом.
    Во-вторых, если мы представим, что вы выполнили предыдущий этап, и у вас есть собранный Qt и компилятор той же версии, то в зависимости от конфигурации (Debug|Release) ваша программа будет линковаться на разные рантаймы. DLL-файлы рантайма имеют букву 'd' в конце имени файла. Для разных версий VC++ они называются по разному:
    msvcr90[d].dll+msvcp90[d].dll - Visual Studio 2008 (MSVC 9.0)
    msvcr100[d].dll+msvcp100[d].dll - Visual Studio 2010 (MSVC 10.0)
    msvcr110[d].dll+msvcp110[d].dll - Visual Studio 2012 (MSVC 11.0)
    msvcr120[d].dll+msvcp120[d].dll - Visual Studio 2013 (MSVC 12.0)
    Для чего я это привел - т.к. ваша ошибка прилетела скорее всего из подсистемы side-by-side, и связана с конфликтом версий библиотек, в качестве workaround советую вам найти дебаг-библиотеки там где у вас установлена студия, и скопировать из к exe-шнику вашего приложения, чтобы эти библиотеки подхватывались приоритетнее. Однако перед тем, как вы это сделаете, попробуйте следующее:
    0) разберитесь с версией компилятора, под которую собирался Qt. Возможно лучшее решение - таки поставить компилятор из 2010-й, не решив этот вопрос продолжать нормально работать невозможно
    1) убедитесь, что пересобрали проект (сделайте Rebuild All)
    2) поставьте апдейты на 2012-ю студию, если она не последней версии
    Если проблема останется, возьмите Dependecy Walker, натравите на Exe-шник, и проверьте, откуда он подтягивает debug-библиотеки.
    Если есть вопросы - в комментарии.
    Ответ написан
  • Общие файлы *.cs в несколький проектах с разной версией .NET Framework?

    Nipheris
    @Nipheris Куратор тега C#
    Можно сделать линки на файлы в другой папке, в 2015-й студии появились Shared-проекты - это проекты, которые не компилятся в привычном понимании (в отдельную сборку), а "инклудятся" в каждый проект, который на этот shared-project ссылается. Однако,
    > чтобы избежать создания лишних *.dll библиотек?
    в чем собственно проблема? Под разные дотнет можно скомпилить, сделав разные конфигурации проекта, это нормальная ситуация. Вам нужно, чтобы один exe-шник был строго?
    Ответ написан
  • Ошибка отсутствия dll при использовании sqlite-net в C#, как исправить?

    Убедитесь, что установили этот https://www.nuget.org/packages/System.Data.SQLite/ или этот https://www.nuget.org/packages/System.Data.SQLite.Core/ пакет. sqlite-net вам ни к чему, если эти уже установлены, попробуйте его удалить, возможно он приводит к конфликту. Правильно установленный пакет System.Data.SQLite должен быть самодостаточен в плане сборки (должен копировать нужные файлы сам).
    Ответ написан
    5 комментариев
  • На что смотреть в профиле приложения?

    Nipheris
    @Nipheris Куратор тега C#
    > На что мне нужно смотреть для оценки общей производительности?
    сами себе уже ответили - смотреть, какой код тратит больше всего времени процессора. На ваших скринах все это есть, в процентах и миллисекундах. Вот берете вызов ProcessDirM, у которого 60+%, и раскрываете дерево вызовов, смотрите, кого эта функция вызывала, и у кого также макс. время и так до тех пор, пока не поймете куда эти 60% растрачиваются.
    Ответ написан
    1 комментарий
  • Вопрос по C# и net framework?

    Nipheris
    @Nipheris Куратор тега C#
    В XP предлагается для установки древнейший 1.1 и то его почти никто не ставит, так что можно считать, что нет (последний дотнет, поддерживаемый на XP - 4.0). В семерке из коробки 3.5 (что включает в себя 3.0 и 2.0), поставить можно любой из имеющихся на данный момент (1.1, 4.0, 4.5, 4.6).
    Ответ написан
    Комментировать
  • Какие проблемы решает Katana (OWIN)?

    Реальная проблема - зависимость от System.Web, которая, в свою очередь, слишком сильно завязана на IIS, и, если не ошибаюсь, на http.sys. Инженеры из Майкрософта (и их начальство тоже) хотят запускать новый asp.net на всех популярных платформах, чтобы подтянуться до уровня других популярных стеков технологий, такие как RoR или django. Чтобы зависимости от окружения было минимум, нужен суперлегкий интерфейс между веб-приложением и его окружением. В мире дотнета это и будет OWIN. Также как Rack в стеке руби.
    Если хотите чуть более пространно - вот я отвечал ранее на похожий вопрос.
    Ответ написан
    3 комментария
  • C# Как очистить все cookies в WebBrowser?

    Nipheris
    @Nipheris Куратор тега C#
    Попробуйте вот это свойство установить в null или пустую строку.
    Ответ написан
  • Как отловить момент, когда окно помещается в одну из сторон экрана (прилипает как бы), при нажатии WIN + LEFT?

    Nipheris
    @Nipheris Куратор тега C++
    Я думаю вам придется изучить и частично повторить логику винды в плане приклеивания окна - т.е. получать размер рабочей области на текущем мониторе и делать окно в половину области с нужным положением. С точки зрения приложения нет никакой необходимости сообщать ему, что окно прилеплено - для него не должно быть разницы, прилепили его или вручную поресайзили до такого размера.
    Старый размер окна запоминает виндовый менеджер окон, как и в случае c maximize/minimize - иначе бы старые приложения не работали с прилипанием, а они все работают без проблем, значит операционка ничего нового не требует.
    Ответ написан
    2 комментария
  • Как использовать ASP.NET Framework PHP программисту?

    veitmen muwilob
    > ASP.NET это legacy технология microsoft
    > Asp.Net технология создания веб приложений, еще известная как WebForms.
    Шта? Человека не путайте про legacy-технологии: www.asp.net/mvc, www.asp.net/vnext - это все тоже ASP.NET. А вот то, что называется ASP.NET WebForms - это да, это старая технология и сейчас ее не советуют использовать в новых проектах.
    Фрейморвки для PHP и то, что предлагает ASP.NET - вещи довольно разные, шарп и дотнет это больше для фирм и средних/больших проектов (хотя в vNext ситуация сильно поменяется, будем надеяться что по-сложности использования будет на уровне Ruby).
    Ответ написан
    4 комментария
  • Как сохранить Excel/DataTable таблицу в БД (MS SQL Server)?

    Nipheris
    @Nipheris Куратор тега C#
    > Четкого формата таблиц нет.
    Значит реляционная модель как таковая вам не подходит. Тут есть два варианта:
    1) Entity-Attribute-Value (возможно это вы и имели в виду под "Сохранять каждую ячейку по отдельности", ну тогда решать вам. Работать будет разумеется медленнее, чем нормальная таблица, но у вас же нет схемы, ничего не поделаешь)
    2) JSON/XML. Тут уж либо поля типа XML, либо привет документно-ориентированная СУБД.

    Второй вариант годится, если выборки внутри таблицы не нужны или нужны редко (раз уж вы заговорили про CSV). Если нужны часто - то тогда EAV самое оно.
    Ответ написан
    Комментировать
  • Существует ли бесплатный обфускатор для .NET?

    Community-редакция DotFuscator. Вам поддержка MSBuild на каком уровне нужна? EXE-шник всегда можно вызвать, а вот есть ли сборки с msbuild-тасками - не могу сказать.
    Ответ написан
    Комментировать
  • Кто может подкинуть заданий на с#?

    Nipheris
    @Nipheris Куратор тега C#
    У тебя есть хобби или интересы какие-нибудь помимо программирования? Если есть - это отличный способ попрактиковаться с языком. Подойдет практически все, даже если ты любишь, например, рыбалку - тогда можешь составить интерактивную карту рыбных мест со статистикой ловли. А вообще: если фотография - напиши себе сам пару фильтров для изображений (поработаешь с графикой немного), если звук/музыка - также ищешь библиотеки, которыми можно прочитать файлы, и пробуешь делать простые вещи - изменение громкости, миксинг звуков. Автоматизируй что-нибудь, что тебе нравится, что ты хорошо знаешь, наверняка что нибудь найдешь. Самый крайний вариант всегда есть - персональная база данных для чего-либо. Тут уже вообще все подойдет - и музыка, и видео, и коллекционные значки, и твои личные спортивные рекорды и вообще что угодно. Я советую такой способ, чтобы ты почувствовал, что язык (особенно промышленный) - это инструмент, и нужно получать удовольствие от его использования. И правильный взгляд на вещи у тебя будет. И не перегоришь на третьей по счету бессмысленной задаче. Еще и корешам покажешь, как круто получилось.
    Мож в доту шпилишь или cs? Тогда инф. поддержу мачтей - статистику какую-нибудь, потом еще и интеграцию с сервером/стимом сделаешь.
    Ответ написан
    1 комментарий
  • Почему вылетает собраный проект на других компах?

    Nipheris
    @Nipheris Куратор тега C#
    Не сразу увидел ваш коммент о версии студии - в 15-й студии дотнет 4.6, причем в данный момент RC-версия, вам бы лучше переключиться на 4.5.2, но в любом случае и тот и другой на 7-ке не установлен по-дефолту, там только 3.5. Так что если не ставили - надо поставить. Либо ВЫ переключаете свой проект на 3.5, если вам не нужны фичи из 4.0, тогда должно пойти на семерке без доп. телодвижений.
    Ответ написан
    Комментировать
  • ObservableCollection С#, как использовать?

    Nipheris
    @Nipheris Куратор тега C#
    Ну вот толковые в принципе ответы на SO: stackoverflow.com/questions/4279185/what-is-the-us..., посмотрите, и скажите что конкретно непонятно.
    Ответ написан
    1 комментарий