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

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Изучайте сайты компаний - вот список. У некоторых есть на сайте информация для интересующихся стажировкой (ищите разделы careers - обычно в подвале сайта ссылки). Кстати, почему не аутсорсинговые? Какая цель стажировки?
    Ответ написан
    2 комментария
  • C# или C++ для знающего C#?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    C# лучше, так как:
    1. Проще в изучении (много документации, примеров, фреймворков, библиотек, компонентов и т.п.)
    2. Хороший инструментарий (Visual Studio), который позволяет и код писать и кучу сопутствующих дел делать - втроенные инструменты на любой случай (task management, source control, test tools, database tools, инструменты для анализа, отладки и всего прочего).
    3. На нем проще и быстрее работать (несмотря на smart указатели в C++, в дотнете все-таки не требуется меньше размышлять о выделяемых ресурсах и их освобождении)


    В частности также вы уже начали - продолжайте. Зачем усложнять себе жизнь? Не стоит "рефакторить автогенеренный код" :) Так как веб разработки вам скорее всего не удастся избежать - осваивайте параллельно сопутствующие технологии и языки - JavaScript, например, набирает обороты уже года 3 и не собирается тормозить.
    Ответ написан
  • Как реализовать мультитенантную систему на asp.net mvc?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Логику вынести в API (WebAPI), к ней обращайться из ASP.NET MVC приложений, которые хостятся под разными доменами и при каждом обращении API будут передавать помимо прочих параметров два дополнительных - откуда запрос (чтобы идентифицировать домен) и кто спрашивает (чтобы идентифицировать пользователя).

    Логика в API на основании домена и пользователя будет соответственно использовать нужную базу данных. Можно соответствие домена/пользователя и его базы хранить в служебной базе данных. Там же - хранить данные о пользователях и прочую общую служебную информацию.

    Если структура баз данных для каждого пользователя одинаковая, то логикак обработки будет единой. При добавлении нового пользователя - достаточно будет задеплоить на домен новое ASP.NET MVC приложение, настроить его на адрес API, в служебной завести необзодимые данные. Если база под каждого пользователя создается автоматически программно - то все. Если нет - еще базу создать.

    CMS пишете?
    Ответ написан
    2 комментария
  • Есть ли источники, в которых описаны Best Practice реализации GUI на C#?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Возможно, эта пара ссылок тоже поможет сориентироваться:
    https://developer.microsoft.com/en-us/windows/desk...
    https://msdn.microsoft.com/en-us/magazine/dd419663.aspx
    Ответ написан
    Комментировать
  • Как заполнить dataGridView через Parallel.For(){}?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Чтобы быстро заполнить данными грид, нужно из ваших данных сначала создать объект DataTable и затем скормить его в DataSource грида.
    Ответ написан
  • Какую книгу по C# выбрать?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Сейчас книги (особенно переводные) не успевают за изменениями в любом стэке разработки. Поэтому я бы посоветовал читать просто документацию https://msdn.microsoft.com/en-us/library/gg405484(...
    Ответ написан
    Комментировать
  • Как начать фрилансить на C#?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Комментировать
  • Есть ли у вас задачи с собеседований?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    У нас в Toptal есть несколько этапов (пиcал про это тут https://toster.ru/answer?answer_id=492571).

    Есть алгоритмика - можно побаловаться на https://codility.com/programmers/lessons/

    Есть прочие вопросы - можно для С# тут посмотреть https://www.toptal.com/resources

    Также даем тестовый проект. Для веб разработчиков - обычно накидать небольшое SPA приложение (без перезагрузок страницы) по редактированию каких-нибудь сущностей, списка (в общем CRUD) на базе RESTful сервисов с логином и регистрацией пользователей. Довольно типичная задача.
    Ответ написан
    Комментировать
  • Как передать в метод нужный мне запрос?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Звучит как задача передачи опциональных фильтров (опциональные параметры в метод C#).

    Но можно и передать вообще внешнюю функцию как параметер, которую будет дергать GetData для неизвестных ей вычислений. Хотя по мне так ситуация скорей сигналит о неверно спроектированном коде...
    Ответ написан
    Комментировать
  • Почему тормозит dataGridView?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    На какой строчке кода тормозит? Замерьте.

    var watch = System.Diagnostics.Stopwatch.StartNew();
    // ваш код
    watch.Stop();
    Console.WriteLine(watch.ElapsedMilliseconds);


    Проверьте свойство грида AutoSizeColumnsMode - поcтавьте его в None. Дает эффект? Еще можно проверить у каждого столбца свойство AutoSizeMode.

    Ну и заведите переменную что ли - раз уж доступ к ней в любом случае 2 раза.

    var cell = dataGridView1.Rows[currentRow].Cells[currentCol];
    Ответ написан
    Комментировать
  • Более простым языком, как построить SIFT дескриптор?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Придется сначала разобраться в сопутствующей математике. Насколько я понял, задача сводится к написанию кода логики для определения, является ли точка в октаве ключевой, чтобы можно было найти ключевую точку октавы.

    Либо можете попробовать разобраться в имеющемся коде - см. тут и тут.
    Ответ написан
    Комментировать
  • Можно ли проверить частичное наложение отрезков?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Если речь про ломаные, состояшие из прямых отрезков, вот тут есть вариант - Algorithm for finding the segment overlapping two ...

    Если нужно отлавливать приблизительное наложение, придется поиграться с углом и динамическим параметром, который будет регулировать, что считать наложением (принимать некую длину где отрезки формально не накладываются, но с учетом масштаба - приняты за наложение). Это чуть сложнее, и требует экспериментов.
    Ответ написан
  • Подходит ли C#, ASP.NET для фриланса?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Я не жалуюсь :) Для контекста - мои ответы на вопросы по фрилансу.

    В целом, корпоративные скиллы (вроде .NET и java), конечно, уступают в плане спроса на рынке фриланса таким как разработка на JS или мобильная разработка. Но если вы практикуете веб дотнет, корей всего вы уже были вынуждены освоить какие-то JS фреймворки и/или мобильную разработку с Xamarin (который недавно, кстати, пыл поглощен Microsoft и теперь бесплатен). На рынке (как правильно сказал @opium) появляется достаточно небольших клиентов со своими стартап проектами, где связка ASP.NET MVC + Web API + JS достаточно распространена. Относительно CSS/HTML/JS - я эти скиллы считают сателитными и их, конечно, надо иметь, если заниматься веб разработкой в стэке .NET.
    Ответ написан
    Комментировать
  • Современные тенденции разработки на C#?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Если веб направление - то комбинация Web API / ASP.NET MVC + JS (клиентские фреймворки) и сопутстствующие технологии. Xamarin - возможно. Посмотрим, как Microsoft его теперь двигать будет.
    Ответ написан
    Комментировать
  • Как исправить ошибку System.Data.SqlClient.SqlException: Transaction context in use by another session?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Смущает описание хранимой процедуры - это ее часть какая-то? Или что это такое?

    CREATE PROCEDURE [dbo].[MyPROC]
    (
      @Param1 nvarchar(2048) out,
      @Param2 int out,
      @Param3 int out,
      @Param4 int
    )
    AS EXTERNAL NAME DWH_CLR.[Future.SQLCLR.Exception].HandleException
    Ответ написан
  • Как сделать движение объекта в только в нескольких направлениях?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Код отсюда

    public enum Direction {   
      None, LeftUp, Up, RightUp, Right, RightDown, Down, LeftDown, Left 
    }
    
    public Direction GetDirection(double x, double y) {
      double absX = Math.Abs(x);
      double absY = Math.Abs(y);
      if (absX < 0.1 && absY < 0.1) {
        // close to center
        return Direction.None;
      }
      if (absX > absY) {
        // vertical side
        double half = absX * 0.4142;
        if (x > 0) {
          // left side
          if (y > half) return Direction.LeftDown;
          if (y < -half) return Diretion.LeftUp;
          return Direction.Left;
        } else {
          // right side
          if (y > half) return Direction.RightDown;
          if (y < -half) return Direction.RightUp;
          return Direction.Right;
        }
      } else {
        // horisontal side
        double half = absY * 0.4142;
        if (y > 0) {
          // bottom
          if (x > half) return Direction.RightDown;
          if (x < -half) return Direction.LeftDown;
          return Direction.Down;
        } else {
          // top
          if (x > half) return Direction.RightUp;
          if (x < -half) return Direction.LeftUp;
          return Direction.Up;
        }
      }
    }
    Ответ написан
    Комментировать
  • Есть ли смысл изучать WPF?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Спрос на WPF ниже плинтуса. Ну и на нем все равно придется заниматься "сайтошлепством" :) Что-то не припомню я захватывающих проектов на WPF :)

    По мне так, что стоит изучать JS (во всем его многобразии - язык, библиотеки и фремворки, многообразие способов использования), если интерес есть к интересному, разному и, главное, востребованному на рынке.

    А вообще, изучать стоит программную инженерию и архитектуру - это то что не меняется. А уж каким именно молотком (инструмент) забивать гвозди (решать задачи), как-нибудь сориентируетесь.

    Как вы освоили шаблоны проектирования?
    Какие есть хорошие книги по архитектуре приложений?
    Ответ написан
    Комментировать
  • Покажите как использовать TPL?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Думается Parallel.Foreach тут не к месту - см. Pause и Resume в Parallel.Foreach

    Через Task-и и PauseToken попобуйте - см. Cooperatively pausing async methods
    Ответ написан
    Комментировать
  • Каким образом с технологией ASP.NET MVC соотносятся языки программирования С# и VB.NET?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    У веб приложения есть две части - клиентская и серверная. Клиентская - это веб страничка, которую пользователь видит в браузере. Серверная - это то, что генерирует на сервере эти странички, которые загружаются у пользователя на клиенте (в браузере).

    Клиентская часть - это HTML, CSS и JavaScript - то бишь те технологии, которые используются для создания обычных веб страниц. При этом на сервере могут быть использованы очень разные стеки технологий. В частности для стэка .NET - есть IIS (веб-сервер для хостинг-серверов на базе Windows), на котором работает ASP.NET (это веб фреймворк для генерации веб страниц) с использованием языка программирования С# или VB.NET.

    Пример другого стека на сервере: веб-сервер Apache (обычно на хостинг сервере на базе Linux), на котором работает скажем веб-фреймфорк CakePHP с использованием языка программирования PHP.

    Еще один пример: веб-сервер Passenger (на хостинг сервере под управлением операционок семейства Unix), на котором работает веб-фремворк Ruby on Rails, где разработку вы ведете на языке программирования Ruby.

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

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

    Например, для языка программирования PHP есть много разных веб фреймворков. Для других языков - тоже. Даже для языков С# и VB.NET есть ASP.NET WebForms (раньше его наывали просто ASP.NET) и ASP.NET MVC (сюда же я бы отнес вариацию фреймворка для создания API - Web API). Для многиэ стэков есть много разных веб-серверов, веб-времворков и соответственно можно использовать много вариантов связок ОС - ВС - ВФ - ЯП

    На счет "Пишем сайт на VB.NET" это скорей всего значит - пишем на VB.NET веб приложение, которое будет использовать один из веб фремворков (либо ASP.NET WebForms либо ASP.NET MVC).

    Надеюсь, мне удалось внести ясность в терминологическую кашу, окружающую нас. К сожалению, даже в википедии я часто вижу эту кашу и кто-то начинает называть ASP.NET языком программирования. Это не так.
    Ответ написан
    7 комментариев
  • Есть какие-нибудь аудио книги связанные с IT?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Ничего толкового нет. Уж больно специфический контент. Но зато вместо книг много интересных аудио подкастов с различными выдающимися чем-то айтишниками - на англйиском по крайней мере. Это очень любопытно послушать. Правда скорей не для обучения. Если хочется занять уши и нравится про-айтишный трёп просто - советую. Иногда такие беседы дают понимание многих ночевидных моментов в истории нашей индустрии. Погуглите по "IT podcasts" или "IT подткасты" или что-то в этом духе.
    Ответ написан
    Комментировать