.NET Tools...
每个.NET 开发人员应该下载的十个必备工具
原著:James Avery
编译:NorthTibet
本文讨论的工具如下:
?NUnit:编写单元测试的工具工具下载地址:
https://www.wendangku.net/doc/a93538171.html,/tools/viewtools.asp?id=175
?NDoc:创建代码文档的工具
?NAnt:生成解决方案的工具
?CodeSmith:代码生成工具
?FxCop:用于监视代码的——代码警察
?Snippet Compiler:小型代码段编译工具
?两个不同的转换器工具,https://www.wendangku.net/doc/a93538171.html, 版本转换器(Version Switcher)和Visual Studio .NET 项目转换器(Project Converter)
Regulator:生成正则表达式工具
?.NET Reflector:程序集分析检查工具
本文使用了以下技术:.NET,C#,Visual Basic .NET,Visual Studio .NET
除非你使用可获得的最好的工具,否则别指望能生成一流的应用程序。除了Visual Studio .NET 这种大型工具以外,你从.NET 社区还可以获得许多小型的、不太为人所知的工具。我在本文中将向你介绍几个目前可以获得的、面
向.NET 开发的最好的免费工具。我将引领你完成一个有关如何使用每种工具的快速教程——有些工具在许多场合可以节约你的时间,而另一些工具则可能完全改变你编写代码的方式。因为我要在本篇文章中介绍如此之多的不同工具,所以我无法详尽讨论其中每种工具,但你应该充分了解每种工具的信息,以便决定哪些工具对你的项目有用。
Snippet Compiler
Snippet Compiler 是一个基于Windows 的小型应用程序,你可以通过它来编写、编译和运行代码。如果你具有较小的代码段,并且你不想创建完整的Visual Studio .NET 项目(以及该项目附带的所有文件),则该工具会很有用。
例如,假设我希望向你示范如何从Microsoft .NET 框架中启动另一个应用程序。在Snippet Compiler 中,我将通过新建一个能够创建小型控制台应用程序的文件开始。可以在该控制台应用程序的Main 方法内部创建代码片段,而
这正是我要在这里做的事情。下面的代码片段演示了如何从.NET 框架中创建记事本实例:
System.Diagnostics.Process proc = new
System.Diagnostics.Process();
proc.StartInfo.FileName= "notepad.exe";
proc.Start();
proc.WaitForExit();
当然该代码片段本身无法编译,而这正是Snippet Compiler 的用武之地。Figure 1 显示了Snippet Compiler 中的这一代码示例。
Figure 1 Snippet Compiler 运行画面
为了测试该代码片段,只须按play(运行)按钮(绿色三角形),它就会在调试模式下运行。该代码片段将生成一个弹出式控制台应用程序,并且将显示记事本。当你关闭记事本时,该控制台应用程序也将关闭。
就我个人而言,我是在尝试为某位有求于我的人士创建一个小型示例时,才发现Snippet Compiler 是个无价之宝——如果不使用该工具,那么我通常必须新建一个项目,确保每个部分都能编译通过,然后将代码片段发送给求助者,最后删除该项目。Snippet Compiler 使得这一过程变得更容易、更爽快。Snippet Compiler 由Jeff Key 编写,下载地址是:
https://www.wendangku.net/doc/a93538171.html,/dotnet/SnippetCompiler
Regulator
Regulator 是最近添加到我的头等工具清单中的。它是一种很有特色的工具,能够使生成和测试正则表达式变得很容易。由于正则表达式在.NET 框架中受到极好的支持,因而人们对正则表达式重新产生了兴趣。正则表达式用来基于字符、频率和字符顺序定义字符串中的模式。它们最常见的用途是作为验证用户输入有效性的手段或者作为在较大字符串中查找字符串的方法——例如,在Web 页上查找URL 或电子邮件地址。
Regulator 允许你输入一个正则表达式以及一些针对其运行该表达式的输入。这样,在应用程序中实现该正则表达式之前,你便可以了解它将产生什么效果以及它将返回哪些种类的匹配项。Figure 2 显示了带有简单正则表达式的Regulator。
Figure 2 Regulator 运行画面
文档中包含该正则表达式——在该示例中,它是[0-9]*,应该匹配一行中任意数量的数字。右下侧的框中含有针对该正则表达式的输入,而左下侧的框显示了该正则表达式在输入内容中找到的匹配项。象这样在单独应用程序中编写和测试正则表达式,要比尝试在你自己应用程序中处理它们容易得多。
Regulator 中的最佳功能之一——是能够在https://www.wendangku.net/doc/a93538171.html, 搜索在线正则表达式库。例如,如果你在搜索框中输入字符串“phone”,你将找到20 种多种不同的能够匹配各种电话号码的正则表达式,包括用于英国、澳大利亚的表达式以及其它许多电话号码。Regulator 由Roy Osherove 编写,下载地址是:
https://www.wendangku.net/doc/a93538171.html,/regulator
CodeSmith
CodeSmith 是一种基于模板的代码生成工具,它使用类似于https://www.wendangku.net/doc/a93538171.html, 的语法来生成任意类型的代码或文本。与其它许多代码生成工具不同,CodeSmith 不要求你订阅特定的应用程序设计或体系结构。借助CodeSmith 可以生成包括简单的强类型集合和完整应用程序在内的任何东西。
当生成应用程序时,无论是编写数据访问代码还是生成自定义集合,你会发现经常需要重复完成某些特定的任务。这时CodeSmith 就显得特别有用,因为
你可以编写模板自动完成这些任务,从而不仅提高你的工作效率,而且能够自动完成那些最为乏味的任务。CodeSmith 附带了许多模板,包括对应于所有.NET 集合类型的模板以及用于生成存储过程的模板,但该工具的真正威力在于能够创建自定义模板。为了使你能够入门,我将快速介绍一下如何生成自定义模板。
生成自定义模板
CodeSmith 模板只是一些可以在任意文本编辑器中创建的文本文件。它们的唯一要求是用.cst 文件扩展名来保存它们。我将要生成的示例模板将接受一个字符串,然后基于该字符串生成一个类。创建模板的第一步是添加模板头,它可声明模板的语言、目标语言以及简要模板说明:
<%@ CodeTemplate Language="C#"
TargetLanguage="C#"
Description="Car Template" %>
模板的下一部分是属性声明,在这里可声明将在模板每次运行时指定的属性。就该模板而言,我要使用的唯一属性只是一个字符串,因此属性声明如下所示:
<%@ Property Name="ClassName" Type="String" Category="Context" Description="Class Name" %>
该属性声明将使ClassName 属性出现在CodeSmith 属性窗口中,以便可以在模板运行时指定它。下一步是实际生成模板主体,它非常类似于用https://www.wendangku.net/doc/a93538171.html, 进行编码。你可以在Figure 3中查看该模板的主体。[编辑更新— 6/16/2004:Figure 3中的代码已被更新,以便对多线程操作保持安全。]
正如你所见,该模板接受字符串输入并使用该类名生成单独的类。在模板主体中,使用与https://www.wendangku.net/doc/a93538171.html, 中相同的起始和结束标记。在该模板中,我只是插入属性值,但你还可以在这些标记内部使用任意类型的.NET 代码。在该模板完成之后,你就可以通过双击它或者从CodeSmith 应用程序中打开它将其加载到CodeSmith 中。Figure 4 显示了已经加载到CodeSmith 中的该模板。
Figure 4 CodeSmith 模版
你可以看到左侧的属性正是我在该模板中声明的属性。如果我输入“SingletonClass”作为类名,并单击Generate 按钮,则生成Figure 3的底部显示的类。
CodeSmith 使用起来相当容易,如果能够正确应用,则可以产生一些令人难以置信的结果。面向代码生成的应用程序中最常见的部分之一是数据访问层。CodeSmith 包括一个名为SchemaExplorer 的特殊的程序集,可用来从表、存储过程或几乎任何其他SQL Server? 对象生成模板。
CodeSmith 由Eric J. Smith 编写,下载地址是:
https://www.wendangku.net/doc/a93538171.html,/codesmith
NUnit
NUnit 是为.NET 框架生成的开放源代码单元测试框架。NUnit 使你可以用你喜欢的语言编写测试,从而测试应用程序的特定功能。当你首次编写代码时,单元测试是一种测试代码功能的很好方法,它还提供了一种对应用程序进行回归测试的方法。NUnit 应用程序提供了一个用于编写单元测试的框架,以及一个运行这些测试和查看结果的图形界面。
编写NUnit 测试
作为示例,我将测试.NET 框架中Hashtable 类的功能,以确定是否可以添加两个对象并且随后检索这些对象。我的第一步是添加对NUnit.Framework 程序集的引用,该程序集将赋予我对NUnit 框架的属性和方法的访问权。接下来,我将创建一个类并用TestFixture 属性标记它。该属性使NUnit 可以知道该类包含NUnit 测试:
using System;
using System.Collections;
using NUnit.Framework;
namespace NUnitExample
{
[TestFixture]
public class HashtableTest {
public HashtableTest() {
}
}
}
下一步,我将创建一个方法并用[Test] 属性标记它,以便NUnit 知道该方法是一个测试。然后,我将建立一个Hashtable 并向其添加两个值,再使用Assert.AreEqual 方法查看我是否可以检索到与我添加到Hashtable 的值相同的值,如下面的代码所示:
[Test]
public void HashtableAddTest()
{
Hashtable ht = new Hashtable();
ht.Add("Key1", "Value1");
ht.Add("Key2", "Value2");
Assert.AreEqual("Value1", ht["Key1"], "Wrong obje ct returned!");
Assert.AreEqual("Value2", ht["Key2"], "Wrong object returned!");
}
这将确认我可以首先向Hashtable 中添加值并随后检索相应的值—这是一个很简单的测试,但能够表现NUnit 的功能。存在许多测试类型以及各种Assert 方法,可使用它们来测试代码的每个部分。
要运行该测试,我需要生成项目,在NUnit 应用程序中打开生成的程序集,然后单击Run 按钮。Figure 5 显示了结果。当我看到那个大的绿色条纹时,我有一种兴奋和头晕的感觉,因为它让我知道测试已经通过了。这个简单的示例表明NUnit 和单元测试是多么方便和强大。由于能够编写可以保存的单元测试,并且每当你更改代码时都可以重新运行该单元测试,你不仅可以更容易地检测到代码中的缺陷,而且最终能够交付更好的应用程序。
Figure 5 NUnit
NUnit 是一个开放源代码项目,下载地址是:https://www.wendangku.net/doc/a93538171.html,/。还有一个优秀的NUnit Visual Studio .NET 外挂程序,它使你可以直接从Visual Studio 中运行单元测试。你可以在https://www.wendangku.net/doc/a93538171.html,/projects/nunitaddin找到它。有关NUnit 及其在测试驱动开发中的地位的详细信息,请参阅文章:“Test-Driven C#: Improve the Design and Flexibility of Your Projec t with Extreme Programming Techniques”
FxCop
.NET 框架非常强大,这意味极有可能创建优秀的应用程序,但也同样存在创建劣质程序的可能。FxCop 是有助于创建更好的应用程序的工具之一,通过分析程序集,并使用许多不同的规则来检查它是否符合这些规则。FxCop 随附了由Microsoft 创建的一组规则,你也可以创建并包括你自己的规则。例如,如果你决定所有的类都应该具有一个不带任何参数的默认构造函数,则可以编写一条规则,以确保程序集的每个类上都具有一个构造函数。这样,无论是谁编写该代码,你都将获得一定程度的一致性。如果你需要有关创建自定义规则的详细信息,参见John Robbins 有关这方面的Bugslayer专栏文章。
那么,让我们看看实际运行的FxCop,并且留心一下它在我正在开发的NUnitExample 程序集中找到什么错误。当你打开FxCop 时,你首先需要创建一个FxCop 项目,然后向其添加你要测试的程序集。在将该程序集添加到项目以后,就可以按Analyze,FxCop 将分析该程序集。Figure 6 显示了FxCop 在该程序集中找到的错误和警告。
Figure 6 FxCop 运行画面
FxCop 在我的程序集中找到了几个问题。你可以双击某个错误以查看详细信息,包括规则说明以及在哪里可以找到更多信息。(你可以做的一件有趣的事情是在框架程序集上运行FxCop 并查看发生了什么事情。)
FxCop 可以帮助你创建更好的、更一致的代码,但它无法补偿低劣的应用程序设计或非常简单拙劣的编程。FxCop 也不能替代对等代码检查,但是因为它可以在进行代码检查之前捕获大量错误,所以你可以花费更多时间来解决严重的问题,而不必担心命名约定。FxCop 由Microsoft 开发,下载地址是:https://www.wendangku.net/doc/a93538171.html,/team/fxcop
Lutz Roeder 的.NET Reflector
下一个必不可少的工具称为.NET Reflector,它是一个类浏览器和反编译器,可以分析程序集并向你展示它的所有秘密。.NET 框架向全世界引入了可用来分析任何基于.NET 的代码(无论它是单个类还是完整的程序集)的反射概念。反射还可以用来检索有关特定程序集中包含的各种类、方法和属性的信息。使用.NET Reflector,你可以浏览程序集的类和方法,可以分析由这些类和方法生成的Microsoft 中间语言(MSIL),并且可以反编译这些类和方法并查看C# 或Visual Basic ?.NET 中的等价类和方法。
为了演示.NET Reflector 的工作方式,我将加载和分析前面已经显示的NUnitExample 程序集。Figure 7 显示了.NET Reflector 中加载的该程序集。
Figure 7 NUnitExample 程序集
在.NET Reflector 内部,有各种可用来进一步分析该程序集的工具。要查看构成某个方法的MSIL,请单击该方法并从菜单中选择Disassembler。
除了能够查看MSIL 以外,你还可以通过选择Tools 菜单下的Decompiler 来查看该方法的C# 形式。通过在Languages 菜单下更改你的选择,你还可以查看该方法被反编译到Visual Basic .NET 或Delphi 以后的形式。以下为.NET Reflector 生成的代码:
public void HashtableAddTest()
{
Hashtable hashtable1;
hashtable1 = new Hashtable();
hashtable1.Add("Key1", "Value1");
hashtable1.Add("Key2", "Value2");
Assert.AreEqual("Value1", hashtable1["Key1"],
"Wrong object returned!");
Assert.AreEqual("Value2", hashtable1["Key2"],
"Wrong object returned!");
}
前面的代码看起来非常像我为该方法实际编写的代码。以下为该程序集中的实际
代码:
public void HashtableAddTest()
{
Hashtable ht = new Hashtable();
ht.Add("Key1", "Value1");
ht.Add("Key2", "Value2");
Assert.AreEqual("Value1", ht["Key1"],
"Wrong object returned!");
Assert.AreEqual("Value2", ht["Key2"],
"Wrong object returned!");
}
尽管上述代码中存在一些小的差异,但它们在功能上是完全相同的。
虽然该示例是一种显示实际代码与反编译代码之间对比的好方法,但在我看来,它并不代表.NET Reflector 所具有的最佳用途—分析.NET 框架程序集和方法。.NET 框架提供了许多执行类似操作的不同方法。例如,如果你需要从XML 中读取一组数据,则存在多种使用XmlDocument、XPathNavigator 或XmlReader 完成该工作的不同方法。通过使用.NET Reflector,你可以查看Microsoft 在编写数据集的ReadXml 方法时使用了什么,或者查看他们在从配置文件读取数据时做了哪些工作。.NET Reflector 还是一个了解以下最佳实施策略的优秀方法:创建诸如HttpHandlers 或配置处理程序之类的对象,因为你可以了解到Microsoft 工作组实际上是如何在框架中生成这些对象的。
.NET Reflector 由Lutz Roeder 编写,下载地址是:
https://www.wendangku.net/doc/a93538171.html,/roeder/dotnet
NDoc
编写代码文档资料几乎总是一项令人畏惧的任务。我所说的不是早期设计文档,甚至也不是更为详细的设计文档;我说的是记录类上的各个方法和属性。NDoc 工具能够使用反射来分析程序集,并使用从C# XML 注释生成的XML 自动为代码生成文档资料。XML 注释仅适用于C#,但有一个名为VBCommenter 的Visual Studio .NET Power Toy,它能够为Visual Basic .NET 完成类似的工作。此外,下一版本的Visual Studio 将为更多语言支持XML 注释。
使用NDoc 时,你仍然在编写代码的技术文档,但你是在编写代码的过程中完成了文档编写工作(在XML 注释中),而这更容易忍受。使用NDoc 时,第一步是为你的程序集打开XML 注释生成功能。右键单击该项目并选择Properties | Configuration Properties | Build,然后在XML Documentation File
选项中输入用于保存XML 文件的路径。当该项目生成时,将创建一个XML 文件,其中包含所有XML 注释。下面是NUnit 示例中的一个用XML 编写了文档的方法:
///
/// This test adds a number of values to the Hashtable collection /// and then retrieves those values and checks if they match. ///
[Test]
public void HashtableAddTest()
{
//Method Body Here
}
有关该方法的XML 文档资料将被提取并保存在XML 文件中,如下所示:
and then retrieves those values and checks if they
match.
NDoc 使用反射来考察你的程序集,然后读取该文档中的XML,并且将它们进行匹配。NDoc 使用该数据来创建任意数量的不同文档格式,包括HTML 帮助文件(CHM)。在生成XML 文件以后,下一步是将程序集和XML 文件加载到NDoc 中,以便可以对它们进行处理。通过打开NDoc 并单击Add 按钮,可以容易地完成该工作。
在将程序集和XML 文件加载到NDoc 中并且使用可用的属性范围自定义输出以后,单击Generate 按钮将启动生成文档资料的过程。使用默认的属性,NDoc 可以生成一些非常吸引人并且实用的.html 和.chm 文件,从而以快速有效的方式自动完成原来非常乏味的任务。
NDoc 是一个开放源代码项目,下载地址是:https://www.wendangku.net/doc/a93538171.html,/
NAnt
NAnt 是一个基于.NET 的生成工具,与当前版本的Visual Studio .NET 不同,它使得为你的项目创建生成过程变得非常容易。当你拥有大量从事单个项目的开发人员时,你不能依赖于从单个用户的座位进行生成。你也不希望必须定期手动生成该项目。你更愿意创建每天晚上运行的自动生成过程。NAnt 使你可以生成解决方案、复制文件、运行NUnit 测试、发送电子邮件,等等。遗憾的是,NAnt 缺少漂亮的图形界面,但它的确具有可以指定应该在生成过程中完成哪些
任务的控制台应用程序和XML 文件。注意,MSBuild(属于Visual Studio 2005 的新的生成平台)为每种健壮的生成方案进行了准备,并且由基于XML 的项目文件以类似的方式驱动。
实际运行的NAnt
在该示例中,我将为前面创建的NUnitExample 解决方案创建一个NAnt 版本文件。首先,我需要创建一个具有.build 扩展名的XML 文件,将其放在我的项目的根目录中,然后向该文件的顶部添加一个XML 声明。我需要添加到该文件的第一个标记是project 标记:
项目标记还用于设置项目名称、默认目标以及基目录。Description 标记用于设置该项目的简短说明。
接着,我将添加property 标记,该标记可用于将设置存储到单个位置(随后可以从文件中的任意位置访问该位置)。在该例中,我将创建一个名为debug 的属性,我可以随后将其设置为true 或false,以反映我是否要在调试配置下编译该项目。(最后,这一特定属性并未真正影响如何生成该项目;它只是你设置的一个变量,当你真正确定了如何生成该项目时将读取该变量。)接下来,我需要创建一个target 标记。一个项目可以包含多个可在NAnt 运行时指定的target。如果未指定target,则使用默认target(我在project 元素中设置的target)。在该示例中,默认target 是build。让我们观察一下target 元素,它将包含大多数生成信息:
在target 元素内,我将把target 的名称设置为build,并且创建有关该target 将做哪些工作的说明。我还将创建一个csc 元素,该元素用于指定应该传递给csc C# 编译器的数据。让我们看一下该csc 元素:
debug="${debug}">
首先,我必须设置该csc 元素的target。在该例中,我将创建一个.dll 文件,因此我将target 设置为library。接下来,我必须设置csc 元素的output,它是将要创建.dll 文件的位置。最后,我需要设置debug 属性,它确定了是否在调试中编译该项目。因为我在前面创建了一个用于存储该值的属性,所以我可以使用下面的字符串来访问该属性的值:${debug}。Csc 元素还包含一些子元素。我需要创建两个元素:references 元素将告诉NAnt 需要为该项目引用哪些程序集,sources 元素告诉NAnt 要在生成过程中包含哪些文件。在该示例中,我引用了NUnit.Framework.dll 程序集并包含了HashtableTest.cs 文件。Figure 8中显示了完整的生成文件。(你通常还要创建一个干净的target,用于删除生成的文件,但为了简洁起见,我已经将其省略。)
要生成该文件,我需要转到我的项目的根目录(生成文件位于此处),然后从该位置执行nant.exe。如果生成成功,你可以在该应用程序的bin 目录中找到.dll 和.pdb 文件。尽管使用NAnt 肯定不像在Visual Studio 中单击Build 那样简单,但它仍然是一种非常强大的工具,可用于开发按自动计划运行的生成过程。NAnt 还包括一些有用的功能,例如能够运行单元测试或者复制附加文件(这些功能没有受到当前Visual Studio 生成过程的支持)。NAnt 是一个开放源代码项目,下载地址是:https://www.wendangku.net/doc/a93538171.html,/
转换工具
我已经将两个独立的工具合在一起放在标题“转换工具”下面。这两个工具都非常简单,但又可能极为有用。第一个工具是https://www.wendangku.net/doc/a93538171.html, 版本转换器,它可用于转换https://www.wendangku.net/doc/a93538171.html,(虚拟目录在它下面运行)的版本。第二个工具是Visual Studio Converter,它可用于将项目文件从Visual Studio .NET 2002 转换到Visual Studio .NET 2003。
当IIS 处理请求时,它会查看正在请求的文件的扩展名,然后基于该Web 站点或虚拟目录的扩展名映射,将请求委派给ISAPI 扩展或者自己处理该请求。这正是https://www.wendangku.net/doc/a93538171.html, 的工作方式;将为所有https://www.wendangku.net/doc/a93538171.html, 扩展名注册扩展名映射,并将这些扩展名映射导向aspnet_isapi.dll。这种工作方式是完美无缺的,除非你安装了https://www.wendangku.net/doc/a93538171.html, 1.1 —它会将扩展名映射升级到新版本的aspnet_isapi.dll。当在https://www.wendangku.net/doc/a93538171.html, 1.0 上生成的应用程序试图用 1.1 版运行时,这会导致错误。要解决该问题,可以将所有扩展名映射重新转换到 1.0 版的aspnet_isapi.dll,但是由于有18 种扩展名映射,所以手动完成这一工作将很枯燥。这正是https://www.wendangku.net/doc/a93538171.html, 版本转换器可以发挥作用的时候。使用这一小型实用工具,可以转换任何单个https://www.wendangku.net/doc/a93538171.html, 应用程序所使用的.NET 框架的版本。
Figure 9 https://www.wendangku.net/doc/a93538171.html, 版本转换器
Figure 9 显示了实际运行的https://www.wendangku.net/doc/a93538171.html, 版本转换器。它的使用方法非常简单,只须选择相应的应用程序,然后选择你希望该应用程序使用的.NET 框架版本。该工具随后将使用aspnet_regiis.exe 命令行工具将该应用程序转换到所选版本的框架。随着将来版本的https://www.wendangku.net/doc/a93538171.html, 和.NET 框架的发布,该工具将变得更为有用。
https://www.wendangku.net/doc/a93538171.html, 版本转换器由Denis Bauer 编写,下载地址是:
https://www.wendangku.net/doc/a93538171.html,/NETTools/ASPNETVersionSwitcher.aspx Visual Studio .NET 项目转换器(参见Figure 10)非常类似于https://www.wendangku.net/doc/a93538171.html, 版本转换器,区别在于它用于转换Visual Studio 项目文件的版本。尽管在.NET 框架的 1.0 版和 1.1 版之间只有很小的差异,但一旦将项目文件从Visual Studio .NET 2002 转换到Visual Studio .NET 2003,将无法再把它转换回去。虽然这在大多数时候可能不会成为问题(因为在.NET 框架 1.0 版和 1.1 版之间几乎没有什么破坏性的更改),但在某些时刻你可能需要将项目转换回去。该转换器可以将任何解决方案或项目文件从Visual Studio 7.1 (Visual
Studio .NET 2003) 转换到Visual Studio 7.0 (Visual Studio .NET 2002),并在必要时进行反向转换。
Figure 10 Visual Studio .NET 项目转换器
Visual Studio .NET 项目转换器由Dacris Software 编写。下载地址是:
https://www.wendangku.net/doc/a93538171.html,/macro/vsconvert.asp
总结
本文采用走马观花的方式介绍了上述工具,但我已经试图起码向你提供足够的信息以激起你的好奇心。我相信本文已经让你在某种程度上领悟了几个免费工具,你可以立即开始使用这些工具来编写更好的项目。同时,我还要敦促你确保自己拥有所有其他可以获得的合适工具,无论是最新版本的Visual Studio、功能强大的计算机还是免费的实用工具。拥有合适的工具将使一切变得大不相同。
作者简介
James Avery是一位使用.NET 和其它微软技术的顾问。他撰写了许多书籍和文章,其最新著作是《https://www.wendangku.net/doc/a93538171.html, Setup and Configuration Pocket Reference》(Microsoft Press, 2003)。你可以通过javery@https://www.wendangku.net/doc/a93538171.html, 向他发送电子邮件,并且在https://www.wendangku.net/doc/a93538171.html,/blog 阅读他的网络日记。
成为.NET开发大师的七个步骤 .NET 是 Microsoft XML Web services 平台。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。 如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步掌握一门.NET面向对象语言,C#或https://www.wendangku.net/doc/a93538171.html,我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学 https://www.wendangku.net/doc/a93538171.html,。https://www.wendangku.net/doc/a93538171.html,是一个全面向对象的技术,不懂OO,那绝对学不下去! 第二步对.NETFramework类库有一定的了解可以通过开发WindowsForm应用程序来学习.NETFramework。https://www.wendangku.net/doc/a93538171.html,是建构在.NETFramework之上的技术,你对.NETFramework了解得越深,学习https://www.wendangku.net/doc/a93538171.html,就越快。 举个例子:下面简单列出几个对掌握https://www.wendangku.net/doc/a93538171.html,非常重要的概念:对象的内存模型,委托,事件,多线程,程序集和应用程序域,安全模型.NETFramework当然还有许多其它的东西,但不理解与把握清楚上述这些东西,是很难真正把握https://www.wendangku.net/doc/a93538171.html,的。出于急迫的心情与现实
的考虑,不少人没有扎实的面向对象基础就想直接学习https://www.wendangku.net/doc/a93538171.html,,其结果只能是欲速则不达。在具备了OO基础之后,以下是具体的学习https://www.wendangku.net/doc/a93538171.html,技术步骤。 第一步:学习HTML与CSS 这并不需要去学一大堆的诸如Dreamweaver,Firework之类的各种网页设计工具,关键是理解HTML网页嵌套的block结构与CSS的box 模型。许多https://www.wendangku.net/doc/a93538171.html,控件最后都必须转化为HTML。而且,div+CSS是当前主流的网页布局模型。学习这部分时,关键在于理解概念,而不需要将精力花在美化页面的许多技巧上,那是网站美工的工作,不是程序员的工作。 第二步:学习JavaScript JavaScript不是Java,它主要运行于浏览器端。可以完成许多工作,功能也很强大:比如它将客户端网页中的HTML元素看成一棵树,可以编写代码访问并修改树节点,动态生成新的HTML代码,从而达到动态修改网页显示特性的目的。 JavaScript在目前的网站开发中用得很多,非常重要。
.Net平台下的B/S开发框架分类 总体来说,目前.Net平台下的B/S开发框架基本可以分为三大类: 1.基于控件和页面事件驱动思想的Web Forms 2.基于模型、视图、控制器的MVC模式 3.综合了Web Forms和MVC的一些特点而产生的框架(不是本文的介绍重点) 到目前为止,https://www.wendangku.net/doc/a93538171.html, Web Forms和https://www.wendangku.net/doc/a93538171.html, MVC都有着各自的追捧者,双方都认为各自所使用的技术才是最好的,我个人很反对这种观点,马克思等革命先烈告诉我们,看待事物要用辩证、唯物的思想,存在即合理。作为开发人员的我们,眼光不能太狭隘,多掌握一门技术总是好的事情。而本文也尽量从客观、平等的角度出发,做一个相对公正全面的对比,而不是某种技术框架的推崇。
进制字节流。而客户端在接收到返回到信息之后,将这些信息解析出来,就形成了我们在浏览器上看到的实实在在的页面,至此就形成了一个完整的请求过程。 好吧,上面这些介绍可能和本文的这个议题没有太直接的关系,可能也有人为认为这些是一个很简单的问题,可是,你真的理解HTTP协议了吗?真的理解应用程序生命周期和页面生命周期了吗?你真的理解了我们经常用的Response.Redirect(“url”)对应的HTTP 状态是301还是302吗?之所以介绍这么多,还是因为个人认为:要想较好的设计B/S系统结构,或者说写出高效、优雅的B/S代码,这些都是不可或缺的知识。 What https://www.wendangku.net/doc/a93538171.html, Framework 先看一段解释:NET Framework又称.Net框架。是由微软开发,一个致力于敏捷软件开发(Agile software development)、快速应用开发(Rapid application development)、平台无关性和网络透明化的软件开发平台。.NET是微软为下一个十年对服务器和桌面型软件工程迈出的第一步。.NET包含许多有助于互联网和内部网应用迅捷开发的技术。.NET框架是微软公司继Windows DNA之后的新开发平台。.NET框架是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种语言(C#、VB、C++、Python等)的开发。.NET也为应用程序接口(API)提供了新功能和开发工具。这些革新使得程序设计员可以同时进行Windows应用软件和网络应用软件以及组件和服务(web服务)的开发。.NET提供了一个新的反射性的且面向对象程序设计编程接口。.NET设计得足够通用化从而使许多不同高级语言都得以被汇集。 .Net Framework作为微软面向企业级应用的重要战略之一,有着十分重要的意义。.Net Framework是运行于.Net平台上所有应用程序的基础。而每一次版本的发布,
软件开发平台的概念 1 软件开发框架的概念 在企业应用软件开发领域,往往存在两种选 择,那就是SUN 公司的SUN ONE 框架平台 和.NET Framework(一般业内简称.Net 框架平台)。 J2EE 只是SUN ONE 平台下的一个概念性的 开发应用平台而已。跟.NET 框架平台不是一个 级别性的东西,只有一般不了解技术的人才把一个架框平台和一个开发平台进行比较。 一般来说,Windows .NET Framework 是Microsoft 的Windows 系统中经过精心定义的技
术框架,微软所有开发系统产品的多年的整合,而J2EE 则是一个书面的协议,只是一个技术要 领。如果不局限于学术方面的讨论,换句话说,就是在几个应用平台上讨论这个话题的商业价值,没有任何意义。仅仅于技术初学者在学习技术的初级阶段寻找一个的指导方向而已,能够让技术的入门者确定寻找工作的目标。
2 .NET 框架平台和J2EE 介绍 2.1 .NET 框架平台介绍 .NET 全称Windows .NET Framework 来自于 微软,是一套全能的框架平台,支持C++ 、C#、J++、VB、ASP 等语言,能够解决C/S、B/S 和单机等结构的软件开发需求。.NET 平台将这些语言编译成CLR 语言,使它们可以无差别的运行 在.NET Framework上,是2000年以后微软最为重要的软件开发套件产品。.NET 框架入门门槛较低、使用方便,并且微软对其提供了良好的文档支持和在线服务。 .NET 框架平台的目标是“多种语言共享一种平台”,把所有的企业开发应用统一到一个架框里来。 2.2 J2EE 介绍 J2EE 基于各个软件组件的企业服务应用平台。需要专业成熟的软件公司花费大量的精力和时间去布署才能发挥J2EE 架构的企业级应用组件功能。
.NET架构核心开发技术 不可否认,应用软件的开发正在经历一次巨变――将最终增强开发人员的生产力并开启一道通向全新概念的应用程序的大门。 新型的开发模式正逐渐被推广,将分发软件演变成一种服务还有待于所有开发人员的共同努力,而互联网却将彻底改变应用程序的开发模式和配置方式。 传统上,软件开发人员通过集成本地系统服务的方式开发应用程序。这种模型使开发人员有权使用一整套丰富的开发资源,精确控制应用程序的性能。 如今,开发人员在很大程度上已挣脱了这种模式的束缚,致力于构建具有复杂结构的n 层系统,这种系统能将网络中各处的众多的应用程序进行集成,并大大提升应用程序的价值。这样,开发人员便可集中精力挖掘软件独特的商业价值,而不必日夜为如何构建基本结构伤脑筋了。令人欣喜的局面将应运而生:软件投放市场的时间大大缩短、开发人员的编程效率明显提高,最为根本的是开发出质量上乘的软件。 我们正在进入计算机发展的下一个阶段――基于Internet的阶段,特别是基于Internet 核心技术――XML扩充标记语言。尽管多层应用程序开发将焦点集中在建造大型企业级应用程序上,但现在XML使得能够创建可用于任何人、任何场所的大型应用程序。它扩大了应用程序的使用范围。这样,软件就不是只能从CD上安装的某种东西,而是一种服务――就像呼叫服务或者计费电视一样,可以通过通信媒体来预订。 这一切,是通过将紧密联接的、高效的n层计算技术与面向消息的、松散联接的Web 概念相结合来实现的。我们将这种计算风格称为Web Service(Web服务),它的出现标志着人类已经迈入应用程序开发技术的新纪元。Web服务是一种应用程序,它可以使用标准的互联网协议,像超文本传输协议(HTTP)和XML,将功能纲领性地体现在互联网和企业内部网上。我们也可将Web服务视作Web上的组件编程。 从理论上讲,开发人员通过调用Web应用编程接口(API),将Web服务集成进他们的应用程序,就像调用本地服务一样。两者区别在于前者能够通过Internet发送到某个远程系统的服务上。例如,像微软护照(Microsoft Passport)这样的服务,可以给开发人员提供应用程序身份确认的功能。通过对护照服务编程,开发人员就可以利用护照服务的基础体系,实现维护用户数据库,确信服务开启和运行以及正确地备份等等功能。
学院 出卷教师 罗坤 系主任签名 制卷份数 专 业 班级编号 江汉大学 2016 ——2017 学年第 1 学期 考 试 试 卷 课程编号: 410802002 课程名称: .net 开发平台 试卷类型: 卷 卷 考试时间: 分钟 、 一、 大作业设计完成时间:本学期第16周结束后收齐上交 二、 大作业设计内容共四大题: 第一题: 控制台程序设计题,编写一个销售通讯器材部门的工资管理应用程序。该公司主要有几类人员:包括部门经理,技术维护人员,业务员等。设计企业不同人员都具有的数据信息:工号(从0001起开始编号),部门,姓名,日期和工资。其中每月工资的计算方法:部门经理固定月薪8000元另外加部门销售额的2%合计,技术维护人员120元小时,销售人员为3000元当月销售金额的5%。 说明: 1. 要求通过实现一个在继承机制下的层次化结构,实现上述任务要求。设计一个基类Person, 然后派生出技术维护人员类,部门经理类和业务员类,理解相互间的继承关系并给出类的层次结构模型。 2. 通过生成不同对象,输入数据,能够计算并显示不同类别人员的当月月薪(进一步思考:如 何通过设菜单的方式将各类人员的数据输入并提供当月查询)。
第二题:多窗体程序设计题,编写窗体应用程序,在主窗体控件中显示一段标题文字信息,通过按钮弹出一个对话框;在对话框的控件中可以改变主窗体文字内容,设置文字大小和选择文字颜色,并选择主窗体背景颜色.对话框设置成功返回后,主窗体内容及时更新显示. 说明: 1.采用多窗体的设计模式,主窗体和弹出窗体之间的数据可以双向传递,及时更新。 2.通过添加在窗体上添加控件,为对话框中添加各类控件,并且调整好各类控件的位置,为控件添加对应的变量。 3.实现程序要求的功能,能够编译生成可执行文件。 第三题:简单图形绘制题,要求创建一个窗体的应用程序,统计某个班级参加面向对象程序设计考试成绩,请统计学生在各个成绩区间的成绩人数分布,并在窗体控件上绘制简单成绩分布柱状图,测试画笔和画刷等对象的使用(并进一步思考如何将已绘制的图形进行有效保存和再次打开)。 说明: 1.要求首先设计一个窗体,自己统计给出考试成绩在不同区间的人数分布。 2.通过学习和使用GDI+,在窗体上绘制坐标轴,并在坐标轴上绘制柱状图,可以自己选择线条的宽度,线条的颜色和填充图形的颜色。 3.实现程序功能要求,能够按程序要求编译生成可执行文件。 第四题:窗体文件程序设计题:在.NET平台下,新建一个学生会成员基本信息管理的窗体程序,设计功能要求: 1) 窗体需要管理的学生会成员信息有:学院,班级、学号、姓名、职务,联系方式、寝室号等。 2) 通过控件设计,实现学生信息整体的增加、删除、修改等功能。(进一步思考: 通过对学生数据对象串行化的方式,把学生信息保存在文件中,也能够从文件中读出显示在窗体控件中;并提供关键字的有效查询) 说明: 1.实现程序功能要求,能够按程序要求编译生成可执行文件。 2.完整实现题目所要求的各项功能。 3.能通过文件进行有效的读写操作。
微软.NET统一开发平台介绍
上图即是一个学习的路线图同样他也是 .NET 平台的进化图。也是代表着未来.NET的发展方向。今天的故事呢,就会根据上图中的名词一个个的解释下来。让各位更好的了解.NET。 .NET到底是什么? 在过去的日子中大家提到 .NET 通常是指 .NET Framework 这么一个框架。 但是随着.NET技术的发展,时至今日-2018年
广义的 .NET指包含.NET Framework,.NET Core,Mono在内,是基于.NET技术的整个产品系列。 .NET 是一个通用开发平台。它具有几项关键功能,例如支持多种编程语言、异步和并发编程模型以及本机互操作性,可以支持跨多个平台的各种方案。 .NET 开发可以实现包括 .NET Framework、.NET Core 和Mono。 .NET 的所有实现都有一个名为 .NET Standard 的通用API 规范。 .NET 拥有惊人的性能和开发效率,并且拥有数百万的开发者。 以上就是最新的.NET的介绍。以后提到.NET不再仅仅是.NETFramework 了。 我也就微软着新生的 .NET 或者说进化后的.NET来说说过往吧。 传统的 .NET Framework是以一种采用系统虚拟机运行的编程平台,以(通用语言运行库)CLR (Common Language Runtime)为基础,支持多种语言(C#、F#、VB .NET、C++、Python等)的开发。 这也是我们目前市面上用到最多也是大家最熟悉的.NET,它是目前在市场中的占比是最大的,他很成熟也很稳定,但是他的弱点是在于他天生不具备跨平台,这也是被广大程序员所诟病的,他需要跨平台,是需要通过配合Mono来使用,它更多的运行在Windows服务器上,需要IIS作为宿主。
软件开发平台的概念
1 软件开发框架的概念 在企业应用软件开发领域,往往存在两种选择,那就是SUN公司的SUN ONE 框架平台和.NET Framework(一般业内简称.Net框架平台) 。 J2EE只是SUN ONE平台下的一个概念性的开发应用平台而已。跟.NET框架平台不是一个级别性的东西,只有一般不了解技术的人才把一个架框平台和一个开发平台进行比较。 一般来说,Windows .NET Framework是Microsoft的Windows系统中经过精心定义的技术框架,微软所有开发系统产品的多年的整合,而J2EE则是一个书面的协议,只是一个技术要领。如果不局限于学术方面的讨论,换句话说,就是在几个应用平台上讨论这个话题的商业价值,没有任何意义。仅仅于技术初学者在学习技术的初级阶段寻找一个的指导方向而已,能够让技术的入门者确定寻找工作的目标。
2 .NET框架平台和J2EE介绍 2.1 .NET框架平台介绍 .NET全称Windows .NET Framework来自于微软,是一套全能的框架平台,支持C++、C#、J++、VB、ASP等语言,能够解决C/S、B/S和单机等结构的软件开发需求。.NET平台将这些语言编译成CLR语言,使它们可以无差别的运行在.NET Framework上,是2000年以后微软最为重要的软件开发套件产品。.NET框架入门门槛较低、使用方便,并且微软对其提供了良好的文档支持和在线服务。 .NET框架平台的目标是“多种语言共享一种平台”,把所有的企业开发应用统一到一个架框里来。 2.2 J2EE介绍 J2EE 基于各个软件组件的企业服务应用平台。需要专业成熟的软件公司花费大量的精力和时间去布署才能发挥J2EE架构的企业级应用组
1 软件开发框架的概念 在企业应用软件开发领域,往往存在两种选择,那就是SUN公司的SUN ONE 框架平台和.NET Framework(一般业内简称.Net框架平台) 。 J2EE只是SUN ONE平台下的一个概念性的开发应用平台而已。跟.NET框架平台不是一个级别性的东西,只有一般不了解技术的人才把一个架框平台和一个开发平台进行比较。 一般来说,Windows .NET Framework是Microsoft的Windows系统中经过精心定义的技术框架,微软所有开发系统产品的多年的整合,而J2EE则是一个书面的协议,只是一个技术要领。如果不局限于学术方面的讨论,换句话说,就是在几个应用平台上讨论这个话题的商业价值,没有任何意义。仅仅于技术初学者在学习技术的初级阶段寻找一个的指导方向而已,能够让技术的入门者确定寻找工作的目标。 2 .NET框架平台和J2EE介绍 2.1 .NET框架平台介绍 .NET全称Windows .NET Framework来自于微软,是一套全能的框架平台,支持C++、C#、J++、VB、ASP等语言,能够解决C/S、B/S和单机等结构的软件开发需求。.NET平台将这些语言编译成CLR语言,使它们可以无差别的运行在.NET Framework上,是2000年以后微软最为重要的软件开发套件产品。.NET框架入门门槛较低、使用方便,并且微软对其提供了良好的文档支持和在线服务。 .NET框架平台的目标是“多种语言共享一种平台”,把所有的企业开发应用统一到一个架框里来。 2.2 J2EE介绍 J2EE 基于各个软件组件的企业服务应用平台。需要专业成熟的软件公司花费大量的精力和时间去布署才能发挥J2EE架构的企业级应用组件功能。就是JA V A语言为主要的开发
一个.Net平台的应用系统框架 如需转载请与作者联系 代码下载 前言 微软的.Net平台给应用程序开发提供了一个非常好的基础系统平台,但是,如何在这个系统平台上构建自己的应用系统,还需要我们针对应用系统的特点,构建自己的应用系统框架(Framework)。笔者在应用.Net开发系统的过程中,结合多年的开发经验,设计了一套.Net下的应用系统开发框架,以及相应的中间件和开发工具,已经在多个项目中和软件产品中应用,取得了很好的效果。 系统的基本结构 对于典型的三层应用系统来说,通常可以把系统分成以下三个层次: ●数据库层 ●用户界面层 ●应用服务层 对于应用系统来说,在这三个层次中,系统的主要功能和业务逻辑在应用服务层进行处理,对于系统框架来说,主要处理的也是这个层次的架构。 对于应用服务层来说,需要处理以下几个方面的问题: ●数据的表示方式,也就是实体类的表示方式,以及同数据库的对应关系,即所谓的O-R Map 的问题。在框架中,这个部分位于数据实体层 ●数据的存取方式,也就是实体类的持久化问题,通常采用数据库来永久存储数据实体,这 就需要解决同数据库的交互问题。在框架中,这个部分位于实体控制层 ●业务逻辑的组织方式。在面向对象的系统中,业务逻辑是通过对象间的消息传递来实现的。 在这个部分,为了保证逻辑处理的正确性和可靠性,还必须支持事务处理的能力。在框架 中,这个部分位于业务规则层 ●业务服务的提供方式。为了保证系统的灵活性和封装性,系统必须有一个层来封装这些业 务逻辑,向客户端提供服务,同时作为系统各个模块间功能调用的接口,保证系统的高内 聚和低耦合性。这里的客户指的不是操作的用户,而是调用的界面、其他程序等。Web层 (https://www.wendangku.net/doc/a93538171.html,页面)通常只同这个部分交互,而不是直接调用业务逻辑层或者数据实体的功 能。在框架中,这个部分位于业务外观层。
第一节.NET介绍 https://www.wendangku.net/doc/a93538171.html,的发展史 1).2006年6月22日,微软正式发布了.net平台,微软从打算做.net 平台到发布用了5年时间。 2).NET代表一个集合,一个环境,一个可以作为平台支持下一代 Internet的可 编程结构。最终目的是让用户在任何地方、任何时间,以及利用任何设备都能访问所需的信息、文件和程序。 2.概念:.net与c# 1).net/dotnet:一般指.Net Framework框架.一种平台,一种技术. 2)C#(sharp):一种编程语言,可以开发基于.net平台的应用. 3)Java即是一种平台又是一种编程语言. 4).net Framework框架提供了一个稳定的环境保障.net平台正常运转,基于.net平台开发的各种软件,游戏,网站,只有在.net平台下才能运转. 5).C#与.NET的关系 C#是一门编程语言,只是提供了if、while、+-*/、定义类、int、string 等基础的语法,而Convert.ToInt32、FileStream、SqlConnection、String.Split等都属于.Net的东西 https://www.wendangku.net/doc/a93538171.html,能干什么 1)桌面应用程序 2)Internet应用程序 3)手机游戏开发(UNITY3D)
4)为 Internet网络和分布式应用程序的开发提供一个新的开发平台。简化应用程序的开发和部署,为构建 Web Service提供一个标准平台,改善系统和应用程序之间的交互性和集成性。使应用程序对任何设备都能够进行访问。 https://www.wendangku.net/doc/a93538171.html,两种交互模式 1)C/S (Client/Server)用户必须装一个客户端 2)B/S (Brower/Server) https://www.wendangku.net/doc/a93538171.html,框架 1).NET框架是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(CLR)为基础,支持多种语言(C#、https://www.wendangku.net/doc/a93538171.html,、C++、Python等)的开发。Net框架主要包括公共语言运行库(CLR)和 .Net框架类库 (FCL)。
项目经验 一,张家口康泰尔OA办公系统 开发周期:5个月 软件环境:.NET Framework 4.0 开发工具:Visual Studio 2010、SQL Server2008 主要技术:SQLServer、https://www.wendangku.net/doc/a93538171.html, MVC + EF + 多层开发 项目描述:嘉城集团公司内部使用的OA办公自动化系统,供集团内1000余名员工使用,包含新闻管理、考勤管理、公文管理、人事管理、工作报告管理、邮件管理、会议管理、 资源申请及审批等模块; 责任描述:权限管理,工作流,用户管理、新闻管理、考勤管理 二、张家口沽源塞外庄园旅游区进销存管理系统 开发周期:3个月 软件环境:.NET Framework 3.5 开发工具:Visual Studio 2010、SQL Server2008 主要技术:https://www.wendangku.net/doc/a93538171.html, MVC + EF + 多层开发、NPOI、SQL Server存储过程 项目描述:该项目用于开发客户和对客户信息和活动的管理。 主要模块有: 1、人事管理:其功能是对进销存的员工和供货商信息进行管理,包括查询,更新等。 2、销售管理:其功能是提供一般的销售管理,能够进行销售明细查询和打印销售报表。 3、库存管理:其功能是对采购来的商品进行入库,产品分类等活动,同时能够根据销 售清单进行出货管理,以及库存统计。 4、入库管理:其功能是对商品入库信息进行管理,并根据企业情况制定进货计划,实 施商品采购,并进行进货查询。 项目责任:1,负责数据库的设计和基础数据管理模块。 2,项目的需求分析和编写,数据库的设计,前台的展示,模式的设计,信息配置 三、张家口康泰尔房地产内部交流论坛项目 开发周期:40天 开发工具:Visual Studio 2010、SQL Server2008 主要技术:https://www.wendangku.net/doc/a93538171.html,、三层开发、SQL Server存储过程,异步无刷新等 项目描述:能发帖,登录,注册,浏览主题,有论坛版块。能发表评论。 源代码管理【预研】。文档;需求文档【需求规格说明书】,数据库文档【PD:PowerDesigner 设计。 项目责任:负责全部。
.net项目开发案例介绍 1.概况 项目名称即拍即传照片分享系统 行业移动互联网 架构类型C/S 开发技术.net、script、asp 规模62人天 2.项目背景 已经厌倦了照片上传时的漫长等待吗?想让您的照片拥有华丽梦幻般的效果吗?咱们也玩过很多照片生成软件,但都不如现拍照片生成来的有趣。所以咱就想,有没有一款通过直接拍照的同时就能够制作趣味照片的好玩软件? 这是一款照片拍摄美化软件,通过软件自带的摄像功能让您的手机镜头在现实生活中随时随地抓拍到生活照片并即时编辑处理照片后分享上传,即拍即传,记录生活中的点点滴滴,留下美好时光的记忆。这是一款趣味的照片生成与编辑软件。通过它,您可以轻松的制作照片合成、拼贴画、加饰物、添加个性的相框、更换漂亮的皮肤颜色模板、配上有趣的文字内容等,支持个性相框的自定义和照片的特效处理。通过它,还可以自定义给您的照片换上不同风格的皮肤,这绝对让您赞不绝口。软件提供很多款不同风格的皮肤哦,每款皮肤所搭配的照片风格也各不相同,快来给您的照片换装吧~。 轻松分享:加入文字涂鸦,保存生成的照片、然后将它们设为壁纸,发送彩信或通过“扣扣”“围脖”等平台分享给您的朋友,让朋友们大吃一惊! 3.业务逻辑
图1 业务逻辑 即拍即传分享系统最大的特点就是快速拍照和分享出去,不占用手机存储量;在线自定义美化照片,多平台分享。对于照片美化的应用、修改、扩充和维护将变得容易。 我们通过软件拍照时,可以进行拍摄设置,调整照片感光度或者选择仿古拍摄模式,也可以现场抓取镜头,无需保存,直接进入照片处理状态,为照片添加可爱的小饰物、或选择个性边框等,系统准备了很多超炫的皮肤模板,选择一款合适的模板,在文字编辑区为照片配上有趣的涂鸦文字,接下来在图片效果预览可以看到照片效果。给朋友发送彩信,或者通过选择平台分享到QQ、新浪微博等平台。 4.系统架构 图2 系统架构图 即拍即传分享系统是一个开源框架,是为了解决手机拍照的存储问题和上传照片时的等待而创建的,框架的大多数功能适用于不受管理的环境,组成即拍即传分享系统框架的模块都可以单独存在,或者与其他一个或多个模块联合实现。 5.系统功能 5.1.系统功能结构
实验一搭建开发环境 一、实验目的 搭建汇编语言的开发环境,熟悉汇编程序开发的基本步骤,掌握基本的调试操作。 二、实验内容与要求 基于VISUAL STUDIO 平台,结合MASM32,构建IA32汇编语言的开发环境。 三、仪器、设备 PC机 四、实验步骤 1)VC6平台下的汇编语言开发环境搭建(使用MASM32的汇编器+VC6) 配置IDE环境: –在VC的tools/option/Directories页面中添加Irvine32.inc等所在的目录到include files中; 添加Irvine32.lib等所在的目录到library files. –将masm32中的ml.exe和ml.err拷贝到VC的Microsoft Visual Studio\VC98\Bin目录中 创建与配置project: –新建VC的win32 console,win32 application类型空工程 –创建一个asm后缀的文件,并把汇编代码(教材第85页addsub3.asm)输入该文件中,然后将该asm文件添加到Source Files –选中所有的asm文件,在project settings/Custom Build页面中命令行加: ml /c /coff /Fo$(TargetDir)\$(InputName).obj $(InputPath) 输出中加上: $(TargetDir)\$(InputName).obj –“Project setting”页面的”link”选项卡中“object/library module ”中加
入irvine32.lib 2)汇编与链接不带输出的加减法程序(即教材第85页addsub3.asm); 3)在程序最后加入调用DumpRegs过程的语句,以输出各寄存器的值。 4)以单步执行的方式调试该程序,查看每步结果,并解释每步结果。 5)(可选)尝试修改程序。 参考资料: 其它环境的配置: VS2010平台下的汇编语言开发环境搭建 a.在VC++ 中新建一个空项目,取名为Test b.定制VC++ 工程构建规则