2013年2月19日 星期二

ASP.NET and Web Tools 2012.2 Release

http://www.hanselman.com/blog/ReleasedASPNETAndWebTools20122InContext.aspx

超強!微軟開發工具的更新週期愈來愈快了!

一堆我超想要的功能,一次都出來了。

例如:

Intellisense for Knockout.js bindings!

JsRender Syntax Highlighting

ASP.NET

· OData support in ASP.NET Web API

· SignalR included out of the box and fully supported

· Web Forms now supports Friendly URLs (no more .aspx extension)

· Web Forms supports device (mobile) specific pages, so product.aspx can also have product.mobile.aspx.

· Updated Single Page Application template

· MVC Facebook Application Template

· Web Sites get the same publishing tools as Web Projects

Single Page Application (SPA) templates

使用 Visual Studio 2012 的就快去下載!

Ref.

 http://aspnet.codeplex.com/

ASP.NET and Web Tools 2012.2 Release Notes

http://www.johnpapa.net/knockout-intellisense-in-visual-studio-2012/

http://www.johnpapa.net/inside-the-asp-net-single-page-apps-template/

.NET Framework 也是有技術支援週期的哦!

微軟的產品有支援迥期。.NET Framework 也有,見 http://support.microsoft.com/lifecycle/?c2=548

名詞解譯:

主流支援:會有 Service Pack(增加新功能),Bug fix 等。

延伸支援:是指微軟會負責修正 bug,資安問題等。

過了延伸支援,還使用過了生命週期的產品,代表您因此產生任何損失,請自行負責,一律不關微軟的事。

需要注意的是:

1. .NET Framework 1.0, 1.1, 2.0 請不要再使用了。微軟已經不支援(主流),代表不再支援新的功能,以軟體開發商來說,使用這些舊版的framework來開發新專案是自找麻煩。

2. .NET Framework 3.5 SP1 之後的版本,內建在 Windows 平台,視為 Windows 的元件,故與 Windows 平台生命週期一致

clip_image002

我的建議:新專案,一律使用最新的 Windows 及 .NET Framework 版本。

2013年2月8日 星期五

還在使用 IE6, IE7? 升級一下瀏覽器吧

問題:我們企業還有相當比例在用Windows XP,所以我們還是得用 IE6.

現況

http://gs.statcounter.com/#os-TW-monthly-201201-201301

目前 Windows XP 在台灣還有 40%

http://gs.statcounter.com/#browser_version-TW-monthly-201201-201301

但在瀏覽器的使用上,IE 6, IE 7 的使用比例已經非常少了

因此,如果您還在使用 IE6, IE7 ,建議升級一下瀏覽器吧!(即使還是在用 XP)

結論

現在很少人在用 IE6, IE7 了。請升級吧!

Date

IE 8.0

IE 9.0

Chrome 23.0

Chrome 21.0

Chrome 22.0

Chrome 17.0

Chrome 18.0

Chrome 19.0

Safari iPad

Chrome 20.0

IE 7.0

IE 6.0

Chrome 24.0

Chrome 16.0

Firefox 16.0

Firefox 14.0

Firefox 15.0

Firefox 12.0

Firefox 17.0

Firefox 11.0

Other

2012-01

41.61

13.33

0

0

0

0.15

0.09

0

1.32

0

4.65

4.87

0

18.6

0

0

0

0.03

0

0.01

15.34

2012-02

41.27

14.6

0

0

0

9.99

0.11

0.08

1.3

0

4.2

4.39

0

9.17

0

0

0

0.01

0

0.09

14.79

2012-03

37.39

15.06

0

0

0

22.01

0.34

0.13

1.14

0

3.93

3.7

0

0.35

0

0

0

0.08

0

3.67

12.19

2012-04

37.97

17.1

0

0

0

1.64

19.69

0.11

1.29

0.08

3.48

3.15

0

0.24

0

0.01

0

0.72

0

7.99

6.53

2012-05

37.63

19.68

0

0.04

0

0.64

11.46

9.83

1.47

0.12

1.94

1.69

0

0.21

0

0.01

0

8

0

1.03

6.23

2012-06

34.72

20.57

0

0.14

0

0.56

0.36

21.99

1.77

0.35

1.75

1.74

0

0.18

0.01

0.12

0.01

4.7

0

0.27

10.75

2012-07

32.56

20.78

0

0.1

0.09

0.48

0.27

1.1

1.98

23.72

1.55

1.38

0

0.17

0.01

3.57

0.07

0.73

0

0.21

11.23

2012-08

28.42

20.18

0.04

26.68

0.13

0.48

0.28

0.35

2.25

2.78

1.25

1.11

0

0.17

0.01

8.64

0.48

0.44

0.01

0.16

6.17

2012-09

28.33

20.46

0.14

26.71

2.69

0.28

0.39

0.29

2.38

0.37

1.2

1.06

0

0.15

0.16

1.24

7.77

0.34

0.01

0.13

5.9

2012-10

27.3

20.47

0.09

0.85

29.87

0.23

0.38

0.25

2.41

0.3

1.03

0.98

0.13

0.13

4.37

0.3

4.43

0.32

0.1

0.12

5.93

2012-11

26.29

20.32

21.78

0.64

9.66

0.2

0.37

0.2

2.4

0.24

0.95

1.05

0.12

0.12

8.16

0.19

0.32

0.28

0.48

0.09

6.13

2012-12

25.44

19.98

32.35

0.47

0.52

0.12

0.12

0.08

2.55

0.08

