一.1.1. 概念:.NET和C#

l .NET/DOTNET:一般指.Net Framework框架。一种平台,一种技术。它提供了一个稳定的运行环境;来保障我们.Net平台正常的运转。

l C#(C Sharp):一种面向对象的编程语言,可以开发基于.net平台的应用.

l (*) Java即是一种平台又是一种编程语言

一.1.2. .NET都能干什么?

l 桌面应用程序 Winform

n .net开发的桌面应用程序叫Winform应用程序

l Internet应用程序 ASP.NET

n .net开发的internet应用程序叫ASP.NET应用程序

l 手机开发 Wp8

n (.net可以做手机开发,Wp8,目前在中国刚刚起步,也许 这是一个机会)

n Wp8已经来袭,要善于抓住机会,敢于尝试.----掌握分寸

l Unity3D游戏开发或者虚拟现实

一.1.3. .NET两种交互模式

l C/S:客户机(Client)/服务器模式(Server)

n 如:QQ

n (C/S是Client/Server的缩写。客户端需要安装专用的客户端软件。

l B/S:浏览器(Browser)/服务器模式(Server)

n B/S是Brower/Server的缩写,客户机上只要安装一个浏览器

l 关于B/S和C/S的区别在下面备注中有

n 区别

u B/S架构是针对C/S架构缺点进行改进后提出的网络结构模式。 B/S结构属于C/S结构,是一种特殊的C/S,因为浏览器只是特殊的客户端。

u C/S可以使用任何通信协议,而B/S架构规定必须实现HTTP协议。

n 结构

u B/S结构

l 维护和升级简单,我们只要对服务器端进行维护和升级即可,不需要对成千上万的客服端进行维护和升级,减少了人力资源成本。

l 随时随地都可以访问,只要有一台连接互联网和安装了浏览器的计算机就可以访问。

l 减轻了客户端电脑载荷,客户端电脑只要运行少部分程序就能实现。因此对客服端电脑要求不高,对服务器端负荷较重,由于主要的功能都集中到了服务器端,因此对服务器要求高,但总体而言,还是大大降低了成本。

u C/S结构

l 充分发挥客户端PC的处理能力,很多数据可以通过客户端的处理后再发给服务器,降低了服务器的负荷,提高了速度。但维护和升级比较复杂,维护和升级是针对成千上万的客户机的。

l 必须安装专用的客户端软件。客户端是成千上万的,要安装专用软件,是多么大的工作量,如果一台客户机出现了问题,如:感染病毒、计算机故障等等原因,都需要进行安装或维护。系统软件需要升级的时候,每一台客户机都需要重新安装系统软件,维护和升级成本相当的高。

l 对客户机的操作系统有限制,对一些操作系统和新开发的操作系统不兼容。目前产品更新换代十分的快,要针对不同的操作系统系统版本开发不同的客户机软件,对成本而言是相当大。

n 总结

u B/S对C/S而言,B/S具有的优势。

l 分布性:可以随时随地进行查询和浏览等业务。

l 功能业务扩展比较方便:增加服务器的功能,就能增加浏览器端的功能。

l 维护简单方便:改变服务器端数据即可以实现所有用户同步更新。

l 开发简单,共享性强,成本低,数据可以持久存储在服务器端而不必担心数据的丢失。

一.1.4. IDE介绍

IDE(Integrated Development,集成开发环境)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器调试图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSiteDreamWeaver等),因为很多项任务会自动生成。

l Visual Studio 2010 简介:

n 一套完整的开发工具集

n 用于开发桌面应用程序、ASP.NET Web 应用程序、XML、Web Service、移动应用程序

n 为快速开发提供强大支持(.net的IDE就是vs2010、vs2012、vs2013)

一.1.5. IDE及.NET的版本介绍

一.1.6. MSDN介绍

