Архитектура .NET Desktop Application - клиентский сервер C #, SQL - PullRequest
2 голосов
/ 17 мая 2010

Недавно мне дали возможность разработать программное обеспечение PMS (система управления практикой) для небольшой физиотерапевтической клиники.

Я студент информатики, и мой курс в основном читается в Linux. Однако мой клиент запускает все свои компьютеры под управлением Vista или Windows 7.

Мои идеи состоят в том, чтобы разработать клиентский интерфейс в Visual C # и получить доступ к центральному серверу postgresql.

Я новичок в программировании Windows, поэтому мне нужен совет по передовой практике реализации прав пользователей и уровней доступа в C # (WPF или Windows FORM). Я изучил класс Credential в Visual C # и список контроля доступа, но, пожалуйста, поделитесь своими мыслями.

Просто чтобы разработать:

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

например. Только владельцу клиники будет показана форма финансовой отчетности, в то время как секретарю будет показана только форма записи в дневнике.

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

Я, наверное, слишком над этим размышляю, но это мой первый коммерческий проект, поэтому я стремлюсь испытать воду.

Ответы [ 5 ]

5 голосов
/ 17 мая 2010

Используйте эти инструменты и технологии для своего проекта.

  • Visual Studio 2010
  • .Net framework 4.0
  • WPF с использованием MVVM
  • SQL Server 2008 Compact или Express
  • Линк к Sql

Некоторые заметки:

Винт Postgresql. Ты развиваешь РС, детка. Вы бы LAMP с Sql Server (LASSP)? Конечно нет. Не беспокойтесь и не пытайтесь заставить все инструменты и примеры кода работать с PGRE.

Вы можете разработать отличное программное обеспечение, используя VS 2010 Express и Sql Server 2008 Express. Коммерческое программное обеспечение. Без необходимости покупать либо. Да, вы теряете некоторые инструменты кулера в VS, и вы ограничены 4 ГБ базы данных на Sql Server (10 ГБ в R2), но я не думаю, что вы будете слишком скучать.

Я бы определенно начал с 4.0. Нет смысла развиваться в 3.5 и 2008 на данный момент. Вы ничего не получаете, разрабатывая в 3.5, так зачем это делать? Все образцы кода 3.5 и информация по-прежнему применимы для 4.0, но обратное неверно.

Sql Server compact обеспечивает простое развертывание на одном компьютере или машинах, для которых не требуется центральная база данных. Экспресс хорош для всего остального. Вам нужно будет купить приложение корпоративного типа. Не думай, что тебе придется об этом беспокоиться.

На этом этапе я бы предложил Linq Sql над EF4. Я не доволен EF4. Похоже, яма успеха чертовски мала. Больше похоже на рытвину успеха. L2S легче для начинающего разработчика, метинкс.

1 голос
/ 17 мая 2010

Используйте эти инструменты и технологии для своего проекта.

  • Visual Studio 2008
  • .Net Framework 3.5
  • Windows Forms [Нет WPF для времени]
  • SQL Server 2005 или выше
  • Linq2Sql для доступа к данным
0 голосов
/ 17 мая 2010

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

Вы могли бы предоставить им сервер Linux или OS X, работающий под управлением Apache, Django и Postgres, который работал бы ЕСЛИ и ТОЛЬКО, если бы этот сервер мог должным образом поддерживаться тем, кто выполняет их обычную работу в области ИТ (а не вы). Если они не могут получить обслуживание, перейдите с Windows на сервер.

Если вам требуется сервер Windows, я бы использовал VS2010 Express, C # 4.0, ASP.NET MVC с Fluent NHibernate, Gallio / MBUnit и вашу базу данных ... но в этом контексте MS SQL, вероятно, лучший выбор, чем Postgres для Windows, потому что вы действительно можете сделать правильное резервное копирование.

Вы, вероятно, способны сделать для них какой-нибудь симпатичный пользовательский интерфейс jQuery или SmartGWT.

Какой бы путь вы ни выбрали, код вашей бизнес-модели, по крайней мере, и желательно все, ДОЛЖЕН пройти модульное тестирование для такого рода приложений. Кроме того, вам действительно следует выяснить, каковы ваши юридические требования в отношении конфиденциальности и хранения данных для этого приложения ... медицинские записи часто строго регулируются.

0 голосов
/ 17 мая 2010

Это не дает прямого ответа на ваш вопрос, но я вполне уверен, что вы получите некоторые ответы внутри и, возможно, даже измените ваши фактические дизайнерские решения:

шаблоны и практики: Руководство по архитектуре приложений 2.0

EDIT:

И это, нацелено на безопасность:

шаблоны и практики: Безопасность

0 голосов
/ 17 мая 2010

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

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

Что касается технологий, я бы использовал VS2010, я бы подумал, что экспресс-версия должна быть в порядке, и какую бы бесплатную базу данных вы не умели использовать (есть SQL Server Express, но если вы уже знаете, Progress, я бы пошел с тем, что вы знаю.). Здесь много вопросов, которые обсуждают Winforms vs WPF.

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