在ASP.NET中,
若用了CSS會和SmartNavigation產生衝突
難怪我之前在寫時候,不知為什麼CSS的樣式會跑掉….
沒什麼人在用.NET
這是為什麼呢???????????
二年前我剛學的時候,明明用ASP的人就還很多呀!!
怎麼現在要找用.NET的都找不太到,
感覺根本就是JAVA的天下!!
心得:ASP.NET2.0達人養成系列講座PORT.3
在寒冷的冬天,去聽了這一場研討會
主講人依舊是那位可愛的邱小姐,
先說,我不是因為主講人可愛才去聽的,
這一次的內容,
主要還是在討論VS.NET2005及.NET FRAMEWORK2.0到底多了哪些東西,
多了哪些Control,
演講的時候,由於頭痛加上疲累,
前半場一直處於昏睡狀態,
還好中場,會場有提供咖啡,才讓我清醒了一點…..
至於演講的肉容,就待我整理完在放上來
3層式架構(3-tier)
http://www.microsoft.com/taiwan/msdn/columns/200303netappintro.htm
http://www.ares.com.tw/gb/communicate/Magazine/22/three-tier.htm
http://www.infolight.com.tw/journal/index_view.asp?no=41&filepath=/journal/file/BOOK5.htm
1. 傳統的 1-Tier
以前 DBF 系統就是將資料庫放於 Local(單機上),如我們用 DBASE 或 Clipper 透過Use / Append / Replace / Delete / Seek…等指令去存取DBF檔案,您寫的程式是在 Local 上執行,並呼叫 Local 上的 DBASE 或 Clipper LIB(或 DLL)去存取這些 DBF 的資料,整個過程都在同一個 Local PC 上執行,我們可以叫它 One-Tier,它的最大缺點就是在於只能單機使用 。
2. LAN 的 1-Tier
Novell 及 Windows 可以將DBF置於 File Server 上,所以進入了Multi-User 時代,此時,DBF 讓多個 PC 可以共用資料(可讀可寫),確實帶來便利性。但在 DBASE 或 Clipper 的PRG 還是在 PC 端執行(程式可以放在File Server上,但 Run 是在 PC 上),所以 PC 端只是去網路 Open DBF 資料,讀寫都是在 PC 端去完成的,這個架構只是 DBF 的共用,File Server 並沒有任何事情做,所以還是在 One-Tier 上作業,所以此架構的問題就在於資料一多就造成速度上的瓶頸,尤其是資料的穩定度常因 PC 當機造成嚴重的毀損。
3. DataBase Server 的 2-Tier
2-Tier 就是 Client/Server 的架構,Client 就是 PC 或終端機,Server 就是 Database Server,約十五年前,IBM發展 DB2 與 Client/Server 開啟了大門,此後如雨後春筍,Informix/Sybase/Oracle/MS-SQL相繼崛起,從此 RDBMS(Relation DataBase Management System)已經成為資料庫的共同標準。
所謂 DataBase Server,就是專門處理資料庫的主機,處理資料庫的方法是採用一種大家標準的語言-SQL,這種語言已經成為發展資料庫的共同標準(如 ANSI-92 標準),就是無論您使用哪種資料庫,您都可以使用相同的 SQL 語言即可以存取資料庫。所有的 PC 或Client都必須以 SQL 來下達給 Database Server,並由 DataBase Server 全權處理。所以Client/Server 是一種分工的模式,由 Client 來提出申請,由Server來完成資料存取的目的,如此即可以將資料安全集中於 DataBase Server 上,不必像 DBF 分散到 PC 上存取,容易亂掉與損毀(尤其是 Index 檔案),資料的穩定度相對提高,處理大量資料的速度也相對提升(DBF 資料一大,速度就是慢),C/S 架構確實提升不少速度與品質。
4.Application Server 的 Three-Tier
其實 2-TIER 已經解決了不少資料庫的問題,但面臨大型系統,C/S會因為Connection數量(使用者的聯機數)的暴增而造成Database Server無法負荷,通常一個 Application Connection 只要到達 30 到 50 個 User 就會造成 DB Server 疲於奔命,速度與效能將有顯著的改變;另一個問題就是當資料庫的資料很大時,Client/Server 通常會依 SQL 命令將大量數據傳回 Client,往往造成網路與 Server 的瓶頸;再者就是維護的問題,大型的系統有很多很大的 Client 程式,分散到各個 Client 上,每當有程式版本異動時,都必須大費周章的將Client 程式換掉,再加上目前整個 A/P 的全球發展趨勢就是 Thin-Client(瘦小的 Client),並讓 Client 能自動維護或不必維護的效果,3-Tier 的架構與相關技術也就因運而生了。
五個基本的排序法
http://mis.im.tku.edu.tw/~tweety15c/sort.htm
◎選擇排序法(SELECTION SORT)
給予N個數,將這N個樹做比較,把最小的數排在第一個位
子,再將這N-1個數做比較,從這N-1個數中再次找出最小
的數放在第二個位子,再從這N-2個數中做比較,將最小的
數放在第三個位子,依此類推,直到N個數都比較完為止。
◎泡沫排序法(BOBBLE SORT)
給予N個數,將相鄰的兩個數做比較,若前面的數大於後面
的數,則將兩個數做調換;若前面的數不大於後面的數,
再繼續往下比,直到全部的數比較完為止 。
◎快速排序法(QUICK SORT)
快速排序又稱為劃分交換排序(partition exchange
sorting),就平均時間而言,快速排序是所以排序法中最好
的。假如有n個R1,R2,R3…Rk,鍵值為k1,k2….kn其步驟
如下:
1.以第一個紀錄的鍵值k1作為基準K
2.由左至右i=2,3,…,n一直找到
ki>=K
3.由右至左j=n,n-1,….,2一直找
到kj<=K
4.當i
顯示0,1,1,2,3,5,8,13…..
這是我去面試時的考題,
當時笨笨的,一直想不出來
(在此感謝建安,崇德及86的幫忙)
VB語法:
Dim x, y, z, n As Integer
x = 0
y = 0
z = 0
For n = 10 To 0 Step -1
Console.WriteLine(y)
z = x + y
If z = 0 Then z += 1
x = y
y = z
Next
——————————————————————————–
Java:
int x = 0,y = 0,z = 0;
int size = 10;
while((size–)>= 0){
System.out.println ;
z = x+y;
if(z == 0)++z;
x = y;
y = z;
}
新增回應
上午 11:32 | 永久連結 | 引用通告 (0) | 發佈至您的部落格 | CODING
永久連結 關閉
http://spaces.msn.com/jason695/blog/cns!1BF4A629EA6C6E8E!1196.entry
從 i=i++; 談程式師容易犯的錯!
轉貼自﹝工程師的家﹞
code:——————————————————————————–
i=0;
i=i++;
——————————————————————————–
這樣的程式,最後 i 的值會是多少?0 還是 1 或其它值?
我在網路上看過幾個類似的問題,回覆的答案也是莫衷一是。
對大部份的 C/C++ Compiler測試的結果是 1,
有人把它拿到 java 上測試,發現結果是 0 。
但 C/C++ 和 java 對這樣表示式的計算規則是一樣的啊!
是java不好?還是 C/C++ 錯了?事實上,都不是,
是程式寫得有問題!
ANSI C/C++ 運算式(expression)有一個但書:
如果一個左值(l-value)在運算式中被改變了兩次以上,除非運算子
能保證其計算次序,否則運算式的結果是未定義的
很明顯的 i 在運算式中被改變了兩次,所以:
運算後 i 的結果在ANSI C/C++的規格是未定義的,它依compiler 所用的運
算式演算法不同而有不同的結果,用你手上的C++ Compiler,i的結果可能
是0或是1甚至是其它的值,但不表示其它家的C++compiler 會有一樣的結
果; 甚至你手上C++的下一個版本都不保證會和現在一樣。因為它們都未違
反ANSI 的法律!
很多程式員並不熟讀程式語言的細節而容易犯下這樣的錯,原來跑得好好的
程式在compiler換上新版本後出現了問題。通常直覺的會去怪”新版本”的
compiler有bug!但十有八九問題是出在自己的程式。
”一個左值(l-value)在運算式中被改變了兩次以上,除非運算子 能保證
其計算次序,否則運算式的結果是未定義的”
這在C/C++原始的定義是這樣的:
一個運算式中若含有子運算式,子運算式的計值次序是未定義。
(未定義的意思是ANSI 未規範,編譯器可自行依演算法之差異而便宜行事)
對 i=i++; 這個運算式來說它分成
i=i;//<---主運算式
i=i+1;//<---子運算式
兩個運算式
因為子運算式(i=i+1)計值次序未定義,所以主運算式的右值 i 到底是新值或
舊值便無法確定,所以最後指派到i的值便未定義。
那麼什麼運算子可以保證子運算式的計值次序?就是”循序”運算子:逗號 (,)
像這樣的式子是正確的運算式:
j=i++, i=j+2;
循序運算子保證其左邊會先於右邊計值。
注意到在C/C++裡只有運算式中的逗號是循序運算子,不是所有的逗號都
是循序運算子。
例如呼叫函式:
FuncCall(i, j*i++);
這程的函式的呼叫是錯的,兩個引數中間的逗號是”分隔符號”不是”循序
運算子”。C/C++也不保證引數的計值次序,結果是第一個引數值是不確定的。
心得:ASP.NET2.0達人養成系列講座PORT.1
這次講的內容沒什麼深度,頂多只是個系列講座的開場白而已,
不過另我驚奇的是.NET2.0和VS.2005功能又更多了,
諸如:Theme, Skin, Master Page, Login Control的功能,使得VS.2005更強了….
不過,可能也更占系統資源吧……
我的小創作–>”中午吃什麼??”
從開始工作的第一間公司直到現在,
總有中午不知道吃什麼的困擾,
而這個程式就是因此而產生的,
要執行這支程式的話,要有裝.NET FrameWork喔!!
去哪找??
在微軟的UPDATE網站就有,記得選擇自訂的選項
http://jason695.idv.tw/WinApp_Eating.rar
ASP.NET 2.0達人養成系列講座 – 入門套件篇
http://www.programmer-club.com/pc2020v5/conference2006/
有人想去聽的嗎
中量级别的系统权限设计
1、用户对应人事系统-员工基本信息表
2、群组是虚拟的部门划分
3、用户等级是虚拟的职务等级划分
4、角色是虚拟的职责划分