MSDN 的全称是 Microsoft Developer Network。这是微软公司面向软件开发者的一种信息服务。MSDN 实际上是一个以 Visual Studio 和 Windows 平台为核心整合的开发虚拟社区,包括技术文档、在线电子教程、网络虚拟实验室、微软产品下载(几乎全部的操作系统、服务器程序、应用程序和开发程序的正式版和测试版,还包括各种驱动程序开发包和软件开发包)、Blog、BBS、MSDN WebCast、与 CMP 合作的 MSDN 杂志等等一系列服务。

这里要介绍一下,vs的帮助在安装包中的ProductDocumentation这个文件夹下,安装好vs10后点击vst的管理文档,点击本地安装找到那个文件夹下的HelpContentSetup.msha这个文件安装即可

一.1.7. Visual Studio介绍

一.1.7.1. 引用命名空间:

一.1.7.1.1. 命名空间

编译器接受源代码文件并生成名为 程序集 的输出文件。

在项目中,可能会使用到其他程序集的类或类型,这些程序集可能来自BCL、来自第三方供应商或是你本身创建的,而这种程序集可以称为 类库,而且它们的文件后缀通常是 .dll 而不是 .exe。

命名空间 是共享命名空间名的一组类和类型,命名空间内的类型称为命名空间的成员。

为了避免引用时发生同名冲突,可以定义命名空间来区分,那些命名空间名、分隔号、以及类名的完整字符串组合叫做 类的完全限定名。

一个源文件可以包含任意数目的命名空间声明,它们可以是 顺序 的也可以是 嵌套 的。然而嵌套与顺序的功能都是一样的,虽然嵌套声明命名空间位于父空间内部,但是其成员并不属于父空间,二者的命名空间都是相互独立的。

同时命名空间不是封闭的,可以在该源文件后面或另一个源文件中再次声明它,以对它增加更多的类型声明。

一.1.7.1.2. using 指令

完全限定名可能相当长,此时可以使用 using命名空间指令 和 using别名指令,它们必须放置在源文件的顶端(即任何类型声明之前),同时它们作用于当前源文件的所有命名空间。

一.1.7.1.3. using 命名空间指令

using 命名空间指令可以通知编译器你将要使用到的来自某个指定空间的类型,然后可以使用简单的类名而不必使用全路径来修饰它们。

当编译器遇到一个不在当前命名空间的名称时,它会检查在 using 命名空间指令中给出的命名空间列表,并把该未知名称添加到列表中的第一个命名空间之后。

一.1.7.1.4. using 别名指令

using 别名指令允许起一个别名给 命名空间 或 命名空间内的一个类型。

示例:

一.1.7.2. 项目名或命名空间名:

它们是VS.NET中的各种语言使用的一种代码组织的形式 通过名称空间来分类,区别不同的代码功能 同时也是VS.NET中所有类的完全名称的一部分。

命名空间是用来组织和重用代码的。

通常来说,命名空间是唯一识别的一套名字,这样当对象来自不同的地方但是名字相同的时候就不会含糊不清了。使用扩展标记语言的时候,XML的命名空间是所有元素类别和属性的集合。元素类别和属性的名字是可以通过唯一XML命名空间来唯一。

在XML里,任何元素类别或者属性因此分为两部分名字,一个是命名空间里的名字另一个是它的本地名。在XML里,命名空间通常是一个统一资源识别符(URI)的名字。而URI只当名字用。主要目的是为了避免名字的冲突。

一.1.7.3. Program类:

具有相似属性和方法的对象的集合。

一.1.7.3.1. 定义类:

[修饰符] class 类名

{

类成员

}

 

一.1.7.3.2. 类的访问修饰符:public internal

l public:可访问域是所在的程序和任何引用的程序 访问不受限制

语法:

public class 类名

{

类成员

}

l  internal:可访问域定义范围内 (默认访问修饰符)

语法:

(internal) class 类名

{

类成员

}

一.1.7.3.3. 类成员:数据成员和字段

l  数据成员:字段和常量

n 字段:变量

n 声明:类型 字段名

例:

public class Persion
{
    public string name;
}

l 方法成员 (方法是类的行为,告诉我们类能够做什么,)

n 实例方法:

修饰符 返回值类型 方法名(参数列表)

{

方法体

}

修饰符:如:public、private、protected、internal

返回值类型:若方法无返回值,则使用 void

例:

public class Example01  //实例方法

{

public void SayHello()  //定义一个无参无返回的方法

{

Console.WriteLine("Hello There")

}

static void Main()

{

Example01 objA=new Example01()

objA.SayHello()    //创建对象并调用方法

}

}

 

n 静态方法:

修饰符 static返回值类型 方法名(参数列表)  //增加了static关键字

{

方法体

}

例:

public class Example01  //实例方法

{

public static void SayHello()  //定义一个静态方法

{

Console.WriteLine("Hello There")

}

static void Main()

{

Example01.SayHello()    //不需要创建对象

}

} 

☆静态方法与实例方法的区别:静态方法只与类有关,它不依赖于对象的存在而存在;实例方法则在对象存在后才能使用。

l 4、成员的访问修饰符:public、private、protected、internal

n  public:公有成员

n private:私有成员

n protected:保护成员

n internal:内部成员

一.1.7.4. Main函数:

一.1.7.4.1. Main()方法的简介

唯一性。一般情况下,一个C#可执行程序只有一个Main函数,作为程序入口。但是在某些情况(如单元测试中),程序拥有多个Main函数,,这个时候我们就需要通过命令行指定以哪个Main()方法作为程序的唯一入口。

静态性。Main()方法通过static修饰,这个主要是让我们可以通过类名加方法的形式调用Main()方法,使得我们不需要创建对象的实例(即new出该对象)而直接调用Main函数。使用静态static修饰符的原因:

Main的参数。分析Main()方法的参数是一个字符串(string[] args),这个参数可以包含任意数量的命令行输入参数。

Main函数的修饰符。一般不加修饰符,默认为private,但可以public修饰符,但编译器在编译时会设置为priavte。

一.1.7.4.2. Main()方法为什么使用static修饰

假设没有static关键字,那意味着需要用生成一个实例后才可以调用这个Main方法,而Main方法是程序入口点,你没有进入Main方法,自然无法生成一个实例,既然没有实例,那就无法调用Main函数,岂不矛盾?所以Main函数被设置为static。直接通过类名加方法的形式调用Main()方法,使得我们不需要创建对象的实例(即new出该对象)而直接调用Main函数。

一.1.7.4.3. Main()方法的四种形式

无返回值,以字符串数组作为参数

无返回值,无参数

 

返回int类型数值,以字符串数组作为参数

 

返回int类型数值,无参数

一.1.7.4.4. Main()的参数string[] args的含义

args是用来处理命令行参数的。命令行参数,就是你运行这个程序的时候给它传的参数。它是可选项,不是必须的。具体使用如下:

编写如下程序

 

编译完成该程序后,在Debug文件中找到该.exe文件,复制到桌面,再复制路径+文件名,然后在命令行模式下输入“C:\Users\dwa1124\Desktop\Test aa bb cc”。运行后我们发现:

一.1.7.5. .sln:解决方案文件

一.1.7.6. .csproj:项目文件

一.1.7.7. .cs:类文件

一.1.7.8. VS中的常用快捷键

Ctrl+K+D:快速对齐代码

Ctrl+Z:撤销

Ctrl+S:保存(一定要经常保存!)

Ctrl+J:快速弹出智能提示

Shift+End 、Shift+Home

Ctrl+K+C:注释所选代码

Ctrl+K+U:取消对所选代码的注释

F1:转到帮助文档

l 折叠冗余代码:#Region #EndRegion

一.1.7.9. 编码注意事项

l 写代码切忌括号错误!!!

l 代码中所有的标点都是英文半角的标点。

c#代码中每行代码以分号结束。

第一章 .NET基础-1.1.学前入门的更多相关文章

  1. 《零成本实现Web自动化测试--基于Selenium》第一章 自动化测试基础

    第一篇 Selenium 和WebDriver工具篇 第一章 自动化测试基础 1.1    初识自动化测试 自动化测试有两种常见方式 1.1.1 代码驱动测试,又叫测试驱动开发(TDD) 1.1.2 ...

  2. [Python笔记][第一章Python基础]

    2016/1/27学习内容 第一章 Python基础 Python内置函数 见Python内置函数.md del命令 显式删除操作,列表中也可以使用. 基本输入输出 input() 读入进来永远是字符 ...

  3. 第一章 jQuery基础

    第一章jQuery基础 一.jQuert简介 1.什么是jQuery jQuery是javaScript的程序库之一,它是javaScript对象和实用函数的封装. jQuery是继Prototype ...

  4. web前端学习python之第一章_基础语法(二)

    web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  5. web前端学习python之第一章_基础语法(一)

    web前端学习python之第一章_基础语法(一) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  6. UNIX环境高级编程--第一章 UNIX基础知识

    第一章 UNIX基础知识 1.2 UNIX体系结构   从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们将这种软件称为内核(kernel),因为 它相对较小,且 ...

  7. 第一章 –– Java基础语法

    第一章 –– Java基础语法 span::selection, .CodeMirror-line > span > span::selection { background: #d7d4 ...

  8. python第一章计算机基础

    第一章 计算机基础 1.1 硬件 计算机基本的硬件由:CPU / 内存 / 主板 / 硬盘 / 网卡 / 显卡 / 显示器 等组成,只有硬件但硬件之间无法进行交流和通信. 1.2 操作系统 操作系统用 ...

  9. Java基础知识二次学习-- 第一章 java基础

    基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...

随机推荐

  1. FC游戏修改教程(hack)小白文。

    FC(NES)红白机Family Computer(简称FAMICOM)(或Nintendo Entertainment System)是任天堂公司发行的第一代家用游戏机. 修改FC游戏需要的工具有 ...

  2. 我狠起来连自己都打---如何简单实现Azure resource自动打标签

    你是否还在为花费大量Azure Resource打标签而烦恼呢?你是否还在因为这样低效的重复劳动而痛苦呢? 在很长一段时间内,笔者既要做云架构调整,又要做日常系统维护,还要参与各种各样的项目,在这种情 ...

  3. Java设计模式——工厂设计模式

    工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类.工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory).2:工厂方法(Factory M ...

  4. static import和import的区别

    import static静态导入是JDK1.5中的新特性.一般我们导入一个类都用 import com.....ClassName;而静态导入是这样:import static com.....Cl ...

  5. HTTP_1_Web及网络基础

    Web使用一种HTTP(HyperText TransFer Protocol,超文本协议)的协议作为规范,完成从客户端到服务器等一系列运作流程.可见web是建立在HTTP协议上通信的. 通常我们使用 ...

  6. 使用log4net记录ABP日志

    demo地址:ABP.WindowsService 该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. 参考:https://aspnet ...

  7. UE4 代理 BindRaw和BindUObject

    代理允许您在C++对象上以通用的但类型安全的方式调用成员函数.通过使用代理,可以将其动态地绑定到任何对象的成员函数上,然后在该对象上调用函数,即时调用者不知道该对象的类型也没关系. 任何时候都应该通过 ...

  8. 彻底理解kubernetes CNI

    kubernetes各版本离线安装包 CNI接口很简单,特别一些新手一定要克服恐惧心里,和我一探究竟,本文结合原理与实践,认真读下来一定会对原理理解非常透彻. 环境介绍 我们安装kubernetes时 ...

  9. spring实战学习笔记(一)spring装配bean

    最近在学习spring boot 发现对某些注解不是很深入的了解.看技术书给出的实例 会很疑惑为什么要用这个注解? 这个注解的作用?有其他相同作用的注解吗?这个注解的运行机制是什么?等等 spring ...

  10. Lua语言学习

    1,语法 语句不用分号结尾 function ... end if .. else .. end 2, io库, string库, table库, OS库, 算术库, debug库 3, dofile ...