999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

DOTNET及C#在稱重計(jì)量領(lǐng)域的上位軟件系統(tǒng)的應(yīng)用研究

2011-01-01 00:00:00韓鵬
軟件工程 2011年6期

DOTNET And C# Research In The PC Software System Of The Field Of Weighed Measurement

摘要:稱重計(jì)量領(lǐng)域是一個(gè)廣泛地應(yīng)用領(lǐng)域,在交通、化工、礦場、油氣田、港口等等不同的場合中都發(fā)揮著舉足輕重的作用,在工藝計(jì)量和過程控制中更離不開稱重計(jì)量,生產(chǎn)過程自動(dòng)化水平很大程度取決于計(jì)量稱重技術(shù)的發(fā)展。本文通過對(duì)當(dāng)前windows環(huán)境下的全新變革的討論,及對(duì)新興的開發(fā)語言C#和.net全新平臺(tái)的詳盡分析,闡述了稱重計(jì)量領(lǐng)域的軟件系統(tǒng)在新形勢下面臨的問題和機(jī)遇,及通過C#和.net這些新技術(shù)如何持續(xù)應(yīng)對(duì)未來的需求的方法和途徑。

關(guān)鍵詞:C#,Java;net FrameWork;汽車衡;軟件工程;模塊化;軟件復(fù)用

1 概述

稱重計(jì)量領(lǐng)域是一個(gè)應(yīng)用廣泛的領(lǐng)域,在交通、化工、礦場、油氣田、港口等等不同的場合中都發(fā)揮著舉足輕重的作用,在工藝計(jì)量和過程控制中更離不開稱重計(jì)量,生產(chǎn)過程自動(dòng)化水平很大程度取決于計(jì)量稱重技術(shù)的發(fā)展。稱重計(jì)量不僅僅是對(duì)相關(guān)物品進(jìn)行稱重,它還包括了硬件控制、各種數(shù)據(jù)采集和管理、系統(tǒng)監(jiān)測及網(wǎng)絡(luò)信息共享,是一套功能齊備的、以稱重信息為中心的綜合應(yīng)用系統(tǒng)。

我國各行對(duì)稱重計(jì)量領(lǐng)域的需求增多,尤其是交通方面和能源領(lǐng)域,這幾年的需求一直有增無減。據(jù)不完全統(tǒng)計(jì),需求以每年12%的速度增長(參見《中國稱重計(jì)量儀表市場供需狀況研究》報(bào)告)。四十四所也正抓住這個(gè)良好時(shí)機(jī),簽訂了大量的與衡器相關(guān)的項(xiàng)目。在這種狀況下,對(duì)稱重計(jì)量領(lǐng)域的軟件系統(tǒng)就提出了更高的要求。如,更加要求軟件的正規(guī)化,要求具有一定靈活性和良好的構(gòu)架,以滿足當(dāng)前稱重計(jì)量領(lǐng)域的軟件系統(tǒng)的迫切需求。

本文就當(dāng)前微軟公司近來推出的C#強(qiáng)大的編程設(shè)計(jì)語言,和面向未來的.net的戰(zhàn)略計(jì)劃為出發(fā)點(diǎn),深入探討一下對(duì)稱重計(jì)量領(lǐng)域的軟件開發(fā)所帶來的巨大意義。

2 稱重領(lǐng)域的軟件系統(tǒng)分析

根據(jù)長期以來在稱重計(jì)量領(lǐng)域軟件應(yīng)用方面的研發(fā)經(jīng)驗(yàn),及對(duì)其發(fā)展方面的深入調(diào)研,我們可以對(duì)該領(lǐng)域的一些特點(diǎn)進(jìn)行總結(jié),這些特點(diǎn)基本上反映了當(dāng)前稱重計(jì)量領(lǐng)域所具有的典型特色和所面臨的問題。

2.1 快速開發(fā),和快速的維護(hù)

