Разработчик Delphi переключается на C#


Я Дельфиолик уже довольно давно, и в последнее время я думал о том, чтобы выучить немного C#, однако я немного "боюсь неизвестного", я сделал несколько простых приложений в качестве тест-драйва для C#, и я должен признать, что мне это понравилось, однако мне не очень нравится IDE... тем не менее, вот вопрос, на который я был бы признателен, если бы другие, кто пошел по этому пути, ответили:

Как разработчик Delphi каковы" основные базовые " изменения от языка Delphi(под базовым я подразумеваю основные-служебные функции, потоки и т. д.), Я использовал, чтобы добавить "систему, классы, окна" использует не "использовать систему.ХХХ.Ыыы.ZZZ", я пытаюсь сделать частичное равенство в моем уме от Delphi до C#, пока я не смогу увидеть, где Delphi идет рука об руку с C# и так далее...

Я надеюсь, что вопрос довольно ясен, если нет, не стесняйтесь ругать меня, и я постараюсь прояснить, как могу: -)

2 11

2 ответа:

Я активно использую и то, и другое для разработки программного обеспечения.

Скорость разработки серверных приложений (веб-приложений, веб-служб, служб windows) значительно выше в. NET.

Скорость разработки бизнес-приложений (чистый пользовательский интерфейс Windows) значительно выше в Delphi.

Разработка сексуальных приложений-это боль в обеих средах.

Несколько вещей, которые вы должны знать:

  • изучение .NET framework займет много времени: он огромен, но содержит много вещиц (некоторые драгоценные камни действительно хорошо спрятано).
  • Не теряйте себя в следовании всем новым тенденциям сразу: дженерики, лямбда, LINQ, каждый хорош, но схватить их все сразу - это только для немногих из нас
  • для веб-приложений пропускайте веб-формы, но учитесь ASP.NET MVVC (да, ребята из Ruby все-таки были правы); изучайте HTML 5 и JavaScript тоже.
  • для сексуальных приложений Windows изучайте WPF, но будьте готовы к крутой кривой обучения (конструктор и фреймворк радикально отличаются)
  • не получай слишком сексуальный интерфейс: это стоит вам непропорционально много времени, пока ваши пользователи ждут функциональности
  • подобно тому, как рынок колотит Delphi с версии 1, рынок колотит SilverLight тоже
  • пропустите WinForms; если вам нужно что-то вроде WinForms, то Delphi намного более продуктивен (даже если у вас есть существующая кодовая база Delphi VCL).
  • WPF так же удобен для работы с потоками, как VCL или WinForms (читай: ни один из 3 не подходит для работы с потоками)
  • не надо выполните перезапись вашего материала Delphi в .NET (или, если на то пошло, любой другой 1:1 перепишите с платформы A на платформу B): это пустая трата вашего времени.
  • Потоковая обработка и синхронизация-это боль во всех средах разработки. Боль не столько в общем материале (параллельные коллекции в .NET 4 framework помогают, как иDelphi OmniThreadLibrary ), но в получении окончательных деталей и исключительных случаев правильная является реальной болью.
  • мусор коллекция не означает, что вы не будете пропускать память: это означает, что вы не будете пропускать, когда ваше приложение завершается, но во время его запуска утечки намного сложнее обнаружить (мальчик, я хотел бы иметь монитор памяти FastMM для .NET)

-- Йерун

" основные базовые " изменения заключаются в том, что библиотека .NET является объектно-ориентированной. Например, вместо глобальных строковых функций, которые распределены между System, SysUtils, StringUtils и т. д., все они являются просто статическими методами в классеString . Вместо глобальных функций управления путями они являются статическими методами в классеPath или в классеFile . Вместо TextFile / AssignFile/Rewrite вы создаете StreamReader (или просто вызываете static файл.ReadAllLines илиReadAllText , Если файл мал). Большинство вещей довольно легко обнаружить, если немного покопаться. Есть несколько вещей, которых не хватает; например, в .NET нет метода IncludeTrailingPathDelimiter (хотя обычно он вам не нужен - Path.Комбинировать лучше).

Я поддержу предложение пропустить WinForms. Если вы использовали Delphi VCL, WinForms будут знакомы и все же удручающе, безумно неадекватны. Они взяли основное идеи из VCL, но никогда не утруждал себя, чтобы дать ему малейшую глубину, или даже удобство использования. Нет никакого эквивалента для TAction/TActionList, свойство Dock (эквивалентное Delphi Align) любит прятать элементы управления друг за другом, пока вы не начнете возиться с "Bring to Front" / "Send to Back", всплывающие подсказки требуют дополнительного компонента в вашей форме, есть только крошечная горстка элементов управления, и это просто с моей головы. Потратьте время, чтобы изучить WPF; в нем есть все богатство VCL и многое другое, и вы будете тратить гораздо меньше времени на то, чтобы биться головой о стену.

К IDE нужно привыкнуть, но мне она нравится гораздо больше, чем Delphi. Вы должны выучить другой набор нажатий клавиш, но это не имеет большого значения. IDE более отзывчива (ни одна из этих блокировок во время" фоновой " компиляции). У него также есть некоторые надстройки-после того, как вы использовали ReSharper некоторое время, вы не пропустите Delphi IDE немного.