| zǔ chéng .net ruǎn jiàn jì shù de zǔ jiàn Composed of. Net component software technology | zǔ jiàn zhī yī, “ zhì néng ” kè hù duān yìng yòng ruǎn jiàn hé cāo zuò xì tǒng, bāo kuò PC、 PDA、 shǒu jī huò qí tā yí dòng shè bèi tōng guò hù lián wǎng、 jiè zhù WebServices jì shù, yòng hù néng gòu zài rèn hé shí jiān、 rèn hé dì diǎn dōukě yǐ dé dào xū yào de xìn xī hé fú wù。 lì rú: kě yǐ zài shǒu jī shàng yuè dú xīn wén、 dìng gòu jī piào、 liú lǎn zài xiàn xiàngcè děng děng。 xiàn zài wǒ men jiǎ shè yī zhǒng chǎng jǐng, rú gōng sī nèi shǐ yòng de CRM xì tǒng, yìng yòng liǎo .net de jiě jué fāng 'àn hòu suǒ yòu de yè wù rén yuán biàn kě yǐ tōng guò shǒu jī huò PDA zhí jiē fǎng wèn kè hù xìn xī liǎo。
rú hé chuàng jiàn“ zhì néng” zhōng duān
WebServices shì zhì néng zhōng duān ruǎn jiàn de jī chǔ, wēi ruǎn wéi yòng hù chuàng jiàn zhì néng zhōng duān tí gōng liǎo yī zhěng tào fēng fù de jiě jué fāng 'àn, bāo kuò:
.netFramework- zhì néng zhōng duān shí xiàn kuà píng tái( shè bèi wú guān xìng) de zhí xíng huán jìng
VisualStudio.net – jiàn lì bìng jí chéng WebServices hèyìng yòng chéng xù de kuài sù kāi fā gōng jù
MicrosoftWindowsServer2003– xīn yī dài de qǐ yè fú wù qì, yòng yú tí gōng jiàn lì hé fā bù gè zhǒng jiě jué fāng 'àn
MicrosoftOfficeProfessionalEdition2003– nèi jiàn de gōng jù jí yě néng bāng zhù kāi fā zhì néng zhōng duān
xiàn zài fā zhǎn zuì kuài de zhōng duān fēi shǒu jī mò shǔ liǎo, yòu liǎng dà zhèn yíng zài kāi fā SmartPhone jì shù, yī gè shì wēi ruǎn wéi dài biǎo de Stinger yìng yòng yú sān xīng, lìng yī gè jiù shì yǐ NOKIA、 ài lì xìn zǔ chéng de Symbian
WebServices shì .net de hé xīn jì shù。 nà shénme shì WebServices ní? zhèng rú Web shì xīn yī dài de yòng hù yǔ yìng yòng jiāo hù de tú jìng, XML shì xīn yī dài de chéng xù zhī jiān tōng xùn de tú jìng yī yàng, WebServices shì xīn yī dài de jì suàn jī yǔ jì suàn jī zhī jiān yī zhǒng tōng yòng de shù jù chuán shū gé shì, kě ràng bù tóng yùn suàn xì tǒng gèng róng yì jìn xíng shù jù jiāo huàn。 WebServices yòu yǐ xià jǐ diǎn tè xìng: Webservices yǔn xǔ yìng yòng zhī jiān gòng xiǎng shù jù; Webservices fēn sàn liǎo dài mǎ dān yuán; jī yú XML zhè zhǒng internet shù jù jiāo huàn de tōng yòng yǔ yán, shí xiàn liǎo kuà píng tái、 kuà cāo zuò xì tǒng、 kuà yǔ yán。 nà wēi ruǎn de ASP hé Webservices jiū jìng yòu shénme bù tóng ní, ASP réng rán shì yī gè jí zhōng shì jì suàn mó xíng de chǎn wù, zhǐ bù guò shì pī zhe yī céng hù lián wǎng de wài yī。 dàn WebServices què shì yī gè jiǒng rán bù tóng de jīng líng, tā bǐng chéng“ ruǎn jiàn jiù shì fú wù” de zhēn yán, tóng shí shùn yìng fēn bù shì jì suàn mó shì de cháo liú。 ér tā de cún zài xíng shì yòu yǔ yǐ wǎng ruǎn jiàn bù tóng。 zhè zhǒng zǔ jiàn mó shì, xiǎo qiǎo、 dān yī, duì yú kāi fā rén yuán lái jiǎng, kāi fā chéng běn jiào dī。
zài zhè lǐ zhǐ chū Webservices bù shì wēi ruǎn fā míng de, tóng yàng yě bù shǔ yú wēi ruǎn zhuān yòu。 Webservices shì yī gè kāi fàng de biāo zhǔn, hé HTTP、 XML、 SOAP yī yàng。 tā men shì yī gè gōng yè biāo zhǔn 'ér fēi wēi ruǎn biāo zhǔn, WS-I shì wéi liǎo cù jìn WebServices hù tōng xìng de lián méng zǔ zhì, zuì chū shì yóu IBM hé wēi ruǎn suǒ fā qǐ, qí tā de chéng yuán bāo kuò BEASystem、 huì pǔ jì suàn jī( HP)、 jiá gǔ wén( Oracle)、 yīng tè 'ěr( Intel) hé SUN jì suàn jī( SunMicrosystem)。 rú jīn wǎng luò shàng cún zài de dà duō Webservices qí shí méi yòu shǐ yòng .net gòu jià, Webservices jù yòu hù cāo zuò shǔ xìng, nǐ tóng yàng kě yǐ shǐ yòng Windows kāi fā kè hù duān lái diào yòng yùn xíng yú Linux shàng miàn de Webservices de fāng fǎ。
xiān qián tí dào de jiē kǒu guī fàn wèn tí, zài .net zhōng, Webservice jiē kǒu tōng cháng shǐ yòng WebServicesDescriptionLanguage( WSDL) miáo shù。 WSDL shǐ yòng XML lái dìng yì zhè zhǒng jiē kǒu cāo zuò biāo zhǔn jí shū rù shū chū cān shù, kàn qǐ lái hěn xiàng COM hé CORBA de jiē kǒu dìng yì yǔ yán( IDLS) InterfaceDefinitionLanguages。 jiē kǒu dìng yì hòu jiù bì xū shǐ yòng yī xiē xié yì diào yòng jiē kǒu, rú SOAP xié yì, SOAP yuán yú yī zhǒng jiào zuò XMLRPC( XML yuǎn chéng jìn chéng diào yòng remoteprocedurecalling) de xié yì, ér Java zé gēn jù XML-RPC fā zhǎn liǎo zì jǐ de JAX-RPC xié yì yòng lái diào yòng WebServices。 fā bù hé fǎng wèn WebServices de jiē kǒu jiù yòng dào UDDI liǎo, zhè lǐ wǒ men zhǐ xū yào zhī dào WSDL shǐ yòng XML dìng yì WebServices jiē kǒu, tōng guò SOAP fǎng wèn WebServices, zài internet shàng xún zhǎo WebServices shǐ yòng UDDI jiù xíng liǎo, gèng duō de WebServices jiāng zài zuì hòu yī kè jiè shào。
Microsoft tí gōng liǎo zuì jiā de fú wù qì gòu jià héng MicrosoftWindowsServerSystem héng biàn yú fā bù、 pèi zhì、 guǎn lǐ、 biān pái WebServices。 wèile mǎn zú fēn bù shì jì suàn de xū yào wēi ruǎn gòu zào liǎo yī xì liè de fú wù qì xì tǒng, zhè xiē nèi jiàn 'ān quán jì shù de xì tǒng quán bù zhī chí XML, zhè yàng jiā sù liǎo xì tǒng、 yìng yòng chéng xù yǐ jí tóng yàng shǐ yòng WebServices de huǒ bàn yìng yòng zhī jiān de jí chéng。
MicrosoftWindowsServerSystem bāo kuò:
MicrosoftApplicationCenter2000- pèi zhì hé guǎn lǐ Web yìng yòng chéng xù
MicrosoftBizTalkServer2002- jiàn lì jī yú XML de kuà yìng yòng hé zǔ zhì de shāng yè luó ji
MicrosoftCommerceServer2002– néng gòu xùn sù jiàn lì dà guī mó diàn zǐ shāng wù de jiě jué fāng 'àn
MicrosoftContentManagementServer2002– guǎn lǐ dòng tài diàn zǐ shāng wù wǎng zhàn de mù lù
MicrosoftExchangeServer2000– yòng yú jìn xíng suí shí suí dì de tōng xùn xié zuò
MicrosoftHostIntegrationServer2000– yòng yú hé zhù jī xì tǒng zhī jiān chuán shū shù jù
MicrosoftInternetSecurityandAccelerationServer2000(ISAServer)– internet lián jiē
MicrosoftMobileInformationServer2002– yòng yú zhī chí shǒu chí shè bèi
MicrosoftOperationsManager2000– miáo shù qǐ yè jí jiě jué fāng 'àn de cāo zuò guǎn lǐ
MicrosoftProjectServer2002- tí gōng xiàng mù guǎn lǐ de zuì jiā fāng 'àn
MicrosoftSharePointPortalServer2001– chá xún、 gòng xiǎng、 fā bù shāng yè xìn xī
MicrosoftSQLServer2000– qǐ yè jí shù jù kù
MicrosoftVisualStudio.net hé Microsoft.netFramework duì yú jiàn lì, fā bù bìng yùn xíng WebServices shì yī gè wán měi de jiě jué fāng 'àn。
Microsoft.net kuàng jià SDK kuài sù rù mén jiào chéng: www.aspxweb.com/quickstart/
wēi ruǎn guān fāng de jiào chéng。
CLR yǔ CLI
.net de chū jí zǔ chéng shì CLI hé CLR。 CLI shì yī tào yùn zuò huán jìng shuō míng, bāo kuò yī bān xì tǒng、 jī chǔ lèi kù hé yǔ jī qì wú guān de zhōng jiān dài mǎ, quán chēng wéi tōng yòng zhōng jiān yǔ yán( CLI)。 CLR zé shì què rèn cāo zuò mì mǎ fú hé CLI de píng tái。 zài CLI zhí xíng qián, CLR bì xū jiāng zhǐ lìng jí shí biān yì zhuǎn huàn chéng yuán shǐ jī xiè mǎ。
suǒ yòu CLI dōukě jīng yóu .net zì wǒ biǎo shù。 CLR jiǎn chá yuán zī liào yǐ què bǎo zhèng què de fāng fǎ bèi diào yòng。 yuán zī liào tōng cháng shì yóu yǔ yán biān yì qì shēng chéng de, dàn kāi fā rén yuán yě kě yǐ tōng guò shǐ yòng kè hù shǔ xìng chuàng jiàn tā men zì jǐ de yuán zī liào。
rú guǒ yī zhǒng yǔ yán shí xiàn shēng chéng liǎo CLI, tā yě kě yǐ tōng guò shǐ yòng CLR bèi diào yòng, zhè yàng tā jiù kě yǐ yǔ rèn hé qí tā .net yǔ yán shēng chéng de zī liào xiāng jiāo hù。 CLR yě bèi shè jì wéi zuò yè xì tǒng wú guān xìng。
dāng yī gè huì biān tǐ bèi zài rù shí, CLR zhí xíng gè zhǒng gè yàng de cè shì。 qí zhōng de liǎng gè cè shì shì què rèn yǔ hé chá。 zài què rèn de shí hòu, CLR jiǎn chá huì biān tǐ shì fǒu bāo hán yòu xiào de yuán zī liào hé CLI, bìng qiě jiǎn chá nèi bù biǎo de zhèng què xìng。 hé chá zé bù nà me jīng què。 hé chá jī zhì jiǎn chá dài mǎ shì fǒu huì zhí xíng yī xiē“ bù 'ān quán” de cāo zuò。 hé chá suǒ shǐ yòng de yǎn suàn fǎ fēi cháng bǎo shǒu, dǎo zhì yòu shí yī xiē“ ān quán” de dài mǎ yě tōng bù guò hé chá。 bù 'ān quán de dài mǎ zhǐ yòu zài huì biān tǐ yōng yòu“ tiào guò hé chá” xǔ kě de qíng kuàng xià cái huì bèi zhí xíng, tōng cháng zhè yì wèi zhe dài mǎ shì 'ān zhuāng zài běn jī shàng de。
tōng guò .net, nǐ kě yǐ yòng SOAP hé bù tóng de Webservices jìn xíng jiāo hù。 | | .net shì guó jì zuì guǎng fàn liú xíng de tōng yòng yù míng gé shì。 .net yī bān yòng yú cóng shì Internet xiāng guān de wǎng luò fú wù de jī gòu huò gōng sī, dāng rán rèn hé réndōu kě zhù cè。
lèi xíng: .net
guī zé:
1、 zhǐ tí gōng yīng wén zì mǔ( a-z, bù qū fēn dà xiǎo xiě)、 shù zì( 0-9)、 yǐ jí "-"( yīng wén zhōng de lián cí hào, jí zhōng héng xiàn), bù néng shǐ yòng kònggé jí tè shū zì fú ( rú !、 $、 &、 ? děng )。
2、 "-" bù néng yòng zuò kāi tóu hé jié wěi
3、 cháng dù bù néng chāo guò 63 gè zì fú | C#3.0 zhōng de xīn tè xìng In C # 3.0 new features | dì yī gè tè xìng: yǐn shì lèi xíng huà běn dì biàn liàng
zhè gè tè xìng fēi cháng jiǎn dān, yòu xiē JavaScript de yǐng zǐ, wǒ men kě yǐ tǒng yī shǐ yòng shǐ yòng "var" guān jiàn zì lái shēng míng jú bù biàn liàng, ér bù zài xū yào zhǐ míng biàn liàng díquè qiē lèi xíng liǎo, biàn liàng díquè qiē lèi xíng kě tōng guò shēng míng biàn liàng shí de chū shǐ zhí tuī duàn chū lái。 zhè yàng yī lái, kě yǐ dà dà jiǎn huà wǒ men shēng míng jú bù biàn liàng de gōng zuò liàng liǎo, xià miàn shì yī gè lì zǐ:
classLocalVariables:AppRunner.AbstractApplication
{
publicoverridevoidRun()
{
varintValue=5;
varstringValue="Thisisastring";
varcustomClass=newLocalVariables();
varintArray=newint{1,2,3};
foreach(varvalueinintArray)
Console.WriteLine(value);
}
}
shàng miàn de dài mǎ jiāng bèi jiě xī chéng:
classLocalVariables:AppRunner.AbstractApplication
{
publicoverridevoidRun()
{
intintValue=5;
stringstringValue="Thisisastring";
LocalVariablescustomClass=newLocalVariables();
int[]intArray=newint;
foreach(intvalueinintArray)
Console.WriteLine(value);
}
}
yào tè bié zhù yì de shì, yóu yú biàn liàng de lèi xíng shì tōng guò biàn liàng chū shǐ zhí tuī duàn 'ér lái de, suǒ yǐ zài shēng míng biàn liàng de tóng shí bì xū wéi biàn liàng zhǐ dìng chū shǐ zhí。 bìng qiě, biàn liàng bìng bù shì méi yòu lèi xíng de, biàn liàng yī dàn chū shǐ huà zhī hòu, lèi xíng jiù què dìng xià lái liǎo, yǐ hòu jiù zhǐ néng cún chǔ mǒu zhǒng lèi xíng de zhí liǎo, bǐ rú shàng miàn de stringValue de lèi xíng jīng tuī duàn wéi string, suǒ yǐ gāi biàn liàng jiù zhǐ néng bǎo cún string lèi xíng de zhí liǎo。
dì 'èr gè tè xìng: nì míng lèi xíng
yòu xiē shí hòu wǒ men xū yào lín shí bǎo cún yī xiē yùn suàn de zhōng jiān jiēguǒ, tè bié shì dāng zhè xiē zhōng jiān jiēguǒ shì yóu duō gè bù fèn zǔ chéng shí, wǒ men cháng cháng huì qù shēng míng yī gè xīn de lèi xíng, yǐ fāng biàn bǎo cún zhè xiē zhōng jiān jiēguǒ。 biǎo miàn shàng kàn qǐ lái zhè hěn zhèng cháng, ér xì xiǎng zhī hòu jiù huì fā xiàn, zhè gè xīn lèi xíng zhǐ fú wù yú zhè gè hán shù, qí tā dì fāng dōubù huì zài shǐ yòng tā liǎo, jiù wéi zhè yī gè hán shù 'ér qù dìng yì yī gè xīn de lèi xíng, què shí yòu xiē má fán。
xiàn zài, C#3.0 zhōng de nì míng lèi xíng tè xìng jiù kě yǐ hěn hǎo de jiě jué shàng miàn tí dào de wèn tí, tōng guò nì míng lèi xíng, wǒ men kě yǐ jiǎn dān shǐ yòng new{ shǔ xìng míng 1= zhí 1, shǔ xìng míng 2= zhí 2,....., shǔ xìng míng n= zhí n} de xíng shì zhí jiē zài hán shù zhōng chuàng jiàn xīn de lèi xíng, kàn xià miàn zhè gè lì zǐ:
classAnonymousType:AppRunner.AbstractApplication
{
publicoverridevoidRun()
{
varanonymousType1=new{
CardNumber="10001",Name="van ’ s",Sex=true
};
Console.WriteLine(anonymousType1.CardNumber);
Console.WriteLine(anonymousType1.Name);
varanonymousType2=new{
CardNumber="10002",Name="martin",Sex=true
};
anonymousType2=anonymousType1;
}
}
zài xīn lèi xíng zhōng zhǐ néng yòu zì duàn chéng yuán, ér qiě zhè xiē zì duàn de lèi xíng yě shì tōng guò chū zhí de lèi xíng tuī duàn chū lái de。 rú guǒ zài shēng míng xīn de nì míng lèi xíng shí, xīn lèi xíng de zì duàn míng、 shùn xù yǐ jí chū shǐ zhí de lèi xíng shì yī zhì de, nà me jiāng huì chǎn shēng xiāng tóng de nì míng lèi xíng, suǒ yǐ shàng lì zhōng anonymousType1 hé anonymousType2 de lèi xíng shì xiāng tóng de, zì rán néng jìn xíng anonymousType2=anonymousType1 de fù zhí。
dì sān gè tè xìng: yǐn shì lèi xíng huà shù zǔ
zhè gè tè xìng shì duì yǐn shì lèi xíng huà běn dì biàn liàng de kuò zhǎn, yòu liǎo zhè gè tè xìng, jiāng shǐ wǒ men chuàng jiàn shù zǔ de gōng zuò biàn dé jiǎn dān。 wǒ men kě yǐ zhí jiē shǐ yòng "new[]" guān jiàn zì lái shēng míng shù zǔ, hòu miàn gēn shàng shù zǔ de chū shǐ zhí liè biǎo。 zài zhè lǐ, wǒ men bìng méi yòu zhí jiē zhǐ dìng shù zǔ de lèi xíng, shù zǔ de lèi xíng shì yóu chū shǐ huà liè biǎo tuī duàn chū lái de。
classAnonymousTypeArray:AppRunner.AbstractApplication
{
publicoverridevoidRun()
{
varintArray=new[]{1,2,3,4,5};
vardoubleArray=new[]{3.14,1.414};
varanonymousTypeArray=new[]{
new{Name="van’ s",Sex=false,Arg=22},
new{Name="martin",Sex=true,Arg=23}
};
Console.WriteLine(intArray);
Console.WriteLine(doubleArray);
Console.WriteLine(anonymousTypeArray[0].Name);
}
}
shàng miàn de dài mǎ zhōng, anonymousTypeArray biàn liàng de shēng míng tóng shí yùn yòng liǎo yǐn shì lèi xíng huà shù zǔ hé nì míng lèi xíng liǎng zhǒng tè xìng, shǒu xiān chuàng jiàn nì míng lèi xíng, rán hòu zài chū shǐ zhí liè biǎo, tuī duàn chū shù zǔ díquè qiē lèi xíng。
dì sì gè tè xìng: duì xiàng gòu zào zhě
wǒ men zài shēng míng shù zǔ shí, kě yǐ tóng shí duì qí jìn xíng chū shǐ huà, zhè yàng jiù shěng qù liǎo hěn duō má fán, dàn shì zài chuàng jiàn lèi de duì xiàng shí, zhè zhāo kě jiù bù líng liǎo, wǒ men yào me diào yòng gāi lèi de gòu zào hán shù wán chéng duì xiàng de chū shǐ huà, yào me jiù shǒu gōng jìn xíng chū shǐ huà。 zhè liǎng zhǒng fāng fǎ dōubù tài fāng biàn, shǐ yòng gòu zào hán shù lái duì duì xiàng jìn xíng chū shǐ huà shí, wǒ men wèile mǒu zhǒng líng huó xìng, kě néng xū yào biān xiě gòu zào hán shù de duō gè zhòng zài bǎn běn, shí zài shì má fán。
C#3.0 zhōng jiā rù de duì xiàng gòu zào zhě tè xìng, shǐ dé duì xiàng de chū shǐ huà gōng zuò biàn dé gé wài jiǎn dān, wǒ men kě yǐ cǎi yòng lèi sì yú shù zǔ chū shǐ huà de fāng shì lái chū shǐ huà lèi de duì xiàng, fāng fǎ jiù shì zhí jiē zài chuàng jiàn lèi duì xiàng de biǎo dá shì hòu miàn gēn shàng lèi chéng yuán de chū shǐ huà dài mǎ。 jù tǐ shì lì rú xià:
classPoint
{
publicintX{get;set;}
publicintY{get;set;}
publicoverridestringToString()
{
return"("+X.ToString()+","+Y.ToString()+")";
}
}
classRectangle
{
publicPointP1{get;set;}
publicPointP2{get;set;}
publicRectangle()
{
P1=newPoint();
P2=newPoint();
}
publicoverridestringToString()
{
return"P1:"+P1+",P2:"+P2;
}
}
classObjectBuilder:AppRunner.AbstractApplication
{
publicoverridevoidRun()
{
PointthePoint=newPoint(){X=1,Y=2};
Console.WriteLine("Point(X,Y)=",thePoint);
RectangletheRectangle=newRectangle(){
P1={X=1,Y=1},P2={X=100,Y=200}
};
Console.WriteLine(theRectangle);
}
}
wǒ men zài dìng yì Point lèi de X hé Y shǔ xìng shí, zhǐ xū xiě shàng gāi shǔ xìng de get hé set fǎng wèn qì shēng míng, C# biān yì qì huì zì dòng wèiwǒ men shēng chéng mò rèn de get hé set cāo zuò dài mǎ, dāng wǒ men xū yào dìng yì jiǎn dān shǔ xìng shí, zhè gè tè xìng fēi cháng yòu yòng。
wǒ men yǐ newPoint(){X=1,Y=2} yǔ jù, qīng sōng de wán chéng liǎo duì Point lèi de chū shǐ huà gōng zuò。 zài chuàng jiàn lèi de duì xiàng shí, wǒ men kě yǐ 'àn zhào xū yào qù chū shǐ huà lèi de duì xiàng, zhǐ yào zài lèi de chuàng jiàn biǎo dá shì hòu gēn shàng yào chū shǐ huà shǔ xìng de liè biǎo jí kě, qiě kě yǐ zhǐ duì xū yào chū shǐ huà de shǔ xìng fù chū zhí, ér wú xū bǎ suǒ yòu shǔ xìng de chū shǐ zhí dū xiě shàng qù。
zài theRectangle duì xiàng de chū shǐ huà biǎo dá shì zhōng, wǒ men shǒu xiān duì P1 shǔ xìng jìn xíng chū shǐ huà, rán 'ér P1 shǔ xìng yě shì yī gè zì dìng yì de lèi xíng, suǒ yǐ P1 shǔ xìng de chū shǐ huà shì lìng yī gè lèi xíng (Point) de chū shǐ huà biǎo dá shì, wǒ men kě yǐ zhè yàng de fāng shì lái duì gèng jiā fù zá de lèi xíng jìn xíng chū shǐ huà。
shàng piān wén zhāng zhōng jiè shào liǎo C#3.0 zhōng bǐ jiào jiǎn dān de sì gè tè xìng, fēn bié shì yǐn shì lèi xíng huà běn dì biàn liàng、 nì míng lèi xíng、 yǐn shì lèi xíng huà shù zǔ, yǐ jí duì xiàng gòu zào zhě, xià miàn wǒ jiāng duì C#3.0 zhōng de jiào fù zá, tóng shí yě shì fēi cháng qiáng dà de jǐ gè tè xìng jìn xíng jiè shào, gōng dà jiā kuài sù liú lǎn。
dì wǔ gè tè xìng: jí hé gòu zào zhě
wǒ men kě yǐ zài shēng míng shù zǔ de tóng shí, wéi qí zhǐ dìng chū shǐ zhí, fāng fǎ shì zhí jiē zài shù zǔ shēng míng de hòu miàn gēn shàng chū shǐ zhí liè biǎo。 zhè yàng jiù shǐ shù zǔ de chū shǐ huà gōng zuò biàn dé jiǎn dān, ér duì yú wǒ men zì jǐ chuàng jiàn de jí hé lèi xíng, jiù wú fǎ xiǎng shòu dào yǔ pǔ tōng shù zǔ yī yàng de dài yù liǎo, wǒ men wú fǎ zài chuàng jiàn zì dìng yì jí hé duì xiàng de tóng shí, shǐ yòng shù zǔ de chū shǐ huà yǔ fǎ wéi qí zhǐ dìng chū shǐ zhí。
C#3.0 zhōng jiā rù de jí hé gòu zào zhě tè xìng, kě shǐ wǒ men xiǎng shòu dào yǔ pǔ tōng shù zǔ yī yàng de dài yù, cóng 'ér zài chuàng jiàn jí hé duì xiàng de tóng shí wéi qí zhǐ dìng chū shǐ zhí。 wèile zuò dào zhè yī diǎn, wǒ men xū yào ràng wǒ men de jí hé shí xiàn ICollection<T> jiē kǒu, zài zhè gè jiē kǒu zhōng, wán chéng chū shǐ huà cāo zuò de guān jiàn zài yú Add hán shù, dāng wǒ shǐ yòng chū shǐ huà yǔ fǎ wéi jí hé zhǐ dìng chū shǐ zhí shí, C# biān yì qì jiāng zì dòng diào yòng ICollection<T> zhōng de Add hán shù jiāng chū shǐ liè biǎo zhōng de suǒ yòu yuán sù jiā rù dào jí hé zhōng, yǐ wán chéng jí hé de chū shǐ huà cāo zuò。 shǐ yòng shì lì rú xià:
classCollectionInitializer:AppRunner.AbstractApplication
{
classStringCollection:ICollection<string>
{
publicvoidAdd(stringitem)
{
Console.WriteLine(item);
}
//OtherICollection<T>Members
}
publicoverridevoidRun()
{
StringCollectionstrings=newStringCollection(){"Van's","Brog","Vicky"};
}
}
zài zhè gè shì lì zhōng, biān yì qì huì zì dòng wéi strings duì xiàng diào yòng Add fāng fǎ, yǐ jiāng chū shǐ zhí liè biǎo zhōng de suǒ yòu yuán sù jiā rù dào jí hé zhōng, zhè lǐ wǒ men zhǐ shì jiǎn dān jiāng chū shǐ zhí liè biǎo zhōng de yuán sù shū chū dào kòng zhì tái。
dì liù gè tè xìng: Lambda biǎo dá shì
C#2.0 zhōng jiā rù de nì míng dài lǐ, jiǎn huà liǎo wǒ men biān xiě shì jiàn chǔlǐ hán shù de gōng zuò, shǐ wǒ men bù zài xū yào dān dú shēng míng yī gè hán shù lái yǔ shì jiàn bǎng dìng, zhǐ xū yào shǐ yòng delegate guān jiàn zì zài xiàn biān xiě shì jiàn chǔlǐ dài mǎ。
ér C#3.0 zé gèng jìn yī bù, tōng guò Lambda biǎo dá shì, wǒ men kě yǐ yī zhǒng gèng wéi jiǎn jié fāng shì biān xiě shì jiàn chǔlǐ dài mǎ, xīn de Lambda shì jiàn chǔlǐ dài mǎ kàn shàng qù jiù xiàng yī gè jì suàn biǎo dá shì, tā shǐ yòng "=>" fú hào lái lián jiē shì jiàn cān shù hé shì jiàn chǔlǐ dài mǎ。 wǒ kě yǐ zhè yàng xiě: SomeEvent+= shì jiàn cān shù => shì jiàn chǔlǐ dài mǎ ; xià miàn shì wán zhěng de shì lì:
delegateTAddDelegate<T>(Ta,Tb);
classLambdaExpression:AppRunner.AbstractApplication
{
publicstaticeventEventHandlerMyEvent;
publicoverridevoidRun()
{
MyEvent+=delegate(objects,EventArgse)
{
Console.WriteLine(s);
};
MyEvent+=(s,e)=>{Console.WriteLine(s);};
MyEvent(this,null);
AddDelegate<string>add=(a,b)=>a+b;
Console.WriteLine(add("Lambda","Expression"));
}
}
zài shàng miàn de lì zǐ zhōng, fēn bié shǐ yòng liǎo nì míng dài lǐ hé Lambda biǎo dá shì lái shí xiàn tóng yàng de gōng néng, kě yǐ míng xiǎn kàn chū Lambda biǎo dá shì de shí xiàn gèng wéi jiǎn jié。 wǒ men zài shǐ yòng Lambda biǎo dá shì biān xiě shì jiàn chǔlǐ dài mǎ shí, wú xū zhǐ míng shì jiàn cān shù de lèi xíng, qiě fǎn huí zhí jiù shì zuì hòu yī tiáo yǔ jù de zhí xíng jiēguǒ。
dì qī gè tè xìng: kuò zhǎn fāng fǎ
dāng wǒ men xū yào duì yǐ yòu lèi de gōng néng jìn xíng kuò zhǎn shí, wǒ men tōng cháng huì xiǎng dào jì chéng, jì chéng yǐ yòu lèi, rán hòu wéi qí jiā rù xīn de xíng wéi。 ér C#3.0 zhōng jiā rù de kuò zhǎn fāng fǎ tè xìng, zé tí gōng liǎo lìng yī zhǒng shí xiàn gōng néng kuò zhǎn de fāng shì, wǒ men kě yǐ zài bù shǐ yòng jì chéng de qián tí xià shí xiàn duì yǐ yòu lèi běn shēn de kuò zhǎn, zhè zhǒng fāng fǎ bìng bù huì chǎn shēng xīn de lèi xíng, ér shì cǎi yòng xiàng yǐ yòu lèi zhōng jiā rù xīn fāng fǎ de fāng shì lái wán chéng gōng néng kuò zhǎn。
zài duì yǐ yòu lèi jìn xíng kuò zhǎn shí, wǒ men xū jiāng suǒ yòu kuò zhǎn fāng fǎ dū xiě zài yī gè jìng tài lèi zhōng, zhè gè jìng tài lèi jiù xiāng dāng yú cún fàng kuò zhǎn fāng fǎ de róng qì, suǒ yòu de kuò zhǎn fāng fǎ dōukě yǐ xiě zài zhè lǐ miàn。 ér qiě kuò zhǎn fāng fǎ cǎi yòng yī zhǒng quán xīn de shēng míng fāng shì: publicstatic fǎn huí lèi xíng kuò zhǎn fāng fǎ míng (this yào kuò zhǎn de lèi xíng sourceObj[, kuò zhǎn fāng fǎ cān shù liè biǎo ]), yǔ pǔ tōng fāng fǎ shēng míng fāng shì bù tóng, kuò zhǎn fāng fǎ de dì yī gè cān shù yǐ this guān jiàn zì kāi shǐ, hòu gēn bèi kuò zhǎn de lèi xíng míng, rán hòu cái shì zhēn zhèng de cān shù liè biǎo。 xià miàn shì shǐ yòng shì lì:
staticclassExtensions
{
publicstaticintToInt32(thisstringsource)
{
returnInt32.Parse(source);
}
publicstaticT[]Slice<T>(thisT[]source,intindex,intcount)
{
if(index<0||count<0||index+count>source.Length)
{
thrownewArgumentException();
}
T[]result=newT[count];
Array.Copy(source,index,result,0,count);
returnresult;
}
}
classExtensionMethods:AppRunner.AbstractApplication
{
publicoverridevoidRun()
{
stringnumber="123";
Console.WriteLine(number.ToInt32());
int[]intArray=newint[]{1,2,3};
intArray=intArray.Slice(1,2);
foreach(variinintArray)
Console.WriteLine(i);
}
}
zài shàng miàn de shì lì zhōng, jìng tài de Extensions lèi zhōng yòu liǎng gè kuò zhǎn fāng fǎ, dì yī gè fāng fǎ shì duì string lèi de kuò zhǎn, tā wéi string lèi jiā rù liǎo míng wéi ToInt32 de fāng fǎ, gāi fāng fǎ méi yòu cān shù, bìng fǎn huí yī gè int lèi xíng de zhí, tā jiāng wán chéng shù zì zì fú xiàng zhěng shù de zhuǎn huàn。 yòu liǎo zhè gè kuò zhǎn fāng fǎ zhī hòu, jiù kě duì rèn yì string lèi de duì xiàng diào yòng ToInt32 fāng fǎ liǎo, gāi fāng fǎ jiù xiàng qí běn shēn dìng yì de yī yàng。
dì 'èr gè kuò zhǎn fāng fǎ shì yī gè fàn xíng fāng fǎ, tā shì duì suǒ yòu shù zǔ lèi xíng de kuò zhǎn, gāi fāng fǎ wán chéng shù zǔ de qiē piàn cāo zuò。
C#3.0 zhōng de Linq biǎo dá shì, jiù shì dà liàng yùn yòng kuò zhǎn fāng fǎ lái shí xiàn shù jù chá xún de。
dì bā gè tè xìng: Linq chá xún biǎo dá shì
C#3.0 zhōng jiā rù de zuì wéi fù zá de tè xìng jiù shì Linq chá xún biǎo dá shì liǎo, zhè shǐ wǒ men kě zhí jiē cǎi yòng lèi sì yú SQL de yǔ fǎ duì jí hé jìn xíng chá xún, zhè jiù shǐ wǒ men kě yǐ xiǎng shòu dào guān xì shù jù chá xún de qiáng dà gōng néng。
Linq chá xún biǎo dá shì shì jiàn lì zài duō zhǒng C#3.0 de xīn tè xìng zhī shàng de, zhè yě shì wǒ wèishénme zuì hòu cái jiè shào Linq de yuán yīn。 xià miàn kàn yī gè lì zǐ:
classLinqExpression:AppRunner.AbstractApplication
{
publicoverridevoidRun()
{
// dìng yì nì míng shù zǔ persons, bìng wéi qí fù chū zhí
varpersons=new[]{
new{Name="Van's",Sex=false,Age=22},
new{Name="Martin",Sex=true,Age=30},
new{Name="Jerry",Sex=false,Age=24},
new{Name="Brog",Sex=false,Age=25},
new{Name="Vicky",Sex=true,Age=20}
};
/*
zhí xíng jiǎn dān Linq chá xún
jiǎn suǒ suǒ yòu nián líng zài 24 suì yǐ nèi de rén
chá xún jiēguǒ fàng zài results biàn liàng zhōng
results biàn liàng de lèi xíng yǔ shù zǔ persons xiāng tóng
*/
varresults=frompinpersons
wherep.Age<=24
selectp;
foreach(varpersoninresults)
{
Console.WriteLine(person.Name);
}
Console.WriteLine();
// dìng yì nì míng shù zǔ customers, bìng wéi qí fù chū zhí
// gāi shù zǔ shì nì míng lèi xíng de
varcustomers=new[]{
new{
Name="Van's",City="China",Orders=new[]{
new{
OrderNo=0,
OrderName="C#ProgrammingLanguage(SecondEdition)",
OrderDate=newDateTime(2007,9,5)
},
new{
OrderNo=1,
OrderName="HeadFirstDesignPatterns(ChineseEdition)",
OrderDate=newDateTime(2007,9,15)
},
new{
OrderNo=2,
OrderName="ASP.netUnleashed2.0(ChineseEdition)",
OrderDate=newDateTime(2007,09,18)
},
new{
OrderNo=3,
OrderName="TheC++ProgrammingLangauge(SpecialEdition)",
OrderDate=newDateTime(2002,9,20)
}
}
},
new{
Name="Brog",City="China",Orders=new[]{
new{
OrderNo=0,
OrderName="C#ProgrammingLanguage(SecondEdition)",
OrderDate=newDateTime(2007,9,15)
}
}
},
new{
Name="Vicky",City="London",Orders=new[]{
new{OrderNo=0,
OrderName="C++ProgrammingLanguage(SpecialEdition)",
OrderDate=newDateTime(2007,9,20)
}
}
}
};
/*
zhí xíng duō zhòng Linq chá xún
jiǎn suǒ suǒ zài chéng shì wéi zhōng guó , qiě dìng dān rì qī wéi 2007 nián yǐ hòu de suǒ yòu jì lù
chá xún jiēguǒ shì yī gè nì míng lèi xíng de shù zǔ
qí zhōng bāo hán kè hù míng , dìng dān hào , dìng dān rì qī , dìng dān míng sì gè zì duàn
*/
varsomeCustomers=fromcincustomers
wherec.City=="China"
fromoinc.Orders
whereo.OrderDate.Year>=2007
selectnew{c.Name,o.OrderNo,o.OrderDate,o.OrderName};
foreach(varcustomerinsomeCustomers)
{
Console.WriteLine(
customer.Name+","+customer.OrderName+","+
customer.OrderDate.ToString("D")
);
}
}
}
cóng shàng miàn de lì zǐ zhōng, wǒ men kě yǐ kàn dào Linq chá xún de qiáng dà tè xìng, tā yǔn xǔ wǒ men jìn xíng jiǎn dān chá xún, huò zhě jìn xíng gèng wéi fù zá de duō zhòng lián jiē chá xún。 qiě chá xún de jiēguǒ hái kě yǐ shì zì dìng yì de nì míng lèi xíng。 | | yī xiē Web kāi fā xīn tè xìng zhī kuài sù zhǐ nán
VS2008 de duō dìng xiàng zhī chí
VS2008 yǔn xǔ nǐ gòu jiàn zhēn duì duō gè .net kuàng jià bǎn běn de yìng yòng。 nǐ kě yǐ cóng xià miàn de bó kè tiē zǐ lǐ jìn yī bù liǎo jiě qí zhōng de gōng zuò yuán lǐ:
VS2008Multi-TargetingSuort
VS2008Web shè jì qì hé C zhī chí
VS2008 bāo hán yī gè xiǎn zhù gǎi jìn de HTMLweb shè jì qì。 gāi shè jì qì tí gōng liǎo fēn gē shì tú biān ji, qiàn tào mǔ bǎn yè, yǐ jí chū sè de C jí chéng。
A.net hái tí gōng liǎo yī gè xīn de kòng jiàn, gāi kòng jiàn duì shù jù UI chǎng jǐng tí gōng liǎo fēi cháng líng huó de zhī chí, yǔn xǔ duì shū chū de biāozhì zuò wán quán de dìng zhì, yǔ VS2008 zhōng de xīn C zhī chí hái yòu liáng hǎo de xié zuò。
A.netAJAX hé JavaScript zhī chí
.net3.5 nèi zhì tí gōng A.netAJAX, hái tiān jiā liǎo zhī chí Weart de UpdatePanel, zhī chí JSON de WCF, yǐ jí N gè quē xiàn xiū bǔ hé xìng néng gǎi jìn děng fāng miàn de xīn tè xìng。 VS2008 hái duì jí chéng JavaScript hé AJAX jìn nǐ de yìng yòng tí gōng liǎo jí bàng de zhī chí :
VS2008JavaScriptIntellisee
VS2008JavaScriptDebugging
yǔ yán gǎi jìn hé LINQ
VS2008 zhōng de xīn VB hé C# biān yì qì duì zhè xiē yǔ yán zuò liǎo xiǎn zhù de gǎi jìn。 liǎng zhě dū tiān jiā liǎo hán shù shì biān chéng gài niàn de zhī chí, yǔn xǔ nǐ biān xiě gèng gān jìng, gèng jiǎn jié, gèng jù yòu biǎo dá xìng de dài mǎ。 zhè xiē tè xìng hái cù chéng liǎo wǒ men chēng zhī wéi LINQ( yǔ yán jí jí chéng chá xún ) de xīn biān chéng mó xíng, shǐ dé chá xún hé cāo zuò shù jù chéng wéi .net zhōng de yī děng biān chéng gài niàn。
xià miàn shì wǒ zhuàn xiě de yī xiē tǎo lùn zhè xiē xīn yǔ yán tè xìng de wén zhāng ( yòng C# zuò wéi shì lì ):
zì dòng shǔ xìng, duì xiàng chū shǐ huà qì, hé jí hé chū shǐ huà qì
kuò zhǎn fāng fǎ
Lambda biǎo dá shì
chá xún jù fǎ
nì míng lèi xíng
LINQtoSQL zhōng de shù jù fǎng wèn gǎi jìn
LINQtoSQL shì .net3.5 zhōng nèi zhì de OR/M( duì xiàng guān xì yìng shè qì )。 tā yǔn xǔ nǐ shǐ yòng .net duì xiàng mó xíng duì guān xì shù jù kù jìn xíng jiàn mó。 rán hòu nǐ kě yǐ shǐ yòng LINQ duì shù jù kù jìn xíng chá xún, yǐ jí gēngxīn、 chā rù, shān chú shù jù。 LINQtoSQL wán zhěng zhī chí shì wù, shì tú hé cún chǔ guò chéng。 tā hái tí gōng liǎo yī gè bǎ yè wù luó ji hé yàn zhèng guī zé jié hé jìn nǐ de shù jù mó xíng de jiǎn yì fāng shì。 xià miàn shì yī xiē wǒ tǎo lùn rú hé shǐ yòng LINQtoSQL de wén zhāng:
Part1:IntroductiontoLINQtoSQL
Part2:DefiningourDataModelClaes
Part3:QueryingourDatabase
Part4:UpdatingourDatabase
Part5:BindingUIusingtheA:LinqDataSourceControl
wǒ huì zài yǐ hòu de jǐ zhōu nèi zài wǎng zhè gè xì liè lǐ tiān jiā jǐ piān wén zhāng。 wǒ rèn wéi nǐ huì fā xiàn LINQtoSQL xiǎn zhù dì jiǎn huà liǎo gòu jiàn fēi cháng gān jìng de shù jù mó xíng yǐ jí biān xiě jí qí gān jìng de shù jù dài mǎ。
shuō bù jìn de qí tā gǎi jìn
shàng miàn de liè biǎo zhǐ shì suǒ zuò gǎi jìn de yī xiǎo bù fēn。 zhēn duì kè hù duān kāi fā, VS2008 bāo hán liǎo WPF shè jì qì hé xiàng mù zhī chí。 ClickOnce hé WPFXBA xiàn zài zài FireFox zhōng yě gōng zuò liǎo。 WinForms hé WPF xiàng mù xiàn zài yě néng shǐ yòng A.net yìng yòng fú wù ( chéng yuán, juésè hé yòng hù shù jù ) lái màn yóu yòng hù shù jù liǎo。 bàn gōng kāi fā yě gèng jiā fēng fù liǎo, bāo kuò duì Office2007Rion de jí chéng zhī chí。 WCF hé Workflow xiàng mù hé shè jì qì yě bāo kuò zài VS2008 zhōng liǎo。 dān yuán cè shì de sù dù dà wéi tí gāo, ér qiě dān yuán cè shì de zhī chí xiàn zài bāo kuò zài VSProfeional bǎn běn ( ér bù jǐn jǐn shì VSTS bǎn liǎo ) zhōng liǎo。 lián xù jí chéng zhī chí xiàn zài yě nèi zhì yú TFS zhōng liǎo。 AJAXweb cè shì ( dān yuán hé yā lì ) xiàn zài yě yóu VSTest chǎn pǐn zhī chí liǎo。 hái yòu xǔ xǔ duō duō duō de gǎi jìn, zhè lǐ wú fǎ yī yī tí jí liǎo。
zhòng yào de 'ān zhuāng zhù yì shì xiàng
zài 'ān zhuāng VS2008 hé .net3.5Beta2 zhī hòu, hái yòu 2 jiàn zhòng yào de shì qíng nǐ yīnggāi mǎ shàng zuò:
1) nǐ yīnggāi xià zài hé yùn xíng zhè gè pī wén jiàn。 zhè zhǐ yào jǐ miǎo zhōng jiù kě yǐ yùn xíng wán, tā xiū bǔ liǎo zhè gè xīng qī zǎo xiē shí hòu wǒ men fā xiàn de System.Web.Exteio.dll bǎn běn zhèng cè de wèn tí, gāi chéng xù jí bāo hán liǎo A.netAJAX。 rú guǒ nǐ bù yùn xíng zhè gè pī wén jiàn, nà me yòng A.netAJAX1.0 hé VS2005 gòu jiàn de xiàn yòu de A.net2.0 xiàng mù jiù huì zì dòng dì yùn zài suí .net3.5Beta2 fā bù de xīn A.netAJAX bǎn běn。 zhè huì gōng zuò 'ér qiě yùn xíng liáng hǎo, dàn huì bù xiǎo xīn dǎo zhì nǐ de VS2005 yìng yòng yǐ lài yú .net3.5。 yùn xíng zhè gè pī wén jiàn huì gǎi biàn xīn de System.Web.Exteio.dll chéng xù jí de bǎn běn bǎng dìng zhèng cè, què bǎo nǐ zhǐ zài nǐ míng què gòu jiàn .net3.5 xiàng mù shí cái shǐ yòng xīn de .net3.5A.netAJAX bǎn běn。
2) jiǎ rú nǐ céng jīng zài nǐ de jī qì shàng 'ān zhuāng guò Orcas huò VS2008 de zǎo qī bǎn běn (Beta1 huò mǒu gè CTP bǎn běn ) de huà, nǐ xū yào zài 'ān zhuāng Beta2 hòu zhòng xīn shè dìng nǐ de VS2008 shè zhì。 rú guǒ nǐ bù zhè me zuò de huà, yòu xiē shè zhì huì fēi cháng qí guài ( yī xiē chuāng kǒu zài chū xiàn zài qí guài de dì fāng ), nǐ yě yòu kě néng kàn dào yī xiē IDE xìng néng wèn tí。 nǐ kě yǐ zài mìng lìng xíng shàng duì VS2008 de IDE bǎn běn jiàn rù“ DevEnv/resetsettings” lái chóngxīn shè dìng nǐ de pèi zhì:
jiā mì
xìn xī 'ān quán shì jì suàn jī yìng yòng de shǒu yào wèn tí zhī yī, dàn mù qián guān yú .net jiā mì gōng néng de fàn lì què shǎo zhī yòu shǎo。 yòu jiàn yú cǐ, běn wén tàn tǎo liǎo zài .net píng tái xià jiā mì / jiě mì wén jiàn de yī bān guò chéng, bìng tí gōng liǎo yī gè jiā mì / jiě mì wén jiàn de gōng jù。
Web fú wù yǐ bù róng zhì yí de tài shì xùn sù fā zhǎn, cù shǐ xǔ duō dān wèi kāi shǐ kǎo lǜ .net zhī lèi de kāi fā píng tái。 dàn shì, chū yú duì 'ān quán wèn tí de dān xīn, yī xiē dān wèi zǒng shì duì cǎi yòng xīn jì shù xīn cún gù lǜ。 hǎo zài yòu xǔ duō chéng shú de 'ān quán hé wǎng luò jì shù, lì rú xū nǐ sī yòu wǎng luò( VPN) hé fáng huǒ qiáng děng, néng gòu jí dà dì tí gāo Web fú wù yìng yòng de 'ān quán hé xìng néng, ràng kāi fā zhě yōng yòu xuǎn zé 'ān quán jì shù de zì yóu, ér bù shì fēi dé shǐ yòng shàng zài fā zhǎn zhī zhōng de XML 'ān quán jì shù bù kě。
suī rán 'ān quán shì xìn xī xì tǒng de shǒu yào wèn tí, dàn yòu guān .net 'ān quán hé jiā mì gōng jù de fàn lì què shǎo zhī yòu shǎo。 kàn kàn dà duō shù .net shū jí de mù lù, zhǎo bù dào rèn hé yòu guān 'ān quán de tí mù, gèng bù yòng shuō guān yú mì mǎ xì tǒng de tàn tǎo liǎo。
yòu jiàn yú cǐ, běn wén jiāng jiè shào rú hé zài VB kāi fā zhōng yùn yòng .net de jiā mì hé mì yào shēng chéng lèi, tí gōng yī gè kě yòng lái jiā mì hé jiě mì wén jiàn de gōng jù Cryption。 yòu liǎo zhè gè gōng jù, nǐ jiù kě yǐ zài yìng pán shàng bǎo cún gè zhǒng jī mì wén jiàn, lì rú suǒ yòu de mì mǎ / yòng hù míng zì xìn xī、 shōu zhī wén jiàn、 yǐ jí qí tā xiǎng yào bǎo mì de xìn xī, hái kě yǐ jiā mì nà xiē tōng guò Internet fā sòng de wén jiàn。 jiā mì jì shù de yòng tú fēi cháng guǎng fàn, nǐ kě yǐ jìn yī bù dìng zhì běn wén tí gōng de gōng jù mǎn zú mǒu xiē tè shū xū yào, lì rú zēng jiā pī chǔlǐ néng lì děng。
yī、 liǎng lèi zhòng yào de 'ān quán wēi xié
gōng jī hé xiè mì shì jì suàn jī miàn lín de liǎng dà 'ān quán wēi xié。 gōng jī kě néng lái zì bìng dú, lì rú tā huì shān chú wén jiàn、 jiàng dī jī qì yùn xíng sù dù huò yǐn fā qí tā 'ān quán wèn tí。 xiāng bǐ zhī xià, xiè mì wǎng wǎng yào yǐn bì dé duō, tā qīn hài de shì nǐ de yǐn sī: wèi jīng shòu quán fǎng wèn yìng pán wén jiàn, jié qǔ tōng guò Internet fā sòng de yóu jiàn, děng děng。 xiè mì hái kě néng bàn suí zhe gōng jī, lì rú xiū gǎi jī mì wén jiàn děng。
zhēn duì xiè mì de zuì jiā fáng fàn cuò shī jiù shì jiā mì。 yòu xiào de jiā mì bù jǐn dù jué liǎo xiè mì, ér qiě hái fáng fàn liǎo yóu xiè mì yǐn fā de gōng jī。 jiā mì jì shù yòu shí hái yòng yú tōng xìn guò chéng zhōng de shēn fèn yàn zhèng héng héng rú guǒ mǒu gè yòng hù zhī dào mì mǎ, nà me tā yīnggāi jiù shì nà gè yōng yòu zhè yī shēn fèn de rén。
rán 'ér bì xū shuō míng de shì, méi yòu yī zhǒng fáng fàn xiè mì de 'ān quán jì shù shì jué duì jiān gù de, yīn wéi mì mǎ yòu kě néng bèi wèi jīng shòu quán de rén huò dé。
èr、 shǐ yòng .net jiā mì gōng néng de qián tí
shǒu xiān, yào xiǎng shǐ yòng .net de 'ān quán gōng néng, jiù bì xū yòng Imports yǔ jù yǐn rù jiā mì yòng de bāo。 shì yàn běn wén shè jí de rèn hé dài mǎ zhī qián, qǐng zài VB dài mǎ chuāng kǒu de dǐng bù jiā rù xià liè Imports yǔ jù:
ImportsSystem.IO
ImportsSystem.Text
ImportsSystem.Security.Cryptography
dì 'èr, měi guó zhèng fǔ guò qù xiàn zhì mǒu xiē jiā mì jì shù chū kǒu。 suī rán zhè xiē xiàn zhì bù zài yòu xiào, .net kuàng jià zài Windows de chū kǒu bǎn běn zhōng jìn yòng liǎo“ gāo jí” jiā mì jì shù。 rú guǒ nǐ de Windows bù dài gāo jí jiā mì néng lì, kě yǐ cóng wēi ruǎn wǎng zhàn xià zài gēngxīn bāo: duì yú Windows2000, ān zhuāng ServicePack2 bāo hán de HighEncryptionPack; duì yú NT, ān zhuāng ServicePack6a。 duì yú WindowsME、 95、 98 de yòng hù, IE5.5 yě bāo hán liǎo HighEncryptionPack。
sān、 jiā mì / jiě mì gōng jù gài kuàng
běn wén tí gōng de gōng jù kě yòng lái jiā mì hé jiě mì wén jiàn, rú guǒ nǐ jí zhe gěi yī xiē wén jiàn jiā mì, zhǐ xū zhí jiē qǐ dòng běn wén hòu miàn tí gōng de gōng jù jí kě。
zhè gè gōng jù tí gōng liǎo yī gè yòng lái shū rù wén jiàn míng zì de wén běn kuàng hé yī gè shū rù mì yào de wén běn kuàng, tōng guò biàn jié de yòng hù jiè miàn tí gōng jiā mì、 jiě mì hé mì yào shēng chéng gōng néng。 zài tú yī zhōng, shàng fāng de wén běn kuàng yòng lái shū rù dài jiā mì / jiě mì wén jiàn de míng zì; xià miàn de wén běn kuàng yòng lái shū rù 8 gè zì fú de mì mǎ。 zhí xíng jiā mì cāo zuò zhī hòu jiāng shēng chéng yī gè xīn de wén jiàn, zhè gè jīng guò jiā mì de wén jiàn hé yuán shǐ wén jiàn zài tóng yī mù lù xià, wén jiàn míng zì yě hé yuán shǐ wén jiàn de yī yàng, dàn jiā shàng liǎo“ xx” hòu zhuì, lì rú, jiǎ shè yuán shǐ wén jiàn shì MyFile.txt, zé jiā mì dé dào de wén jiàn shì MyFilexx.txt。
jiā mì hǎo zhī hòu, yuán shǐ wén jiàn bù yī dìng fēi shān chú bù kě, dàn yī bān lái shuō zuì hǎo shān chú, yīn wéi jiā mì de gēn běn mùdì jiù shì wèile yǐn cáng yuán shǐ wén jiàn de shù jù。 rú guǒ yào cóng jiā mì hòu de wén jiàn huī fù chū yuán shǐ wén jiàn, zài shàng miàn de wén běn kuàng zhōng shū rù MyFilexx.txt, rán hòu tí gōng mì mǎ, Cryption gōng jù jiāng chuàng jiàn yī gè yǔ yuán shǐ wén jiàn yī yàng de MyFile.txt wén jiàn。 yě jiù shì shuō, Cryption bǎ wén jiàn míng zì hòu miàn de“ xx” kàn zuò shì yào qiú jiě mì mì wén de biāo zhì。
zhù yì: jiā mì wén jiàn zhī hòu rú guǒ wàng jì liǎo yòng lái jiā mì gāi wén jiàn de mì mǎ, zài xiǎng huī fù chū yuán shǐ wén jiàn jiù bù kě néng liǎo。 dāng rán, zhè yǔ mì mǎ běn shēn de fù zá chéng dù yòu guān, yào xiǎng bǎo zhèng wén jiàn de 'ān quán, zuì hǎo cǎi yòng jiào fù zá de mì mǎ, lì rú hùn hé yùn yòng zì mǔ、 shù zì hé tè shū zì fú( rú“ $” fú hào děng)。
.net tí gōng de jiā mì jì shù bù zhǐ yī zhǒng, bù guò běn wén tǎo lùn de zhù yào shì duìchèn jiā mì。 duìchèn jiā mì yě chēng wéi sī yòu mì yào jiā mì, tā de tè diǎn shì jiā mì hé jiě mì yòng de shì tóng yī gè mì yào( shí jì shàng shì tóng yī zhǒng suàn fǎ), jiě mì fāng hé jiā mì fāng dū yòu zé rèn bǎo zhàng mì mǎ de 'ān quán( duì yú gōng yòng mì yào、 bù duìchèn jiā mì, mì yào yī gòng yòu liǎng gè, qí zhōng yī gè mì yào shì gōng kāi de, zhè shì dāng qián gōng rèn zuì yòu xiào de jiā mì jì shù, dàn jiù sù dù 'ér yán yào bǐ duìchèn jiā mì suàn fǎ màn bù shǎo)。
zài zhèng shì lì yòng .net jiā mì lèi jiā mì wén jiàn zhī qián, shǒu xiān bì xū cóng yòng hù tí gōng de mì mǎ shēng chéng yī gè mì yào。 mì yào kě yǐ lì yòng Hash hán shù shēng chéng, Hash hán shù bǎ yòng hù de mì mǎ zì fú chuàn zhuǎn huàn chéng yī zǔ lèi sì suí jī shù xù liè de、 wú yì yì de shù jù, zhè zǔ shù jù kě zuò wéi mì yào shǐ yòng, zài jiā mì guò chéng zhōng duì yuán shǐ shù jù jìn xíng wéi yī xìng biàn xíng chǔlǐ。
lì rú, yòng mì yào jiā mì shù jù de yī zhǒng bàn fǎ shì bǎ yuán shǐ shù jù de ASCII mǎ jiā shàng mì yào de ASCII mǎ:
mì yào: ab=ASCII:97,98
shù jù: merry=ASCII:109,101,114,114,121
bǎ zhè zǔ shù jù de ASCII mǎ jiā shàng mì yào de ASCII mǎ( bì yào shí chóngfù shǐ yòng mì yào), dé dào de jiā mì jiēguǒ shì:
9798979897
+109+101+114+114+121
206199211212218
duì yú tóng yàng de shù jù, Hash suàn fǎ zǒng shì shēng chéng tóng yàng de jiēguǒ( zhè jiù shì shuō, duì yú tóng yī gè mì mǎ, tóng yī Hash suàn fǎ zǒng shì shēng chéng xiāng tóng de bit xù liè)。 shí jì shàng, zài běn wén tí gōng de dài mǎ zhōng, lì yòng .net de SHA1CryptoServiceProvider lèi de ComputeHash fāng fǎ kě yǐ yàn zhèng zhè yī diǎn, lì rú, duì yú tóng yī gè shū rù cān shù morph, rèn hé shí hòu gāi fāng fǎ zǒng shì fǎn huí xià miàn de jiēguǒ: 124, 230, 93, 253, 197, 206, 136, 72。 yīn cǐ, rú guǒ yòu rén zhī dào mì mǎ yǐ jí shēng chéng mì yào de suàn fǎ, tā yě kě yǐ qīng sōng dì tuī suàn chū mì yào。
sì、 zhí xíng jiā mì / jiě mì
.net jiā mì jì shù yào qiú mì yào yòu què dìng de cháng dù, lì rú, DES( DataEncryptionStandard) hán shù yào qiú mì yào de cháng dù shì 64 wèi, Rijndael zé yào qiú 128、 192 huò 256 wèi cháng dù de mì yào。 mì yào yuè cháng, jiā mì qiáng dù yuè gāo。 duì yú DES zhī wài de jiā mì suàn fǎ, chá xún LegalKeySizes shǔ xìng jí kě dé dào tā yǔn xǔ de mì yào cháng dù, bāo kuò MinSize( zhī chí de zuì xiǎo mì yào cháng dù)、 MaxSize( zuì dà mì yào cháng dù)、 SkipSize( zēng liàng)。 SkipSize biǎo shì mì yào zuì dà cháng dù hé zuì xiǎo cháng dù zhī jiān kě yòng cháng dù de jiàngé, lì rú, Rijndael suàn fǎ de SkipSize zhí shì 64 wèi。
lì yòng xià miàn de dài mǎ kě yǐ dé dào mì yào de cháng dù xìn xī:
' chuàng jiàn DES jiā mì duì xiàng
DimdesAsNewDESCryptoServiceProvider()
Dimfd()AsKeySizes
fd=des.LegalKeySizes()'tellsusthesize(s),inbits
MsgBox(" jiā mì lèi xíng ="&des.ToString()&Chr(13)&"minsize="&fd(0).MinSize&Chr(13)&_
"maxsize="&fd(0).MaxSize&Chr(13)&"skipsize="&fd(0).SkipSize)
yùn xíng shàng miàn de dài mǎ, dé dào de jiēguǒ shì 64、 64、 0。 rú guǒ bǎ jiā mì duì xiàng de shēng míng gǎi chéng TripleDESCryptoServiceProvider(), dé dào de jiēguǒ shì 128、 192、 64。
shuō míng: DES suàn fǎ yào qiú shū rù yī gè 8 zì jié de mì mǎ, dàn shí jì shǐ yòng de mì yào zhǐ yòu 56 wèi( 7 gè zì jié), měi yī gè zì jié de zuì hòu yī wèi bù yòng( tā zuò wéi jiàoyàn wèi shǐ yòng, dàn bù yòng yú shí jì de jiā mì guò chéng)。
xià miàn de dài mǎ kāi shǐ shēng chéng běn wén shì lì chéng xù de mì yào:
PublicClassForm1
InheritsSystem.Windows.Forms.Form
' bǎo cún mì yào de 8 zì jié de shù zǔ
PrivateTheKey(7)AsByte
' zài xiàng liàng zhōng fàng rù yī xiē suí jī shù jù
PrivateVector()AsByte={&H12,&H44,&H16,&HEE,&H88,&H15,&HDD,&H41}
shǒu xiān, dài mǎ dìng yì liǎo bǎo cún mì yào hé chū shǐ xiàng liàng( qǐng cān jiàn shāo hòu de xiáng xì shuō míng) de liǎng gè biàn liàng。 xiàng liàng de chū zhí zhè lǐ yòng suí jī shù jù tián chōng, dāng rán, tōng guò mì mǎ hé Hash suàn fǎ yě kě yǐ huò dé xiàng liàng de chū zhí。 xià miàn de guò chéng cóng yòng hù shū rù de mì mǎ chuàng jiàn chū mì yào:
SubCreateKey(ByValstrKeyAsString)
' bǎo cún mì yào de zì jié shù zǔ
DimarrByte(7)AsByte
DimAscEncodAsNewASCIIEncoding()
DimiAsInteger=0
AscEncod.GetBytes(strKey,i,strKey.Length,arrByte,i)
' huò dé mì mǎ de Hash zhí
DimhashShaAsNewSHA1CryptoServiceProvider()
DimarrHash()AsByte=hashSha.ComputeHash(arrByte)
' jiāng Hash zhí bǎo cún dào mì yào
Fori=0To7
TheKey(i)=arrHash(i)
Nexti
EndSub
yòng hù de mì mǎ( strKey) chuán rù dào CreateKey guò chéng, fēn jiě chéng yī zǔ ASCII zhí bǎo cún dào yī gè zì jié shù zǔ。 bǎ zhè gè zì jié shù zǔ chuán dì gěi SHA1CryptoServiceProvider lèi de ComputeHash fāng fǎ, fǎn huí yī gè Hash zhí。 bǎ zhè gè Hash zhí bǎo cún dào TheKey shù zǔ, gōng yǐ hòu de jiā mì / jiě mì guò chéng shǐ yòng( zhù yì SHA1CryptoServiceProvider shí jì néng gòu zhī chí 160 wèi, dàn běn wén shì lì chéng xù zhǐ yòng dào 64 wèi)。
nà me, chū shǐ xiàng liàng jiū jìng qǐ shénme zuò yòng ní? zhè gè zì jié shù zǔ yòu 8 gè yuán sù, jiù xiàng mì yào yī yàng, dàn xiàng liàng hé mì yào de zuò yòng shì bù tóng de, xiàng liàng yòng lái bì miǎn DES zhī lèi de suàn fǎ yī gè tè yòu de wèn tí。 zài DES zhī lèi de suàn fǎ zhōng, yuán shǐ shù jù bèi fēn chéng 8 zì jié yī kuài rán hòu fēn bié chǔlǐ。 DES zài jiā mì yī kuài shù jù shí, yào yòng dào qián yī kuài shù jù de mó shì, yě jiù shì shuō, rú guǒ gǎi dòng liǎo yuán shǐ shù jù zhōng dì yī kuài de mǒu gè zì fú, suǒ yòu hòu jì de kuài de nèi róng dū jiāng suí zhī gǎi biàn, cóng 'ér bì miǎn liǎo yī xì liè xiāng lián jiē de kuài zhōng chū xiàn chóngfù kuài de wèn tí。
lì rú, jiǎ shè nǐ yī shí gāo xīng, fā liǎo yī gè yóu jiàn, nèi róng zhǐ yòu jǐ gè chóngfù de dān cí“ Melanie!Melanie!Melanie!Melanie!”, zài mì yào hé kuài xù liè zhōng qián yī kuài de gòng tóng zuò yòng xià, jiā mì zhī hòu de mì wén bù huì chū xiàn chóngfù xiàn xiàng。 rán 'ér, jìn yī bù kǎo lǜ zhè gè jiā mì guò chéng kě yǐ fā xiàn, rú guǒ yòng tóng yī gè mì yào jiā mì duō gè yóu jiàn, qiě yóu jiàn kāi tóu de wèn hòu yǔ dū xiāng tóng, zé yóu jiàn kāi tóu de yī bù fēn hěn róng yì shòu dào gōng jī。 yóu yú zhè gè yuán yīn, wǒ men yòng chū shǐ xiàng liàng lái mó nǐ qián yī gè kuài。
běn wén jiā mì / jiě mì gōng jù zhōng de xià miàn zhè duàn dài mǎ shì fàn liǎo rú hé jiā mì wén jiàn:
SubEncrypt(ByValinNameAsString,ByValoutNameAsString)
Try
' chuàng jiàn huǎn chōng qū
Dimstorage(4096)AsByte
' yǐ jīng xiě rù de zì jié shù liàng
DimtotalBytesWrittenAsLong=8
' měi cì xiě rù de zì jié shù liàng
DimpackageSizeAsInteger
' shēng míng wén jiàn liú
DimfinAsNewFileStream(inName,FileMode.Open,FileAccess.Read)
DimfoutAsNewFileStream(outName,FileMode.OpenOrCreate,FileAccess.Write)
fout.SetLength(0)
' yuán wén jiàn de dà xiǎo
DimtotalFileLengthAsLong=fin.Length
' chuàng jiàn jiā mì duì xiàng
DimdesAsNewDESCryptoServiceProvider()
DimcrStreamAsNewCryptoStream(fout,_
des.CreateEncryptor(TheKey,Vector),_
CryptoStreamMode.Write)
' shū chū jiā mì hòu de wén jiàn
WhiletotalBytesWritten<totalFileLength
packageSize=fin.Read(storage,0,4096)
crStream.Write(storage,0,packageSize)
totalBytesWritten=Convert.ToInt32(totalBytesWritten+_
packageSize/des.BlockSize*des.BlockSize)
EndWhile
crStream.Close()
CatcheAsException
MsgBox(e.Message)
EndTry
EndSub
zhù yì zhè duàn dài mǎ chuàng jiàn liǎo sān gè wén jiàn liú: fin, biǎo shì míng wén xíng shì de yuán shǐ wén jiàn; fout, jiā mì jiēguǒ wén jiàn; crStream, jiā mì liú, yòng lái bǎ DES jiā mì de jiēguǒ zhuǎn rù shū chū wén jiàn fout。 zēng jiā yī gè crStream liú de hǎo chù shì bù bì bǎ jiēguǒ bǎo cún dào lín shí wén jiàn huò huǎn chōng qū。
jiā mì guò chéng yǔ jiě mì guò chéng de wéi yī zhòng yào qū bié shì, zhí xíng jiě mì shí, wǒ men jiāng shǐ yòng DESCryptoServiceProvider duì xiàng de lìng yī gè fāng fǎ CreateDecryptor, chú cǐ zhī wài, liǎng zhě qí yú de chǔlǐ bù zhòu( bāo kuò cān shù, wén jiàn liú, děng děng) jī běn xiāng tóng。
wǔ、 fáng zhǐ pò jiě
hēi kè hé mì mǎ zhuān jiā pò jiě jiā mì wén jiàn de bàn fǎ zhù yào yòu liǎng gè, dì yī shì sōu suǒ mì wén shì fǒu yòu chóngfù xiàn xiàng, dì 'èr shì yòng bào lì pò jiě fǎ huò dé mì yào。 shǒu xiān wǒ men kǎo lǜ yī xià chū shǐ xiàng liàng rú hé fáng zhǐ chóngfù xiàn xiàng, rán hòu zài tàn tǎo yī xià fáng zhǐ bào lì pò jiě de guān jiàn wèn tí。
pò jiě mì wén de dì yī zhǒng fāng shì shì sōu suǒ yàng běn héng héng tè bié shì chóngfù de yàng běn。 rén men zài xiě xìn de shí hòu zǒng shì xǐ huān yòng tóng yàng de wén zì kāi tóu, lì rú“ qīn 'ài de XXX”、“ DearSir” děng, rú guǒ duō gè yóu jiàn de kāi tóu wén zì xiāng tóng qiě tōng guò tóng yī mì yào jiā mì, zé měi gè mì wén xìn jiàn de kāi tóu yě xiāng tóng。 jiǎ shè Antonio xiě gěi Melanie de suǒ yòu jiā mì xìn jiàn dōuyòu xiāng tóng de wèn hòu yǔ“ @4^F(2$@Fx”, jiě mì zhě jiù huì shǒu xiān jiǎn chá kāi tóu de jǐ gè dān cí shì bù shì“ DearMelanie”。 jiě mì jī mì wén jiàn de yī gè zhòng yào bù zhòu jiù shì cāi cè wén jiàn zhōng yīngdāng huì chū xiàn de jǐ gè dān cí, suǒ yǐ wǒ men bù yìng gāi gěi jiě mì zhě tí gōng zhè zhǒng fāng biàn。 zài běn wén de shì lì zhōng, chū shǐ xiàng liàng de nèi róng bèi fù jiā dào wén jiàn de kāi tóu, cóng 'ér fáng zhǐ liǎo chū xiàn chóngfù xiàn xiàng。 zhǐ yòu xìn jiàn de kāi tóu cái róng yì shòu dào cǐ lèi gōng jī。
jì suàn jī de yùn suàn sù dù hé jīng dù yào yuǎn yuǎn chāo guò rén, tè bié shàn cháng chǔlǐ yī xiē chóngfù de rèn wù, lì rú cháng shì měi yī zhǒng kě néng de mì yào zǔ hé zuì zhōng pò jiě mì yào。 DES jiā mì suàn fǎ běn shēn shì bù 'ān quán de, zhè zhǒng jiā mì suàn fǎ zǎo zài 70 nián dài jiù yǐ jīng gōng zhī yú zhòng。 ér qiě, pò jiě zhě rú guǒ xiǎng yào ràng sōu suǒ mì yào de guò chéng zì dòng huà, tóng yàng kě yǐ fāng biàn dì yùn yòng .net de DESCryptoServiceProvider lèi。
duì yú yī gè 128 wèi、 jié hé yùn yòng mì yào / chū shǐ xiàng liàng de jiā mì fāng 'àn, jì suàn jī cháng shì měi yī zhǒng kě néng de mì yào zǔ hé yào huā duō shǎo shí jiān? zhuān jiā men de kàn fǎ bìng bù yī zhì, yòu rén rèn wéi xū yào shù yuè, yě yòu rén rèn wéi zhuāng yòu zhuān yòng yìng jiàn de jià zhí 6 wèi shù de jì suàn jī měi miǎo néng gòu yàn zhèng shù shí yì gè mì yào, pò jiě DES mì wén zhǐ xū shù xiǎo shí。 rú guǒ nǐ de jī mì zhí dé huā shù yuè shí jiān qù pò jiě, nà me zuì hǎo gǎi yòng TripleDES huò qí tā jiā mì suàn fǎ。 cóng TripleDES de míng zì yě kě yǐ cāi chū, zhè zhǒng jiā mì fāng shì cǎi yòng sān zhòng shù jù jiā mì biāo zhǔn suàn fǎ, suǒ yǐ mì yào de cháng dù shì 192 wèi, ér bù shì 64 wèi de DES mì yào。 jì zhù, zài qí tā tiáo jiàn xiāng tóng de qíng kuàng xià, mì yào yuè cháng, ān quán chéng dù yuè gāo。
jié shù yǔ: xiàn zài nǐ yǐ jīng liǎo jiě liǎo .NETDES jiā mì suàn fǎ de shǐ yòng guò chéng, jiē xià qù kě yǐ yán jiū .net de qí tā 'ān quán gōng néng, bāo kuò jí jù xī yǐn lì de gōng yòng mì yào jiā mì fāng 'àn。 suī rán gōng yòng mì yào jiā mì fāng 'àn zhí xíng qǐ lái sù dù màn yī xiē, dàn jiā mì xiào guǒ yī bān yào bǐ TripleDES hǎo。 běn rén méi yòu shénme jī mì zhí dé yùn yòng DES zhī wài de suàn fǎ, bù guò nǐ de yào qiú kě néng yòu suǒ bù tóng。
jié yǔ
zài VS2008 hé .net3.5 zhōng, wǒ xī wàng nǐ huì fā xiàn xǔ xǔ duō duō fēi cháng yòu yòng de xīn gǎi jìn hé gōng néng zēng qiáng。 jìng qǐng zài xià jǐ gè xīng qī lǐ shōu kàn wǒ de bó kè, wǒ jiāng duì zhè xiē xīn tè xìng zuò xiáng xì tǎo lùn yǐ jí tǎo lùn rú hé chōng fēn lì yòng zhè xiē xīn tè xìng。 | | duàn yán | shòu quán | xié dìng | tíng kào | lèi xíng 'ān quán | fàn xíng lèi | guān lián lèi | pèi zhì wén jiàn | gòu zào lèi xíng | zì duàn | máo dìng | jià gòu | yìng yòng chéng xù yù | wài bù yàng shì biǎo | ān quán biāozhì fú | shù jù bǎng dìng | tuō guǎn shù jù | qiáng míng chēng | lèi kù | yìng yòng chéng xù | chéng xù jí | shēn fèn yàn zhèng | gōng gòng yǔ yán yùn xíng kù | sǐ suǒ | fēng zhuāng | wài jiàn | quán jú chéng xù jí huǎn cún | qiáng zhì xìng 'ān quán jiǎn chá | yǎn mǎ | yuán shù jù | fēn yè | yù biān yì | zhèng zé biǎo dá shì | yùn xíng kù | yòng hù kòng jiàn | zhí lèi xíng | fǎng wèn kòng zhì liè biǎo | gōng gòng xìn xī mó xíng | hù cāo zuò | gōng zuò qū | fàn xíng | suō lüè tú | gè xìng huà shè zhì | zhàn diǎn dǎo háng | chǔlǐ chéng xù | shàng xià wén | méi jǔ | chéng xù jí qīng dān | zì dìng yì shǔ xìng | mìng míng róng qì | shēng cún qī | sī yòu shì tú zhuàng tài | yí dòng yòng hù kòng jiàn | zì dìng yì kòng jiàn | fēi tuō guǎn dài mǎ | nèi bù yàng shì biǎo | gòng xiǎng chéng xù jí | dài mǎ yǐn cáng lèi | shè bèi shì pèi qì | zhuān yòng chéng xù jí | | | | | | .net&a=0&k=48"> gèng duō jiēguǒ ...
|
|
|