由于稱重計(jì)量市場的戰(zhàn)略需要,要求能在短時(shí)間內(nèi)完成和滿足新簽訂項(xiàng)目的需求。因此需要進(jìn)行快速的開發(fā)和調(diào)試,其中很大一部分是在原有的軟件基礎(chǔ)上進(jìn)行修改。除了進(jìn)行必要的軟件配置管理外,還需要開發(fā)工具的快速性和高效性,能以最小的勞動(dòng)量實(shí)現(xiàn)所需要的功能和修改,以實(shí)現(xiàn)同步滿足稱重計(jì)量項(xiàng)目對(duì)上位軟件的需要。

2.2 模塊化,靈活組合功能,以滿足不同的需求

由于稱重計(jì)量領(lǐng)域的所有項(xiàng)目具有一定的相似性,有很大部分是相同的。如架構(gòu)基本相同,都需要顯示界面、數(shù)據(jù)庫管理、流程操作界面;顯示界面基本上要顯示監(jiān)視視頻、稱重結(jié)果、硬件控制等等;流程基本上都是刷卡、稱重、顯示或音頻提示、打印和存入數(shù)據(jù)庫;數(shù)據(jù)庫大部分需要的年、季、月統(tǒng)計(jì)和以主要關(guān)鍵字段為條件的查詢,基本上都有用戶管理、班組管理等等。因此,為了不重復(fù)開發(fā)已有的功能,需要采用模塊化的軟件開發(fā)方式,把經(jīng)常變動(dòng)的部分設(shè)計(jì)成模塊,根據(jù)項(xiàng)目的要求進(jìn)行組合,以達(dá)到復(fù)用和節(jié)約開發(fā)成本的目的。

2.3 友好的界面

操作軟件的用戶大多數(shù)是對(duì)計(jì)算機(jī)了解不深,學(xué)歷不高的一般用戶。為了避免對(duì)軟件操作的理解和學(xué)習(xí)的困難,避免誤操作,同時(shí)為了提高軟件操作的效率,需要軟件的界面具有友好性和親和性,使軟件對(duì)新用戶能盡快上手,并能方便地使用各種基本功能。

2.4 和大量的硬件打交道,需要一定的速度

稱重計(jì)量的軟件的一個(gè)特點(diǎn)是它所面對(duì)的硬件種類比較繁多,包括了稱重儀表、讀卡器、紅綠燈、八路保警器、紅外對(duì)射、光幕、顯示大屏幕、語音系統(tǒng)、道閘、視頻系統(tǒng)、車號(hào)識(shí)別系統(tǒng)、打印部分等。當(dāng)這些硬件同時(shí)工作時(shí),就要求開發(fā)語言開發(fā)的軟件具有一定的執(zhí)行效率,以保證流程順暢的運(yùn)行和及時(shí)反應(yīng),使軟件不會(huì)延誤整個(gè)稱重過程的進(jìn)行。

2.5 面向未來的運(yùn)作環(huán)境

在計(jì)算機(jī)方面,這幾年正發(fā)生著深刻的變化。Windows7的推出,.net戰(zhàn)略的實(shí)施,電腦硬件的高速發(fā)展,平板電腦和手機(jī)的高度智能化,這一切都給軟件提出了更高的要求,需要向未來兼容,對(duì)新一輪的計(jì)算機(jī)的運(yùn)行平臺(tái)的更新?lián)Q代做好準(zhǔn)備。

2.6 面向網(wǎng)絡(luò)

未來是網(wǎng)絡(luò)化的時(shí)代,稱重計(jì)量系統(tǒng)也必將向WiFi、物流網(wǎng)、云計(jì)算、移動(dòng)終端和各種形式的遠(yuǎn)程控制等等這些方面邁進(jìn),而這些技術(shù)無一例外根植于網(wǎng)絡(luò)。因此,稱重計(jì)量領(lǐng)域的在未來的一個(gè)重心就是網(wǎng)絡(luò)化,以網(wǎng)絡(luò)為核心,實(shí)現(xiàn)信息的快速共享和自由傳送。

3 舊軟件系統(tǒng)的弊端

3.1 開發(fā)效率低下

