Home Blog Page 3

Laravel學習筆記系列(Day3)

本日主題:開發環境建置(使用虛擬機的方式) 首先把以下的東東都下載下來並安裝完成(當然全部都可以跨平台的拉): VirtualBoxVagrantGitVisual Studio Code Vagrant安裝完成後,開啟命令提示字元(以Windows環境為例),輸入以下: vagrant box add larael/homestead 之後就進入下載Homestead的virtual box檔案囉(如果你有裝多個VM軟體的話,會出現選單,就選virtualbox就對了),如下圖。 下載的咚咚會在哪裡呢,會在家目錄下的「.vagrant.d」資料夾,如果是Linux或Mac可以用「~」去找到家目錄位置,Windows會在「C:Users使用者帳號」下喔。 下一步:設置開發資料夾 切換到你要的開發目錄下執行以下指令: git clone https://github.com/laravel/homestead.git Homestead 如此會從github版控下載最新的laravel,並放到Homestead資料夾下,然後在CD到該資料夾下,如果要使用不同版本可以用以下指令。 git checkout v10.9.2 接下來在Homestead資料夾中有init.sh與init.bat執行檔案,當然windows就是跑init.bat囉。主要產生 Homstead.yaml 設定檔,編輯它。 ip:虛擬機拿到的 ip 位址不需要改。memory、cpus:虛擬機資源不需要改。provider:因為用virtualbox,也不需要改。authorize、keys:需要改以下,通常放在家目錄中,沒有的話用以下指令增加。 ssh-keygen -t rsa -C "your_email@example.com" folders:map代表本機的位置,to代表掛載到虛擬機的位置。sites:DNS網址,比須修改hosts( C:WindowsSystem32driversetchosts )對應。databases: 不需要改。 然後輸入以指令啟動 vagrant up 其他指令說明如下: vagrant...

Laravel學習筆記系列(Day2)

開發系統,如果沒有工具的話,超級辛苦,使用工具就是用來輔助、提高效率用的,當然用記事本也可以,只是確定要這麼的「手工業」嗎? Laravel的開發工具有:Visual Studio Code、Sublime、Atom、PHPStorm。以上是簡單列表,但是筆者大推Visual Studio Code,這可是微軟免費釋出,更重要的是跨平台,下載位置在這裡。 開發環境準備(完成Homestead設置): VirtualBoxVagrantGit Homestead 就是開發Laravel的虛擬環境,如同上述清單。有了虛擬開發環境,就不用去搞架站,直接就能進行開發,這就是為什麼用Laravel開發快速的其中一個原因。

Laravel學習筆記系列(Day1)

有鑑於之前的Blog文章其主題都太過於分散,讓人看得眼花撩亂,所以還是乖乖的把一個主題好好完成後再換主題,那麼就從今天開始展開Laravel的學習之旅... 首先認識一下Laravel(念法:拉拉某),已目前的發展來看如果使用PHP語言開發網站,大概跑不掉要使用 Laravel 了,以市占率、支援度、發展性,不用是找自己麻煩呀...,如果還不知道 Laravel 是甚麼,那就先看看 Laravel Wiki吧。 建議 Laravel 版本使用具有 LTS 的版本,畢竟有長期更新,比較不用擔心支援性的問題。 為什麼一定要用Laravel ,當然有前提,如果想省錢的話,就是用這個沒錯,給你一些理由如下: Web伺服器(Apache、Nginx)免費、DB資料庫(MySql、MariaDB)免費、開發工具(Virtual Studio Code)免費......都免費但最貴的是開發大腦..........跨平台,這個就不用說了,好處多多。簡潔、輕量,且為MVC架構。擴充性高,一推別人寫好的套件用的不要不要的。測試驅動開發,神級開發模式,減少蟲蟲危機。簡單、易學、進入門檻低。不再是效能低落的爛東西,看完這篇就知道。 以上,有點信心了吧,那就跟著Mika的腳步開始吧。

竟然無法使用App_Code底下的*.cs檔案

如標題,竟然發生了這樣的情況,主要發生情境是開發MVC5的專案,新增的App_Code竟然無法讓Controller使用,這就太奇怪了,原因出在該CS檔案的屬性,是內容而不是編譯,當然沒有編譯,其他cs就認不得了,如下圖調整即可:

ASP.NET MVC是透過網址的路由來定義拜訪

