2008-11-10 67 views
2

尋找一些方向,因爲我遇到了一些遷移問題。如何/在哪裏學習ASP.NET 2.0+與Winforms(VB.NET)的佈局Webforms?

我們有一個遺留應用程序。 '基礎設施'運行得很好。用VB編寫的業務邏輯和數據訪問層調用數據庫的SQL Server。

我有很多寫Winforms(桌面)應用程序的經驗,並且沒有任何問題。但是,我上次寫任何ASP.NET的東西是1.1(VS.NET 2003)。

其中,對於ASP.NET 2.0及更高版本,網格佈局不見了。這不僅僅是一個簡單的情況,即在表單上放置控件,對齊它們,訂購它們並使用代碼隱藏起來。

新的基於網絡的應用程序開始非常簡單。只是一個共同的標題(已經爲此做了一個用戶控件),並在中間添加了典型的CRUD功能。

我試圖在使用帶有內容佔位符的母版頁時很直觀,但是我無法讓佔位符「增長」,更不用說能夠將文本框放在我想要的位置。哦,我發現在VS2008中的選項允許絕對定位,但它只適用於一些控件 - 其他我不得不手動編輯asp標籤。

然後我看到了一些使用div的例子並試圖實現它們,但是我最終得到的結果是對象互相重疊。在線幫助至少可以說毫無幫助。

有誰知道一本好書,網站或教程,可以給我所尋找的基本知識?在實踐中,我正在尋找簡單的頁面,其中一些對象可能不得不將其他對象推向y軸(例如,正在進行幾個評論,並且該部分將推動列出'附件'的部分進一步下降)。當涉及到這個應用程序的所有其他方面時,我沒有任何問題。看起來我的網絡表單技能大約過了3 - 4年。

這不會是一些奇特的閃存/ Silverlight應用程序 - 只是簡單的「數據維護」擺脫涉及讀普通郵箱和解碼Word文件的一些醜陋和容易出錯的過程。新的目標是通過適當的驗證來建立一個良好的weborm。

我想我要找的是一個「Webforms for Winforms程序員」的書或網站。

幫助!

在此先感謝。

回答

6

我聽說於學習HTML的最好的建議/ CSS佈局是這樣的:

建立一個新頁面時,不要試圖讓所有花哨的前面。首先建立一個非常基本的純文本頁面。它應該看起來像從1996年開始的那個短暫的時期 - 每個人都剛剛發現了網頁,但尚未開始使用table標籤進行佈局 - 只有沒有漫畫的sans字體。此時不要使用圖像,除非圖像真的是要傳達的信息的一部分(與窗飾相比,它看起來很漂亮:可以稍後添加)。頁面頂部可能會有一個h1,併爲每個子標題指定一個合適的hN,但此時在頁面中根本不應該有任何佈局信息。只有你真的有表格數據才能顯示table標籤。如果它可以幫助你編寫代碼,那麼你現在可以將所有東西都包裹在老式的<center>標籤中 - 只是不要忘記在以後刪除它們。

現在讓我們開始調整一下標記。使用像ul(無序列表)爲您的列表的導航鏈接和label/legend識別和分組您的表單區域。這裏的一般想法是將頁面上的每個元素都包含在最合適的html標記中,並使用全套可用標記 - 每個元素都是指定的目的。

此時,您有一個非常適合屏幕閱讀器或搜索引擎的頁面。通過首先構建此頁面,您可以輕鬆實現SEO和輔助功能。當然,這些不是唯一的要求,所以我們還沒有完成。

現在您需要確定頁面的不同部分,從佈局邏輯角度。該頁面在很大程度上應該已經在邏輯上進行了劃分,但是您可能會發現一些地方普通標籤不會剪切它。出於佈局原因,您還需要對某些元素進行分組。使用div標籤將這些區域中的每一個都標記出來,併爲該標籤提供一個類名稱,該類名稱引用標籤的用途:您正在創建的組。這是使用a標籤(「分標籤」)達到預期目的的另一種情況。另外,因爲元素可以有多個類,所以您可能想要考慮將邏輯上的類分組。例如,您可能需要一個單獨的類來區分網站模板和頁面的其餘部分。大體上,這不應該改變頁面的外觀,但是現在你有了一些應該很容易開始添加樣式的地方。此時,您現在可以開始添加圖像和佈局。但是,這裏的目標是儘可能少地改變實際的標記。如果您可以管理它,只添加ID和類,但您可能需要添加以前未識別的其他跨度或div,有時您需要額外的塊級元素來強制跨瀏覽器的兼容佈局。

如果事情做得對,結果是一個頁面不僅看起來不錯,而且在跨瀏覽器測試時也更容易處理,當風格或JavaScript功能不受支持時會自然降級,並且分數以及搜索引擎優化和訪問。這也使得開發人員可以更輕鬆地構建一個提供一定級別功能的簡單頁面,從而可以將其傳遞給單獨的設計器以使其看起來很好。

+0

足夠簡單地將div標籤包裝在相似的物品周圍。我遇到的問題是讓分區不像堆疊的透明膠片那樣堆疊在彼此之上。我很想知道什麼屬性對div的說法「低於我之前定義的那個」。 – David 2008-11-10 16:04:29

+1

聽起來像你正在設置「位置:絕對;」一切。不要這樣做。 – 2008-11-10 16:06:33

+0

是的,我知道那很糟糕,把他們帶走了。 – David 2008-11-10 16:16:59

0

通過它的聲音,你正在尋找HTML的速成課程?

ASP.NET aspx的「Design Canvas」頁面& ascx Control只是HTML標記標記。

如果你沒有網頁設計經驗,我建議你開始喜歡

W3Schools

0

某處當微軟爲我們提供ASP.NET,他們試圖使編程網站,更像是編程富客戶端應用。但是,有很多問題需要處理,最主要的問題是無狀態問題,在爲Web開發時,在開發胖客戶端應用程序(WinForms)時不存在。所以第一步就是不要把它們看作是相似的。

拖放工具很好,但您真正需要了解的是HTML和客戶端服務器模型。 HTML將幫助你理解事情的佈局,客戶服務器模型對於理解數據如何進入網絡和從網絡進入服務器很重要。如果你已經在ASP.NET 1.1中開發過,那麼事實上2.0並沒有改變。概念是相同的,只是一些提供的控件已經改變。

+0

無狀態編程,回發等 - 這很容易。這是讓我瘋狂的佈局。這是一件似乎已經徹底改變的事情。我已經閱讀了很多關於如何使用div來分解頁面,但似乎無法在各種選項中找到好的一般文本。 – David 2008-11-10 14:07:28

0

很多人對1.1版基於網格的佈局感到非常不滿,因爲它在很多情況下並不適用。它仍然必須最終呈現爲html,而html只是不適合這種佈局。例如,事情可能無法正確排序或從手機瀏覽器(iPhone等)屏幕上移除。還有像盲人屏幕閱讀器這樣的東西。如果你爲政府工作,那麼第二項是一項法律要求,而不僅僅是一件好事,而且有很多開發者爲政府工作。

所以ASP.Net 2.0試圖生成標記,至少有點更好的HTML。缺點是你現在必須瞭解html佈局。但是,來吧:你正在建立一個網站。如果你不能處理一個小的HTML你真的很麻煩。

我的建議是使用Visual Studio以外的東西來構建一個靜態頁面。在頁面上使用<input標籤而不是服務器控件,並且實際上不實現任何邏輯。用它來了解你的佈局需要如何工作。一旦你有了這些,在Visual Studio中爲你的頁面複製它真的很容易。

+0

我的HTML *真的很基本,看起來我真的很想念的是知道樣式表的技術方面,並用div來正確地鋪設東西。 – David 2008-11-10 14:10:03

2

您可能還想看看A List Apart.這是一個很棒的網站,它提供了很多使用CSS在網絡上進行佈局的「技巧」以及大量其他面向Web的內容。

1

網格定位是網站的憎惡。當然,它可以讓熟悉WinForms設計器的人輕鬆過渡,但它產生了幾乎無法維護的horride HTML。

我可以推薦給你的最好的資源是CSS Mastery。你需要學習HTML和CSS,但它們很容易進入。

0

這不是真的屬於一個單獨的答案,但我不確定您是否有可能會看到上述回覆中的其他評論。


所有塊級元素,包括的div的正常行爲,爲每一個新的元件出現在前面的元件的下方。聽起來你已經設置了position:absolute;,或許在Visual Studio中使用基於網格的佈局選項。不要那麼做 - 它會劫持預期的行爲,這就是爲什麼你看到所有東西都堆在一起。