稱重計(jì)量領(lǐng)域的軟件系統(tǒng)的設(shè)計(jì)語言,大量地采用地是Visual C++和Borland C++,及Delphi等等開發(fā)語言,實(shí)際上Windows下的商業(yè)軟件也大部分是基于這些開發(fā)語言進(jìn)行開發(fā)的。這些語言的一個(gè)特點(diǎn)是,開發(fā)出的軟件執(zhí)行速率較快。它們成功地實(shí)現(xiàn)了軟件的高的執(zhí)行效率,使語言接近系統(tǒng)底層,語法精簡和干練,但是它們實(shí)現(xiàn)一個(gè)功能,卻需要大量的較低層化的編程,從而影響了開發(fā)效率。執(zhí)行效率和開發(fā)效率是軟件開發(fā)中的矛盾之處。

3.2 維護(hù)比較困難

正是上述提及的開發(fā)語言相對(duì)比較“低級(jí)”具有更低層的操作能力,從而在開發(fā)過程中更容易出現(xiàn)危險(xiǎn)的錯(cuò)誤,使軟件可靠運(yùn)行性不高,一旦出現(xiàn)問題則需要更多的時(shí)間去尋找問題根源。這是因?yàn)樗鼈內(nèi)鄙俑呒?jí)語言的安全性、科學(xué)性、智能化,和對(duì)低層良好的封閉性。比如,C和C++中的指針問題,這個(gè)特性能給軟件帶來非常高效的執(zhí)行速度,但是卻帶來極大的問題。一旦軟件出現(xiàn)問題,軟件就有可能面臨崩潰,而且問題點(diǎn)也比較隱蔽,不易發(fā)現(xiàn)。原有開發(fā)語言的這些特點(diǎn)造成了維護(hù)的難度和成本的增加。

3.3 不兼容新型操作系統(tǒng)

由于微軟公司的戰(zhàn)略技術(shù),新一代操作系統(tǒng)Windows Vista和Windows7及以后更高版本的系統(tǒng),將不能很好的支持Visual C++和Borland C++等等這些傳統(tǒng)開發(fā)語言開發(fā)的軟件,也就是說,這些開發(fā)語言將面臨不能兼容新操作系統(tǒng)的尷尬局面。

3.4 界面陳舊

原有的傳統(tǒng)開發(fā)語言基本上是基于WindowsXP甚至是Windows98的界面顯示特點(diǎn)。這些10年前的界面特色,已經(jīng)顯得陳舊,不能滿足當(dāng)前的審美取向,從而會(huì)嚴(yán)重影響軟件的包裝和形象。如果刻意去設(shè)計(jì)良好的界面,又會(huì)增加額外的開發(fā)進(jìn)程,在一定程度上,增加了軟件的復(fù)雜程度。

3.5 新技術(shù)支撐不足

對(duì)于目前的新興的軟件技術(shù),比如.net、Ajax、工作流、云計(jì)算、SOA等等,原有的開發(fā)工具都不能很好的支持,甚至是不能支持,這是由于先天的設(shè)計(jì)造成的。雖然現(xiàn)出針對(duì)這些開發(fā)工具出現(xiàn)了很多面向新技術(shù)的插件和類庫,以使這些舊的開發(fā)工具也能支持新技術(shù)的應(yīng)用,但是這畢竟是一種修補(bǔ),勉強(qiáng)兼容新的技術(shù)要求,同時(shí)這些修補(bǔ)也多出于一些愛好家之手,得不到官方的技術(shù)支持。

4 新興的C#與.net

4.1 簡介

2000年6月,微軟官方正式發(fā)布了Microsoft.NET(也稱為DotNet)平臺(tái)戰(zhàn)略,該平臺(tái)是是微軟的新的因特網(wǎng)和Web戰(zhàn)略,未來微軟所有產(chǎn)品都將基于這個(gè)架構(gòu),它是一個(gè)基于因特網(wǎng)、WEB及桌面系統(tǒng)的全新架構(gòu),用于通用服務(wù)(universal services),可運(yùn)行于任何平臺(tái)上的任何瀏覽器中,并基于最新的 web 標(biāo)準(zhǔn)。

C#是Microsoft在2000年7月推出.NET Framework的第1版時(shí)提供的一種全新語言。C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏和模版,不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運(yùn)行效率,及類似于Java的語法特點(diǎn),以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持的特點(diǎn),并經(jīng)過十年的發(fā)展,現(xiàn)在已成為.NET開發(fā)的首選語言。

4.2 C#與.net的特點(diǎn)

