Мне нужна совет по использованию WCF или DLL в моей программе. Я разрабатываю программу, которая будет Desktop App и веб-приложение. Архитектура - многоуровневая. Что я должен делать в слое Bussiness, должен ли я просто сделать это как пространство имен и построить его как dll, а затем в своем приложении для настольных компьютеров и в веб-приложении. Я добавляю ссылку на эту DLL или должен ли я сделать бизнес-уровень веб-сервисом, тогда я может использоваться в моих приложениях. Что я должен учитывать при использовании веб-службы вместо dll.Должен ли я использовать WCF вместо DLL в C#
ответ
Только для начала вы можете создать одно решение, которое включает в себя:
- Бизнес-логика проекта
- Web проект App
- проект Desktop
Web проект App и проект Desktop будет просто обратитесь к проекту бизнес-логики. Затем (при необходимости) вы можете продолжать разделять бизнес-логический проект, например. Проект доступа к данным, проект уровня обслуживания и т. Д.
Тогда, если вы почувствуете, что вам нужна «настоящая» служба WCF, было бы легко создать ее из вашей развязанной архитектуры.
спасибо за ваш ответ, но это не то, что я спросил. Я хорошо понимаю структуру программного обеспечения, но мой вопрос заключается в том, что я должен учитывать при выборе между dll и веб-сервисом. – nhattran
Я думаю, что это все о том, кто является потребителями этой WCF/dll. Если вы заранее знаете, что будет несколько потребителей (которые захотят потреблять услуги через сеть), то WCF может быть естественным выбором. Если нет (пока) потребителей, кроме вас самих, и вам не нужны трудности с сетевыми подключениями, брандмауэрами и т. Д., Тогда DLL может быть естественным выбором. Это нормально начинать с простого (но развязанного) решения, а затем развивать его до WCF, если это необходимо. – ialekseev
Вы должны использовать успокоительное обслуживание как HTTP WebAPI, который имеет широкий охват клиентов
- 1. Должен ли я использовать FastMM в DLL?
- 2. Когда я должен использовать C++ вместо SQL?
- 3. Должен ли я использовать Python вместо VBA?
- 4. Должен ли я использовать str_replace вместо substr?
- 5. Должен ли я использовать window.webkitRequestAnimationFrame вместо setInterval?
- 6. Должен ли я использовать соединение вместо цикла
- 7. Должен ли я использовать String вместо TFilename?
- 8. Должен ли я использовать словарь вместо XmlDocument?
- 9. Должен ли я использовать SQLite вместо MySQL?
- 10. Должен ли я использовать utf8mb4 вместо utf8?
- 11. Должен ли я использовать преобразование вместо перерисовки?
- 12. WCF и Delphi - Должен ли я использовать байты [] или строку?
- 13. Почему я должен использовать WCF вместо веб-сервиса?
- 14. Должен ли я использовать ссылки в C++.?
- 15. Должен ли я использовать статические переменные внутри функции DLL?
- 16. Должен ли я всегда использовать Task.Delay вместо Thread.Sleep?
- 17. Должен ли я использовать семантические типы вместо String в Java?
- 18. Должен ли я использовать ссылку NuGet или DLL?
- 19. Почему я должен использовать git вместо svn?
- 20. Должен ли я использовать исключение вместо count (*) в функциях?
- 21. Должен ли я использовать список IQueryable вместо сущности в запросах?
- 22. Должен ли я использовать структуры на C++?
- 23. Должен ли я использовать статический метод (C#)
- 24. Должен ли я подписывать свои DLL-файлы?
- 25. Когда я должен использовать ld вместо gcc?
- 26. Должен ли я использовать шаблон Command вместо вызова статического метода?
- 27. Должен ли я использовать RecyclerView?
- 28. Что я должен использовать вместо ping?
- 29. Должен ли я использовать DTO через WCF (namedPipes) или нет?
- 30. Должен ли я использовать WCF или сырые сокеты?
Если вы хотите большую гибкость, поставить бизнес-логику в библиотеку классов (DLL). Затем, когда/если вам нужна услуга, вы можете написать ее как оболочку вокруг существующей библиотеки DLL. – Tim