Как указано в названии, я работаю над устаревшим проектом ASP. NET MVC, в котором я нашел нетипичные логики c. Иногда в бэкэнде несколько частных методов (вызываемых каким-либо контроллером в некоторых условиях) создают экземпляр всей WinForm (из другого проекта, на который ссылаются как .dll) для повторного использования этого logi c (publi c метод этой WinForm).
Я довольно обеспокоен этим и влиянием этой архитектуры, но я не знаю ни одного реального недостатка этого подхода, и у меня очень ограниченный бюджет рефакторинга, чтобы запланировать.
Поэтому я хотел бы спросить, является ли это проблемой, которую необходимо решить, или это просто странный подход без реальных недостатков.
---- РЕДАКТИРОВАТЬ: добавлен код примера
public ActionResult ShowPurcheaseorderById (int poId)
{
PurcheaseOrderBiz po = new PurcheaseOrderBiz();
return PartialView(po.GetById(poId));
}
В классе biz
public PurcheaseOrder GetById ( int poId )
{
//some code here
if ( _userNeedToKnowSomething )
{
NotificationHelper.NotifyToUser(message);
}
}
В классе помощника stati c
public static void NotifyToUser ( string message )
{
frmWarning wrn = new frmWarning();
wrn.Message = message;
wrn.Show();
}
Я хотел бы подчеркнуть, что это только пример (так что вымышленный код) real дело гораздо сложнее; но я надеюсь дать вам идею.
Когда я запускаю ее с отладчиком, подключенным к IIS, страница возвращает свое содержимое (не имеет ничего общего с frmWarning, ради простоты представьте, что это изображение). PO) и немного WinForm отображается на моем рабочем столе (которые показывают сообщение)