2016年9月21日 星期三

ASP.NET Core & ADO.NET 入門 #1 -- 資料庫連結(SqlConnection)

ASP.NET Core & ADO.NET 入門 #1 -- 資料庫連結(SqlConnection)

https://dotblogs.com.tw/mis2000lab/2016/08/29/aspnet_core_adonet_begin_01

ASP.NET Core & ADO.NET 入門 #1,最簡單的操作步驟
(1).  SqlConnection連結字串
本範例提供YouTube教學影片

***  行前準備  ***
首先,您可以先瞭解 開放原始碼(開源)的 ASP.NET Core(以前名為 ASP.NET 5)
      [中文翻譯] ASP.NET 5 概觀 (ASP.NET 5 Overview,原作 Tom FitzMacken 2014/11/12)
      https://dotblogs.com.tw/mis2000lab/2014/12/03/aspnet_5_overview_webform_46      
      [中文翻譯] ASP.NET 5 簡介(Introducing ASP.NET 5,原作ScottGu 2015/2/23)
      https://dotblogs.com.tw/mis2000lab/2015/03/11/aspnet_5_introduce_scottgu_20150223

接著,當您打開 VS 2015 (Update 3)的時候,可能要先安裝這個套件 for VS 2015。這個 Tool 還是 Preview版
      系統會自動偵測,並詢問您是否安裝?

以下的範例,是從 Wrox出版的這本書而來,您可以參閱此書的 第三十七章(原廠網站有範例下載)

Professional C# 6 and .NET Core 1.0



Christian Nagel
ISBN: 978-1-119-09660-3
1536 pages
April 2016......註解:提醒您,這本書以為 Windows Form 主軸,並非 網頁範例為主
==========================================================================
YouTube教學影片 -- https://youtu.be/1UaO8C2MnJQ


==========================================================================
*** 開始動作 ***
(1). VS 2015 新建一個 ASP.NET Core 的 Web專案。
      下一步,我選擇了「空」專案

(2). 這是ASP.NET Core 「空」專案的架構
很抱歉,關於這個架構的檔案、目錄,我暫時沒有研究。如果您想進一步瞭解,請參與網路上的其他文章

(3). 預設的狀態下,您就可以編譯這個專案,而且看見結果(執行後,網頁出現 Hello World 字樣)
對照起來,原來是在 Startup.cs這個檔案的最後下方,就有 Hello World 字樣

(4). 我們加入熟悉的 ADO.NET程式碼(以 DataReader + SqlConnection / SqlCommand為例)
    如果您不熟悉,可以參閱以前的文章與範例 -- 

這裡的變化比較大。
以前撰寫程式時,如果缺乏 NameSpace,您可能要在程式碼「最上方」自己動手寫進來
甚至.....您要使用「加入參考」把這個DLL檔(二進位檔案)加入您的網站或專案

但是在 ASP.NET Core,我們可以有下面兩種作法。任選其一即可。
4-1.    透過 Visual Studio來幫忙,自己會幫您完成。詳見下面圖解。
Visual Studio會自動幫您加上 NameSpace,也會在 project.json設定檔裡面,加入必要的元件。

4-2.    當然,如果您是死硬派!硬漢!堅持要動手寫!
          在 project.json設定檔裡面,也可以透過智慧選字(IntelliSense),會自動跳字讓您填寫。

