Профиль пользователя заблокирован сроком с 6 мая 2016 г. и навсегда по причине: Мат в комментариях
Ответы пользователя по тегу .NET
  • C#. Операторы доступа для сокрытия, но не для защиты?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    А если пишешь один для себя, то обязательно пишешь такой говнокод, где нет архитектуры, все навалено прям в button_click, и поэтому и точку ставить негде в принципе, и у классов нету членов нуждающихся в сокрытии, ибо в общем-то и нет ни членов, ни классов? Серьезно?

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

    Про "защиту" вообще бредовые какие-то рассуждения. Вы о чем?
    Ответ написан
  • Десериализация json в c#?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Снаружи должны быть { } а не [ ]
    Я бы просто перед парсингом исходную строку завернул таким образом:
    {"response": [
      {
        "topic": 1,
        "title": "Тест",
        "text": "Какой-то текст 1",
        "user_id": 1328,
        "user": "user 1",
        "time": 1454613213
      },
      {
        "topic": 2,
        "title": "Тест 2",
        "text": "Какой-то текст 2",
        "user_id": 1328,
        "user": "user 2",
        "time": 1454611021
      }
    ]
    }


    И дальше все без проблем парсится по исходникам из гугла, jobj["response"] - это JArray, ну а в нем уже JToken'ы/JObject'ы

    Хотя может можно и сразу в JArray распарсить такой JSON, не интересовался пока.
    Ответ написан
    Комментировать
  • Кто знает C# opensource проекты с хорошей архитектурой?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Ну, а вы сами не можете определить, где архитектура спроектирована грамотно, а где - безграмотно?
    Зачем вообще нужна грамотно спроектированная архитектура? Прежде всего - для повторного использования кода (re-use), особенно посторонними программистами.
    Вот и попробуйте по-re-use-ать код разных проектов. Идеально подходят библиотеки - которые как бы для этого и предназначены, чтобы можно было быстро, удобно их заюзать. Но и само приложение тоже легко так проверить, достаточно попробовать внести в него какие-то изменения и вообще разобраться в нем, и сравнить, сколько сил и времени будет затрачено в разных случаях.
    В идеале тестировать нужно не на одном человеке, а на нескольких разных, предпочитающих разные языки и разные подходы.

    Или вы просто не видите, что удобно, а что неудобно? Ну тогда пару слов о том, что такое - неудобное:
    1) Избыточное.
    Когда слишком много слоев абстракции.
    Когда слишком много обязательных аргументов некой функции (не аргументов вообще, а именно обязательных).
    Когда слишком много.
    2) Длинное.
    btnCloseAllApplicationsAndRebootMyComputer.
    Без комментариев.
    3) Короткое.
    btn.
    Без комментариев.
    4) Нестандартное.
    dAtETIMEPICKEr_______1.
    textbox2.
    BUTTON3.
    Или когда в классе C# имя какого-либо публичного члена пишут с маленькой буквы.
    Без комментариев.
    4.1) Несоответствие парадигме ООП, хотя на данном языке возможно соответствие.
    Когда так:
    FormHeightSetter.Set(form1, 500);
    Вместо:
    form1.Height = 500;

    Список можно продолжать. Но, видимо, и эти 4 пункта уже невыносимо сложны, коль скоро они нарушаются этак в 99,(9)% всех приложений.
    Ответ написан
    Комментировать
  • Как работает C#?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Насколько я знаю, в Java есть JVM, которая загружает файлы .class, содержащие байт-код, и запускает их.
    Поправка: обычно не .class, а .jar. А вот внутри .jar (это архив) - уже файлы .class. Ведь .class, как ясно из названия, содержит только 1 класс, нечто вроде .obj в C++. А в приложении может быть и несколько классов, + цифровая подпись, + прочее. Вот всё это и линкуется в .jar.
    Один и тот же .jar работает везде там, где есть JVM в чистом виде. На десктопных линуксах работает. На Android не работает, там вместо этого .apk - другой формат.

    > Куда компилируются .cs?
    Гуглим csc.exe
    Обычно все операции осуществляются в нем, т.е. из .cs может делать сразу .exe. Хотя возможно сперва сделать IL (нечто вроде ассемблера, но пока еще НЕ байт-кода, т.е. НЕ бинарное), а вот IL уже скомпилировать в байт-код (бинарный формат) с оберткой exe.

    > В мире C# существуют также такие понятия как .NET, Mono, Roslyn и т.д., можете ли вы структурированно разъяснить их смысл?
    В .NET Framework входят:
    - компиляторы: для C# (тот самый csc.exe) и не только для C# (да, компиляторы именно входят в .NET, а не в Visual Studio);
    - тот самый CLR;
    - несколько библиотек классов, таких, как mscorlib.dll, System.Windows.Forms.dll (Winforms). библиотеки WPF. Такие библиотеки называются стандартными. Те библиотеки, которые в .NET не входят и их нужно таскать рядом с exe, называются сторонними (third-party), так как обычно они созданы не MS, а сторонними, "третьими", разработчиками.

    Mono - платформа, позиционируемая как кроссплатформенная альтернатива .NET Framework. То есть всё перечисленное там своё и от MS ничего нет. IDE также своя - MonoDevelop.
    На деле же, альтернатива эта от начала до конца очень сырая и вообще хилая. Например, Winforms/WPF там просто нету (может и можно прикрутить эти сборки из .NET, но на линуксе без вайна не заработает, да и MonoDevelop не содержит средств для удобной разработки под них). Вместо Winforms/WPF там GTK#, он реально кроссплатформенный, но до Winforms и тем более WPF ему очень далеко.

    Roslyn - какой-то новый компилятор от MS, вроде бы альтернатива старому csc.exe. Ничего интересного лично я в нем не вижу.
    Ответ написан
    1 комментарий
  • Как на языке C# можно передать данные из 2-х мерного массива в таблицу Excel?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    С xls/xlsx удобно работать с помощью библиотеки NPOI. Это порт Apache POI из OpenOffice.
    Установленный на компе Excel для этого НЕ требуется.
    Гляньте - тут исходник с NPOI и еще ADO (еще один способ, совсем нативный, но он более урезанный, и надо писать SQL-запросы):
    www.codeproject.com/Tips/813187/Csharp-Read-and-wr...
    Ответ написан