Начинаясь с.NET - ASP.NET, WPF, Silverlight или Командная строка C#?

Если кто-то начинал с платформой.NET, с чего должен запуститься самый выполнимый шаблон? И выполнимым я имею в виду то, которое имеет самую низкую кривую обучения и самые высокие усиления.

Запустите с:

  • Приложения Командной строки в C#?
  • Веб-приложения с помощью ASP.NET?
  • Приложения Silverlight в XAML/C#?
  • Настольные приложения WPF/Winforms?

Я не хочу фокусироваться слишком много в один конкретный домен в данный момент, вместо этого изучать всего понемногу в Платформе.NET 4.0. В котором порядке было бы лучше изучить.NET?

8
задан Asad 20 June 2010 в 01:06
поделиться

10 ответов

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

Следующий шаг после этого - научиться создавать пользовательские интерфейсы. Я бы не согласился с теми, кто советует изучать WinForms: Да, есть много информации о том, как его использовать, есть много инструментов, и в самом простом виде он довольно прост для понимания. Но есть две проблемы с WinForms.

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

Во-вторых, WinForms приближается к концу своей жизни. Вы не увидите, чтобы Microsoft вкладывала больше ресурсов в его улучшение. Они закончили. Это не означает, что он не будет полезен в будущем - он полезен, но его общее проникновение в экосистему разработки программного обеспечения сейчас настолько велико, насколько оно когда-либо будет.

Еще одна причина выбрать WPF заключается в том, что большая часть того, чему вы научитесь, работая с WPF, применима и к Silverlight, что открывает дверь, которая навсегда останется закрытой для WinForms.

Что касается ASP.NET, то это то, что не стоит изучать до тех пор, пока это не понадобится.

12
ответ дан 5 December 2019 в 07:33
поделиться

«Под лучшим я подразумеваю тот, у которого самая низкая кривая обучения и самый высокий результат.Я не хочу сейчас слишком концентрироваться на одной конкретной области, вместо этого выучите все понемногу в .NET Framework 4.0 »

. Если вы какое-то время программировали на .NET, то знаете, что два вышеупомянутых предложения - это оксюморон, если я когда-либо видел один LOL.

В прошлый раз, когда я проверял, что .NET содержит: Сборки y = 15,1x + 17,3 108

Пространство имен y = 51,6x + 51361

Типы y = 2249,3x + 626,9 14123

Члены y = 21343x + 7951,3 136009

Так что даже если вы программирование на .NET в течение некоторого времени вы вряд ли коснетесь поверхности! Вы даже не упомянули, хорошо ли вы владеете C #, но если нет, вы можете прочитать бесплатную электронную книгу Petzold, чтобы быстро освоиться, поскольку это язык, наиболее используемый для программирования Silverlight, ASP, WinForms. Если вам нравится командная строка, я предлагаю книгу "Head First C #" , которая даст вам легкое введение в C # и то, на что способен .NET.

1
ответ дан 5 December 2019 в 07:33
поделиться

Для самых первых шагов я бы порекомендовал приложения командной строки.

Для всего остального используйте приложения WinForm. Они имеют широкий охват в Интернете, в руководствах и т. Д., И предлагают широкий спектр проблем и решений, охватывающих базовые и расширенные функции C #.

ASP.NET, Silverlight и WPF являются дальнейшими расширениями этих основ (Console и Winforms), которые фактически добавляют еще один набор библиотек фреймворка. Это глазурь пирога, к которой вы можете обратиться, когда овладеете основами.

Не поймите меня неправильно, вы также можете изучить основы приложений Silverlight или WPF. Но WinForm известен почти всем, кто когда-либо разрабатывал на C #, поэтому у вас гораздо больше шансов найти хорошие ответы на сложные проблемы, с которыми вы можете столкнуться в Интернете (на SO или где-либо еще). Здесь есть много людей, гораздо более знающих, чем я, которые могут помочь вам изучить всю глубину .NET framework

. После того, как вы освоите эти части, не стесняйтесь исследовать новую территорию - и скоро вы будете тем, кто ответьте на мои вопросы по WPF, о которых я ничего не знаю; -)

0
ответ дан 5 December 2019 в 07:33
поделиться

Вот моя оценка, основанная на указанных вами критериях:

  • Командная строка очень быстра в освоении, но вы не можете делать ничего, кроме печати текста, поэтому после игры с несколькими простыми программами вы быстро захотите двигаться дальше.

  • WPF/Silverlight - второй по простоте после командной строки, если вы начнете с нескольких примеров, использующих DataTemplates и ItemsControl. Когда вы освоитесь с ними, можно сосредоточиться на изучении тонкостей C# и библиотек базовых классов NET Framework, или изучить графические элементы WPF.

  • WinForms следует избегать, потому что его сложнее понять, чем WPF/Silverlight: в WPF/Silverlight вы создаете объекты данных, а затем рисуете представление, которое их отображает, плюс WPF/Silverlight обрабатывает все позиционирование и компоновку. В WinForms вам приходится вручную передавать данные туда и обратно между объектами данных и объектами пользовательского интерфейса, а также явно позиционировать все. Другим недостатком WinForms является то, что он быстро устаревает, и он заставляет вас использовать некоторые очень плохие методы программирования.

  • Без сомнения, ASP.NET имеет самую высокую кривую обучения из всех перечисленных вами технологий, и я бы сделал все возможное, чтобы держаться от нее как можно дольше!