(5). 程式碼大致如下:

                //== 方法一 ==   
                string connectionString = @"server=.\sqlexpress;integrated security=SSPI;database=我的資料庫名稱";
                var conn = new SqlConnection(connectionString);
                conn.Open();
                // Do something useful
                await context.Response.WriteAsync("
資料庫連結成功");
                conn.Close();
               //== 當然,我們可以把資料庫的連結字串,寫在設定檔裡面。例如 appsettings.json設定檔,下一篇文章 為您解說。
              //{
              //  "ConnectionStrings": {
              //    "DefaultConnection": "Server=.\\sqlexpress;Database=我的資料庫名稱;Trusted_Connection=True;MultipleActiveResultSets=true"
              //  }
              //}

==========================================================================

Q :  ADO.NET怎麼只剩下 DataReader了?以前慣用的 DataSet呢?

詳見這篇文章的說明 (2016/2/10發表)  https://blogs.msdn.microsoft.com/dotnet/2016/02/10/porting-to-net-core/
System.Data. While the base layer is already part of .NET Core, i.e. the provider model and SQL client, some features are currently not available, such as schema support and DataTable/DataSet.

System.Transactions. While ADO.NET supports transactions, there is no support for distributed transactions, which includes the notion of ambient transactions and enlistment. (您可以參閱我這本書 -- 深入探索 .NET資料存取:ADO.NET + SqlDataSource+ LINQ (松崗),有討論 System.Transaction)

System.Net.Mail. There is currently no support for sending emails from .NET Core using these APIs.
目前 Core 1.0 不支援,不代表以後不支援。所以也不用太絕望....等等看吧......

下一篇文章:

ASP.NET Core & ADO.NET 入門 #2 -- 讀取appsettings.json設定檔與參數的寫法(SqlCommand)
http://mis2000lab.blogspot.tw/2016/12/aspnet-core-adonet-2.html



我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
......... 寫信給我,mis2000lab (at) yahoo.com.台灣  .............................................................
................   facebook社團   https://www.facebook.com/mis2000lab   ......................
................   Google+   https://plus.google.com/100202398389206570368/posts ........
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!微軟MVP --MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課。


2016年8月30日 星期二

獻給"從零開始"的初學者 -- Visual Studio軟體下載 與 基礎操作

獻給"從零開始"的初學者 -- Visual Studio軟體下載 與 基礎操作



如果您不會下載Visual Studio
如果連新增網站與專案、開啟一個Web Form新網頁......都不會,不用害羞~希望這段影片對您有幫助


我一直以為我的書與課程是真正「從零教起」
因為我只使用最基礎的 if 與 迴圈,盡量簡化程式語法,希望初學者能專注在新東西 (ASP.NET Web Form)上面

但還是有初學者的 "從零開始" 跟我預料的不同

為了彌補這段落差,我錄製這段影片

如果您不會下載Visual Studio
如果連新增網站與專案、開啟一個Web Form新網頁......都不會,不用害羞~

希望這段影片對您有幫助
(2)  精簡版 (Express)或是社群版 (Community)想要安裝正體中文、繁體中文套件(Laneguage Pack)
(3)  最最最入門的三招,學會Visual Studio的基礎操作


YouTube教學影片 -- https://youtu.be/gogx6qm-_gE    



[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!微軟MVP --MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課。


 
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
......... 寫信給我,mis2000lab (at) yahoo.com.台灣  .............................................................
................   facebook社團   https://www.facebook.com/mis2000lab   ......................
................   Google+   https://plus.google.com/100202398389206570368/posts ........
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

[Youtube影片] VS 2015簡單的測試專案 -- 程式碼分析、Web效能&負載測試

[Youtube影片] VS 2015簡單的測試專案 -- 程式碼分析、Web效能&負載測試


dotblogs.com.tw/mis2000lab/2016/08/20/vs2015_code_analysis_testing_project

下面這段YouTube影片,簡單的分享 "VS 2015簡單的測試專案 -- 程式碼分析、Web效能&負載測試"兩個功能:
第一,程式碼分析
第二,效能測試(以記憶體為例)
我使用自己寫的ADO.NET「分頁」程式做示範


可以參閱以前的文章

不過,我以前使用的「版本」 -- VS 2010 Ultimate
現在用的 VS 2015 Enterprise版,有這樣的分析功能。不確定 Express版有沒有?

下面這段影片,簡單的分享兩個功能:

第一,程式碼分析

第二,效能測試(以記憶體為例)


YouTube影片 -- https://youtu.be/PDlrWDL-0wI



我使用自己寫的ADO.NET「分頁」程式做示範,這些範例可以參閱我以前的文章:


分頁程式,在下面的新書裡面,有更多深入的說明:
========================================================

新書上市,團購優惠價。現貨供應,不需等待。直接來信吧!

https://dotblogs.com.tw/mis2000lab/2016/07/25/dotnet_access_adonet_book_2016

========================================================
深入探索 .NET資料存取:ADO.NET + SqlDataSource+ LINQ
MIS2000 Lab. / 周棟祥博士 / 吳進魯
出版日期: 2016-08-03
出版商: 松崗    定價:$820
頁數: 840
ISBN: 9572245686
ISBN-13: 9789572245682
本書提供 VB & C# 雙語法範例   **由此下載**

新書上市,團購優惠價。現貨供應,不需等待。直接來信吧!



[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!微軟MVP --MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課。
 
 
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
......... 寫信給我,mis2000lab (at) yahoo.com.台灣  .............................................................
................   facebook社團   https://www.facebook.com/mis2000lab   ......................
................   Google+   https://plus.google.com/100202398389206570368/posts ........
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ
請看我們的「售後服務」範圍(嚴格認定)。

如果程式「會動」就好,學那麼多屬性與方法幹嘛?

如果程式「會動」就好,學那麼多屬性與方法幹嘛?

dotblogs.com.tw/mis2000lab/2016/08/19/adonet_hasrows_commandbehavior_2016

初學者往往只要拿到「範本」、「程式碼」
改得動,會跑(run)、能執行就好。
下次繼續複製貼上,微調一下又能用,豈不是方便、省時?

那我就覺得很奇怪?
既然一個會動的方法或屬性就能打通關,原廠提供那麼多文件講解各種屬性、方法、事件
他們(原廠)是不是吃飽太閒?才寫出這麼多東西給我用?
還是........
我根本只會這一百零一招,其他東西,我不會用也看不懂?也不會變化?


以下我用同一個範例,介紹 DataReader / SqlCommand :
(1). HasRows屬性
(2). CommandBehavior列舉類型(原廠MSDN說明)
(3). 參數(避免 資料隱碼攻擊、SQL Injection攻擊)

YouTube影片 -- https://youtu.be/mRIWGsUS8Cw


以前,看不懂MSDN原廠文件,覺得那都是「火星文」
    可能是自己能力還不夠
    可能是沒有人帶領、沒有「實用的範例」可以解釋(所以無法引發興趣)....甚至原廠文件沒有提供範例  Orz
    可能是屬性、方法太多了.....多到根本學不完,只好放棄 (那今天我幫您整理出「最常用」、「次常用」的,您應該很容易上手吧!)


這就是我想寫這本書的原因
只要有人帶你走一段路,提供「實用範例」,先整理出「常用的」東西讓您上手....
您就會知道原廠MSDN文件之好用 與 博大精深
久了就自己看得懂,也養成習慣(自己去看、自修)

========================================================

新書上市,團購優惠價。現貨供應,不需等待。直接來信吧!

https://dotblogs.com.tw/mis2000lab/2016/07/25/dotnet_access_adonet_book_2016

========================================================
深入探索 .NET資料存取:ADO.NET + SqlDataSource+ LINQ
MIS2000 Lab. / 周棟祥博士 / 吳進魯
出版日期: 2016-08-03
出版商: 松崗    定價:$820
頁數: 840
ISBN: 9572245686
ISBN-13: 9789572245682
本書提供 VB & C# 雙語法範例   **由此下載**

新書上市,團購優惠價。現貨供應,不需等待。直接來信吧!


我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
......... 寫信給我,mis2000lab (at) yahoo.com.台灣  .............................................................
................   facebook社團   https://www.facebook.com/mis2000lab   ......................
................   Google+   https://plus.google.com/100202398389206570368/posts ........
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!微軟MVP --MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課。


[給初學者的話] 學程式的第一步需要什麼?...有耐心、看文件

日前有位學員想要上課,他是我看過印象最深刻的一位
因為.....他把我招生文件裡面的注意事項都看完了
對應的課程大綱、Q & A,都看過一次
他寫信問我,問了兩個問題:
第一個是他看完,但不清楚(有疑問)的地方。他要 Double-Check
第二個是詢問我的匯款帳號
我回信後,他就匯款,
當天晚上開始自修、看影片上課了(遠距教學、在家自己看影片、自修)


他是一位法務人員,所以(我猜想)他很習慣看文件、看法條
對於文字敘述,他有耐心、或是職業習慣,他能看完
如果一位「非 IT背景」的其他行業者,想學 IT都願意從「有耐心」「看文件」做起
我真的不懂
對於寫程式、想學IT網管、資訊科系的學生.....
對這些 "初學者"來說,有耐心、把文件看完
重不重要???
重不重要???
重不重要???

小朋友組合積木,的確可以發揮創意,
但如果你連樂高積木的凹凸,都搞不清楚,你的創意有什麼用?
寫程式的人,有創意,
但你不依照原廠規範來做,你的想法轉換成程式碼?過得去?跑得動?

現在,有多少人完全不看文件
網路上、書本上,找到一些片段的 Code,抄了就上
抄了不會跑 (run)
有錯誤,不會自己找,還去指謫「論壇上提供他答案的前輩」、「書本作者」、「BLOG作者」給的範例不會跑

如果寫程式就是 Copy / Paste,
那麼下一個年輕的小鮮肉、下一個年輕的肝,隨時可以取代你
真的不要做這種「沒將來」的職業,早點換行
(網路笑話 ---- 
      工作好辛苦,看不見未來   請問該怎麼換行?
      朋友是搞 IT的,一聽到「換行」就說:按下 Enter 不就換行了?
      對!!!按下 Enter按鍵,換行!!)
說真的,我們的教育(填鴨、考試教育)已經把大部分的人定型了
他只想看「結果」、只要「答案」
不要過程、不要經驗、不要練習時間.....
他就是要答案!!只要程式碼!

寫程式的過程中,網路上亂找,也能找到片段的程式碼
但,湊得起來嗎? A + B兩段程式,你組合得成功嗎?
湊不起來的時候,您知道哪裡湊不起來嗎?
湊起來,但有錯,您要怎麼解?
如果連「有耐心」「看文件」都做不到
您想 "寫" 什麼程式?
        想 "學" 什麼程式?
你還是回家吧,把錢省下來,買支新手機、多跑幾次夜店
好過花錢上課,上課一直都很枯燥乏味,不是嗎?
尤其是IT課程

換個方向來說,當你要學IT、要進入這個門檻
第一件事不是比聰明才智,不是比家裡有沒有錢

第一件事比得就是「有耐心」「看文件」

我相信:人人都可以做得到!

也可能是「大部分」的人都做不到
(如果別人做不到,我能做到。那麼將來要取代我的人,是不是少了點?)

相關文章:

[感想]「指揮艇,組合!」....別把寫程式當成無敵鐵金剛,用「兜」的,不會有好下場~
https://dotblogs.com.tw/mis2000lab/archive/2009/05/08/8345.aspx


我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
......... 寫信給我,mis2000lab (at) yahoo.com.台灣  .............................................................
................   facebook社團   https://www.facebook.com/mis2000lab   ......................
................   Google+   https://plus.google.com/100202398389206570368/posts ........
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!微軟MVP --MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課。