透過 Jenkins 從 Gitlab 拉 Source 自動建置 Xamarin iOS Mobile App

公司中許多的專案都有 Auto Build 的機制,那 Mobile App 也有 Auto Build 的機制嗎?
ios 的 App 需要 Mac 的環境。本文將介紹如何透過 Jenkins 從 Gitlab 拉 Source 自動建置  Xamarin iOS Mobile App。

架構

繼續閱讀 “透過 Jenkins 從 Gitlab 拉 Source 自動建置 Xamarin iOS Mobile App”

一個專案的 UI 設計之回顧及省思

專案背景

這個專案是一個地方政府的單一陳情系統. 首先特別要說明的是這個專案算是公司的策略性專案, 在銷售階段以及風險評估階段就已知道這個專案風險很高, 虧本機率也高, 加上資源不足, 還有技術上的問題要克服. 但是當初因為有客戶關係以及其他因素的考量, 所以最後還是選擇接案. 我認為以後應該不太會再有這樣的思維了.

這個單一陳情系統, 主要是提供民眾可以即時做陳情, 投訴及檢舉等問題回報, 整合照片及地理資訊讓案件處理人員快速辨識問題, 使用自動分案技術來加速案件處理, 整合及保留案件及處理資訊以供未來分析決策使用.  系統包括受理子系統, 公務子系統, 以及報表. 系統提供 Web 以及 App介面, 並介接機關員工資料庫, 公文系統, E-Mail, 簡訊及派工系統等.

這個系統是該地方首長的重要競選政見之一, 在經費部分動用了預備金, 而非使用一般計畫性專案的預算, 因此這個系統備受關注.  這個系統因為提供民眾使用, 因此系統好不好用以及畫面美觀與否都非常直接, 因此在專案初期即將 UI/UX 以及視覺設計考慮進來, 前端 UI Designer一開始就加入專案.

繼續閱讀 “一個專案的 UI 設計之回顧及省思”

ASP.NET MVC架構下如何防範表單偽造(CSRF)

首先,何謂CSRF?CSRF是Cross-Site Request Forgery的簡稱,簡單來說就是惡意駭客為竊取資訊用script創造成的假表單。詳情請參考OWASP官網解說:Cross-Site_Request_Forgery

那麼在ASP.NET MVC底下,其實要防範這個問題相當簡單,只要在Razor Ajax.BeginForm或是Html.BeginForm,甚至是一般傳統Html

內加上@Html.AntiForgeryToken,就會在表單Submit的時候產生2個相同值的Token。 繼續閱讀 “ASP.NET MVC架構下如何防範表單偽造(CSRF)”

[C#]The returned value of DataContext.ExecuteCommand when executing stored procedures.

In our project, SQL scripts(CRUD in specific) are executed using the class “DataContext” in combination with LinqToSQL,
and then of course, when the method “ExecuteCommand” is invoked, the returned value indicates the rows updated.

When the SQL command executed is simply just an INSERT/UPDATE/DELETE, the result is as obvious as ever.
But when it comes to stored procedures, things might not be that simple. 繼續閱讀 “[C#]The returned value of DataContext.ExecuteCommand when executing stored procedures.”

【Asp.Net MVC】使用 ContextBoundObject 搭配 Attribute 實現 BLL 層及 DAL 層的 AOP Logging 機制

我曾經有發表過一篇「透過 Asp.Net MVC Filter 實作 Controller 層級的 Action Logging 機制」文章,
想必大家也跟我一樣好奇,
如果想更進一步得在 Controller 以外的 BLL 層(Service, 商業邏輯層)或 DAL 層(Repository, 資料訪問層),
掛載能 Logging 傳入 Action 參數值的攔截器到底該如何實作?

繼續閱讀 “【Asp.Net MVC】使用 ContextBoundObject 搭配 Attribute 實現 BLL 層及 DAL 層的 AOP Logging 機制”