顯示具有 asp.net MVC 標籤的文章。 顯示所有文章
顯示具有 asp.net MVC 標籤的文章。 顯示所有文章

2017年8月17日 星期四

.NET Core 2.0正式釋出

有人說使用微軟的東西,要 2.0才開始進去玩,如 ASP.Net 2.0 ,  .Net Framework 2.0等,這次 .NET Core 2.0發表了,有興趣的朋友可以開始玩囉,不過我覺得 .NET Core 1.1就很好用,感覺 2.0的專案又跟 1.*的不太一樣,要花點時間了解


微軟.NET Core 2.0正式版出爐!


2017年3月31日 星期五

.Net Core 佈署到 docker上出現錯誤 The library 'libhostpolicy.so' required to execute the application was not found

使用 VS 2015建一個新 ASP.Net Core專案,再手動升級到 1.1後佈署到 docker時,出現無法正常執行的狀況,使用 docker logs @ConteainName時就出現 The library 'libhostpolicy.so' required to execute the application was not found錯誤訊息,可是之前也用同樣的方式也把另一個專案放在 docker上是沒有問題了,後來發現其原因可能發生在我把專案 package在使用 nuget升級時,原本
Microsoft.NetCore.App這個部份被改寫了,原本在 project.json的寫法如下:
 "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    }

升級後就變成
 "Microsoft.AspNetCore.App": "1.1.0",  => type的設定就不見了

所以只要再把成如下寫法,把 type加回去即可
 "Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    }

參考文件
Every Other "dotnet run" command fails with `libhostpolicy.so` error #5059

2016年12月18日 星期日

使用 asp.net core實作一個類 google blog的網站



 

之前有分享過 試作 CKEditor 圖片選擇器 ( image upload ),利用 ckeditor和客制 image picker
來達成圖片選取,但是圖片的處理、儲存還沒實作完成,最近剛好寫完預算系統,所以利用空檔來繼續完成這個部份,完成工作內容如下:

2016年12月7日 星期三

ASP.NET Core Render View to String in Controller

參考文章:
ASP.NET Core Render View to String
Render a Razor View containing a URL to a string in ASP.NET Core

這個目的是直接在 controller直接產生 partial view的字串再回傳至 view ajax result,然後直接把某個 element換掉或作內文休改,這種方式當然也有其它的方式達成,但直接在 contorller內產生 view string也是可以試試,因為在 Asp.net MVC 5也有類似的作法或是直接使用 westwind的 library。但在 Asp.net Core就不能直接拿來用。所以參考上面的分享文章就可以達到目的了。

AntiXss Library for Asp.Net Core

之前在 Asp.Net MVC 5時會使用 微軟的 AntiXSS Library
而在 Core專案的 Library,我有找到一個叫 SmallCode.AspNetCore.AntiXSS
這個 library不只在 controller內使用 HtmlFilter.Instance.SanitizeHtml 方法還在 view有提供 tag helper @Html.Sanitized可以使用。 如果需要的話可以使用 nuget下載使用。

2016年11月22日 星期二

Asp.Net Core MVC Paging使用了 cloudscribe.Web.Pagination

之前開發 MVC 5專案參考了 ASP.NET MVC 資料分頁 MVCPaging 2.0 應用分享文章,使用了 MVCPaging開發分頁需要的程式,但到 Core之後 MVCPaing官網建議要使用   cloudscribe.Web.Pagination library。

使用 Nuget安裝後要先設定
Startup.cs 要加上 services.AddCloudscribePagination();
_ViewImports.cshtml 要加上@addTagHelper "*, cloudscribe.Web.Pagination"

程式是最大的改變應該是在 View的部份,原本在顯示 page info的部份改寫如下:

<cs-pager asp-action="Index" asp-controller="Paging" 
     cs-pagenumber-param="page" 
     cs-paging-pagenumber="@Model.PageNumber" 
     cs-paging-pagesize="@Model.PageSize" 
     cs-paging-totalitems="@Model.TotalItemCount">
</cs-pager>

測試後的結果應該是沒問題,後續還是要測試每個 tag attribute




