【技術開發焦點】C#多線程學習(六) 互斥對象
系列文章導航:C#多線程學習(一) 多線程的相關概念C#多線程學習(二) 如何操縱一個線程C#多線程學習(三) 生產者和消費者C#多線程學習(四) 多線程的自動管理(線程池)C#多線程學習(五) 多線程的... [詳細]
系列文章導航:C#多線程學習(一) 多線程的相關概念C#多線程學習(二) 如何操縱一個線程C#多線程學習(三) 生產者和消費者C#多線程學習(四) 多線程的自動管理(線程池)C#多線程學習(五) 多線程的... [詳細]
系列文章導航:C#多線程學習(一) 多線程的相關概念C#多線程學習(二) 如何操縱一個線程C#多線程學習(三) 生產者和消費者C#多線程學習(四) 多線程的自動管理(線程池)C#多線程學習(五) 多線程的... [詳細]
系列文章導航:C#多線程學習(一) 多線程的相關概念C#多線程學習(二) 如何操縱一個線程C#多線程學習(三) 生產者和消費者C#多線程學習(四) 多線程的自動管理(線程池)C#多線程學習(五) 多線程的... [詳細]
系列文章導航:C#多線程學習(一) 多線程的相關概念C#多線程學習(二) 如何操縱一個線程C#多線程學習(三) 生產者和消費者C#多線程學習(四) 多線程的自動管理(線程池)C#多線程學習(五) 多線程的... [詳細]
緣起 每次有新技術發布時,我們總能感受到兩種截然不同的情緒:一種是恐懼和抵抗,伴隨著這種情緒的還有諸如"C# 2.0用的挺好的,為什么要在C# 3.0搞到那么復雜?"或者"我還在使用C#1.0呢?"等言辭;...
軟件工程是一門獨特的工程藝術,需要解決的是不斷改變的需求變化。而對于WCF,對于SOA,由于涉及的是對多個系統之間的交互問題,如何有效地解決不斷改變的需求所帶來的問題就顯得更為重要:Service端...
在本篇文章上一部分Order Processing的例子中,我們看到原本已Collection形式定義的DetailList屬性(public IList<TDetail> DetailList),在Data Contract中卻以Array的方式體現(public OrderDetai...
通過第一部分的介紹,我們可以體會到,WCF 的Data Contract在CLR Type和Neutral Contract之間搭建了一座橋梁,彌合了.NET世界和廠商中立世界的差異。通過WCF Data Contract我們將CLR Data Type暴...
|
ThinkPHP3.0版本的Widget對Action和View的支持力度是相對不夠的,僅能夠實現基本的模板渲染輸出。而3.1版本的發布帶來的多層MVC功能,給我們實現Widget的方式帶來了新的思路,且看是如何實現吧。
由于ThinkPHP3.1增加了對...
ThinkPHP3.1的命名范圍功能,給模型操作提供了一系列的(連貫操作)封裝,讓你更方便的查詢和操作數據。下面我們就來具體了解下這一用法。1.定義屬性要使用命名范圍功能,主要涉及到模型類的_scope屬性定義和scope連貫操作方法...
以往在ThinkPHP3.1版本之前,如果需要設置自動驗證或者自動完成,一般來說必須定義在模型中,或者通過setProperty方法動態設置屬性來完成,這樣做的缺點是不太方便動態改變和調整。ThinkPHP3.1版本在模型類中增加auto和valid...
ThinkPHP的Widget擴展用于根據頁面需要輸出不同內容,它在項目目錄中的Lib/Widget下定義。具體定義如下:class NewsListWidget extends Widget{ public function render($data){ // code... }}需要注意:1.Widget是一...
以往的ThinkPHP3.0版本對數組方式的查詢條件會進行安全過濾(這是由于3.0強制使用了字段類型檢測,所以數組方式的查詢條件會強制轉換為字段的設定類型),但是3.0版本并不支持字符串條件的安全過濾。而ThinkPHP3.1版本則增加...
ThinkPHP3.1版增加了表單提交的字段合法性檢測,可以更好的保護數據的安全性。這一特性是3.1安全特性中的一個重要部分。表單字段合法性檢測需要使用create方法創建數據對象的時候才能生效,具體有兩種方式:一、屬性定義可...
通常情況下,如果一個應用只是操作同一個數據庫(或者分布式數據庫)的話,你只需要在項目配置文件中定義數據庫連接信息即可。這里說的多數據庫操作一般指的是在一個應用中會操作不同的數據庫(包括同類型的和不同類型的數據庫...
長期以來ThinkPHP都是需要通過debug_start、debug_end方法甚至Debug類才能完成那些調試的功能,而在ThinkPHP3.1版本中,這些復雜的功能被一個簡單的G方法取代了,這不可不謂是一次華麗升級。G方法的作用包括標記位置和區間...
以往版本的ThinkPHP中頁面輸出的過程是讀取模板文件,然后進行模板解析(也支持調用第三方模板引擎解析),但是有一些情況,我們并沒有定義模板文件,或者把模板文件保存在數據庫里面,那么這種情況下進行頁面輸出的時候,我們是無法...
目前大多數瀏覽器都已經支持頁面的壓縮輸出,通過壓縮輸出,頁面大小可以減少30%,但是由于3.0及以前的版本都沒有內置頁面壓縮輸出功能,所以一般來說,開發人員需要自己在入口文件中添加:ob_start('ob_gzhandler');但是由于服...
1.array_merge()合并例子$array = array('a'=>'bb');$array2 = array('b'=>'cc');$array3 = array_merge($array,$array2);輸出結果為Array ( [a] => bb [b] => cc )上面因為都是數組就沒有問題了,假如我們把$array 設...
ThinkPHP3.1版本對分組的支持如了如下改進:每個分組支持獨立的空模塊ThinkPHP3.0及以前版本的分組不支持定義獨立的空模塊,空模塊EmptyAction只能放置在分組目錄外層,而ThinkPHP3.1版則改進了每個分組可以定義獨立的空模...
ThinkPHP的分組功能是廣為開發者使用的一個具有很大實用價值的功能,該功能可以解決中大型項目情況中MVC分層文件過多導致不易管理的問題。而ThinkPHP3.1.2版本添加的獨立分組功能則為此類問題提出了新的解決思路,更加適...
ThinkPHP3.1版對AJAX的支持更加完善了,具體表現在:1.判斷AJAX方式改進現在可以直接使用常量IS_AJAX來判斷是否AJAX方式請求,用來取代之前的Action類的isAjax方法,優勢是可以在任何代碼里面進行判斷。而Action類的error和s...
模板和操作映射功能是ThinkPHP3.1.2版本支持的對模塊和操作設置的映射機制,由于可以通過改變配置動態改變(實際真正改變,并非別名)URL訪問地址,加強了應用的安全性,而且,映射機制具有URL不區分大小寫訪問的特性,對于應用的遷...
模板繼承是ThinkPHP3.1.2版本添加的一項更加靈活的模板布局方式,模板繼承不同于模板布局,甚至來說,應該在模板布局的上層。模板繼承其實并不難理解,就好比類的繼承一樣,模板也可以定義一個基礎模板(或者是布局),并且其中定義...
ThinkPHP3.1.3版本有一些特性,還是值得關注的,下面來簡單說下。1、異常方面的改進新版的ThinkPHP3.1.3重寫了異常類ThinkException(其實是完全簡化成了直接繼承系統Exception類),并且把異常邏輯改進封裝到Think類中。主要...
首先在ACTION中新建一個文件EmptyAction.class.php,其代碼如下:<?php class EmptyAction extends Action{ function _empty(){ header("HTTP/1.0 404 Not Found");//使HTTP返回404狀態碼 $this->display("Pub...
ThinkPHP的查詢語言配合連貫操作可以很好解決復雜的業務邏輯需求,本篇我們就首先來深入了解下框架的查詢語言。1.查詢語言介紹ThinkPHP內置了非常靈活的查詢方法,可以快速的進行數據查詢操作,查詢條件可以用于讀取、更新...
1.CURD概述:CURD是一個數據庫技術中的縮寫詞,一般的項目開發的各種參數的基本功能都是CURD。它代表創建(Create)、更新(Update)、讀取(Read)和刪除(Delete)操作。CURD 定義了用于處理數據的基本原子操作。之所以將CURD提升到一...
一、基礎知識1.手機APP的類型移動端的應用有這幾種:WebApp,NativeApp,HybridApp。
WebApp 就是手機網站,需要用手機瀏覽器訪問。
NativeApp是用原生語言開發,用戶需要下載安裝的手機應用。 NativeApp的開發成本很高,每個...
ThinkPHP的I方法是眾多單字母函數中的新成員,其命名來自于英文Input(輸入),主要用于更加方便和安全的獲取系統輸入變量,可以用于任何地方,用法格式如下:
I('變量類型.變量名',['默認值'],['過濾方法'])
變量類型是指請求方...
ThinkPHP CURD方法的limit方法也是模型類的連貫操作方法之一,主要用于指定查詢和操作的數量,特別在分頁查詢的時候使用較多。并且ThinkPHP的limit方法可以兼容所有的數據庫驅動類。其具體用法如下:1.限制結果數量:例如獲...
ThinkPHP CURD操作的查詢方法中最常用但也是最復雜的就是where方法。where方法也屬于模型類的連貫操作方法之一,主要用于查詢和操作條件的設置。where方法的用法是ThinkPHP查詢語言的精髓,也是ThinkPHP ORM(對象關系映射...
ThinkPHP CURD方法的table方法也屬于模型類的連貫操作方法之一,該方法主要用于指定操作的數據表。具體用法如下:一般情況下,操作模型的時候系統能夠自動識別當前對應的數據表,所以,使用table方法的情況通常是為了:1.切換操...