本申請要求2014年10月10日提交的具有序列號14/512,358的美國專利申請的優(yōu)先權。
技術領域
本公開一般涉及用于對于基于非移動網(wǎng)絡瀏覽器的應用自動生成移動網(wǎng)絡瀏覽器視圖的方法、系統(tǒng)和計算機可讀介質(zhì)。
背景技術:
云計算的增長已增加了對于生產(chǎn)傳統(tǒng)桌面應用的軟件企業(yè)經(jīng)由網(wǎng)絡或移動平臺傳遞它們的產(chǎn)品的壓力。使用傳統(tǒng)框架,開發(fā)者將不得不重寫他們的許多現(xiàn)有桌面軟件代碼,以在網(wǎng)絡或移動平臺上運行。另外,開發(fā)者一般需要重組他們的資源以支持網(wǎng)絡開發(fā)。
在一些情況下,這樣的重寫和重組可需要再訓練和/或雇傭新人員,因為對于桌面應用書寫的大多數(shù)代碼使用與對于網(wǎng)絡或移動平臺采用的那些代碼不同的編程語言/環(huán)境。
因此,軟件開發(fā)技術可受益于基于來自桌面應用的源代碼生成網(wǎng)絡或移動視圖的改進技術。
技術實現(xiàn)要素:
本公開一般涉及用于向軟件開發(fā)技術提供這些和其他改進的方法、系統(tǒng)和計算機可讀介質(zhì)。
本教義的實現(xiàn)涉及用于生成一個或多個應用的移動網(wǎng)絡瀏覽器視圖的系統(tǒng)、方法和計算機可讀介質(zhì)。在一些實施例中,計算裝置能獲得用于該應用的源代碼,其中該源代碼各個屬性。計算裝置能確定與所述一個或多個屬性關聯(lián)的注釋,其中所述注釋描述用于所述一個或多個屬性的顯示屬性。此外,該計算裝置能確定諸如移動裝置的客戶機裝置的一個或多個顯示設置?;谒鲎⑨尯?或顯示設置,該計算裝置能生成具有所述顯示屬性的移動視圖。
在進一步的實施例中,該計算裝置能經(jīng)由該移動網(wǎng)絡瀏覽器視圖從用戶接收輸入,基于所述輸入和所述源代碼來執(zhí)行后端邏輯,其中該后端邏輯導致視圖中的改變,和基于視圖中的改變來更新移動網(wǎng)絡瀏覽器視圖。
附圖說明
在該說明書中合并并且構成該說明書的一部分的附圖圖示了本公開的各個實施例,并且和描述一起用來解釋本公開的原理。在圖中:
圖1是圖示了與某些公開的實施例一致的從桌面應用生成移動網(wǎng)絡瀏覽器視圖的方法的流程圖;
圖2是圖示了與某些公開的實施例一致的包括用于生成移動網(wǎng)絡瀏覽器視圖的注釋的應用的偽代碼的圖;
圖3是圖示了與某些公開的實施例一致的移動網(wǎng)絡瀏覽器視圖的圖;
圖4是與某些公開的實施例一致的移動觀看系統(tǒng)的示意圖;以及
圖5是圖示了與某些公開的實施例一致的用于生成移動網(wǎng)絡瀏覽器視圖的示范硬件系統(tǒng)的圖。
具體實施方式
以下詳細描述參考附圖。只要可能,在這些圖中使用相同的附圖標記,并且以下描述指代相同或相似部分。盡管這里描述了本公開的幾個示范實施例和特征,但是修改、適配和其他實現(xiàn)是可能的,而不脫離本公開的精神和范圍。因此,以下詳細描述不限制本公開。取而代之,該公開的適當范圍由所附權利要求限定。
圖1是圖示了與某些公開的實施例一致的從桌面應用生成移動網(wǎng)絡瀏覽器視圖的方法的流程圖。當計算裝置獲得用于應用的源代碼時,該處理能在100開始。源代碼能夠是按照特定語言書寫和/或使用軟件框架所提供的功能性書寫的源代碼。應用在實施例中可以是意欲在通用目的計算機上運行的桌面應用。如這里使用的,“桌面應用”包括排除移動網(wǎng)絡瀏覽器應用/文檔的任何類型軟件應用。
在一些實施例中,能使用微軟公司提供的.NET框架和/或ASP.NET框架的功能性,來書寫該源代碼。在其他實施例中,能利用不同軟件框架。
在110中,計算裝置能確定可被采用以運行應用的框架庫文件。在一些實施例中,計算裝置能基于源代碼確定框架庫文件。例如,計算裝置能確定該源代碼所輸入的任何框架庫文件和/或計算裝置能至少部分基于該源代碼中包括的注釋來確定一個或多個框架庫文件。
在120中,計算裝置能確定應用中的模型類和視圖模型類。模型類能代表商業(yè)邏輯或后端邏輯。如這里使用的,后端邏輯能指代在實施例中能在與顯示移動網(wǎng)絡瀏覽器視圖的計算裝置不同的計算裝置(例如,網(wǎng)絡服務器)上執(zhí)行的、計算裝置所執(zhí)行的后端處理。視圖模型類能代表呈現(xiàn)邏輯。在一些實施例中,計算裝置能基于源代碼確定模型和視圖模型類。例如,計算裝置能基于源代碼中包括的注釋,來確定模型和視圖模型類。
視圖模型類能被特別包括在基本視圖導出類中,以指示該視圖模型類將在網(wǎng)絡視圖中顯示。在一些實施例中,視圖模型類能從基本視圖模型類繼承。另外,源代碼中包括的注釋能指定視圖模型類屬性將如何在視圖上出現(xiàn),以及數(shù)據(jù)綁定行為將如何執(zhí)行。數(shù)據(jù)綁定能定義來自使用移動網(wǎng)絡瀏覽器視圖的用戶的輸入將如何影響商業(yè)邏輯,并且能基于用戶的輸入導致移動網(wǎng)絡瀏覽器視圖中的改變。
在130中,計算裝置能確定源代碼屬性。例如,屬性能夠是視圖模型類中使用的變量(例如,串、整數(shù)、布爾值等)。
在140中,計算裝置能確定源代碼中的注釋。如這里使用的,注釋是作為框架語法的一部分的、源代碼內(nèi)的人可讀文本,但是不存在于原始桌面應用源代碼中。在源代碼中添加所述注釋作為重組源代碼的處理的一部分,以支持移動網(wǎng)絡瀏覽器視圖。在一些實施例中,注釋自己的下層技術能由源代碼的編程語言支持,并由其編譯器處理。
所述注釋能指定如何顯示一個或多個屬性,如何接收來自用戶的輸入,以及關于將如何基于用戶輸入來更新顯示的附加邏輯。另外,所述注釋能包括從框架基礎類繼承的類,以指定統(tǒng)一資源定位符(URL)地址,用于由客戶機移動瀏覽器來得到和顯示視圖模型的視圖。
在一些實施例中,基于與源代碼中屬性的調(diào)用的接近度、相對于源代碼中屬性的調(diào)用的位置(例如,緊靠之前或緊靠之后)和/或通過參考屬性,注釋能與屬性關聯(lián)。此外,在至少一個實施例中,注釋可與和客戶機裝置的顯示尺寸相關的屬性關聯(lián),諸如當客戶機裝置是移動裝置時。
在145中,計算裝置能確定可以是移動裝置的客戶機裝置的顯示設置。所述顯示設置可包括屏幕尺寸、分辨率、操作系統(tǒng)、網(wǎng)絡瀏覽器等。
在150中,計算裝置能使用源代碼、注釋和顯示設置,來生成用于該應用的移動網(wǎng)絡瀏覽器視圖。在一些實施例中,計算裝置能生成超文本標記語言(HTML)文檔和/或HTML代碼,以顯示該應用的移動網(wǎng)絡瀏覽器視圖。能基于確定的源代碼屬性、模型和注釋,來創(chuàng)建顯示元素。此外,例如,計算裝置能基于客戶機裝置的顯示設置,來修改(tailor)顯示。在特定示例中,客戶機裝置能夠是移動裝置?;谠创a屬性、模型、注釋和/或顯示設置,計算裝置可修改視圖用于在移動裝置上顯示。
在一些實施例中,客戶機裝置上的用戶能打開瀏覽器,并在客戶機瀏覽器中鍵入URL地址。生成的HTML文檔能被傳輸或按照別的方式傳送到客戶機裝置,并且客戶機裝置能經(jīng)由移動網(wǎng)絡瀏覽器來顯示HTML文檔。計算裝置能從用戶接收經(jīng)由HTML文檔的輸入,并且能基于來自用戶的輸入、源代碼的操作和/或注釋,來執(zhí)行任何商業(yè)邏輯或后端邏輯和/或更新視圖。
例如,屬性能被綁定到后端處理,并且當用戶提供移動網(wǎng)絡瀏覽器中的與屬性關聯(lián)的輸入時,計算裝置能執(zhí)行后端處理,并因此更新HTML文檔和/或移動網(wǎng)絡瀏覽器視圖。
盡管圖1中描繪的步驟已被描述為按照特定順序執(zhí)行,但是所描述的順序僅為示例,并且能與某些公開的實施例一致地執(zhí)行步驟的各個不同序列。另外,為了解釋的目的,這些步驟僅被描述為分離的步驟,并且在一些實施例中,多個步驟可被同時執(zhí)行和/或作為單一計算的一部分。例如,110-140能按照任何順序執(zhí)行或作為單一步驟(即,編譯源代碼)。此外,描述的步驟不意欲是窮盡的或絕對的,并且能插入或去除各個步驟。
圖2是圖示了與某些公開的實施例一致的包括用于生成移動網(wǎng)絡瀏覽器視圖的注釋的桌面應用的示范偽代碼的圖。偽代碼200能表示計算裝置在圖1所示的100中獲得的代碼的簡化示例。
線202能包括注釋“基本視圖模型(BaseViewModel)”。該注釋能指示將使用名為基本視圖模型的視圖模型來顯示類用戶視圖模型(UserViewModel)。例如,能通過諸如模型視圖視圖模型(MVVM)框架的框架,來提供視圖模型基本視圖模型。在其他實施例中,用戶視圖模型能被特別包括在基本視圖導出類中,這能指示用戶視圖模型將在移動網(wǎng)絡視圖中顯示。
線204能是與串名稱關聯(lián)的注釋。該注釋能指示串名稱能與視圖模型中的文本框關聯(lián)。因此,例如,生成的HTML能包括文本框,并且該文本框能利用來自串名稱的文本填充(populated)和/或串名稱能基于來自用戶的文本框中的輸入來更新。
線206能夠是與布爾值ProvideMailingAddress(提供郵件地址)關聯(lián)的注釋。該注釋能指示布爾值ProvideMailingAddress能與視圖模型中的復選框關聯(lián)。因此,生成的HTML能包括復選框,并且該復選框能基于布爾值ProvideMailingAddress(例如,如果值為1則選中,如果值為0,則不選中)填充和/或布爾值ProvideMailingAddress能基于與復選框?qū)膩碜杂脩舻妮斎雭砀隆?/p>
線208能夠是與串MailingAddress(郵件地址)關聯(lián)的注釋。另外,該注釋能綁定到布爾值ProvideMailingAddress。該注釋能指示該串MailingAddress能與視圖模型中的文本框關聯(lián)。因此,生成的HTML能包括文本框,并且該文本框能基于串MailingAddress來填充和/或串MailingAddress能基于與文本框?qū)膩碜杂脩舻妮斎雭砀隆?/p>
在一些實施例中,注釋“IsEnabled=“ProvideMailingAddress””的片段能指示,如果布爾值ProvideMailingAddress被“使能”(例如,等于1),則可以僅顯示該文本框。因此,該注釋綁定到布爾值ProvideMailingAddress。在一些實施例中,如果布爾值ProvideMailingAddress被使能,則包括用于串MailingAddress的文本框的HTML可僅被生成和/或提供到用戶的移動網(wǎng)絡瀏覽器。
代碼片段210能代表從框架基礎類繼承的類MyForm。在一些實施例中,這樣的類能用來指定URL地址,用于由移動網(wǎng)絡瀏覽器得到并顯示視圖模型的視圖。例如,該代碼片段允許移動客戶機瀏覽器得到并顯示用戶視圖模型視圖模型的視圖。
圖2中描繪的偽代碼代表能利用的源代碼的簡化版本,如這里描述的。所描繪的注釋的編程語言、操作、屬性、和格式僅是為了說明的目的,并不意欲限制。
為了說明的目的,下面提供可能注釋的非限制性列表、注釋的屬性、和它們的描述。與某些公開的實施例一致地,可利用不同注釋、注釋的屬性、及其格式
注釋ViewField(視場)能定義視圖模型中的屬性的外表和行為。注釋ViewField的不同屬性包括但不限于以下屬性:
Control type(控制類型)–在視圖上顯示的控制的類型??赡苤蛋ǎ何谋究?TextBox)、密碼框(PasswordBox)、復選框(CheckBox)、組合框(ComboBox)(下拉列表)、數(shù)據(jù)拾取器(DatePicker)、單選按鈕(RadioButton)、標簽(Label)、列表視圖(ListView)、樹視圖(TreeView)、開關按鈕(ToggleButton)、工具框(ToolBox)和內(nèi)容控制(ContentControl)。
CaptionResourceId-用于控制的字幕或提示的串資源標識符。
EndCaptionResourceId-用于遵循控制的任何字幕的串資源標識符。
OptionsCaptionResourceId-用于為了用戶作出選擇而在組合框上的提示的串資源標識符。
Order(順序)-視圖上的控制的定位順序。
StyleClass(類型類)-標識層疊樣式表(css)類型類以向控制應用的名稱。
IconResourceId-用于伴隨控制的任何圖標的圖像資源標識符。
IsEnabled-將基于其值使能/禁止該控制的、類型布爾的另一視圖模型屬性的名稱。
IsVisible-將基于其值示出/隱藏該控制的、布爾的類型的另一視圖模型屬性的名稱。
ItemKey-應用到包括項目集合的視圖模型屬性。這指定能唯一標識該集合中的項目的項目的屬性的名稱。
ItemName-應用到包括項目集合的視圖模型屬性。這規(guī)定為了視圖上的項目的顯示名稱將要使用的項目的屬性的名稱。
ItemsSource-應用到包括分層(樹)結(jié)構的視圖模型屬性。這指定包括子項目的集合的樹項目的屬性的名稱。
ItemValue-應用到包括項目集合的視圖模型屬性。這指定為了存儲項目上的值改變將要使用的項目的屬性的名稱。
PlaceAfter-與控制關聯(lián)的視圖模型屬性的名稱,其中該控制將被放置在同一線上之后。
SelectedItem-應用到包括可選擇項目的集合的視圖模型屬性。這指定將接收在視圖上選擇的項目的視圖模型屬性的名稱。
IsItemChecked-應用到包括分層(樹)結(jié)構的視圖模型屬性。這指定指示是否使能項目的選中狀態(tài)的類型布爾的項目屬性的名稱。
IsItemExpandable-應用到包括分層(樹)結(jié)構的視圖模型屬性。這指定指示是否能擴展該項目以示出子項目的類型布爾的項目屬性的名稱。
IsItemExpanded-應用到包括分層(樹)結(jié)構的視圖模型屬性。這指定表明是否使能項目擴展狀態(tài)的類型布爾的項目屬性的名稱。
IsItemSelected-應用到包括分層(樹)結(jié)構的視圖模型屬性。這指定指示使能項目選擇狀態(tài)的類型布爾的項目屬性的名稱。
注釋ViewLayout(視圖布局)能定義用于控制的布局組。注釋ViewLayout的不同屬性包括但不限于以下屬性。
Id-標識布局組。
CaptionResourceId-用于布局組字幕的串資源標識符。
IsVisible-將基于其值示出/隱藏布局組中的控制的類型布爾的另一視圖模型屬性的名稱。
Column(列)-其中布局將在視圖上出現(xiàn)的柵格列。
Width(寬度)-布局的柵格列的寬度。
圖3是圖示了與某些公開的實施例一致的移動網(wǎng)絡瀏覽器視圖的圖。如這里使用的,移動網(wǎng)絡瀏覽器視圖不限于移動網(wǎng)絡瀏覽器上的視圖,而能夠是任何類型基于移動的視圖和/或與客戶機/服務器通信關聯(lián)的視圖(例如,HTML視圖)。移動網(wǎng)絡瀏覽器視圖300能基于用于桌面應用的源代碼生成,如上所述。移動網(wǎng)絡瀏覽器視圖300能包括含有項目310的第一列。項目310代表正使用的當前視圖模型用戶視圖模型(USERVIEWMODEL)。在一些實施例中,用戶可能夠使用移動網(wǎng)絡瀏覽器視圖來選擇視圖模型,并且計算裝置可基于用戶的選擇來提供不同移動網(wǎng)絡瀏覽器視圖。
移動網(wǎng)絡瀏覽器300能包括含有項目320和項目330的第二列。項目320代表源代碼的屬性。在一些實施例中,項目320能由用戶可選,并且能綁定到源代碼的后端邏輯。例如,如果用戶要選擇項目320,則計算裝置可生成包括用于用戶名稱的文本框的新的移動網(wǎng)絡瀏覽器視圖。
在一些實施例,項目330能由用戶可選,并且能綁定到源代碼的后端邏輯。例如,用戶可能已先前選擇了項目330,并因此計算裝置可能已生成包括項目340、文本框和標簽的移動網(wǎng)絡瀏覽器視圖。如移動網(wǎng)絡瀏覽器視圖300中示出的,項目330與復選框關聯(lián)。選中復選框指示選擇項目330,并因此,當前顯示包括文本框和標簽的移動網(wǎng)絡瀏覽器視圖。
例如,復選框能基于綁定到布爾值ProvideMailingAddress的注釋來創(chuàng)建,如圖2的線208所示。因為“使能”ProvideMailingAddress,所以用于串MailingAddress的文本框被生成并顯示在用戶的移動網(wǎng)絡瀏覽器上。
項目340的文本框可與郵件地址屬性(例如,串)關聯(lián)。因此,如果用戶在文本框中鍵入文本,則該文本將與郵件地址屬性關聯(lián)。
圖3中描繪的網(wǎng)絡瀏覽器視圖代表這里描述的能生成的移動網(wǎng)絡瀏覽器視圖的簡化版本,并不意欲限制。描繪的視圖、結(jié)構、屬性、和標簽僅為了說明的目的,而不意欲限制。
圖4是與某些公開的實施例一致的系統(tǒng)400的示意圖。系統(tǒng)400可包括網(wǎng)絡服務器402、數(shù)據(jù)庫服務器403、和客戶機服務器404,其可以是移動裝置,諸如智能電話、寫字板等。網(wǎng)絡服務器402、數(shù)據(jù)庫服務器403和客戶機裝置404可以彼此通信。例如,客戶機裝置404可經(jīng)由網(wǎng)絡406(其可以是局域網(wǎng)或廣域網(wǎng),諸如因特網(wǎng)、或其組合)與網(wǎng)絡服務器402和/或數(shù)據(jù)庫服務器403通信。
網(wǎng)絡服務器402可被配置以執(zhí)行圖1中圖示的方法的后端邏輯的至少一些。數(shù)據(jù)庫服務器403可被配置以向網(wǎng)絡服務器402提供實體模型,其可被網(wǎng)絡服務器402采用以生成注釋的視圖模型。與從客戶機裝置404接收的輸入組合,如上所述,網(wǎng)絡服務器402可例如使用對于客戶機裝置404確定的顯示設置,來生成應用的移動網(wǎng)絡視圖,其被修改用于在客戶機(例如,移動)裝置404上顯示。
圖5是圖示了與某些公開的實施例一致的用于生成移動網(wǎng)絡瀏覽器視圖的示范硬件系統(tǒng)的圖。計算裝置500可代表一個或多個計算裝置的任一類型。
計算裝置500可包括例如變化內(nèi)核配置和時鐘頻率的一個或多個微處理器510;變化物理維度和儲存容量的一個或多個存儲裝置或計算機可讀介質(zhì)520,諸如閃存驅(qū)動器、硬盤驅(qū)動器、隨機存取存儲器等,用于存儲數(shù)據(jù),諸如圖像、文件、以及用于由一個或多個微處理器510執(zhí)行的程序指令;等。一個或多個微處理器510、以及一個或多個存儲裝置或計算機可讀介質(zhì)520可以是圖5中公開的單一裝置的一部分,或者可以被包括在多個裝置內(nèi)。
計算裝置500還可以包括例如網(wǎng)絡接口530。網(wǎng)絡接口能允許經(jīng)由例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)和/或因特網(wǎng)的、計算裝置500和一個或多個附加計算裝置之間的通信。例如計算裝置500可經(jīng)由網(wǎng)絡接口530向客戶機裝置提供HTML文檔,并且可經(jīng)由網(wǎng)絡接口530從客戶機裝置的用戶接收輸入。
本領域技術人員將理解的是,上述組件僅是示范性的,因為計算裝置500可包括用于執(zhí)行公開的實施例的任何類型硬件組件,包括任何必要附屬固件或軟件。
盡管這些教義已參考其示范實施例進行了描述,但是本領域技術人員將能夠?qū)γ枋龅膶嵤├M行各種修改,而不脫離真實精神和范圍。這里使用的術語和描述僅作為說明闡述,并不意味著限制。特別是,盡管已作為示例描述了該方法,該是該方法的步驟可按照與說明不同的順序執(zhí)行或同時執(zhí)行。此外,在詳細描述和權利要求中使用術語“包括”、“包含”、“具有”、“含有”、“有”或其變型的程度上,這樣的術語意欲按照與術語“包括”類似的方式是包含性的。如這里使用的,針對例如A和B的項目列表的術語“一個或多個”意味著僅A、僅B、或者A和B。本領域技術人員將認識到,在以下權利要求及其等效中定義的精神和范圍內(nèi),這些和其它變型是可能的。