C#是一种.NET战略一起诞生的现代化面向对象编程语言,它在微软开发技术中的重要性不言而喻;对于很多需要在Windows系统下开发应用软件的朋友来讲,C#编程语言和.NET Framework平台是非常合适的学习方向。

那么,对于准备和刚刚开始学习C#的朋友来说,如何更好地掌握学习节奏,并且能够有一个比较合理的学习计划呢?本文就来讨论一下C#和.NET Framework平台应用开发的学习步骤和方向。

和很多开发技术一样,学习的第一步就是编程语言,而这里当然就是C#编程语言。C#是一种纯粹的面向对象语言,所以,理解面向对象编程(OOP)的概念就是非常重要的了。简单地说,面向对象编程就是以操作对象为中心,比如,我们可以使用“car.Color”代码读取和设置汽车的颜色属性(property),使用“car.Drive()”代码指定汽车行驶的方法(method),而这只是面向对象编程的基本表现形式;除此之外,面向对象编程还有更多的特点,比如继承(inherit),主要是对已有代码的重复使用,即,在保持大量共性操作的基础上,可以对原有的代码进行扩展,也可以改变其中的一些具体实现,从而在原有对象类型的基础上更快捷地创建一个新的操作对象。具体到C#编程语言,在面向对象的实现上是非常强大和灵活的,熟练掌握这些特性也是我们进行下一步学习和开发的基础。

编程语言中,另外两个基本的编程要素就是数据处理和流程控制。我们先来看数据处理的相关主题,在C#语言中,模拟了C、C++等语言中的基本数据类型概念,比如int表示32位有符号整数、long表示64位有符号整数、float表示单精度浮点数、double表示双精度浮点数等等,不过,这些类型实际上是.NET Framework架构中标准数据类型的别名,如int就是System.Int32类型、long就是System.Int64类型、floag就是System.Single类型、而double就是System.Double类型等等。了解了这些,我们就可以理解,为什么在C#中,整数变量x可以使用x.ToString()方法转换为字符串类型(String,用于处理文本类型),而在C语言中就不能这样,就是因为C#是一个面向对象的世界。

编程中,除了一行行地执行代码,根据不同的条件来执行不同的逻辑是一项常见的工作,和大多编程语言一样,C#中主要包括了条件、选择(开关)、循环(遍历)和异常处理语句结构,只有掌握了这些基本语句结构,我们才能更好地应对不同逻辑的代码开发工作。

以上内容是很多编程语言共同的特质,而在C#中,还有一些能够提高代码编写效率的语法,如Lambda表达式的应用等;这些内容对于代码的执行并不会有太多帮助,但在编写代码时却可以简化很多工作,掌握这些内容也是编写代码技能的提高。

熟练掌握一门编程语言并不需要很长的时间,但是,能开发出实用的软件又是另外一个概念了。我们使用.NET Framework平台的一个很重要的原因,就是它提供了大量的开发资源,称为.NET Framework类库,使用这些资源,开发者可以很方便的操作一些原本很复杂的资源,如日期和时间操作、图像的处理、文件操作、网络连接、网络资源上传与下载、数据库的操作等等,所以,根据需要学习相关的.NET Framework开发资源的应用,是一项长期并非常重要的工作。

接下来就是综合考虑应用程序的开发。前面,使用C#编程语言和一些.NET Framework开发资源,已经可以开发出一定功能的应用软件了,但是,我们还应该了解不同应用类型的主要特点,比如:(1)命令行程序,又称为控制台程序。是通过一系列的指令来完成指定的工作,对于很多系统操作者来讲,这种类型的程序并不会陌生。(2)窗体应用,也就是我们所说的单机版程序,它有着友好的图形化用户界面(GUI),直观的操作方式,是现在程序的主要形式之一。(3)第三种,也是非常常用的一类应用,就是Web应用,也就是我们所说的网站类的应用,虽然ASP.NET可以简化很多开发工作,但是,只使用C#和.NET Framework资源恐怕还不能达到灵活、高效开发的目的,一些传统的Web技术,如HTML、CSS、JavaScript等都是开发者需要了解的,也可以说,这已经完全是另外一个技术方向了。

如果开发者已经掌握了C#编程语言、大量的.NET Framework类库和基本的应用开发方式,却还觉得少点什么,那就对了!

现在,是时候综合考虑应用软件中的各个部分的开发、组合、数据传递等工作了,在这个阶段,也有很多名词可以描述,如模块化设计、分层设计、接口设计等等;实际上,其本质就是将软件系统由大化小,有效分离各个模块,以达到方便开发、测试、组合、替换和发布的目的。模块之间的交流一般是通过标准的“接口”操作,如电源接口、USB接口等,我们可以随时将不同的设备接上相同的接口,只因它们是标准的连接和工作方式,在软件模块也是这样,合理应用标准化的“接口”,是高效、灵活开发的必要前提。

这里以数据的传递为例。我们知道,在用户界面中,数据是通过一些标准的组件显示的,如文本框、列表等,在界面中获取用户输入的数据以后中,还需要对数据的正确性进行判断,必要时还需要对数据类型进行相应的转换工作;然后,会将数据保存到数据库中。反向操作,会从数据库中读取数据,进行相应的转换后显示到用户界面。这一系列的操作,如何才能更高效,就是考验开发者的时候了,数据的获取、转换、传递和存储等操作,在软件开发中是非常常见和重要的功能,需要开发者有着坚实的理论基础、大量的实践和测试才能在实际工作中更有效地开展工作。

再接下来的学习和工作,可能就需要开发者的工作和兴趣来决定了,软件开发的方向是很多的,根据自己的需要选择合理的技术、方法和工具也是正常的,所以,并不需要去争论技术、方法和工具的好与不好,因为好与不好永远都是相对的,并且是有局限性的;只有根据学习和工作目标进行选择,才是最高效的、也是最合理的;当然,如果只需要根据自己的兴趣来选择,那你就达到另一个境界了!玩开发,才是学习软件开发最正确的姿势。

CHY软件小屋原创作品,谢谢!