我試圖發展與以下層的應用程序:實體框架+ Java腳本客戶
- 實體框架模型
- 數據服務(無論是WCF或Web API,但我更喜歡的Web API)
- Java腳本+ HTML + CSS客戶
該模型包含了繼承和多態集合:
public class Master
{
public virtual ICollection<BaseDetail> Details { get; set; }
}
public abstract class BaseDetail
{
public virtual Master Master { get; set; }
}
public class Detail1 : BaseDetail { }
public class Detail2 : BaseDetail { }
public class Detail3 : BaseDetail { }
的問題是,我找不到合適的一個Java Script框架,滿足我的需求:
- 擊退
- 優點:
- 支持繼承和多態的集合很好
- 支持Web API & JSON(我認爲它比WCF更簡單& oData)
- 缺點:
- 不支持EF元數據。您必須手動複製java腳本中的模型
- 不能很好地理解JSON序列化的EF模型。你必須預先,後處理JSON
- 優點:
- Breeze.js
- 優點:
- 支持EF元數據非常好。在飛行中產生JS模型
- 缺點:
- 不支持繼承
- 不支持的WebAPI + JSON
- 優點:
- JayData
- 優點:
- 支持EF元數據不夠好
- 缺點:
- 似乎它支持繼承,但不支持多態的集合
- 不支持的WebAPI + JSON
- 優點:
有沒有其他的替代JS框架?或者,也許我錯了命名框架?你能提供一個例子嗎?謝謝!
您爲什麼認爲breezejs對元數據的支持非常好,jaydata的支持程度還不錯? (我爲jaydata工作) –
因爲它在運行中生成JavaScript模型。沒有必要調用JaySvcUtil.exe。但我認爲這是非常主觀的優勢......模型不會經常變化,調用util也不是問題。 – Denis
感謝您的澄清!事實上,我們可以用預生成的模型和沒有它的兩種方法。獲取上下文的語法略有不同。我們的大多數示例都使用靜態模式,因此可能會產生誤導,對此抱歉。如果您在Windows上的nodejs中使用jaydata作爲odata客戶端,我們只支持靜態上下文,因爲libxmljs不能在Windows上編譯。 –