顯示具有 C# 標籤的文章。 顯示所有文章
顯示具有 C# 標籤的文章。 顯示所有文章

2012年5月28日 星期一

LINQ 學習筆記 (pre.2) 隱含型別宣告跟匿名型別 - var, Anonymous Type

繼上一章節,接下來討論,隱含型別宣告 var 。

這個東西在 .NET 發展以來,是一個很...不對盤的東西。該怎麼說,因為發展到 framework 2.0 以來,在型別一直就是採強型別的政策,怎麼會突然跑出這個東西出來,因為 var 的出現不就等於改走向型別不明確的那方面去....嗎?這時候一定要多個嗎...因為基於幾個方法幾乎就可證實。

2012年5月24日 星期四

LINQ 學習筆記 (pre.1) 擴充方法 - Extension Methods

LINQ ( Language-Integrated Query ) 是微軟在 C# 3.0 以及 VB9 之後發展的一套查詢技術,目的在試圖打破資料存取方式 (不是單指資料庫) 與程式溝通的界線。

以往程式需使用資料的時候,例如 SQL SERVER ,便需要利用到 T-SQL 語法,建立 Connection,搭配 Command 來進行資料的存取。中間需要將欲處理資料轉由 Command Text ,搭配  Parameters 以便控制資料庫。

而為什麼說不單指資料庫,因為 XML、EXCEL 等存取媒介也能由 LINQ 來進行資料的控制,這也是微軟想發展 LINQ 的原因之一。

而要發展 LINQ 也因此需要付出一些建置成本,也就是因應需應該有一些環境特性。所以引用In 91的文章。概念如下:

  1. var (隱含型別)
  2. 匿名型別
  3. 擴充方法
  4. yield、Iterator、IEnumerable、IEnumerator
  5. Enumerable與IEnumerable<T>
  6. Fluent Interface
  7. lambda (匿名方法)
  8. 一些特殊的委派型別 (Func<T>, Action<T>, Predicate<T>)
  9. 從foreach了解LINQ
  10. 延遲執行的特性

2012年5月22日 星期二

ASP.NET 顯示 Report Service 的報表(番外) - Web Service, Reporting Service

上次研究如何使用新版的 Reporting Service 2008 的時候,意外發現新版的疑似好像能用 Web service 的方式來叫用報表。所以繼上次的
以上這兩篇外,試著改用 Web Service 的方式來試試看,也促使這次番外篇的撰寫。

 首先要介紹一下麼是 Web Service ,最近看一篇文章,我覺得講得還不賴,所以就不再多做著墨。可以詳看這篇文章 webservice系列教學(1)


2012年5月21日 星期一

讓系統自動發送報表給使用者 - mail, window service, reporting service

最近遇到一個狀況。朋友的老闆希望每天都收到公司的帳務報表,且希望該報表能夠加密。
所以我朋友每天早上就很認命來公司產生完報表,匯出成Excel檔,然後加密,寄信給老闆。
即使生病請假或是想出去玩請假,還是得連到公司電腦,繼續上面的步驟。
便想到如何每天自動產生報表,然後自動加密,然後寄信。
所以就來試寫看看啦。

分析需求:
  1. 首先因為是常駐程式,總不能一直開著。程式的定位就是視窗服務 ( windows service )。
  2. 然後有用到寄信服務,也就是需要 SMTP 服務,所以建議 windows server 的環境。
  3. 因為有需要產出報表,需要有 reporting service (廢話) 。

2012年5月17日 星期四

利用泛型處理常式匯出報表 - ashx, reporting service

報表為了保護機密內容,報表伺服器通常需要做身分驗證。
有些報表有時需要直接產生 PDF 檔供使用者下載,且不太希望使用者自行用介面儲存成其他格式,所以並不會利用 Reportviewer 這個控制項。
這時可利用泛型處理常式來當作中介,自動完成報表伺服器且自動下載 PDF 檔供使用者使用。

2012年5月15日 星期二

利用XPath輕鬆使用XML - XmlDocument, XmlNode, XML

因為前陣子有朋友問我要怎麼讀XML檔案到自己的電腦,那時候腦袋馬上就浮現 DOM 物件跟利用 XPath 的字眼,隨口脫出,但是卻換來對方滿腦的問號,所以趁午休時間整理一下。

DOM ( Document Object Model ) 全名為文件物件模型。 這定義 威基 (Wiki) 裡面寫得很不錯。簡單地說,你可以想像一份 HTML 或 XML 等相關文件都是一種 DOM 物件,而文件裡的每個標籤(tag) 都是該物件中的一個節點 (node) 或是稱作元素 (element)。先前是利用 JavaScript 使用為主要大宗。因為最早期的瀏覽器大戰,就是以微軟以及 Netscape為爭取使用率,便積極開發各自的 JavaScript 因而促使 DOM 物件使用的成熟。

之後個語法也都有相關的 DOM 物件相關的使用 API ,除一開始的 JavaScript 外,PHP、 ASP.net 也都有陸續支援的 API 套件。

XPath (XML Path Language) 便是XML路徑語言,是一種用來確定XML文檔中某部分位置的語言。

2012年5月11日 星期五

ASP.NET 顯示 Report Service 的報表(二) - rdl, asp.net

上一章節,接下來就是利用到 VS 2010 來撰寫程式碼鏈結 Reporting Server 上的報表了。
也就是利用網站的網頁來直接鏈結呈現報表結果。
因為報表有些屬於隱私資料,所以在開發上要注意一些敏感性報表資料呈現是否合宜,例如機密資料就需先進行網站 Membership 的認證再進行網頁資料的呈現等等。

注意事項:

  • .NET FRAMEWORK 3.0 以下版本,請注意有沒有按裝支援 AJAX 的元件。
  • Reporting Server 的驗證是 Windows 帳密驗證非 SQL SA 等資料庫帳密的驗證。
  • 這次範例程式碼語言為 C#

ASP.NET 顯示 Report Service 的報表(一) - rdl, reporting server

有朋友問我如何在 asp.net 網頁上顯示 Report Service 的報表資料。
最近也剛好在試用 SQL 2008 R2 ,順便試著鏈結報表
首先,要先登入 Reporting Server 需要作 Windows 驗證,也就是需要 Windows Credentials
也就是需要一組 Power User 給報表使用。



準備事項:
  • .NET FRAMEWORK 3.0 以上 ( Reporting Server 2008 元件有利用到 AJAX擴充元件 )
  • Reporting Server 2008
  • VS2010 ( 開發IDE )

這篇將介紹鏈結報表的前置動作,也就是設定完整的報表伺服器以利網頁鏈結
也就是利用原的報表伺服器專案上傳至 Reporting Server 


1.登入 Reporting Server 進行設定,電腦按裝好 Reporting Server 後,開始瀏覽器鍵入以下網址,強烈建議以 IE7.0 以上進行設定及上傳,因微軟本身對其他瀏覽器支應程度並不高。

http://localhost/reports