0.89

0.9

0.1

0.06

2.05

0.16

0.21

0.28

6.7

0.09

6.87

2013-01

23.28

19.1

15.89

0.35

0.35

0.11

0.11

0.07

2.59

0.06

0.8

0.81

19.57

0.05

0.43

0.14

0.17

0.25

3.57

0.08

12.23

2012年12月26日 星期三

New transaction is not allowed because there are other threads running in the session

問題

在使用 Entity Framework 5.0 查詢並新增資料時,發生了這樣的例外

New transaction is not allowed because there are other threads running in the session

原因

經 Google 大神的查訪後,這篇告訴我們,原來當資料筆數多時,原來的connection 尚未 close,程式卻可能執行到新的 SaveChange 了,而引發新的 transaction。

例如

var payments = from i in _context.Payments
               select i;
foreach (var payment in payments)
{
    ...
    _context.SaveChanges();
}

解法

只要簡單的強迫 ToList(),將資料先查詢出來即可

var payments = (from i in _context.Payments
               select i).ToList();
foreach (var payment in payments)
{
    ...
    _context.SaveChanges();
}

Html5 常用 Tag

HTML5 New Tags

HTML5 新增了許多 Tag,這些Tag 部份著重在語意上。因此,什麼場景使用什麼Tag顯的相當重要。但UI看起來並沒有差異,故大部份的開發人員其實不太重視。
以下是我的翻譯,翻的不好請見諒。

header

header : The header element represents a group of introductory or navigational aids. 一群由簡介文或輔助瀏覽的元素。

section

section : The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content, typically with a heading. 章節元素表達一個文件或應用程式的一個一般的章節。一個章節,通常有個標題,對其內的內容做簡單的專題。

section 的目的,通常用來製作成大綱(outline)。因此不要用 section 來作為套用樣式的手段。如果目的只是套用樣式,就使用 div  即可。

hgroup

hgroup: the heading of a section. The element is used to group a set of h1h6 elements when the heading has multiple levels, such as subheadings, alternative titles, or taglines. section 通常有個標題。若標題由 h1 ~ h6 組成,則 hgroup 將這些 h1~h6 內挑出一個最高等級做為此 section 的大綱。

如下例,hgroup 內含了h1, h2,則該section 會以h1的文字作為 outline

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
    <body>
        <h1>The Body</h1>
        <section>
            <hgroup>
                <h1>H1</h1>
                <h2>H2</h2>
            </hgroup>
        </section>
    </body>
</html>

image

nav

The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links。一個由一組連結組成的章節。

article

The article element represents a self-contained composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. article 是一個獨立的組合,因此將 article 獨立出來或移到別的地方,都不會讓該 article 失去意義。

一個簡單的方式辨別 article 是否為適當的 tag,就是檢視該內容是否適合作為 RSS 的文章。

aside

The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography. 支援性的文章。不看 aside 的內容並不影響對整個內容的了解。通常用於註解或廣告。

footer

The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. 包含章節結束的資訊。例如作者資訊,相關文章連結, copyright data。

2012年12月25日 星期二

EDMX 中,Entity Container Name 與 Namespace 必須不同名稱

EDMX 可以 compile ,卻出現 Error 10001:The symbol 'Entities' has already been defined.

同事來信問了這個問題。使用 entity framework 4.0,整個類別庫可以編譯,但 edmx 會出現如上的錯誤。

image

打開該專案,真的有這個問題。以 xml 來檢視時,也出現了下面的錯誤。

image

解法

上圖中,Schema Namespace (Entities) 與 EntityContainer Name(也是 Entities) 相同,會不會是名稱衝突啊?試著將其中一個改名後,果然解了這個問題。

至於為什麼會發生has already been defined.這樣的訊息嘛,看來 EntitySet 的 Name 與對應的EntityType 是指不同的東西,而NameSpace 與 EntityContainer 同名稱,會讓EntitySet 與 EntityType 同名,造成 edmx 內部名稱的衝突,因此發生錯誤。但此問題並非程式碼的 namespace 問題,因此 compile 會成功

2012年12月22日 星期六

實用的 HTML5 Outliner

Html5

開發 Html5 網頁時,常常沉淪在 UI 的視覺效果、功能的實作、資料庫的存取效能等看的出來的「需求」,卻忘了 Html5 的一個 Outline (大綱)特色。

大綱功能的出現,可以幫助瀏覽器快速的掌握該網頁的主要架構,有助於 SEO(搜尋引擎最佳化),甚至讓瀏覽器快速地呈現出網頁。因此,了解自己的網頁大綱是否正常,是一個必須面對的課題。

要了解大綱,就去看一看 Html5 的 spec 吧。

工具

有沒有實用的小功具可以幫助我們來檢查網頁的大綱呢?Google Chrome 上有個 extension:

https://chrome.google.com/extensions/detail/afoibpobokebhgfnknfndkgemglggomo

以 yahoo 新聞首頁來 check 一下吧。好像不錯啊!

image

檢查我自己在開發的網站一下。

SNAGHTML418bc80

哦!不妙!快點修改吧!Untitled …代表有大綱章節(section)卻沒有章節名稱(section name),就好像一本書的目錄( table of content)出現一堆的(未命名)一樣醜。誰也不看這樣的書吧。

參考

  1. HTML5的文檔大綱 : 寫的很詳細。懶惰的我,是寫不出這樣的好文章的。
  2. HTML5 語意標籤(SEMANTICS)與大綱(OUTLINE

Share with Facebook