2016年11月10日 星期四

再見了 Web.config,Asp.Net Core使用了 appsettings.json

官網:Asp.Net Core Configuration

其它連結:
The New Configuration Model in ASP.NET Core
No ConfigurationManager in ASP.NET Core

長久以來,不管是 Asp.Net MVC或是 Form的開發,一定要使用到 Web.config,而在程式碼內就會使用到 ConfigurationManager來取得資料庫連線字串 (ConnectionStrings)或是自定變數,但是在 Core已經不採用這樣的方式了,所以要參考上面的文章,要自訂類別,在 startup.cs內來儲存 appsettings.json的變數,而在 controller才可以利用系統 DI方式取得想要的設定值,雖然一開始可能不太適應,但萬事起頭難,用久就會習慣了。

2016年8月2日 星期二

我的第 3個 Asp.Net Core Docker Image - 實作 Docker 1.12 Swarn Mode

利用 我的第二個 Asp.Net Core Docker Image 使用 SVN + Jenkins 的方式,首先先建立一個 docker machine, 再依據 Docker Conference Day 1的影片來實作 Docker Swarm Service Manager and Worker,一下子就成功了,非常容易、非常快速、簡單。大家可以試試。


2016年7月21日 星期四

我的第 2個 Asp.Net Core Docker Image 使用 SVN + Jenkins


 using docker

在 第一個 Asp.Net Core Docker Image的分享有用 Docker Tools for Visual Studio 2015 - Preview產生 Docker Image,但我想要作一點不一樣的事,目的很簡單,就是希望可以程式更新完之後,就可以完成自動產生 Docker image和建立 container,完成相關佈署。

依據這一本書的建議,利用 Jenkins來達到我想要的目的。相關的實作目前已完成第一步自動產生 docker file,再來就是要作實作建立 container的部份囉,等實作成功再來分享我的步驟。

真的不得不說, Docker是天上給予我最好的禮物了~~~

2016年7月5日 星期二

ASP.NET Core 1.0 所碰到的問題

Announcing ASP.NET Core 1.0 6/27正式版出爐,因為之前 preview 2的版本在執行時, 載入javascript file時會一直出現 502 bad gateway的訊息,但在 MVC 5就不會出現這種情況,所以就試試安裝正式版的 Core 1.0 。

首先要先更新 VS 2015至  update 3的版本,才可以下載 .NET Core 1.0 for Visual Studio

安裝完之後,之前開發 Core的方案建議重新建立新的。執行後也就沒什麼問題了。
但是發現一個 Nuget元件  RouteJs 執行時出現錯誤(但在 preview 2是正常的),
一個 tool  Docker Tools for Visual Studio 2015 - Preview無法安裝成功 ,

目前正在努力上網找答案中~~~~

2016.07.07 Docker Tools for Visual Studio 2015 - Preview可以安裝成功,只要先安裝 Windows Management Framework 即可。



2016年6月24日 星期五

ASP.NET Core ASP.Net 5 Tutorial for Beginners

Asp.net 5 介紹,入學者可以從這邊開始,跟 MVC 5有很大的不同。一切都要重頭開始囉~~


2015年12月29日 星期二

試作 CKEditor 圖片選擇器 ( image upload )




之前的文章有分享過用 MongoDB 和 Asp.Net MVC 寫一個別人分享的 blog程式,裡面有用到 CKEditor (ASP.Net版),因為需要上傳文件,所以也要用 CKFinder,但是我想要的是 google blogspot的方式,點選圖片按鈕時可以出現一個 dialog,可以上傳後再選擇或是從雲端選擇圖片,最重要的是要有多選,但基本的元件好像無法達到多選,所以想自己找出一個方法可以達成的。目前在多選的部份已經達到這樣的需求,作法如下

2015年10月29日 星期四

建構檔案管理及全文檢索的網站 - 架構視意圖



近期要使用下列的技術自行建立一個全文檢索功能的網站,管理使用者上傳的任何文件,實作中有任何進度會再進一步分享


2015年9月24日 星期四

asp.net mvc存取 wowza具有安全控管的影音串流

