C# to VB之隱含函式

C#之隱含函式

x => x.姓名

C#來源:ASP.NET MVC 2 開發實戰

VB之隱含函式

function(x) x.姓名

所以看到C#裡的「=>」就是VB的function() ...的意思,這個就是語法上差異很大的例子。

Reference:

當Data URI碰上Email

新年將至,Email裡的Anti-Spam也多了起來,賣藥、股票、發票、貸款、在家創業…等一堆,但有一封Anti-Spam引起我的興趣。

第一,它能正確到我的收件匣;
第二,它能在不經過我同意下顯示出圖片

我使用的是Outlook,信件都是先經過TrendMicro Solution,再進到Outlook,Outlook本身的辨識率也還不錯,應該有95%以上,都能正確把Anti-Spam送進「垃圾郵件」中,就算有漏網之魚,一般而言,圖片會先經過使用者同意後才會顯示,例如,


但這封Anti-Spam,可以無視Outlook的安全設定,直接顯示圖片,如:


因為不是第一次了,感覺到不對,查看了一下原始碼,原來:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    
  </head>
  <body bgcolor="#ffffff" text="#000000">
<center>
<img border="0" src="cid:0271d15f7b22$b60be514$563c53f5$AAIVYSH" width="550" height="350" align="center">
</center><br>
Salvador Bailey
  </body>

</html>


看出來了嗎?它img的src路徑怪怪的,那是什麼東東?那個東西稱「Data URI」,所以結論是,使用Data URI可以的Email可以「繞過」Outlook的安全設定。

技術真是兩面刃,Data URI是個好東西。槍可以殺人,也可以救人,依使用者而定。

下載使用Data URI的Anti-Spam (7z)


以上郵件是使用「內嵌圖片」技術,細節我在另寫一篇「ASP.NET -- 發送內嵌圖片Email」解釋。感謝網友的提醒。

Reference:

C# to VB之ADO.NET實體資料模型之新增資料

C#之ADO.NET實體資料模型新增資料語法

MvcApplication1.Models.MvcGuestbookEntities db = new Models.MvcGuestbookEntities();

db.AddTo留言板(new Models.留言板()
{
  姓名 = data.Name,
  Email = data.Email,
  內容 = data.Body,
  建立時間 = DateTime.Now
});

C#來源:ASP.NET MVC 2 開發實戰

VB之ADO.NET實體資料模型新增資料語法

' 不用使用完整的命名空間MvcApplication1.Models.MvcGuestbookEntitie
' VB會自動判別,直接使用物件即可
Dim db As MvcGuestbookEntities = New MvcGuestbookEntities()
'Dim db As New MvcGuestbookEntities() 是VB更簡潔語法,建立加初始化

' 在Visual Studio 2010中,最後面的_(底線)可以不用加
db.AddTo留言板(New 留言板() With { _
  .姓名 = data.Name, _
  .Email = data.Email, _
  .內容 = data.Body, _
  .建立時間 = DateTime.Now _
})

db.SaveChanges()

原先是被C#裡的這一段卡住:

db.AddTo留言板(new Models.留言板()
{
  姓名 = data.Name,
  Email = data.Email,
  內容 = data.Body,
  建立時間 = DateTime.Now
});

來後使用語法轉換服務,轉出來的VB是:

db.AddTo留言板(New Models.留言板() With { _
 Key .姓名 = data.Name, _
 Key .Email = data.Email, _
 Key .內容 = data.Body, _
 Key .建立時間 = DateTime.Now _
})

我就看懂了。

Reference:

C# to VB之函式屬性

就很多資料都是C#,所以必須學著把C#轉換為Visual Basic。基礎轉換還沒有什麼問題,MSDN最好了,什麼都給你多重語法,只要有Code,要什麼語法就有什麼語法。

反正都已經花時間轉下去了,所以只要看到不會的C#語法,又被我轉換成功的,就會發上來當筆記。

C#屬性
[HttpPost]
public ActionResult Save()
{
//Do something
}

VB屬性
<HttpPost>
Public Function Save() As ActionResult
  ' Do something
return View()
End Function

C#是[...]而VB是<...>。

Reference:

ASP.NET MVC學習資源

書及網站

  1. ASP.NET MVC 2開發實戰
    目前唯一繁體中文講解ASP.NET MVC的書,寫的很不錯,因為作者是實戰派實力派,所以可以說是不留私的一本實用書。此書只有C#範例,如果你使用VB,那就必須苦一點,我是還沒有看到ASP.NET MVC for VB的書籍,所以學著看C#的Code吧。我沒學過C#,但看久了也還好,除非是一些新技術或語法差異性很大的內容(如隱含函式),不然以VB來看C#,60% ~ 80%以上看懂C#應該還沒有什麼問題。另外作者保哥的部落格也是一定要去看的。
  2. ASP.NET MVC Tutorials
    這是微軟官方教材,內容為全英文,K吧!通常都是短篇、一個小主題的講解,最棒的事「它已經幫各位寫好for VB或for C#」兩個版本,依你所需去學習即可。
  3. 點部落
    這裡分享人與文章很多,可依需求及關鍵字做查詢,可當成學習特定主題時,找資料的來源。
  4. ASP.NET專題實務II:範例應用與4.0新功能(附光碟)
    雖然不是講ASP.NET MVC的專書(只有第十八章  ASP.NET MVC Framework),但MIS2000Lab的部落格上資料可是很多,另外他的「專題實務」系列都有VB與C#版本可選擇,不用怕找不到合適的內容,有任何書上內容的問題,他都很熱情回答。

C# to VB -- 程式語法轉換服務

如果跟我一樣,常找到的資料只有C#的Code,而且又看不懂時,可以借助以上兩個網站所提供的程式語法轉換服務,雖然不是100%正確,但常輪廓出來後,我大約就沒什麼問題了。而且這些程式語法轉換服務不只是單向提供語法轉換,而且你想轉VB to C#、C# to VB、VB/C# to Python、VB/C# to Ruby…可以雙向轉換,真的是太Cool。

速查表(Cheat Sheet)


這個網些整理了很多速查表,也是放在手邊查詢不可多得的資料。

Reference: