More

    C#, ASP.NET, ASP.CORE

    Visual Studio 17.10緊密整合GitHub Copilot,加入更多生成式AI功能

    微软发布了最新的Visual Studio 17.10的第一个预览版。该预览版的更新重点是整合了最新的GitHub Copilot,为开发者提供了更多的人工智能功能,提升开发生产力。此外,该版本还包含了社群建议的多个功能,使代码版本控制更加便利。开发者可以通过订阅GitHub Copilot,在Visual Studio中获取生成式人工智能程序开发建议。在新版本的扩展套件中,Copilot不仅仅扮演一个聊天机器人的角色,还朝着成为结对开发伙伴的方向更进一步。 Copilot通过与Visual Studio的紧密整合,能够更好地从项目中收集信息,进一步提供开发者当前开发环境中有意义的答案。现在开发者可以使用斜线指令加速工作流程,通过为常见开发任务设置具体目标的斜线指令,例如/explain可以代表Explain...

    搜索頁面 – Service層的工作 – 搜索在進化 (.NET MVC 5 Ch-25)

    在上一篇介紹完了如何顯示搜索表單之後,一個基本的通用搜索功能就完成了。 不過,其實有些部份還可以在加強,舉例來說,目前搜索是一定要完全符合才搜索的到,但是這樣就失去了很多好處,畢竟如果完全符合才搜索的到,那基本上等於搜索不到。 還有,假設今天我們搜索結果是要給使用者看的,通常都會有所謂的上下架起訖時間和是否啟用,當符合條件才可以看,這一部份其實自動搜索也可以幫到我們。 因此這一篇將會介紹未來如何在擴充自動搜索功能和在搜索做一些客制處理,符合只搜索出前臺使用者看的條件。 同步發表於我的部落格:http://alantsai2007.blogspot.com/2014/10/BuildYourOwnApplicationFrameworkOnMvc-25-IndexPage-AutomaticSearch-improved.html 以Like的方式搜索 第一個要處理的是針對string類型的用like方式做搜索。要用Like方式做搜索,就要用到Linq裡面的Contain()語法: <!-- wp:paragraph --> <p>/// &lt;summary&gt;<br>/// 依照Search Form ViewModel的值來設定Where的內容。<br>///...

    搜索頁面 – Service層的工作 – 自動套用一般搜索條件 (.NET MVC 5 Ch-23)

    在上一篇介紹完了如何動態產生Linq條件之後,在這一篇,將會透過Reflection和Dynamic Linq Query來讓Service層,能夠在不做任何事情的情況下,自動對資料做過濾,並且轉成對應的ViewModel配上分頁。 同步發表於我的部落格:http://alantsai2007.blogspot.com/2014/10/BuildYourOwnApplicationFrameworkOnMvc-23-IndexPage-AutomaticSsearch.html Service層的處理 在處理搜索的部份,Service層將會需要: 透過Reflection取得要搜索的欄位 - 這邊要記得是不要base的欄位(不要那些例如目前在第幾頁,和一頁幾筆的那種)依照Reflection的欄位和Dynamic LInq Query組成搜索條件做搜索並且用Automapper把Entity...

    搜索頁面 – Service層的工作 -動態產生Linq條件 (.NET MVC 5 Ch-22)

    在上一篇介紹完了會使用到的ViewModel之後,接下來就是實際的商業邏輯,也就是實際做搜索和產生資料的部份。 在這一篇,將會介紹如何透過Service層和ViewModel的搭配,讓使用起來變的更加方便。 同步發表於我的部落格:http://alantsai2007.blogspot.com/2014/10/BuildYourOwnApplicationFrameworkOnMvc-22-IndexPage-DynamicWhereLinq.html 功能描述 Service的流程大概如下: 依照SearchViewModel裡面的欄位去做DB搜索得出的結果將會用Automapper轉成要的SearchResultViewModel,並且透過PagedList.Mvc的方式把資料包住View方面的呈現 - 搜索表單可以做成通用的Partial 由於Service要做的事情也滿多的,因此整個Service層的實作會分幾篇來介紹。 Service依照SearchViewModel裡面的欄位去做搜索 這個部份其實要拆成兩塊: 動態組裝Linq條件 - Linq搜索的好處是強型別的條件,但是當我們希望Service自動依照欄位去做搜索的時候,Linq就不方便使用了。因此,我們需要先瞭解如何動態組裝Linq條件透 過Reflection取得搜索欄位和條件 -...

    搜索頁面 – ViewModel的定義 (.NET MVC 5 Ch-21)

    在上一篇介紹完了搜索功能的概念和思路之後,在這一篇開始要看實作的部份。 通常寫Mvc都是從Model開始,因此這一篇將來看一下搜索功能所會使用到的ViewModel 同步發表於我的部落格:http://alantsai2007.blogspot.com/2014/10/BuildYourOwnApplicationFrameworkOnMvc-21-IndexPage-ViewModel.html ViewModel的內容 首先,搜索的ViewModel必然會有兩個Property: 搜索條件搜索結果 因此,我們會先從這兩個部份的Property來看起。 搜索條件的ViewModel 搜索條件會有一定有的欄位和各個domain所需要的欄位,因此會先定義一個Base,好方便之後domain來繼承並且提供其他相關欄位。 一定會有的欄位像是: 每頁筆數目前頁數排序欄位排序順序 Domain相關的欄位就依照各自的需求,例如假設是一篇文章,可能會有以「標題」做搜索或者以「內文」做搜索。 因此,程式碼會如下: /// <summary> /// 搜索 Form 的 ViewModel base。定義搜索必須要有的相關欄位。 ///...

    搜索頁面 – 思考篇 (.NET MVC 5 Ch-20)

    搜索頁面無疑是任何系統必須要有的功能,同時要做出搜索頁面需要很多不同的地方:需要注意搜索條件,分頁的處理和結果的呈現。 這些處理其實如果沒有統一的做法,會很容易造成每個人用不同的方式做處理,因此這一篇將來介紹,如何透過框架被處理變的更加簡單。 同步發表於我的部落格:http://alantsai2007.blogspot.com/2014/10/BuildYourOwnApplicationFrameworkOnMvc-20-IndexPage-concept.html 一般搜索頁面所會需要處理的內容 搜索頁面基本上就是所謂的Index頁面。這種頁面通常會有3個部份的內容: 搜索條件 - 通常應該會有一個搜索條件,讓使用者可以過濾資料的顯示搜索結果 - 依照搜索條件,去產生對應的結果做呈現和顯示分頁處理 - 通常會針對結果做分頁處理,例如如果有100筆,可能只希望一次呈現20筆,那麼就會有5頁。這些資訊的處理其實並沒有想像中的容易。 針對上面提到的3個部份的內容,其實都有一些底層的內容去處理,而這些如果沒有做好,很多時候都是在runtime的時候才會出錯,而不是...

    框架產生下拉式資料的內容 (.NET MVC 5 Ch-19)

    這一篇,回到Controller常常需要做的一件事情,那就是當如果欄位屬於下拉式選單的時候,需要準備好下拉式清單的資料。 如果用的是預設的方式去產生下拉式選單其實有很多問題,這一篇想透過框架的方式,讓產生下拉式清單的資料能夠自動化。 同步發表於我的部落格:http://alantsai2007.blogspot.com/2014/10/BuildYourOwnApplicationFrameworkOnMvc-19-GenerateSelectListFroDropDownList.html 預設Scaffolding的問題 如果是Mvc Scaffolding內建的話,會在Controller的時候產生下拉式清單資料並且塞到ViewBag裡面。 這個最大的問題是:假設某一個地方有需要下拉式選單的資料,但是忘記產生了(最長發生這個問題是在Edit的時候,驗證失敗需要重新顯示View的時候),畫面就會炸掉。 而且這個只有在runtime的時候才會發生,完全沒有辦法在compile的時候檢測出來。 假設有東西能夠保證需要下拉式清單的資料的時候,一定會產生出來,就不需要擔心到底有沒有忘記呼叫要把資料塞到ViewBag裡面。 這就是我們框架要解決的問題。 解決思路 首先,需要下拉式清單的資料的時候,就需要產生出來。能夠確認每一次需要的時候就會產生,就要透過Filter來做。 如 果透過Filter來處理產生的邏輯,那麼還需要準備資料給Filter,讓它產生對應的資料並且塞到ViewBag裡面。因此,ViewModel是最 適合的,因為在Filter裡面可以取得ViewModel的內容,因此可以做一個特殊的欄位,專門存放這些準備資料。 最後,在顯示的部份,就可以用一般的HtmlHelper產生即可。 實作內容 接下來就看看如何實作。 SelectListViewModel的定義 首先,定義一個SelectListViewModel的Class,這個Class將代表需要產生的下拉式選單: /// <summary> /// 代表一個要被產生的SelectList /// </summary> public...

    Recent Articles

    Stay on op - Ge the daily news in your inbox

    spot_img