1 - WPF - это круто, если вы хотите реализовать приложение для Windows и учитывать свободу, которую оно дает, и разделение забот, которое вы в конечном итоге можете получить, я бы сказал, 100% - с WPF. Существует много способов управления процедурой печати, некоторые из которых уже были описаны выше.
2- Для базы данных, в зависимости от вашей загрузки и параллелизма, вы можете выбрать другую базу данных. Oracle - потрясающий, но, возможно, самый дорогой. Итак, в конце вам нужно сравнить MySQL, который является фантастическим БД и в то же время бесплатным, и SQL Server Express Edition, который является бесплатной версией корпоративной / профессиональной версии Microsoft SQL Server. Express Edition - это, по сути, ограниченный выпуск той же базы данных, и если вам нужно расширить сеть и поддержку, вы не сможете позволить себе оплату корпоративного решения. Поэтому одна идея может заключаться в том, чтобы с самого начала придерживаться лучшей бесплатной базы данных, если вы предвидите такой спрос в будущем. Безопасность этих обеих баз данных как-то на одном уровне, но вам также нужно работать с ценными бумагами вашей сети / сервера, потому что мне было трудно их взломать.
3 - Использование Windows Communication Foundation (WCF) очень просто и легко, особенно если вы хотите использовать что-то вроде WPF. Вы в основном создаете некоторые контракты на данные и публикуете их, и это будет конечной точкой вашего общения. Вы в основном вызываете их, и имеете дело с ними, поскольку они являются вашими локальными методами. Настоятельно рекомендуется. Итак, что вы имеете в виду под несколькими клиентами? Означает ли это разные типы клиентов (например, веб-приложения, мобильные приложения и т. Д.)? Я также предлагаю взглянуть на веб-сервисы RESTful, так как они имеют такие же концепции коммуникации. Я только что упомянул некоторые имена, так что вы можете начать читать что-то о каждом из них.