Разрабатываете новое приложение с .NET? - PullRequest
3 голосов
/ 05 августа 2009

Мне нужно разработать базовое приложение «бизнес-направления» с обычными функциями, такими как заказы, управление запасами, продажи, отчеты и т. Д.

Я буду использовать WPF для разработки этого приложения для работы в Windows, но я хочу разработать его «открытым», чтобы я мог создавать приложения Windows Forms, используя ту же структуру (возможно, для запуска через Mono ) или даже модуль Silverlight . Может ли кто-то, кто сделал что-то подобное (и выжил), дать мне подсказку в руководстве или что-то подобное, где я могу найти хорошие практики? Я Delphi разработчик с некоторыми промежуточными знаниями по C #, но есть так много "удивительных" библиотек, структур и шаблонов, что я немного растерялся из-за того, что было бы хорошо для этого проекта.

Что-то вроде: используйте EF (возможно, подождите ef4?) Или nHibernate , или ADO.NET, и предоставьте свои данные с помощью WCF или веб-сервисов, или забудьте Mono из-за потери гибкости и т. Д. Может кто-нибудь дать мне совет, как бы вы это сделали? Если у кого-то есть плохой опыт в этом типе проекта, было бы приятно услышать и от вас. В неправильных решениях тоже есть чему поучиться :)

Ответы [ 6 ]

3 голосов
/ 05 августа 2009

С чего мне начать?

Во-первых, из вашего описания, вы над головой.
Во-вторых, вы пытаетесь выбрать технологический стек, когда все для вас ново.

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

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

Вы также должны послушать несколько хороших подкастов. Я рекомендую Dot Net Rocks для хорошего понимания технологии. Более ранние подкасты для этого сайта были также очень хорошим источником для некоторых обсуждений дизайна StackOverflow podcast

Удачи.

3 голосов
/ 05 августа 2009

Mono не поддерживает WPF, его даже нет в планах. Я не уверен насчет Entity Framework ...

Возможно, вы могли бы сделать это в Silverlight (который имеет реализацию с открытым исходным кодом), но это не идеально для создания рабочего стола (хотя это возможно начиная с Silverlight 3)

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

Если вы отделяете бизнес-модель и бизнес-логику от пользовательского интерфейса,
с использованием MVC ( Model View Controller ) или MVVM ( Model View View-Model ) или модели симметричного проектирования,
тогда вы можете иметь несколько пользовательских интерфейсов, подключенных к одной бизнес-модели + бизнес-логике, и даже подключить один и тот же пользовательский интерфейс к другим бизнес-моделям + бизнес-логике.

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

Мне недавно пришлось сделать что-то очень похожее в WPF. У меня есть опыт работы с ASP.NET, но я никогда не работал с WPF (или WinForms в этом отношении), и это на какое-то время поставило меня в тупик, но чем дольше я работал над ним (около 3 недель), тем легче это получилось. Я действительно просто искал в Stack Overflow и Google фрагменты кода, похожие на то, что я делал, и работал с ними и менял их по мере необходимости. Моя компания купила книгу, которая мне тоже помогла (это был WPF Unleashed, опубликованный Sams), и это было довольно хорошо. Я желаю вам удачи в вашем первом приложении WPF.

0 голосов
/ 09 января 2010

Я бы посоветовал вам оставить заявку N-уровня. Сделайте все сущности, адаптер данных и бизнес-логику отделенными от реального настольного приложения. Таким образом, вы можете использовать WPF на платформе Windows и Mono / GTK # на платформах Linux / Mac.

Вам потребуется только написать дублированный код для поддержки фактической функциональности приложения GUI, в то время как ваш код из отдельной библиотеки сущностей / доступа к данным / библиотеки бизнес-логики (например, DLL / библиотеки классов) можно использовать как в WPF, так и в Mono / GTK # проекты. Просто добавьте DLL в качестве ссылки на проекты WPF и Mono / GTK #.

Имеется хорошее видео с 9-го канала о создании приложений N-уровня

Существует также документация MSDN и рекомендации по созданию приложений N-уровня

0 голосов
/ 05 августа 2009

Спасибо всем за поддержку ... Брэд , я уже следую вашим советам, провожу несколько тестовых случаев, чтобы посмотреть, что хорошо выглядит ... моя проблема в том, что хотя я могу разработать приложение в WPF и имею промежуточное представление об использовании привязок данных wpf, обобщений, linq, анонимных объектов, всех интересных вещей, я всегда слышу об этом и о том, что это решение всех мировых проблем (таких как mvvm, или параллельное программирование, или функционал) языки и т. д.) и заставляет меня чувствовать себя «неправильно» в моих решениях и плохим разработчиком, если я не использую ни одну из этих приятных технологий. Я знаю концепции, но не доминирую над ними, и, кажется, многому научиться, к сожалению, у меня не так много времени. Томас , именно потому, что mono не поддерживает WPF, я хочу сделать приложение максимально изолированным, поэтому я могу создать простой слой winform для манипулирования данными. darthnosaj , спасибо, я тоже этим занимаюсь, ищу в интернете много информации (и этот замечательный сайт полон полезных людей :))

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

Еще раз спасибо всем:)

...