4.2.1 先進(jìn)性

具有C++和C的靈活性,和非常接近它們的執(zhí)行效率,具有高級(jí)語言的開發(fā)效率,具有龐大和高效率的運(yùn)行庫(.net Framework平臺(tái)),可以說是微軟集各種開發(fā)語言之大成。

在過去的二十年內(nèi),C和C++已經(jīng)成為廣泛的應(yīng)用在商用軟件的開發(fā)中的開發(fā)語言。但是C和C++都提供了一些容易使開發(fā)者產(chǎn)生錯(cuò)誤的特性,也可以說C和C++的靈活性是犧牲了開發(fā)效率。如果和其他的開發(fā)語言相比(比如說VB),相同功能的C/C++軟件通常會(huì)需要更長的開發(fā)周期。正是由于C/C++開發(fā)的復(fù)雜性和需要較長的開發(fā)周期,所以許多C/C++開發(fā)人員都在尋找一種可以在功能和開發(fā)效率間提高更多平衡的開發(fā)語言。

C#的出現(xiàn)解決了這個(gè)問題。它是一種先進(jìn)的、面向?qū)ο蟮恼Z言,通過C#可以讓開發(fā)人員快速的建立大范圍的基于微軟網(wǎng)絡(luò)平臺(tái)的應(yīng)用,并且提供大量的開發(fā)工具和服務(wù)幫助開發(fā)人員開發(fā)基于計(jì)算和通信的各種應(yīng)用。C#可以為C/C++開發(fā)人員提供快速的開發(fā)手段而不需要犧牲任何C/C++語言的特點(diǎn)/優(yōu)點(diǎn)。從繼承角度來看,C#在更高層次上重新實(shí)現(xiàn)了C/C++,熟悉C/C++開發(fā)的人員可以很快的轉(zhuǎn)變?yōu)镃#開發(fā)人員。

4.2.2 網(wǎng)絡(luò)化

C#是微軟公司為了與JAVA語言進(jìn)行競爭而研發(fā)的新型語言,JAVA是網(wǎng)絡(luò)編程中最重要的語言,其J2EE具有龐大、完整的分布式企業(yè)級(jí)應(yīng)用程序解決方案技術(shù)。為此,C#也必須具有該方面的能力才能與JAVA進(jìn)行同級(jí)別的競爭。C#天生就具有了網(wǎng)絡(luò)技術(shù)和運(yùn)用的能力,對(duì)網(wǎng)絡(luò)的功能的實(shí)現(xiàn)具有更強(qiáng)大的能力。C#是后起之秀,它與WEB開發(fā)的結(jié)合,高于其它語言尤其是Java語言。C#開發(fā)者可以方便的在網(wǎng)絡(luò)平臺(tái)上擴(kuò)展自己的應(yīng)用。C#可以將任何組件轉(zhuǎn)變?yōu)閃EB服務(wù),并且可以被運(yùn)行于Internet上的任何平臺(tái)的任何應(yīng)用調(diào)用,重要的是C#對(duì)這一特性提供了內(nèi)置的支持。更重要的一點(diǎn),WEB服務(wù)框架可以讓任何WEB服務(wù)都看起來類似于C#的內(nèi)置對(duì)象,所以可以讓開發(fā)人員在開發(fā)過程中繼續(xù)使用他們已經(jīng)具備的面向?qū)ο蟮拈_發(fā)方法和技巧。

4.2.3 復(fù)用技術(shù)的實(shí)現(xiàn)者

面對(duì)日益復(fù)雜的軟件系統(tǒng)和軟件需求,軟件復(fù)用被認(rèn)為是解決“軟件危機(jī)”、提高軟件開發(fā)效率和質(zhì)量、實(shí)現(xiàn)軟件“批量化”生產(chǎn)方式的重要途徑之一。同時(shí)軟件復(fù)用的研究和實(shí)踐表明,特定領(lǐng)域的軟件復(fù)用活動(dòng)相對(duì)容易取得成功。這里的領(lǐng)域是指一組具有相似和相近軟件需求的應(yīng)用系統(tǒng)所覆蓋的功能區(qū)域。領(lǐng)域的內(nèi)聚性(領(lǐng)域知識(shí)邏輯上的緊密相關(guān)性)和穩(wěn)定性(在一定時(shí)間內(nèi),領(lǐng)域知識(shí)不會(huì)發(fā)生劇烈的變化)為軟件復(fù)用活動(dòng)提供了可供復(fù)用的軟件資產(chǎn)和潛在的經(jīng)濟(jì)利益,使得特定領(lǐng)域的軟件復(fù)用相對(duì)容易獲得成功。

