PureMVC 是一個輕量級的 MVC 框架,原流行於 Flex 開發,同樣適用於 ASP.NET。本文以登入功能為例,示範如何在 ASP.NET 中落地 PureMVC 架構。
繼承 org.puremvc.csharp.patterns.facade,採單例模式管理整個應用的 MVC 模組註冊:
public static MyFacade getInstance()
{
if (Instance == null) Instance = new MyFacade();
return Instance;
}
protected override void initializeController()
{
base.initializeController();
registerCommand(MyFacade.DEFAULTSTARTUP, typeof(DefaultPageCommand));
}
每個頁面對應一個專屬 Command(如 DefaultPageCommand),負責註冊該頁面所需的其他 Command,便於分層管理。
protected override void initializeModel()
{
base.initializeModel();
registerProxy(new UserProxy());
}
UserProxy 封裝用戶資料存取邏輯,相當於傳統的 DAL 層。
public void DefaultPage(Page page)
{
sendNotification(MyFacade.DEFAULTSTARTUP, page);
}
在 ASPX 頁面 Page_Load 中呼叫 MyFacade.getInstance().DefaultPage(this) 即可啟動 PureMVC 流程。
雖 PureMVC 在 .NET 生態資源較少,但對熟悉其哲學的團隊而言,是構建大型 ASP.NET 應用的優秀選擇。