Visual Studio LightSwitch初體驗和定位看法

來源:互聯網
上載者:User

Visual Studio LightSwitch已經可以通過MSDN訂閱下載了,相關介紹可以見:http://www.microsoft.com/visualstudio/en-us/lightswitch。

於是我馬上下載下來體驗了一把:

安裝過程很簡單,掛載ISO,運行setup.exe,提示需要1G多的空間,其實如果你安裝了VS和Silverlight 4 SDK的話,要不了這麼多的空間,500多M的安裝包也是因為包含VS Shell的原因吧,我沒有在乾淨的系統中安裝,具體情況如何不太清楚。以後微軟應該出一個針對已有VS環境的精簡安裝包。安裝完成的介面如下:

安裝完成後,開啟VS,建立項目的時候,就可以看到多出了一種項目類型了,語言可以選擇VB.NET和C#,如:

那麼,就建立一個項目,初始介面,大家可能都熟知了:

一開始就然大家建立資料表(table),注意此資料表並非是真正的資料庫中的表哦,可以說是一種抽象的資料表,或者是Entity Framework中的實體。我建立了一個名為的People的資料表:

從,可以看到,Id欄位是預設就有的,無法修改名稱,但可以添加描述,並選擇是否要顯示在操作介面(Screen)上。這裡有個問題,連Id的資料類型都不能修改,只能是Int32,而很多時候我更習慣使用Guid。希望正式版中可以給Id欄位選擇不同的資料類型(至少可以支援GUID)。

可以添加資料類型的為EmailAddress的欄位,對於這點顯得非常方便,不過如果能自己擴充資料類型就好了,類似SharePoint那樣。

Age欄位是一個計算欄位,通過屬性視窗中提供的“Edit Method”按鈕可以開啟代碼編輯介面,輸入如下代碼:

partial void Age_Compute(ref int result){  // Set result to the desired field value  if (this.Birthday.HasValue)      result=DateTime.Now.Year - this.Birthday.Value.Year;}

 

代碼的自動產生做的很好,如果改變Age的資料類型,可以同步就修改result的類型。

分別查看Name,Age和Email欄位的屬性,可以看到:

字串(或基於字串)的資料類型,可以被搜尋(不太理解Date就不能搜尋,還是只能過濾?);每個欄位都可以轉換為計算欄位;對於字串欄位,可以提供一個列表選擇;資料驗證,根據不同的資料類型,提供了不同的驗證選項,也可以設定自訂驗證模式;對於可空的字串資料型別,可以選擇空值如何儲存。

除了定義自己的資料表以外,也可以添加外部資料源:

 

 

 

 

 

 

 

 

 

 

 

可以從資料庫、SharePoint和WCF RIA Service中添加,奇怪的是資料庫的選擇可以通過other看到CE 3.5,不過我沒有嘗試,我只嘗試了從SQL Server中匯入一個表的操作:

這個過程也可以看作是Entity Framework中映射一個表的操作(背後實際上就是在用EF進行映射),Required是不能修改的,資料驗證時候也不能修改,其他如欄位名稱,顯示名稱都可以修改,這樣的要求估計也是EF的映射所要求的。

可以說,在LightSwitch中Table是一切的核心,也是一切的啟動,可以從工具條的操作按鈕看出來。這也昭示著LightSwitch是針對以資料為中心(資料驅動)的LoB應用的。

接著,我們再來添加兩個表Dinner和RSVP,如:

這個時候,Peoples也變成了如下的圖:

 

下面,我們來看看Solution Explorer:

整個解決方案的顯示完全屏蔽了傳統的那種列出代碼的方式(雖然這個解決方案中實際上包含了6個項目,和n多代碼檔案),而是只顯示三個主要的節點:屬性,資料來源,操作介面。在資料來源中,直接建立的資料表,歸到了ApplicationData目錄下,每個資料表一個節點,不過無法同時開啟多個資料表編輯(可能是基於工作的目標更集中,或更方便自動產生代碼的考慮)。而引入的外部資料源是另外單列的。

順帶說一下,匯入外部資料源的時候,如果選擇WCF RIA Services,暫時只能選擇到AuthenticationService和SecurityDataService,單點“Add Reference”的時候,你就會看到其他的項目名稱了,如:

如果額外添加一個Service進去,暫時還未找到添加的地方。而且,在開啟和關閉Add Reference視窗的時候都特別慢,估計是一個Issue

準備好了資料來源,那麼就要添加操作介面了,添加也是非常簡單,開啟某個資料表,在工具條上點“Screen”按鈕,如:

在添加了CreateNew、Search和Details的操作介面後,我們就可以來按F5運行我們的程式的,除了Age計算欄位外的一句話,就沒有再寫代碼了,運行效果如下:

注意,主介面的右上方有一個“Customize Screen”的按鈕,可以讓End-User自訂自己的操作介面,這個比那種自訂一下資料格的顯示列什麼的強大太多,這都受益於XAML的強大,估計背後的技術是Blend SketchFlow類似的東西。更多的操作介面的體驗,我會在後續的部落格中和大家分享。

另外,還有一個寶庫必須體驗一下,就是整個應用程式的項目屬性設定,在Solution Explorer上右鍵點“Application1”,選擇“Properties”,就可以看到的屬性設定介面:

在這裡,提供了幾個決定應用程式運行模式的選項,在General中Shell、Theme的選擇讓你的應用程式可以與眾不同,另外不知道Culture的設定會不會影響介面的文字的顯示,多語言的實現是不是在這裡?

Extension,可以添加、選擇不同的擴充包,實際上給開發人員提供擴充LightSwitch預設構建的地方,你可以把自己開發LoB的一些構建設想編寫為LightSwitch擴充,讓大家來使用。(此處純屬猜想)

Screen Navigation,可以讓大家修改主介面的導覽功能表,沒有什麼特殊的。

Access Control,可以設定內建存取控制的特性,預設提供Form Authentication和Windows Authentication。

Application Type,可以選擇應用程式的具體運行情況,具體有:

大家注意,第一個選項是Desktop Client,且是只有2層,Silverlight的Client和SQL Server的Data,那麼就是說LightSwitch為Silverlight提供了直接(或通過某種封裝器)訪問資料庫的能力(中間應該還是EF)。

關於項目屬性設定的體驗,我後續會詳細分享。

還值得注意的是,LightSwitch實際上也體現了我早在去年的這個構想:使用Silverlight 3作為傳統型應用程式開發平台(1——構想)

最後來說說LightSwitch的定位問題:

在InfoQ上有一篇文章:LightSwitch——微軟將要推出的專業開發工具,定位問題受到質疑,其中的提到的疑問,確實是現實存在,尤其和Access的功能類同。

不過我認為,LightSwitch相對於Access可以說一種完成不同的東西,運行環境不同,開發環境不同,開發語言不同,部署模型不同(尤其LightSwitch在瀏覽器模式下的footprint會很小),我相信開發效率與互操作能力也不可同日而語。

另外對於LightSwitch是否是給專業開發人員使用的問題,我覺得專業開發人員也需要這樣的工具,有人提到可以開發原型系統或構想驗證POC,不過以我自己的實踐來說,我未來完成會用於開發正式項目和產品的。因為,我們主要開發專業資料分析產品的,但是偶爾也要給夥伴開發一些小的MIS或LoB這種資料為中心的應用,而這個時候,有了LightSwitch,我就不用自己去構建一套LoB的開發架構了,LightSwitch已經為我們大家好了很多基礎的東西,我們需要考慮的就只有資料模型和操作介面的問題了。由於LightSwitch很容易上手,我也可以把這樣的任務分給一些具有一定基礎的實習學生來完成。又如,我之前在一家開發LoB的小企業,實現了一套3層架構的開發架構,提供了基礎的資料訪問模式,許可權管理功能,並制定了一套準則方便大家遵循同樣的構架來開發各個功能模組,而現在可以說,LightSwitch把這樣的開發架構內化為一個IDE提供給大家,且可以讓大家進行定製和擴充。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.