C#是一個(gè)完全的、純粹的面向?qū)ο蟮脑O(shè)計(jì)語言,因此具有模塊化、結(jié)構(gòu)化的顯著特點(diǎn),對(duì)于實(shí)現(xiàn)技術(shù)和成果的復(fù)用具有強(qiáng)大的優(yōu)勢。同時(shí),C#泛函、特殊的dll方式等等技術(shù)也為成果復(fù)用提供了更有利的方式。

4.2.4 敏捷開發(fā)

C#所在的Visual Studio集成環(huán)境中自帶了流程模板,相比較其他所謂敏捷工程實(shí)踐性更強(qiáng),并且Visual Studio集成了編碼以外的版本控制、缺陷管理、UML建模等,以及專門用作用于測試驅(qū)動(dòng)開發(fā)的單元測試模板。Visual Studio為軟件開發(fā)項(xiàng)目流程中不同角色的人員提供相應(yīng)的工具,以Team Foundation Server為核心,將不同角色和工具整合在一起,這樣不但增強(qiáng)了軟件開發(fā)團(tuán)隊(duì)中的溝通與協(xié)作,更能方便實(shí)現(xiàn)完整的使用程序生命周期管理,在流程開發(fā)中使開發(fā)團(tuán)隊(duì)以及在整個(gè)開可預(yù)見性發(fā)流程中確保更高和更好的質(zhì)量。而且,Visual Studio支持統(tǒng)一建模語言UML及特定領(lǐng)域語言DSL,可以讓開發(fā)團(tuán)隊(duì)各個(gè)人員(.NET項(xiàng)目管理人員、軟件架構(gòu)師或者開發(fā)人員)輕松可以直接執(zhí)行軟件架構(gòu)的構(gòu)建。

從上文分析可以看出,C#和其編程環(huán)境中已經(jīng)為敏捷開發(fā)做了大量的準(zhǔn)備,完全能夠?qū)崿F(xiàn)軟件快速、高質(zhì)量的開發(fā)。

4.2.5 完全適應(yīng)未來環(huán)境

正如前文分析,由于.ne tFramework是作為從Windows Vista開始未來所有操作系統(tǒng)的低層平臺(tái),所以C#具有完全的兼容性,也是未來微軟的操作系統(tǒng)兼容最好的開發(fā)語言。

5 應(yīng)用情況

通過對(duì)C#設(shè)計(jì)語言與.net平臺(tái)的分析可以看出,在以Windows為主要操作系統(tǒng)下,它們是當(dāng)前最佳的選擇,因?yàn)樗鼈兊奶攸c(diǎn)可以滿足計(jì)重稱量領(lǐng)域的軟件設(shè)計(jì)需要,能夠適應(yīng)該領(lǐng)域的發(fā)展方向。以下通過稱量汽車衡器類的項(xiàng)目來說明C#及.net在計(jì)重稱量領(lǐng)域的應(yīng)用情況。

5.1 應(yīng)用簡介

由于汽車衡項(xiàng)目開發(fā)的需要,需要開發(fā)多用途、多接口的計(jì)重軟件,需要多稱量平臺(tái)和靈活的模塊組合模式,即以模塊化思想,以面向汽車衡領(lǐng)域?yàn)槟繕?biāo),開發(fā)出具有可方便調(diào)整和擴(kuò)展、在硬件、報(bào)表、流程等等方面可組合和設(shè)計(jì)的新型的汽車衡系統(tǒng)。

5.2 系統(tǒng)結(jié)構(gòu)

汽車衡項(xiàng)目的系統(tǒng)結(jié)構(gòu)如下所示:

從該系統(tǒng)的結(jié)構(gòu)中可以看出,該項(xiàng)目完全是以模塊化實(shí)現(xiàn)的,并按功能可以大致分為五個(gè)板塊:主控、硬件、流程、數(shù)據(jù)庫和網(wǎng)絡(luò)板塊。每個(gè)板塊又有各自相關(guān)的模塊。

5.3 C#的實(shí)現(xiàn)

5.3.1 命名空間劃分板塊

C#中的命名空間(namespace)是一種頂級(jí)聲明,軟件的其它所有部分都在命名空間中,它提供了一種從邏輯上組織信息的方式,有助于功能的規(guī)整和系統(tǒng)的模塊化,防止命名沖突。C#的命名空間是劃分功能類型的工具,在.net framework平臺(tái)中,有定義好的數(shù)以千計(jì)的各種類型的命名空間,每個(gè)命名空間中又包括和該命名空間的含義相關(guān)的各種類。

在本項(xiàng)目中,可以利用C#的命名空間來實(shí)現(xiàn)每個(gè)板塊,每個(gè)板塊可以看成是一組相同功能和模塊的組合,利用命名空間就可以實(shí)現(xiàn)這樣的功能和模塊組合。

5.3.2 類實(shí)現(xiàn)模塊

C#中的類與C++時(shí)代的類有比較大的不同。C#是完全面向?qū)ο蟮拈_發(fā)語言,它的所有代碼是由一個(gè)個(gè)類實(shí)現(xiàn)。和C++比,C#中的類又多了更多的特性,比如屬性和字段分開、擴(kuò)展方法、事件、自動(dòng)屬性、對(duì)象初始化器、密封、抽象、分部、索引器等等,這些新特性,使類具有更強(qiáng)大的表現(xiàn)性,能更準(zhǔn)確地用代碼實(shí)現(xiàn)一件事物。

因此可以用C#中的強(qiáng)大的類來實(shí)現(xiàn)模塊。它能實(shí)現(xiàn)一批面向某一應(yīng)用的函數(shù)(方法)和屬性(及字段)的組合。模塊的屬性就是類的屬性、字段,模塊的接口就是類中的函數(shù)(方法)。用C#中的類來實(shí)現(xiàn)模塊,可以完整和準(zhǔn)確地實(shí)現(xiàn)模塊的功能,體現(xiàn)了模塊的內(nèi)聚性。

5.3.3 外部模塊實(shí)現(xiàn)組合

為了方便組合,有很多模塊是要根據(jù)項(xiàng)目進(jìn)行增減的,也就是說這些模塊是活動(dòng)的,是可以由甚至是用戶來進(jìn)行組合的。為此,就需要以單獨(dú)文件存在的外部模塊來完成。一般是以動(dòng)態(tài)鏈接庫的方式來實(shí)現(xiàn)。C#可以實(shí)現(xiàn)兩種動(dòng)態(tài)鏈接庫方式:一種是標(biāo)準(zhǔn)的動(dòng)態(tài)鏈接庫(dll),是各種設(shè)計(jì)語言之間兼容的方式。因此,用其它語言開發(fā)的動(dòng)態(tài)鏈接庫(模塊)可以采用這種方式加入到系統(tǒng)來,比如項(xiàng)目中的硬件模塊是用Borland C++ Builder和Visual C++開發(fā)的,通過標(biāo)準(zhǔn)動(dòng)態(tài)鏈接庫方式加入到硬件板塊中;另一種是C#新制訂的標(biāo)準(zhǔn),通過這種新標(biāo)準(zhǔn),可以非常方便的調(diào)用C#自己開發(fā)的外部模塊。

5.3.4 消息交互

C#可以實(shí)現(xiàn)Windows下的所有信息交互方式,例如Pipe管道、消息傳遞、文件映射、Socket等等。

在本項(xiàng)目中,采用消息方式來實(shí)現(xiàn)各個(gè)模塊之間的信息交互。例如在初始化時(shí)的流程如下:

模塊之間必然存在各種交互和互動(dòng),由于微軟公司在其dotnet底層中,針對(duì)其Windows操作系統(tǒng)整合和封裝了全部的系統(tǒng)接口(API),因此,作為dotnet的御用語言C#也就能輕松的調(diào)用這些功能,甚至是直接調(diào)用系統(tǒng)的API接口,這樣,對(duì)本項(xiàng)目中的模塊之間的通訊提供了全面的支持。

例如本例中的消息,就直接采用了系統(tǒng)的API接口,常規(guī)和字符串方式的聲明分別如下:

[DllImport(\"User32.dll\", EntryPoint = \"SendMessage\")]

private static extern int SendMessage(IntPtr hWnd, uint Msg, uint wParam, int lParam);

[DllImport(\"User32.dll\", EntryPoint = \"SendMessage\")]

private static extern int SendMessage2(

IntPtr hWnd,

uint Msg,

int wParam,

ref _COPYDATASTRUCT lParam );

使用方法,示例如下(aOrderID和aPara為發(fā)送的信息):

SendMessage(aHandle, WM_APP, aOrderID, aPara);

5.4 項(xiàng)目的設(shè)計(jì)過程

5.4.1 建模

對(duì)項(xiàng)目中的每一個(gè)板塊需要進(jìn)一步建模,以確定板塊的詳細(xì)的實(shí)現(xiàn)細(xì)節(jié)及每個(gè)模塊之間的調(diào)用關(guān)系。例如利用Visual Studio下(Visual Studio 2010內(nèi)部存在更強(qiáng)大的設(shè)計(jì)工具)的UML設(shè)計(jì)工具設(shè)計(jì)出的硬件板塊與其它板塊和模塊的配合情況:

C#所在的Visual Studio集成開發(fā)環(huán)境中,集中了大量類似于UML這樣的方便的設(shè)計(jì)工具,為軟件的開發(fā)提供了極其便利的手段和途徑,對(duì)軟件的快捷的開發(fā)提供了有利的支持。

5.4.2 類關(guān)系的確定

類的設(shè)計(jì)是程序代碼化的最后一步,根據(jù)UML的建模的結(jié)果,可以進(jìn)一步設(shè)計(jì)出各個(gè)模塊的結(jié)構(gòu),和它們之間的關(guān)系。例如本項(xiàng)目中的主控模塊的主空間的類關(guān)系如下:

上圖是一個(gè)類的直觀視圖,它是根據(jù)實(shí)際代碼轉(zhuǎn)化而來,也可以轉(zhuǎn)化為完全一致的實(shí)際代碼。通過這種方式,C#設(shè)計(jì)的程序的結(jié)構(gòu)和內(nèi)容一目了然。

5.4.3 代碼實(shí)現(xiàn)

根據(jù)類的關(guān)系和結(jié)構(gòu),就可以編寫代碼,甚至是由C#編輯器自動(dòng)生成代碼,比如主控模塊的主空間的代碼如下(內(nèi)容已收縮,只顯示類結(jié)構(gòu)):

從上圖可以看出,C#的代碼井然有序、非常清晰,準(zhǔn)確地實(shí)現(xiàn)了設(shè)計(jì)的模型。C#的編輯器中還內(nèi)建有非常強(qiáng)大的智能感知系統(tǒng)(IntelliSense),會(huì)非常迅速和智能地感應(yīng)設(shè)計(jì)者的下一步動(dòng)作。(圖:智能感知系統(tǒng)。見下文)

清晰、簡潔、強(qiáng)大的設(shè)計(jì)界面,有利于程序的快速編寫和更高效的維護(hù),對(duì)于短時(shí)間內(nèi)構(gòu)建和維護(hù)“速食”的稱重計(jì)量領(lǐng)域的軟件系統(tǒng)具有非常大的意義。

6 發(fā)展前景

微軟的.NET是一項(xiàng)非常龐大的計(jì)劃,也是微軟今后發(fā)展的戰(zhàn)略核心,“在任何時(shí)間、任何地點(diǎn),采用相應(yīng)的設(shè)備以獲取所需的信息”。作為一種全新的開發(fā)語言,它的市場占用份額已經(jīng)上升到了第六位(參見Tiobe發(fā)布2011年1月發(fā)布的開發(fā)語言排名)。因此,作為.net環(huán)境下的核心開發(fā)語言c#,其地位會(huì)不斷地提高,技術(shù)水平會(huì)不斷地得到發(fā)展和進(jìn)步。而基于Windows平臺(tái)下的稱重計(jì)量領(lǐng)域的軟件系統(tǒng),完全可以利用.net和C#所帶來的技術(shù)革新和進(jìn)步,為該領(lǐng)域內(nèi)的持續(xù)發(fā)展提供強(qiáng)有力的支持和強(qiáng)大的保障,為今后的多樣的、廣闊的應(yīng)用和新時(shí)代的PC方面的變革,作好充分的準(zhǔn)備。

參考文獻(xiàn)

[1]《C#本質(zhì)論》(第四版),(美)Mark Michaelis,人民郵電出版社,2008年。

[2]《2011年1月開發(fā)語言排名》,(美)Tiobe,2011年。

[3]《微軟C#規(guī)范》,(美)微軟公司,2008年

[4]《微軟云計(jì)算解決方案白皮書》,(美)微軟公司,2003年

[5]《Microsoft.net白皮書》,(美)微軟公司,2000年

[6]《電子汽車衡軟件策劃書》,韓鵬,2009年

[7]《稱重技術(shù)在港口的應(yīng)用與發(fā)展》,中國衡器協(xié)會(huì),2004年

[8]《稱重計(jì)量服務(wù)項(xiàng)目投資前期市場深度調(diào)研及投資前景預(yù)測報(bào)告》,中國新經(jīng)濟(jì)視點(diǎn)網(wǎng),2007年

[9]《中國稱重計(jì)量儀表市場供需狀況研究》,中國企業(yè)經(jīng)濟(jì)信息網(wǎng),2009年

主站蜘蛛池模板: 91亚洲精品第一| 黄色网站不卡无码| 久久精品免费国产大片| 伊人天堂网| 欧美午夜在线视频| 在线免费观看a视频| 亚洲天堂网在线观看视频| 日韩中文无码av超清 | 午夜精品影院| 国产成人乱码一区二区三区在线| 在线欧美一区| 亚洲人成影院午夜网站| 婷婷伊人五月| 无码不卡的中文字幕视频| 亚洲男人的天堂在线| 成人年鲁鲁在线观看视频| 一本大道无码日韩精品影视| 538国产视频| 免费AV在线播放观看18禁强制| 成人精品亚洲| 在线观看无码a∨| 中文字幕66页| 无码免费的亚洲视频| 午夜日b视频| 亚洲无码91视频| 操国产美女| 国产精品hd在线播放| 国内精自视频品线一二区| 欧美va亚洲va香蕉在线| 国产福利小视频在线播放观看| 2020国产免费久久精品99| 国产美女一级毛片| 动漫精品啪啪一区二区三区| 午夜性刺激在线观看免费| 午夜国产小视频| 国产精品第一区| 日本一区中文字幕最新在线| 亚洲视频免费播放| 伊伊人成亚洲综合人网7777| 国产女人爽到高潮的免费视频| 国产成人无码综合亚洲日韩不卡| 亚洲国产清纯| 麻豆精品在线播放| 性视频久久| 伊人精品成人久久综合| 国产精品不卡永久免费| 欧美 国产 人人视频| 欧美色99| 亚洲AV无码久久精品色欲| 亚洲va欧美va国产综合下载| 呦女精品网站| 伊人色综合久久天天| 精品国产成人a在线观看| 国模在线视频一区二区三区| 亚洲成a∧人片在线观看无码| 国产精品制服| 18禁不卡免费网站| 国产尤物在线播放| 免费一级毛片不卡在线播放| 国产精品毛片在线直播完整版| 无遮挡一级毛片呦女视频| 亚洲精品爱草草视频在线| 欧美在线一二区| 91丝袜乱伦| 91网址在线播放| a级免费视频| 国产成人久久777777| 一本久道热中字伊人| 台湾AV国片精品女同性| 天堂岛国av无码免费无禁网站 | 日韩av资源在线| 国产白浆在线观看| 亚洲AV无码乱码在线观看裸奔| 亚洲午夜天堂| 久久久久久国产精品mv| 一本综合久久| 久久人体视频| 国产成人欧美| 国产专区综合另类日韩一区| 天天婬欲婬香婬色婬视频播放| 久久国产成人精品国产成人亚洲| 免费在线看黄网址|