Javasp

Sunday, May 30, 2004

微軟對存儲數據加密強化安全性

eNet硅谷動力

2004年5月27日


 微軟公司於當地時間本週二宣佈,其代號為Yukon的SQL Server 2005數據庫將包含有新的加密功能,使黑客和其它未經授權的用戶更難訪問信息。

 微軟公司已經提供了對通過SQL Server和客戶機之間的網絡傳輸的數據進行加密的工具。微軟公司的產品經理柯爾斯頓表示,計劃於明年發佈的Yukon將對存儲在數據庫內的數據進行加密,使得它對攻擊有更大的抵抗力。

  微軟公司將Yukon的發佈時間推遲到了明年上半年。Yukon旨在加強SQL Server數據庫的處理能力,更好地與甲骨文和IBM的產品競爭。它將使用一種統一存儲概念,使數據的查找和存取更方便。在Windows和Unix平台的數據庫軟件市場上,甲骨文公司具有領先優勢,但通過在SQL Server中添加先進功能,微軟公司最近幾年也取得了較大進展。

  另外,微軟公司還將推出名為「最佳行為分析工具」的軟件,數據庫管理人員可以利用它優化數據庫的性能。該軟件在SQL Server 2000平台上運行,能夠向數據庫管理人員提供各方面的技巧,例如如何提高性能和如何更有效地完成數據備份等操作。

   「最佳行為分析工具」中還將包括「升級顧問」功能,它對數據庫軟件進行掃瞄,提醒SQL Server 2000用戶,要在SQL Server 2005上運行需要對軟件所作的修改。

Thursday, May 27, 2004

在.NET客戶端程序中使用多線程

資料來源: yesky

日期: 2004年5月26日


  通常認為在編寫程序中用到多線程是一個高級的編程任務,容易發生錯誤。在本月的欄目中,我將在一個Windows窗體應用程序中使用多線程,它具有實際的意義,同時盡量使事情簡單。我的目標是在一個普通的需求描述中用最好的辦法講解多線程;客戶仍然比較喜歡使用戶交互方式的應用程序。

  多線程通常和服務器端軟件,可擴展性及性能技術聯繫在一起。 然而,在微軟.NET框架中,許多服務器端應用程序都駐留在ASP.NET體系結構中。同樣,這些應用程序在邏輯上是單線程的, 因為IIS和ASP.NET在ASP.NET Web Form或Web服務程序中執行了許多或所有的多線程。 在ASP.NET應用程序中你一般可以忽略線程性。 這就是為什麼在.NET框架中,多線程更傾向於在客戶端使用的一個原因,比如在保證同用戶交互的同時而執行一個很長的操作。

  線程背景

  線程執行代碼。它們由操作系統實現,是CPU本身的一種抽像。許多系統都只有一個CPU, 線程是把CPU快速的處理能力分開而執行多個操作的一種方法,使它們看起來好像同步似的。即使一個系統由多個CPU, 但運行的線程一般要比處理器多。

  在一個Windows為基礎的應用程序中,每一個進程至少要有一個線程,它能夠執行機器語言指令。 一旦一個進程的所有線程都中止了,進程本身和它所佔用的資源將會被Windows清除。

  許多應用程序都被設計為單線程程序,這意味著該程序實現的進程從來不會有超過一個線程在執行,即使在系統中有多個同樣的處理在進行。一般一個進程不會關心繫統中其他進程的線程的執行。

  然而,在單個進程裡的所有線程不僅共享虛擬地址空間,而且許多進程級的資源也被共享, 比如文件和窗口句柄等。由於進程資源共享的特徵,一個線程必須考慮同一進程中其它線程正在做什麼。線程同步是在多線程的進程中保持各線程互不衝突的一門藝術。這也使得多線程比較困難。

  最好的方式是只有在需要時才使用多線程,盡量保持事情簡單。而且要避免線程同步的情況。在本欄目中,我將向你展示如何為一個普通的客戶應用程序做這些事情。

Friday, May 21, 2004

轉向還是駐足不前?你最關心的.NET問題

資料來源: CSDN

日期: 2004年5月13日


Windows平台將最終被.NET平台取代,這是微軟為開發者鋪下的一條未來之路。

我們是否應該跟進呢?在DOS遷移到Windows平台的過程中,很多軟件企業被淘汰。面對微軟描繪的.NET平台宏大前景,我們是應該恐懼呢、還是應該嗤之以鼻、抑或是迎頭趕上,轉向.NET?

