2013-05-16 41 views
1

嘗試在一個asp.net mvc單頁應用程序之間做出決定。有一件事情我無法瞭解TypeScript,如果我可以引用TypeScript類服務器端,例如在控制器或模型中。我嘗試過,但似乎沒有工作。我已經嘗試過SharpScript(腳本#?),我喜歡我可以在C#中編寫一個類,現在從一個單獨的文件中,我可以訪問該類的ServerSide和ClientSide,因爲Script#將C#類轉換爲一個JavaScript文件自動。這使得我可以很容易地使用一個單獨的類來填充模型,然後與HtmlHelpers一起使用它來設置視圖,web api使用它返回json,然後客戶端通過javascript爲我所有客戶端的東西引用模型。我不必爲每一端編寫兩個不同的文件。TypeScript vs Script# - Serverside訪問?

Typescript是否也提供這個功能?或者只是客戶端使用的Typescript?

我想知道我是否需要兩者?我使用Script#來處理我想要從兩端訪問的類,並且我使用TypeScript作爲客戶端瀏覽器邏輯。

編輯1 - 事實證明我實際上是在另一個項目中使用稱爲SharpKit的東西。這是從C#生成我的JavaScript文件,並允許我在兩端使用一個單一的C#類。只要我通過nuget將Script#添加到我的測試asp.net mvc項目中,它就會停止編譯。

最終決定 - 不會使用Script#。沒有支持。沒有文檔。甚至無法編譯我的應用程序。如果它只是TypeScript的另一種變體,則不值得排除故障。也不打算試圖通過TypeLITE使用TypeScript服務器端,因爲真的沒有支持或任何人使用TypeLITE。另外,我希望能夠擁有一個帶有字符串屬性的單個C#類,該屬性被自動映射到一個javascript knockout observable,看起來像SharpKit是唯一可以處理這個問題的東西。

看起來像SharpKit真的是我想堅持的,因爲它做我想做的一切,讓我保持在C#(甚至更好!),並有很多支持。只需要希望我沒有達到5000線的限制,然後需要購買。也許我會給TypeScript一個鏡頭,但似乎有一次我使用SharpKit,我沒有真正獲得任何與TypeScript相關的東西。

+0

支持Stackoverflow和Github上的S#。正在編寫0.8版本的文檔。編譯S#項目時遇到什麼問題? – theoutlander

+0

我認爲問題在於您將Script#添加到ASP.NET MVC項目中,這沒有意義。腳本#項目目標是腳本 - 您可以將其部署在Web服務器上,用於服務器場景或客戶端場景。我建議查看樣本 - 如果您仍然對此感興趣,所有這些情況都會涵蓋在內。 –

+0

噢,好的。我讀過Script#將C#源代碼編譯爲javascript,因此我認爲我可以將所有內容都放在一個項目中。我可以在C#中創建一個模型,然後使用Script#創建該模型的JavaScript版本。然後,我可以使用助手創建具有敲除綁定的強類型html元素,然後客戶端仍然可以訪問完全相同的模型,只需通過它的javascript等效。就像我之前說過的,我之前使用過一個名爲SharpKit的項目,這個項目是在mvc項目中完成的,我對這兩個項目感到困惑,但是SharpKit只對小項目免費。 – happyfirst

回答

0

有些項目會從C#代碼中生成等效的TypeScript類,如果這是您以後的樣子 - 但TypeScript不能從C#中調用(也可能是如果您真的想要,但不是通過設計)。

無論TypeScript還是Script#最適合您的特定情況,都很難說,您必須對此進行判斷。

+0

謝謝。現在看看。現在看來我會決定像TypeLITE之類的東西還是繼續使用SharpKit。我想要的是有一種方法來編碼某些類ONCE,並能夠使用它們的客戶端和服務器端,並有強類型的東西。 – happyfirst