Time of Update: 2017-02-27
細算起來,已經有好幾個月沒有真正的寫過文章了。近半年以來,一直忙於我的第一本WCF專著《WCF技術剖析》的寫作,一直無暇管理自己的Blog。到目前為止《WCF技術剖析(卷1)》的寫作暫告一段落,初步預計於下個月由武漢博文視點出版。在《WCF技術剖析》寫作期間,對WCF又有了新的感悟,為此以書名開始本人的第三個WCF系列。本系列的目的在於對《WCF技術剖析》的補充,會對書中的一些內容進行展開講述,同時會囊括很多由於篇幅的原因忍痛割棄的內容。本系列的第一篇,我將會對WCF的基本架構作一個大致的講解。
Time of Update: 2017-02-27
到今天,這個系列的文章就要先告一段落了。其中我用了10篇文章也沒有窮盡該項目的設計思想,只 能從中撿了一些我感興趣的東西進行了分析和說明,正所謂興趣是最大的動力。當然限於本人水平有限 ,難免有一些認識上的錯誤,也希望大家在回複中與我進行交流。下面把一些還未窮盡的內容做一下羅列,以備感興趣的朋友繼續品味。1.項目中使用了“Rhino.Mocks”,有對單元測試和這個項目感興趣的朋友可以通過測試
Time of Update: 2017-02-27
使用強型別的ViewData好處有許多,比如說在IDE中就會有更好的支援,比如代碼提示。同時在View 與Controller之間有更嚴謹的“約定”。在Suteki.Shop項目中作者對強型別的ViewPage引入 是通過MvcContrib實現的,下面就是其ViewPage<T>代碼(Suteki.Shop\Views\ViewPage.cs):public class ViewPage<T> :
Time of Update: 2017-02-27
在Suteki.Shop中內建了提供了基於NHibernate方式的ORM功能,只不過就目前的項目進度還未全部完 成其設計時的構想,另外在單元測試上也沒有完整的測試。不過其設計思路還是很有意思的。就 其將NHibernate引入到項目中的實現方式而言,與Rhino.Commons中所提倡的方式如出一轍,那就是基於 IRepository模式。關於IRepository這個介面的定義在之前的這篇文章中已提到並做了相應說明,所以
Time of Update: 2017-02-27
在Suteki.Shop中對於Filter的使用上提供了兩種方式,一種是從FilterAttribute(抽象類別屬性)以及 介面 IActionFilter和 IResultFilter中繼承並實現。另一種是我們經常提到的從 ActionFilterAttribute 上繼承方式來實現自己的ActionFilter。首先看一下第一種,同時它也是該項 目中被Action廣泛使用的方式, 下面是類圖:當然圖中最核心的 當屬FilterUsingAttribute,它同時繼承了
Time of Update: 2017-02-27
在上文中,介紹了如何安裝和使用Suteki,今天我們通過源碼來看一下Suteki是如何使用Controller 。在Suteki中,其使用Abstract的方式來定義一個ControllerBase,以此作為所有Controller的 基類,下面是其Controller的類設計圖:在該基類中定義了一些Controller中常用到的方法,比如為當前視圖添加MetaDescription,Title等 :[Rescue("Default"), Authenticate,
Time of Update: 2017-02-27
在Suteki.Shop,實現了自己的資料校正機制,可以說其設計思路還是很有借鑒價值的。而使用這種 機制也很容易在Model中對相應的實體物件(屬性)添加校正操作方法。下面就來介紹一下其實現方式。首先,看一下這樣類圖:在Suteki.Shop定 義一個“IValidatingBinder”介面,其派生自IModelBinder:其介面中定義了一個 重載方法UpdateFrom,其要實現的功能與MVC中UpdateFrom一樣,就是自動讀取我們在form中定義的有些
Time of Update: 2017-02-27
這篇文章不能算是Enterprise Library 2.0的一個技巧,只是Logging Application Block的一個簡單應用而已,在這裡我們使用Logging Application Block來記錄一個ASP.NET
Time of Update: 2017-02-27
在ASP.net MVC的一個開源項目MvcContrib中,為我們提供了幾個視圖引擎,例如NVelocity, Brail, NHaml, XSLT。那麼如果我們想在ASP.NET MVC中實現我們自己的一個視圖引擎,我們應該要怎麼做呢?我們知道呈現視圖是在Controller中通過傳遞視圖名和資料到RenderView()方法來實現的。好,我們就從這裡下手。我們查看一下ASP.NET MVC的原始碼,看看RenderView()這個方法是如何?的:protected virtual
Time of Update: 2017-02-27
原本的Url.Action方法是利用RouteCollection來實現Url的Routing的。所以這裡用一個擴充方法重現一下using System.Web.Routing;static public class CUrl { public static string Action(this Controller c, string controller, string action) { RouteValueDictionary rvd = new
Time of Update: 2017-02-27
為了讓大家更深入的瞭解和使用C#,我們將開始這一系列的主題為“C#發現之旅 ”的技術講座。考慮到各位大多是進行WEB資料庫開發的,而所謂發現就是發現我們所 不熟悉的領域,因此本系列講座內容將是C#在WEB資料庫開發以外的應用。目前規劃的主要內 容是圖形開發和XML開發,並計劃編排了多個課程。在未來的C#發現之旅中,我們按照由淺入 深,循序漸進的步驟,一起探索和發現C#的其他未知的領域,更深入的理解和掌握使用C#進
Time of Update: 2017-02-27
為了讓大家更深入的瞭解和使用C#,我們將開始這一系列的主題為“C#發現之旅 ”的技術講座。考慮到各位大多是進行WEB資料庫開發的,而所謂發現就是發現我們所 不熟悉的領域,因此本系列講座內容將是C#在WEB資料庫開發以外的應用。目前規劃的主要內 容是圖形開發和XML開發,並計劃編排了多個課程。在未來的C#發現之旅中,我們按照由淺入 深,循序漸進的步驟,一起探索和發現C#的其他未知的領域,更深入的理解和掌握使用C#進
Time of Update: 2017-02-27
方法體using System;using System.Xml;using System.Configuration;using System.Web;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;namespace XMLSize{ public struct strRestric { public string msgPage; public string
Time of Update: 2017-02-27
一般來說winform應用程式解決這個問題起來時很容易的,web應用程式就麻煩一點了。這裡我說說我的解決思路:一、你必要有聯機型居民身份證閱讀器一個(帶驅動光碟片),這裡我用的是精倫電子公司的 iDR200,並有這個閱讀器的開發介面說明。二、建立一個winform控制項項目ReadCardControl,添加一個主類ReadCard1、聲明dll入口[DllImport("Sdtapi.dll")]
Time of Update: 2017-02-27
View:<%=Html.CheckBox("IsBirthday","我是否過生日", item.IsBirthday)%>Controller:AUser user = new AUser();BindingHelperExtensions.UpdateFrom(user, Request.Form);Model:public class AUser{ public bool
Time of Update: 2017-02-27
主版頁面(Master)1.主版頁面是與Controller無關的,主版頁面只是一個View檔案,而沒有任 何Controller與之相對應。2.其實在ASP.NET MVC中View的aspx與主版頁面並不像WebForm中 那樣緊密關聯。例如我想更換一個aspx的主版頁面,只要在Action中return 時指定所要使用 的Master即可:如圖我有2個
Time of Update: 2017-02-27
其實我們通常遇到的請求方式無非get/post,但是有很多Web開發人員仍然對二者分不清。get即通過URL中的QueryString向伺服器端傳值的方式,它的資料是可見的,可post則是通 過一個postdata包向伺服器傳值,post方式可以傳送更多資料(如上傳檔案),也更安全(如登入 )。本文將示範各種通過用戶端頁面(即最終產生的頁面)向Controller提交請求以及在 Controller中接受的方式。約定本文所有的樣本都將是示範一個登入過程,但並不
Time of Update: 2017-02-27
許多時候我們會遇到如下情境在寫一個編輯資料的頁面時,我們通常會寫如下代碼1: <input type="text" value='<%=ViewData ["title"] %>' name="title" />由前篇我們 所講的Helper演化,我們思考,對於這種代碼我們是不是也可以用一個Helper來自動綁定資料呢這當然是可以的,ASP.NET
Time of Update: 2017-02-27
凡事出現必有原因就像Filter,它是為瞭解決在一類的Action之前或之後執行統一的代碼而產生的。而Helper則是為了方便View的開發而產生的。下面我們來解決幾個問題,來看看Helper是怎麼演化出來的。起題目:如何在View中寫一個超級串連串連到首頁?這個問題看起來很好回答:<a href="/home/index">首頁</a>承其實上面這種不能稱之為方案的寫法其實是最好的,沒有調用任何的方法,僅用純的HTML就解
Time of Update: 2017-02-27
一個簡單的電子商務店面應用我將使用一個簡單的電子商務商店應用來示範ASP.NET MVC架構的工作原理。在今天的貼子裡,我將實現一個產品列單,以及相關的瀏覽應 用情境。具體來說,我們將建造一個網上商店,允許使用者在訪問該網站上的/Products/Categories網址時 瀏覽產品分類列表:當使用者點擊上面網頁上的產品分類連結時,他們將轉到一個產品分類列表URL /Products/List/CategoryName上,該頁面列出了指定分類中