.NET推出已經四週年。在這四年裡,有大批技術人員和一些企業轉向.NET,也有一些抱著觀望甚至鄙視的態度看待.NET。下面是一些典型的問題。對於.NET,相信你也有不少問題想問。以下我們節錄部份問題與大家分享。

一般典型問題

對於這些領域的開發者:

1 C++程序員
2 Java程序員
3 Delphi程序員
4 Web開發人員
5 企業項目開發人員
6 數據庫開發人員

有必要轉向.NET嗎?學習曲線如何?

對於企業應用:

1 企業開發項目是否應該選擇.NET?
2 已有J2EE平台企業,是否應該轉向.NET?
3 基於J2EE的企業平台,要轉移到.NET平台,整合成本有多大?
4 企業應用規模與平台選擇之間,是否有一種必然的聯繫?
5 .NET是一種具有可持續性和長遠發展的技術平台嗎?

對於軟件企業技術決策人員:

1 相對於Java,.NET是否真能降低開發成本、提高開發效率?
2 平台轉移成本(包括學習成本、軟件成本、客戶教育成本)到底有多大?
3 .NET平台可持續性-發展前景如何?

甲骨文投入.NET陣營 同「死敵」微軟全面合作

資料來源: 新浪科技

日期: 2004年5月21日


北京時間5月20日,微軟和甲骨文簽署了一項合作協議,旨在加強雙方在軟件開發方面的合作。根據該協議,甲骨文將加入微軟的Visua Studio合作夥伴計劃,並承諾將使自己的數據庫軟件更好的同微軟的開發工具兼容。

  甲骨文負責服務器技術部門的副總裁普萊姆-庫馬爾(Prem Kumar)表示,作為雙方合作的第一步,甲骨文將於今年底推出一款針對微軟Visual Studio.Net 2003開發工具的免費下載軟件,該軟件將大大方便基於Windows操作系統的軟件對Oracle數據庫進行讀寫。

  微軟同甲骨文的合作將對今後網絡應用程序的開發產生巨大的影響。此前大多數軟件廠商,如甲骨文、SAP、IBM和Sun都傾向於使用JAVA語言編寫網絡應用程序。為了同JAVA對抗,微軟開發出了相對應的編程技術Dotnet,並已經贏得了部分軟件開發商的支持。而甲骨文此次同微軟開展合作表明該公司已經最終決定投向Dotnet陣營。

  據悉,微軟還將在多個領域同甲骨文開展合作。甲骨文首席執行長拉裡-埃裡遜(Larry Ellison)透露,微軟和甲骨文甚至將聯合發佈廣告,以推廣在Windows操作系統上應用Oracle數據庫。埃裡遜在接受採訪時表示:「當微軟提出聯合發佈廣告的建議時,在場的很多人都驚呆了,要知道微軟的SQL Server數據庫正是我們的數據庫產品的最大競爭對手。」

  近年來,微軟為了改善同科技產業主要競爭對手的關係做出了不懈的努力,此次同甲骨文簽定合作協議表明微軟在這一方面又向前邁出了一大步。分析人士指出,企業之間長期爭鬥的最大受害者就是客戶,近些年來企業客戶要求不同廠商之間進行技術整合的呼聲越來越高。

  作為世界上最大的軟件開發商,微軟為了滿足客戶的需求,不得不坐下來同從前的死敵進行談判。說甲骨文是微軟的死敵毫不過分,因為埃裡遜從來都是最堅定的反微軟分子。一直以來,埃裡遜致力於推廣Oracle數據庫在Linux系統上的應用,希望這一源碼開放軟件有一天可以在企業市場取代微軟的Windows操作系統。除了甲骨文,微軟已經在去年夏天和前不久分別同IBM和SAP簽署了類似的合作協議。在上個月,微軟甚至同最大的死敵Sun達成和解協議,同意向其支付19.5億美元以結束雙方的長期糾紛。

Thursday, May 20, 2004

利用ASP.NET顯示Excel檔案

