Потерянный программист ищет советы - PullRequest
2 голосов
/ 26 августа 2009

Я программист с высоким знанием инструментов Delphi и Borland. Сейчас я изучаю C # и .NET.

Я планирую полностью переписать мое коммерческое приложение.

Со всеми этими технологиями, доступными с инструментами Microsoft, я полностью потерян.

Куда идти? WinForms? WPF? WCF? Asp.NET? Используете Microsoft Ajax? JQuery? NHibernate? Сильно типизированные наборы данных? S # агр? Замок? Rhino

Я знаю, что все эти технологии не являются взаимоисключающими и совместимыми, но я хотел бы знать, какое сочетание, по вашему мнению, является лучшим в мире .NET.

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

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

Спасибо.

Ответы [ 4 ]

5 голосов
/ 26 августа 2009

Из того, что вы предоставили с точки зрения деталей текущей реализации, покажется, что вы захотите сосредоточиться на настольном (не веб) приложении; и при условии, что ваши клиенты не будут возражать против установки новейшей платформы .NET, вам следует сосредоточиться на использовании инструментов .NET 3.5 SP1 (или даже платформы 4.0, если ожидаемая дата поставки составляет ~ 6 или более месяцев).

Решающим фактором, который вы упомянули, является поддержка периферийных устройств; а именно возможность печати на принтерах. Веб-технологии отлично подходят для замены приложений, но поддержка периферийных устройств не является их сильной стороной. Они могут работать, если вы можете сгенерировать печатные документы и, по сути, просто «распечатать страницу» на принтерах, но если вам нужно выполнить какое-либо низкоуровневое взаимодействие с принтерами, тогда приложение с расширенными возможностями все еще является «лошадкой».

Тем не менее, приложения для богатых клиентов могут размыть линии. Развертывание ClickOnce может обрабатывать рассылку обновлений для приложения, а веб-сервисы позволяют централизовать определенную логику).

Что касается конкретных технологий; это зависит от того, что будут установлены ваши клиенты и каковы ваши потребности. WinForms будут поддерживаться еще довольно долго, но WPF, похоже, является путем вперед; оно получает все более широкое распространение, и Microsoft доказывает, что это серьезная технология (и не просто приятная новость) в VS2010 и других новых продуктах. WCF - это, по сути, революция .NET, в то время как Microsoft позиционирует его как новый способ работы с веб-сервисами или как замену существующим технологиям обмена сообщениями (на самом деле это просто обертка), но факт заключается в том, что он приносит множество функций и усилители производительности.

Что касается материала на уровне данных: ORM большие и мощные, но также требуют знаний для правильной работы. Если для вас возможной целью является .NET 4.0, то вы можете взглянуть на EF4, официальный ORM от Microsoft (текущая версия еще не полностью выпечена). NHibernate также является зрелым и стабильным вариантом и предоставляет много ресурсов. Типизированные наборы данных, тем не менее, становятся довольно устаревшими, и к ним все чаще и чаще обращают внимание.

2 голосов
/ 26 августа 2009

Сконцентрируйся на инфраструктуре и модели, которую я сейчас использую, и согласился бы:

  • IoC - я использую Unity, и пока он отлично работает
  • ORM - nHibernate + Свободный nHibernate + LINQ для nHibernate
  • Клей - напишите свой собственный клей, чтобы собрать вещи вместе

Если вы хотите веб-приложение, я бы пошел с asp.net mvc. Постарайтесь, чтобы все работало без какого-либо javascript, а затем добавьте jQuery и javascript для лучшего восприятия, но не требуйте этого.

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

2 голосов
/ 26 августа 2009

Это слишком расплывчато, чтобы ответить действительно. «Это зависит».

Я так понимаю, ваше приложение в настоящее время является приложением для Windows? Есть ли причина сделать это веб-сайтом? Если нет, то забудьте про asp.net и давайте выбирать между winforms и WPF.

Теперь давайте подумаем, где работает ваше приложение. На вашем компьютере или на клиентах? в зависимости от ваших вариантов развертывания (ОС, что угодно), вы будете использовать winforms, поскольку она может быть более поддерживаемой, но если вы можете, используйте WPF.

Хорошо, так что, решив, мы перейдем к вашей базе данных. Если вы хотите ORM, (который вы должны), я люблю LLBLGen, но это стоит денег. ИМХО, оно того стоит, но решайте сами. Так что с этим отсортировано ...

Юнит-тестирование. Вам, вероятно, не понадобятся насмешки на носорога, так как это больше для насмешливых вещей, которые вы не пишете, но, возможно, вы можете. Просто начните работать с NUnit, и по мере продвижения вы будете решать, что вам нужно тестировать, а что нет. Не беспокойтесь об этом заранее.

Вот как бы я подошел к нему:)

1 голос
/ 26 августа 2009

Я пришел на C # из Delphi несколько лет назад. Я чувствую твою боль. .NET Framework - это чудовище, и вам нужно некоторое время, чтобы освоить его. Вы там, где вы должны быть.

Я думаю, вам следует начать с приложения Winforms. WinForms - это стандартная платформа .NET для написания настольных приложений. Это будет очень похоже на дизайнера Delphi. Перетащите элементы управления на поверхность конструктора и назначьте свойства и события. Это зрелая технология .NET.

Многие люди будут подталкивать вас к WPF для разработки десктопов, предлагая писать приложения WPF и winforms, и так далее. ИМО, опыт разработки WPF отстой в VS2008. Он предположительно улучшен в VS10. Посмотрим. Прямо сейчас люди рекомендуют Blend для разработки WPF, если вы идете по этому пути.

Я бы взял книгу по winforms и книгу по ADO.NET. ADO.NET немного отличается от стандартной функциональности доступа к данным в Delphi. Кроме того, Winforms имеет гораздо более гибкую привязку данных, чем Delphi. Вы можете привязать к чему-либо практически в .NET. Это хорошее изменение для разработчика Delphi. Я бы использовал стандартный элемент управления отчетами для написания отчетов.

Как только вы освоитесь с WinForms, я перейду к ASP.NET, WPF, WCF или где угодно.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...