參考文件:How to protect streaming using SecureToken in Wowza Streaming Engine

先說一下當年勇好了,大約在13年前 adobe推出了 flash remoting技術,不只可以連結資料庫而且針對多媒體影音串流的部份也可以連至 adobe media server可以達到視訊的功能,而 flash remoting也就後來變成 Flex。

當時自己可以用 flash remoting開發出有現上會議室的功能,可以即時視訊,白板畫畫、聊天等,當時自己在新竹,還跟在台北的朋友作過測試,蠻不賴的。程式碼目前也還保留著。

回到正題,要如何設定你的 wowza application具有安全存取和 如何在存取,參考文件有詳細的說明。 最主要的作法就是產生 token讓 wowza server確認是否正確。而產生 token string的工作就用一個 class作產生,最後再儲存至 Viewbag變數讓 View可以讀到,這樣就可以了。


還有,文件上一直到到,產生 token的工作千萬不要寫在 javascript程式碼內,因為會被看光光哦。

2015年9月10日 星期四

2015年6月24日 星期三

IIS 7連結網路分享目錄

IIS 無法直接存取已建立網路磁碟机,作法如下 

  1. 建立 本機(server) 使用者,  在另外一台要作分享目錄的電腦也建立相同帳號、密碼,並把分享目錄指定給這個帳號,給予 read write權限
  2. 設定本機(server)目錄權限 因為使用 aps.net mvc5 且 64位元,建議下面兩個目錄都要設定        C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files 
                 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files   
  3. 至 iis 7,其應用程式上新增一個虛擬目錄,指定分享目錄並輸入帳號、密碼
  4. 修改 Web.config檔   <web.system>內加入
             <identity impersonate=" true" userName="*****" password=" ******" />
  5. 程式取得目錄名稱   string default_root = Server.MapPath("../虛擬目錄名稱" );
         
    之前也寫過的文章

IIS 7以上如何執行執行檔 exe, bat

參考文件:Foo.cmd won't output lines in process (on website)
                    System.Diagnostics.Process does not work on IIS 7

目前有個需求需要在 Asp.net MVC網頁上按個連結就可以直接把標籤列印出來,所以要使用 Process這個類別

寫法大同小異,如下
                      string command = string .Format("tscgin.exe {0} {1}", "mo_print.ini", fileName);
                   
                    Process p = new Process();
                    // Redirect the output stream of the child process.
                    p.StartInfo.UseShellExecute = false;
                    p.StartInfo.RedirectStandardOutput = true;
                   p.StartInfo.WorkingDirectory = "c:\somewhere"
                    p.StartInfo.FileName =  "cmd.exe";
                    p.StartInfo.Arguments = "/c " + command;
                    p.Start();
                   string output = p.StandardOutput.ReadToEnd();

                    p.WaitForExit();


但在 IIS和本機(或 Server)目錄需要設定權限的動作,如下
  1. 建一個新目錄存放 exe or bat file,並設定權限 NetworkService或建立一個帳號具有執行、寫入、讀取,此範例 command 參數 0 為標籤机執行程式的設定檔,指定要用那個標籤檔、那台印表机等,參數 2為資料 
  2. 至 IIS 找出應用程式的 Application Pool後點選"進階應用",找到 "識別"選項,使用者選擇 NetworkService或你自己建立的新帳號即可

2015年6月16日 星期二

使用 moment處理 asp.net MVC回傳的 json string

參考文件:Serializing Dates in JSON 
                    momentjs

在 asp.net MVC Controller or WebAPI回傳 json時,一般會使用 json.NET的 JsonConvert.SerializeObject作處理,如果欄位有日期的話,在 json.NET 4.5的版本就會自動轉成  ISO 8601 standard 的格式,而非微軟那個格式,除非有指定 TimeConverter

JsonConvert.SerializeObject(System.DateTime.Now) ISO格式如右 "2015-06-17T00:00:00Z"
而在前端 javascript在接到時就可以用 moment所提供的功能作轉換如下所示即可

moment(event.start).format( 'YYYY-MM-DD HH:mm:ss' )