資料來源: 炎黃數據網


  Excel是Microsoft公司的Office套件中的一種軟件,他主要用來處理電子表格。Excel以界面友好、處理數據迅速等優點獲得廣大辦公人員的歡迎。所以很多文檔便以Excel的形式保存下來。對於程序設計人員,在程序設計中,我們往往要訪問Excel文件來獲得數據。但由於Excel文件不是標準數據庫,因此運用程序語言來訪問它會遇到困難。

  ASP.NET是Microsoft公司極力推薦的一個產品,作為.NET FrameWork框架中的一個重要組成部分,他主要用於Web設計。全新的設計理念、強大功能使得ASP.NET正在受到越來越多的程序設計人員的歡迎。也正是ASP.NET的強大功能,才使得訪問Excel文檔成為了一件相對簡單的事情。以下我們將具體說明ASP.NET是如何訪問Excel文檔的。

一 程序設計及運行環境

  (1) Windows 2000 Professional
  (2) .Net Framework SDK Beta 2
  (3) Microsoft Access Data Component 2.6 (MADC2.6)

二 具體的設計思路

  (1) 獲得要訪問的Excel文件名稱
  (2) 讀出Excel文件的內容
  (3) 用DataGrid格式顯示出來

三 程序設計的關鍵步驟

  (1) 為了方便,我們把Excel文件放在C drive (C:\),名稱為test.xls。
  (2) 為了讀取Excel文件,我們必須瞭解一個名稱空間(Namespace) - System.Data.Oledb。

  System.Data.Oledb中有三個對像分別是OleDbConnection,OleDbCommand,OledbDataAdapter。我們就是通過他們來訪問Excel文件。

  <1> OleDbConnection對象主要是提供連接方式。
  <2> OleDbCommand對象提供對目標的具體操作方法。
  <3> OledbDataAdapter對象是對對像進行不同操作後的返回數據集。

  (3) 讀出Excel文件內容後,我們將它使用DataGrid顯示出來。為了顯示,我們還要用另外一個名稱空間 - System.Data。他裡面有個對象DataSet,他可以和DataGrid進行數據幫定,從而以DataGrid形式顯示數據。而此時讀出的數據集並不是以對像DataSet來表現的,這就需要進行轉換,好在OledbDataAdapter對像提供了一個Fill方法來完成轉換。具體程序如下:

Dim myDataset As New DataSet()
myData.Fill(myDataset)
//完成從OledbDataAdapter對像到DataSet的轉換
DataGrid1.DataSource = myDataset.Tables(0).DefaultView
DataGrid1.DataBind() //完成數據幫定,顯示數據

四 具體的源代碼:

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Oledb" %>
<script language="VB" runat="server">

Sub Page_Load(sender As Object, e As EventArgs)
Dim myDataset As New DataSet()
Dim myOleDbConnection As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\2.xls;" & _
"Extended Properties=""Excel 8.0;""")

Dim myOleDbCommand As OleDbCommand = New OleDbCommand("SELECT * FROM [Sheet1$]",myOleDbConnection)

Dim myData As OledbDataAdapter= New OledbDataAdapter(myOleDbCommand)
myData.Fill(myDataset)

DataGrid1.DataSource = myDataset.Tables(0).DefaultView
DataGrid1.DataBind()
End Sub
</script>

<html>
<head></head>
<body>
<asp:Label id="L1" runat="server">讀取C drive的test.xls文件</asp:label>
<asp:DataGrid id=DataGrid1 runat="server"/>
</body>
</html>

五 總結

  至此一個讀取Excel文件的ASP.NET程序便完成了,如果你的機器達到以上提到的運行環境,那你只需建立一個指向此ASP.NET程序的Web虛擬目錄,隨便將一個Excel文件放到C drive,在瀏覽器運行一下程序,便可以看到Excel文件內容了。

領略java.util.Canlendar的優點

