В настоящее время мы проводим массовое преобразование приложений Access в .NET-интерфейсы. Многие приложения Access имеют отчеты и метод создания RDLC (или Crystal rpt), а форма хоста с заполнением и связыванием набора данных трудоемка.
Итак, я создаю библиотеку классов C #, чтобы помочь, вы даете ей имя отчета, а он делает все остальное.
то есть в настоящее время я могу сделать:
ReportViewer.GetReportViewer("ReportXXX")
.AddParameter("UserID", "a983157")
.SetFormSize(new Size(1024, 768))
.SetFormTitle("My Report")
.SetFormLocation(FormStartPosition.CenterScreen)
.Show();
Это работает для встроенного формата RDLC, но я хочу расширить его до Crystal. Но я знаю, что если я просто добавлю ее в одну и ту же библиотеку классов, мне нужно будет распространять сборки Microsoft Reporting и сборки Crystal.
Так что я хотел разделить его на 3, одну библиотеку для общего кода, а затем одну для Microsoft и одну для Crystal. Потребители не будут расширять или добавлять свои собственные, они просто передают мне имя отчета, и я решаю, какой это тип, и создаю соответствующую форму.
Я думаю, что это паттерн Builder, который я хочу, но не уверен, что Bridge также кажется подходящим, но не конструктивным, и я думаю, что - это то, чем я буду заниматься.