-1
WinForms 응용 프로그램을 개발할 때 우수 사례 디자인 패턴을 따르고 싶습니다.UserControl에서 양식을 보여주는 모범 사례
사용자가 Employees를 검색 할 수있는 새 양식을 열려면 "추가"버튼이있는 UserControl이 있습니다. 내 코드를 어떻게 구성 할 수 있습니까?
WinForms 응용 프로그램을 개발할 때 우수 사례 디자인 패턴을 따르고 싶습니다.UserControl에서 양식을 보여주는 모범 사례
사용자가 Employees를 검색 할 수있는 새 양식을 열려면 "추가"버튼이있는 UserControl이 있습니다. 내 코드를 어떻게 구성 할 수 있습니까?
WinForms를 사용하는 경우 MVP (Model-View-Presenter) 디자인 패턴을 사용해야합니다.
public interface IBaseView
{
void Show();
void Close();
}
public interface ILoginView : IBaseView
{
string Login { get; }
string Password {get; }
event EventHandler SignIn { get; }
}
그리고 지금 당신의 UserControl이 인터페이스를 구현해야합니다이 경우 각 뷰는 예를 들어, 속성 및 이벤트를 포함 ISomethingView
을 소유하고있다. 각 또한
public LoginPresenter
{
// private variables
public LoginPresenter(ILoginView loginView, IOtherView otherView)
{
this.loginView = loginView;
this.otherView = otherView;
this.loginView.SignUp += OnSignUp;
}
private void OnSignUp(object sender, EventArgs eventArgs)
{
if (this.authService.Login(this.loginView.UserName, this.loginView.Password))
{
this.loginView.Close();
this.otherView.Show();
}
}
}
당신은 예를 들어, 모든 I*Vies
를 해결하기 위해 DI 컨테이너를 사용할 수 있습니다
public class LoginUserControl : UserControl, ILoginView
{
public LoginUserControl()
{
this.loginPresenter = new LoginPresenter(this, DIContainer.Resolve<IOtherView>());
}
}
WinForms에서 MVVM 아키텍처를 사용하고 있습니까? 도메인/비즈니스 개체 개체를 명확하게 정의 했습니까? 응용 프로그램의 범위와 디자인에 대한 자세한 정보가 필요합니다. – Dai
절대 베스트 프랙티스를 따르려면 WinForms를 사용하지 않았을 수 있습니다. 예를 들어, WPF 대신 WinForms를 사용하는 비즈니스 정당성은 무엇입니까? – Dai
현재 프로젝트는 간단합니다. Employee 클래스는 EF에서 만든 모델 클래스의 일부이며 MVP 패턴을 따르고 싶습니다. – apaz