資料來源: 炎黃數據網


  自JDK1.1引入Calendar類別(Class),它是另一種不同類型的日期處理類別。想像它是一個掛在牆壁上的典型日曆,有許多日期和頁數可以翻閱。

  Calendar類別的基礎即有變量域的觀念。每個類別元素都是域,並且這些域在Calendar類中表現為靜態變量。這些變量域,可以通過get/set類方法來獲得或者設置域值。

  // 獲得默認的Calendar實例,給它設置時間
  Calendar cal = Calendar.getInstance();
  intyear = cal.get(Calendar.YEAR);
  cal.set(Calendar.MONTH,Calendar.NOVEMBER);

  Calendar類別的add和roll方法提供在日期之間轉換的能力。每個方法都由一個參數變量和一個參數值來修改,通過這個可為正數或負數的參數值來修改它。僅僅不同的是,add方法可以向高階的變量域溢出。例如,如果從九月三日向後倒退三天,將得到:

  Calendar cal = Calendar.getInstance();
  cal.add(Calendar.DATE,-3);
  // 值為: 星期六 八月 31 23:43:19 EDT 2002

  然而使用roll方法向後回滾三天得出:

  Calendar cal = Calendar.getInstance();
  cal.roll(Calendar.DATE,-3);
  // 值為: 星期一 九月 30 23:43:47 EDT 2002

  這就是為什麼通常主要使用add方法的原因。

  還有一個隱藏在最通用的Calendar的子類中的功能性方法--isLeapYear(判斷是否為閏年)方法。

  Calendar cal = Calendar.getInstance();
  boolean leapYear = ( (GregorianCalendar)cal ).isLeapYear(2002);
  // 這個值是false

  儘管它是一個實例方法,isLeapYear方法的行為表現像靜態方法,需要提供年份的參數傳值給日曆。

  通過接管日期修改的功能,java.util.Calendar類別看上去更像是Data類別的複雜版本。但是它還提供額外的功能,更不用說它的國際化支持,使得它值得擁有學習的難度曲線。

Wednesday, May 19, 2004

Java JDK安裝與執行

資料來源: 不詳


一 前言

   JDK(Java Development Kit)是一切Java應用程序的基礎,可以說,所有Java應用程序是構建在這個之上的。它是一組API,也可以說是一些Java Class。現在我們以Windows 2000和JDK 1.3講解JDK的安裝與執行。


二 下載,安裝

   到Java官方網站:java.sun.com下載JDK程式。然後在Windows下,直接運行.exe文件,安裝到一個目錄,我這裡用F:\jdk13作為例子。

三 配置

   在桌面上選擇「我的電腦」(技右鍵) ->「高級」->「環境變量」
   在「系統變量」->「新建」
   在變量名中輸入:CLASSPATH,變量值中輸入:
F:\JDK13\LIB\dt.JAR;F:\JDK13\LIB\TOOLS.JAR;F:\JDK13\BIN 然後按「確定」

四 測試

   (1)使用文本編輯器複製以下的Java程序:


public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}

   這個例子就是著名的「Hello World」,它的功能就是顯示「Hello World」。

   注意:該文件名稱必須為「HelloWorld.java」,大小寫也區分。細心的朋友會注意到與public class後的名字一樣的。

   (2)編譯:在Dos命令提示符下執行:(注意大小寫)

      javac HelloWorld.java

      如果正常的話,將生成HelloWorld.class文件。

   (3)運行:在Dos命令提示符下執行:(注意大小寫)

      java HelloWorld


這裡有一個java初學者很有可能遇到的問題,就是輸入:
   java HelloWorld.class

多了後面的.class,一定要注意,否則會出現下面的錯誤:
   Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld/class
(本人猜想,是不是java翻譯「.」的時候換成了「/」,或是其他不知道的原因)



好了,運行java HelloWorld應該會出現偉大的「Hello World」了。

技術分析 - .NET的優勢與劣勢

資料來源: 日經BP


  .NET Framework自2002年3月在日本國內上市以來,至今已一年有餘。據估計標準集成.NET Framework的OS - Windows Server 2003將於2003年5月在日本上市。隨著.NET環境的完善,作為抗衡Java系統構築的基礎,開發人員需要認識.NET Framework。下面筆者就來分析一下.NET的優勢與劣勢。

XML Web服務並未成為普及.NET的導火索

  此前人們一直在想:「對.NET來說,是否存在不同於Java的、獨特的應用領域和市場?」。

  業內普遍認為,微軟新一代系統構築環境--.NET Framework是在研究Java的基礎上開發出來的。不僅功能和架構相似,而且由於是在Java之後開發出來的,因此Java所沒有的功能更是隨處可見。比如在Web應用中實現事件驅動型應用程序功能等。

  不過雖說如此,如果只是告訴用戶「.NET Framework比Java好得多」,那麼Java開發人員特意轉而使用.NET Framework的動機不會太強。

  由於Java已經先行積累了廣泛的應用成果,積累了很多足以彌補其缺點的經驗以及平台工具。只要不出現Java難以應用的用途和市場,那麼.NET Framework便很難阻止Java進一步的發展。