網址路由(Routing),全部頁面被  /App_Start/RouteConfig.cs 導向(當然可以自己定義路由), MVC的Controllers與WebApi分別是用以下兩個檔案控制: /App_Start/RouteConfig.cs /App_Start/WebApiConfig.cs 可能會有困惑,以上兩者的差異為{action},那WebApi到底要不要有Aciton比較好呢?其實JSON原理是用不同的傳輸協定去Call不同的方法,例如Get、Post、Put,沒有{action}是符合設計原理的,但是有時候這樣又不太好用,那到底要不要改掉WebApiConfig.cs呢? config.Routes.MapHttpRoute( ...

MVC網站的AD登入驗證

登入驗證可以用資料庫帳密、AD(網域驗證),當然也可以用微軟自家的Azure AD,但是一般開發大多以前兩者為多拉,本篇文章以AD驗證為示範。 Web Form的AD驗證比較簡單,只要修改Web.config,在<connectionStrings></connectionStrings>區間加入以下資料: <add name="ADConnectionString" connectionString="LDAP://AD主機位置/DC=網域URL第一段,DC=網域URL第二段" /> 然後在<system.web></system.web>加入以下: <membership defaultProvider="AbcAD"> <providers> <add name="AbcAD" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName" /> </providers> </membership> <authentication mode="Forms"> <forms loginUrl="~/Login" defaultUrl="~/Default" /> </authentication> <authorization> <deny...

認識ASP.NET MVC的各個資料夾

RootApp_Data (跟Webform一樣放資料庫檔案、上傳文件等)App_Start BundleConfig.cs ( 定義CSS/JS打包壓縮規則 ) FilterConfig.cs ( 全域Action Filter定義 ) RouteConfig.cs ( 定義網址路由Routing ) Content ( 放置網站內所有靜態內容,如圖片、影片等) Controllers ( 放置ASP.NET MVC控制器...

開發MVC網站使用Visual Studio 2019

首先開啟工具,新增專案(會歸類在某個方案下)。先說明方案是一個大集合,可以有各種專案,例如有時候開發網站,但可能需要開發Window Service,那麼就可在同一個方案下開發兩個不同類型的專案。 接下來是建立新專案時選擇要用到的專案範本,有ASP.NET Core Web 應用程式與ASP.NET Web 應用程式,差別是Core可以跨平台,如果沒有的話就選 ASP.NET Web 應用程式吧。 可以順便勾選核心參考與單元測試,畫面如下: 如果要使用版本控制,可以再選單-->,然後取得Giblab的網址,再視窗中的設定加入遠端,那版控就完成了。

ASP.NET Web Forms VS ASP.NET MVC

隨著MVC的發展,目前已經是主流了,就像早期的ASP網站被ASP.NET Web Forms取代後,已經幾乎要消失了,以後可能也會這樣吧,都是MVC架構下的網站。 那就來兩者PK一下吧,優缺點列表如下: ASP.NET Web FormsViewState過於邪惡與失控義大利麵寫法無法關注點分離無法設計單元測試對於HTML控制不夠直覺是一種傳統觀念的寫法(ASP)繼承IHttpHandler->HttpHandler->System.Web.UI.Page ASP.NET MVC簡化複雜度可關注點分離可設計單元測試可採用TDD(Test-driven Development)是現代化網站開發的新觀念繼承IHttpHandler->McvHandler->System.Web.Mvc

物件導向程式語言速成

這標題會不會下的太扯,真的可以速成??? 可以的,只要觀念正確,觀念正確就是打通任督二脈,在程式語言的世界裡,只要任督二脈打通,那學甚麼都很快了。 至於甚麼是物件導向程式語言的任務二脈呢?首先要有物件的基本觀念,如下開始囉~~~ 物件導向程式語言的三大特性: 封裝:Abstract data type (Encapsulation)。用語法單元(Class),將屬性(Variable)&方法(Method),包裝起來。繼承:Inheritance。當A繼承B (A is a B);A extends B多型:Dynamic binding (Polymorphism)。用父類別(介面)的參用,指向子類別的實例,可用子類覆寫方法。 甚麼~~~有看沒有懂,好吧~簡單的說~ 封裝: Class大括號內只有屬性跟方法,不能亂放其他東西。方法同名怎麼辦,就有Over Load的問題。 繼承: 如果你不想要亂改別人的Code導致問題就繼承他,然後給他覆寫方法(Over Write)多型:所以一切都是物件就對了,如果工具沒有自動帶出來方法,不要亂寫。 確定這樣已經打通任督二脈了嗎?沒有喔只有一半,另一半請看下方~~~ OOP的世界裡,所有的一切都是物件,但物件有兩種(沒錯跟斯斯有兩種是一樣的): 基本型別:整數(byte、short、int、long)、浮點數(float、double)、字元(char)、邏輯(boolean),只要不是以上這四個就是物件型別,所以你說String是甚麼鬼勒?當然是物件型別的東東囉。物件(或參用)型別 : 這跟記憶體的配置有關,Global區域:放被下了static修飾子的東東,等同於全域物件,特點是不用new就可以用。另外stack區域放基本型別跟參用,參用連接的地方是heap區域,就是被new過,也就是已經實例化(instance),請參考這篇。 好啦~~~以上就是OOP的任督二脈了~~~ 至於其他,全部都是招式組合出來的,例如frameWork本身就是拳譜,你高興的話自己編一套組合拳也可以,還有例如NuGet就是拳譜集散地,組合再組合,之後就是怎麼去用的問題,這就是OOP的世界,因為甚麼都沒有,所以甚麼都不奇怪,自由度很高的。