Ответы пользователя по тегу C#
  • Какие интересные NuGet пакеты вы используете?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Обращение к сущностям происходи прозрачно, через оператор ".", как к свойствам объекта.
    Ответ написан
    3 комментария
  • Как организовать архитектуру приложений "Система управления проектами"?

    effetto
    @effetto
    .Net разработчик
    При решении поставленной задачи я рекомендую Вам использовать трехслойную архитектуру.

    Слой представления в Вашем случае - это windows клиент и web клиент.
    Слой домена - это сами объекты предметной области и веб сервисы.
    Слой данных - это маппинг предметной области в бд.

    Слой данных рекомендую организовать на основе Entity Framework 7 (бета), так как последняя версия поддерживает внедрение зависимости. Для учебного проекта будет в самый раз, заодно изучите новую технологию.

    Для предоставления данных рекомендую использовать шаблон Factory и шаблон Репозиторий.

    WPF клиентов я рекомендую цеплять все равно через сервисы, чтобы не нарушать общую архитектуру. Visual Studio сама сгенерирует Вам классы-обертки для вызова сервисов. К их методам Вы уже можете привязываться.

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

    Для пополнения копилки знаний на тему проектирования ПО я настоятельно рекомендую к прочтению Мартина Фаулера - Шаблоны корпоративных приложений. Ответы почти на все Ваши вопросы имеются в данной книге.
    Ответ написан
    Комментировать
  • Как защищать прииложение (C#)?

    effetto
    @effetto
    .Net разработчик
    Для надежной защиты, рекомендую Вам доверить дело профессионалам вроде Сентинела. Любая защита, которую Вы напишете первый раз в жизни будет ломаться опытным крякером за несколько минут.
    Ответ написан
    Комментировать
  • Есть ли такие компоненты dll для сохрания состояния программы C#?

    effetto
    @effetto
    .Net разработчик
    Если других требований нет - используйте сериализацию. Бинарную или в XML в зависимости от задачи.
    Ответ написан
  • Типы отображения в Entity Framework, какие их преимущества и недостатки?

    effetto
    @effetto
    .Net разработчик
    Дело в том, что Ваш пример из головы не верен и сильно утрирован. Вот хорошая серия статей на эту тему.

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

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

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

    Стоит обратить Ваше внимание, что правильным подходом при разработке больших приложений будет использование различный подходов в зависимости от задач каждого конкретного класса. Кроме того, предлагаю Вам обратить внимание на технологию CodeFirst как можно раньше. Она предоставляет FluentApi, который дает гибкость настройки БД.
    Ответ написан
    Комментировать
  • Task или Thread в C#.NET 4.0 WPF?

    effetto
    @effetto
    .Net разработчик
    Thread (нить, поток) - представляет собой инкапсуляцию потока процессора. Это программная обертка над функционалом вашей системы. Task (задача) - представляет собой единицу работы, которая может быть выполнена параллельно. Использование того или иного инструмента зависит от Ваших задач. Например, если Вам в фоновом режиме надо выполнять операции - Ваш выбор это поток. Если Вам нужно параллельно выполнить вычисления или дождаться выполнения асинхронной операции (например ввода-вывода), то Ваш выбор - задача.
    Ответ написан
    Комментировать
  • На чем написать программу для работы с чужим окном?

    effetto
    @effetto
    .Net разработчик
    Я писал подобную программу на C# с использованием оберток для системных библиотек с сайта www.pinvoke.net/index.aspx, которые я размещал в статических классах. Программа представляла собой бот для 3d игрового клиента.
    Ответ написан
    Комментировать
  • Какие есть различные задачи по с#?

    effetto
    @effetto
    .Net разработчик
    Я рекомендую поставить перед собой задачу, решение которой упростит Вашу жизнь. Естественно, она должна быть реализуема на изучаемом языке. Задача должна быть небольшой, общим объемом работ не больше месяца. Например у нас в компании начинающие программисты получают заданиче сделать трекер задач с подсчетом времени.
    Ответ написан
    Комментировать
  • Что означает данное выражение?

    effetto
    @effetto
    .Net разработчик
    Невозможно дать однозначный ответ на вопрос, так как неизвестен тип переменных. Выражение означает проверку на возможность иметь null значение.
    Ответ написан
    Комментировать
  • Как в ASP.NET прочитать значение параметра url на русском языке?

    effetto
    @effetto
    .Net разработчик
    В представленном топике имеется решение. Правда рассматривается арабский язык, но для русского языка решение так же работает.
    Ответ написан
  • В чем ошибка c#?

    effetto
    @effetto
    .Net разработчик
    Ошибка заключается в попытке начать программировать без базового знания английского языка. Если Вы планируете связать свою жизнь с разработкой - учите английский. Иначе закажите работу у профессионала. Выучить английский язык поможет машинный переводчик, которому можно скармливать доселе непонятные сообщения об ошибках.
    Ответ написан
    1 комментарий
  • С каких книг начать изучение C#!?

    effetto
    @effetto
    .Net разработчик
    Для самообучения рекомендую в первую очередь ознакомиться со спецификацией языка. Кроме того стоит обратить внимание на официальную документацию. Это, конечно, не книги, зато официальная документация избавит Вас от перенятия личного стиля разработчика автора книги. При больших затратах времени Вы получите более широкое понимание языка.
    Ответ написан
    3 комментария