Когда вы будете готовы перейти от командной строки (а это произойдет, вероятно, в течение недели), не будет иметь большого значения, возьмете ли вы WPF или Silverlight. WPF немного легче развернуть, и навыки хорошо передаются, поэтому я бы, вероятно, начал с него.

Начните с создания простого WPF-приложения, которое имеет одно окно с кнопкой, ListBox и TextBox или двумя. Создайте свойства в вашем UserControl и свяжите их. Затем начните играть. Существует множество руководств, которые помогут вам начать работу. Я считаю книгу Адама Натана "WPF Unleashed" фантастическим ресурсом для начинающих.

Приобретите копию Expression Blend, если сможете. Есть 30-дневная пробная версия, которую можно загрузить. Она очень полезна для игры с аспектами пользовательского интерфейса WPF и изучения того, как они работают, особенно ресурсы, шаблоны и анимация.

И последний совет: если вам попадется книга или блог, содержащий такой код, бегите со всех ног:

for(int i=0; i<10; i++)
{
  Button b = new Button();
  ...
  panel.Add(b);
}

(если, конечно, автор не использует такой код только для того, чтобы показать вам, что НЕ нужно делать)

.
0
ответ дан 5 December 2019 в 07:33
поделиться

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

Но это, вероятно, зависит от вашего текущего опыта, если у вас уже есть некоторый опыт работы в Интернете, WebForms может иметь для вас больше смысла, чем, например, WinForms

.
3
ответ дан 5 December 2019 в 07:33
поделиться

У вас есть приложение, которое вам нужно или вы хотите разработать?

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

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

Например, если у вас довольно статичный пользовательский интерфейс, WinForms, вероятно, подойдет, но если вы хотите включить анимацию и другие визуальные эффекты, вам следует обратить внимание на WPF / Silverlight.

2
ответ дан 5 December 2019 в 07:33
поделиться

Запустить с приложениями командной строки / консоли .

почему?

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

Программирование с использованием шаблона Консольного приложения избавит вас от ненужных сложностей и позволит сосредоточиться на внутренней работе фреймворка и функции.

Когда закончите с этим и изучите функции / библиотеки, например, say System.Collections и т. Д., Вам следует выбрать из обширных областей разработки, исходя из ваших интересов и предыдущего опыта разработки.

i-e Разработка веб-приложений / Разработка настольных компьютеров или что-то еще.

Это поможет вам решить, какую технологию изучать дальше, в соответствии с вашими интересами. Например, если вас интересует разработка веб-приложений, вы можете использовать Asp.Net WebForms / Asp.Net MVC и т. Д., И вам не нужно тратить время на Windows Forms или WPF

, надеюсь, это помогает

2
ответ дан 5 December 2019 в 07:33
поделиться

Если бы я учил кого-то нового (совсем новичка в программировании), то я бы начал с консольных приложений. Это даст вам возможность обучить основным концепциям ОО-программирования без дополнительных сложностей разработки графических интерфейсов или потенциальных сложностей жизненного цикла страницы ASP.Net.

Затем я бы перешел к разработке WinForms и работе над событийно-управляемым программированием и GUI.

1
ответ дан 5 December 2019 в 07:33
поделиться

Какие среды программирования вы уже знаете?

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

Хотя большинство проектов можно легко создать и запустить сразу, веб-приложения требуют немного больше инфраструктуры и знаний о сети.

1
ответ дан 5 December 2019 в 07:33
поделиться

Я бы рекомендовал создавать простые программы командной строки, чтобы почувствовать язык + .NET framework. Однако это может быть немного неудовлетворительным в мире, где все зависит от пользовательского интерфейса. Многие технологии, основанные на пользовательском интерфейсе, познакомят вас с концепцией интеграции с внешним фреймворком, что само по себе является ключевым опытом. Часто это очень полезно, поскольку кто-то другой проделал тяжелую работу, а вы можете просто получать удовольствие.

Лично я бы рекомендовал ASP.NET в последнюю очередь - он просто немного странный, и вы выработаете плохие привычки.

Исходя из этой рекомендации, я бы рекомендовал WinForms в последнюю очередь, он научит вас больше о событиях и взаимодействии пользовательского интерфейса, но в нем все еще нет строгой модели кодирования. В первые дни своей работы я написал несколько шокирующих WinForms-кодов. У вас много возможностей, но мало руководства.

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

Моя первая рекомендация по пользовательскому интерфейсу после игры с консольным приложением - это фреймворк ASP.NET MVC. Он прост в написании, имеет достаточно строгий шаблон проектирования, так что вы не ошибетесь и сможете создать довольно хороший сайт за относительно небольшое время. Лично я освоил его очень быстро по сравнению с другими технологиями, но при этом обнаружил, что расширяемость позволяет поддерживать интерес.

0
ответ дан 5 December 2019 в 07:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: