我們有一些ASP.NET的東西(它沒有清楚地描述爲稱它爲一個組件),我們希望清理並圍繞一些邊界,以便我們可以重複使用它。實際上,這有四個部分,一些標記,一些C#代碼隱藏,一些在瀏覽器中運行的JavaScript,以及由javascript調用的web服務方法。共享程序集(DLL)中的ASP.NET webservices
清除這個問題的一種方法是將標記移動到用戶控件中,將C#轉換爲用戶控件的代碼隱藏方法,將javascript轉換爲代碼中將包含在頁面中的文件,後面的方法,並將webservice轉換爲代碼隱藏的靜態方法。 (當然,假設我可以將用戶控件中的靜態方法標記爲WebMethod並使其工作,但我還沒有嘗試過。)
無論如何,以上都不適用於我們,因爲我們想創建一個可以包含在多個項目中的組件。這意味着我們需要一個我們可以包含在DLL中的組件,這意味着一個服務器控件,而不是一個用戶控件。
服務器控件當然沒有標記。 html需要通過C#注入頁面。這不是問題,我們之前已經完成了。將javascript包含爲資源,並將Server Control插入到頁面中似乎並不困難。我還沒有做到,但是我看到了很多關於如何做的例子,所以我相信我能弄明白。
但是這個我不確定我理解的部分,但是,是web服務。這個控件將包含JavaScript,這將使得調用回到web服務。 Web服務將只與服務器控件通信,但它需要與包含服務器控件的Web應用程序正在交談的同一數據庫進行通信。也就是說,在這種情況下,我們可以配置一個獨立的Web服務,以使服務器控件的所有實例都可以與之通話,我們需要在包含服務器控件的每個Web應用程序中包含一個單獨的Web服務。
問題是,既然服務器控件包含在一個DLL中,我們希望這個web服務的代碼也包含在DLL中。現在,我所能想到的只是在DLL中定義一個類,它完成了web服務所需的所有工作,然後可以通過我們在Web應用程序中定義的web服務來調用它。但我對此並不滿意。在我理想的世界中,只需在Web應用程序中包含服務器控件就可以自動包含和配置它需要與之交談的Web服務。但我不知道該怎麼做,我不確定這是可能的。
因此,我正在尋找的是在ASP.NET 3.5中可以接近的程度。
想法?
我喜歡這個問題的答案沒有任何投票。 – 2014-08-08 20:15:41