.NET的優勢:企業信息系統部門可自行編程

  剛開始,微軟將易於開發XML Web服務作為.NET的優勢並加以宣傳。以XML Web服務為前提而設計的.NET與Web服務具有極高的親和性。但XML Web服務的產生卻比較晚。儘管業內對它的期待和關注程度較高,但由於可充分利用XML Web服務的「可賺錢的」業務模式尚未確立,所以目前與Web站點相比其市場仍微不足道。其中,Java方面也正在加緊完善便於開發XML Web服務的功能。

  那麼,是否存在.NET的獨特用途呢?筆者通過採訪所得到的一個答案是:.NET開發工具--Visual Studo.NET的易用性使得它在Java很難實現的「用戶企業(信息系統部門)也可編程的系統」上超人一頭。筆者認為可能還存在其他這樣的領域。當然,儘管.NET的標準語言VB.NET和C#都與Java一樣複雜,但是Visual Studo.NET卻很好地消除了這種複雜性。

  比如,日本蘭碧兒(NOEVIR)只靠自己的信息系統部門就完成了Web代理店支援系統的從企劃到編程的全部工作。日本一家系統集成商曾表示,此前導入Java系統的用戶企業中「選用.NET的信息系統部門便有望自行開發或對系統進行修改」。

  筆者認為,由於Java本身較為複雜,且不易學習掌握,因此「用戶企業只負責企劃,而將編程工作完全委託給集成商的現象非常普遍」。

  在COBOL和VB(客戶商/服務器)的全盛時期,信息系統部門自己編程、對系統進行部分修改和功能追加是很正常的事情。如果連細小的系統修改都要外包,那麼系統的維護成本自然很高,因此便失去了靈活性。甚至還有可能削弱信息系統部門的業務能力。說到企劃,聽起來好聽,但如果連大體的情況也不瞭解,恐怕與開發商交涉都很困難。這也許是Java的一個「弊端」吧。

  此外,「成本比UNIX低」以及「可以充分利用Windows技術資源」等原因也在加速.NET Framework的普及。作為客戶端/服務器系統的開發環境,VB的後續語言--.NET中的「Windows Form」最具競爭力。越來越多的系統集成商開始選擇這一工具構築系統。

.NET的劣勢:應用成果少、開放性差

  反過來說,.NET的劣勢則在於在大型系統中的應用成果少、缺乏「開放性」。

  對於應用成果來說,今後其數量將會不斷增加。據悉,日本Kabu.com證券將在2003年度內利用.NET Framework全面重新構築該公司目前利用ASP構築的系統。

  在「開放性」方面又將會如何呢?Java普及的主要因素很多,但筆者認為其中最關鍵的在於「開放性」。由於可在各種OS上運行,而且很多開發商還提供了Web應用服務器和開發工具,因此用戶可以隨意選擇。而開發商則通過在功能和性能方面相互競爭來不斷提高產品水平。

  而.NET Framework怎麼樣呢?只要想應用於業務系統中,其OS實際上則只能限於Windows。儘管微軟已經提供了FreeBSD版.NET Framework,但其目的僅限於學術研究。

  今後人們所能期待的是Mono Project。Mono Project是指完全獨立於微軟、正在開發開放源碼版.NET Framework的計劃。主導該計劃的是一家名為Ximian的Linux企業,這家公司成功地開發了Linux標準桌面環境GNOME,目前已受到業界的廣泛關注。

  2003年1月該計劃還發佈了運行Web應用程序ASP.NET的Web服務軟件XSP。儘管很多功能仍在開發中,但目前開發工作進展順利。目前正面向Linux和Windows進行開發。據Mono Project稱,由於該軟件依賴於Linux的部分不多,因此能夠輕鬆地向其他UNIX OS移植。

  能否形成像Mono一樣的開放環境將是.NET普及的關鍵所在。微軟目前已經向業界標準化機構ECMA(歐洲計算機製造商協會)提交了.NET標準,此舉表明微軟將採用開放標準。但目前尚不清楚此舉只是單純的一種姿態,還是真的要開放.NET。這些有待微軟今後是否能夠繼續公開足夠的相關標準和信息了。

Tuesday, May 18, 2004

Javasp 部落正式建立

Javasp 部落正式建立,這是一個關於Java與.NET技術的部落.