C#入门详解_02_初识各类应用程序(学习方法;console;winform;WPF;C#语言还可以进行的网站开发、平板、手机程序开发方法)

本节主要介绍各种可以用C#编写的应用程序。

文章目录

  • [1. 编程学习的捷径](#1. 编程学习的捷径)
  • [2. 编写我们的第一个程序--Hello,World!](#2. 编写我们的第一个程序--Hello,World!)
    • [2.1 Console-控制台](#2.1 Console-控制台)
    • [2.2 Windows Forms (Old)](#2.2 Windows Forms (Old))
    • [2.3 WPF(Windows Presentation Foundation)](#2.3 WPF(Windows Presentation Foundation))
    • 2.4 高版本VS进行C#编程(了解c#还可以做什么)
      • [2.4.1 ASP.NET Web Forms (Old)](#2.4.1 ASP.NET Web Forms (Old))
      • [2.4.2 ASP.NET MVC(Model-View-Controller)*](#2.4.2 ASP.NET MVC(Model-View-Controller)*)
      • [2.4.3 Windows Store Application**](#2.4.3 Windows Store Application**)
      • [2.4.4 Windows Phone Application*](#2.4.4 Windows Phone Application*)
      • [2.4.5 Cloud (windows Azure)](#2.4.5 Cloud (windows Azure))
      • [2.4.6 WF(Workflow Foundation)](#2.4.6 WF(Workflow Foundation))
      • [2.4.7 WCF(Windows Coinmunication Foundation)*](#2.4.7 WCF(Windows Coinmunication Foundation)*)
  • 3. 见识C#编写的各类应用程序

1. 编程学习的捷径

  • 编程不是"学"出来的,而是"练"出来的
  • 在反复应用中积累,忽然有一天就会"顿悟
  • 学习原则
    • 从感观到原理:先写程序,不管原理,多写几遍,再看原理会顿悟
    • 从使用别人的到创建白己的
    • 必需亲白动手
    • 必需学以致用、紧跟实际工作:考虑时间投入及产出,实际工作中用不到的,作为知识储备即可
    • 追求实用,不搞"学院派":学习不是为了考试,是为了工作

2. 编写我们的第一个程序--Hello,World!

VS在管理代码的时候解决方案是最高的级别,在一个solution中会包含一个或者多个project。

比较形象的比喻:

有一个汽车经销商,想请你做一个宣传自己商店的软件,让大家知道卖的是什么汽车,价格等信息,为了解决这个需求,你需要提供一个完整的解决方案,也就是solution。

我们知道处理大问题的时候,需要将其划分为小问题,将小问题一个个的解决,逐个击破,将解决方案给出之后,发现有具体的问题需要解决,比如数据存到哪,数据怎么向外界发布,都有谁来响应这些数据,这些都是具体问题,针对某一个具体问题,我们需要使用project来解决,针对具体的问题使用具体的技术。

以下是使用数据库进行不同技术project的案例,当整体作为一个solution的时候,不同技术都有对应的模板可以参考。

VS高级版本支持的模板就更多,支持的技术也就更多,对于一般用户来说,professor版本的就已经足够了。

  • Solution解决方案与Project项目
    • Solution是针对客户需求的总的解决方案。举例:汽车经销商需要一套销售软件
    • Project解决具体的某个问题
  • Project模板(对比不同VS版本)
  • 分别编写Console、WPF、Windows Forms的Hello World程序
  • 初学编程时很重要的两点
    • 不要怕见到自己看不懂的东西
    • 要能跟着操作,一遍一遍地练习,为的是熟悉手里的工具、培养感觉

使用十种不同的c#语言技术来编写"Hello,World!"程序,让大家都能领略C#的功能。下面打了"*"号的技术都是今年比较新,市场比较好的技术。

2.1 Console-控制台

命令行界面,程序简单,一般都是写给内部用户,有一定计算机基础的。

在VS中"文件"->"新建"->"项目",选择"控制台应用"项目模板,VS会自动创建一个同名的solution(solution的名字是可以修改的)。现在使用"控制台应用"技术解决想要在屏幕上打印出"hello world!"字符串,重新命名

MySolution解决方案中有一个ConsoleHelloWorld的project,project中包含若干的源文件,其中有一个Program.cs,注意C#文件默认是使用.cs来作为扩展名。

当你遇到一些你不熟悉的地方不用害怕,把精力集中在今天的操作上,今天的目的就是在命令行上输出"hello world "字符串。

如果直接运行以下代码:

csharp 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleHelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello world !");
        }
    }
}

代码会一闪而过,可以在"调试"中选择如下,这样就可以实现交给用户一样的运行效果

运行结果如下:

2.2 Windows Forms (Old)

Windows Forms是一项比较老的技术,更新的技术是WPF。

  • winform给我们准备了一个空的窗口,窗口编程的时候术语为窗体,有了form之后直接点击"运行"其实就可以运行- 了,左侧为"工具箱",拖入一个"TextBox"、"Button"控件。
  • 修改控件属性,属性包括了控件上的名字、尺寸、显示的文字信息
  • 在编程中尽量给每一个控件起一个有意义的名字,不要叫button1等,

    修改完名称之后,我们需要看一个事件的东西,点击按钮控件,在属性中找一个闪电的标识符,表示事件(按钮可以通知程序,我这发生了什么事,你这个程序需要进行怎么样的响应),此处就是用户点击按钮之后就会发生click的事件,click事件发生之后需要程序也就是相应的方法进行响应。

双击click事件之后,自动生成一个方法,在其中输入代码,实现如下

csharp 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WinFormHelloWorld
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnSayHello_Click(object sender, EventArgs e)
        {
            textBoxShowHello.Text = "hello world !";
        }
    }
}

运行之后:点击按钮就会在 textBoxShowHello中显示如下

2.3 WPF(Windows Presentation Foundation)

窗体部分没有什么不同,特别的是下边多出了一些像HTML的代码,设计师可以参与到界面的开发中,这是与winform中需要拖入控件的区别,采用HTML的代码可以实现设计师美化的界面。

假如设计师想要给界面设计一个渐变色可以按照以下方式

如果是在winform中就变得十分复杂,需要对属性值一点点进行修改,WPF的XAML类似于HTM代码,设计师一般都懂,如果我们觉得设计的效果不错,可以将其保存到资源词典中,别的程序也可以使用,微软平板和手机的开发和WPF很像,知识迁移十分方便。

一旦学习过winform开发后可以发现,后台的开发和WPF是很像的

首先通过属性更改控件名称及控件内默认显示的信息,在ZAML中也会进行实时的更新

点击右侧"事件",双击Click,自动添加事件方法

方法内添加代码

csharp 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfHelloWorld
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void ButtonSayHello_Click(object sender, RoutedEventArgs e)
        {
            textBoxShowHello.Text = "hello world !";
        }
    }
}

运行结果:

2.4 高版本VS进行C#编程(了解c#还可以做什么)

2.4.1 ASP.NET Web Forms (Old)

ASP.NET Web Forms也就比较老的技术,与winform是一个阶段出现的,目前比较新的技术就是下面要介绍的ASP.NET MVC(Model-View-Controller),这个是一个网络应用程序,相当于做网站。

启动VS Ultimate



在HTML中添加代码

点击运行:网页上输出"hello world !"

将网页进行发布

论坛、网站等就有可能使用的是该技术

2.4.2 ASP.NET MVC(Model-View-Controller)*

此技术是ASP.NET Web Forms的更新技术,MVC实际上是程序开发的一个架构,能够让程序员将不同种类的代码分开放在不同的文件中,使用ASP.NET Web Forms在程序比较大的时候维护就不太方便,MVC技术保证程序在很大的情况下依然结构清晰,维护方便。







运行结果:

同样可以进行publish

2.4.3 Windows Store Application**

Windows Store Application就是给平板电脑写的程序。

双击"MainPage"可以发现界面与wpf是很相近的

同样是在ToolBox中拖入控件,修改属性,切换到模拟器

双击按钮的Click事件来创建事件,添加相应的代码,运行之后结果如下:

2.4.4 Windows Phone Application*


打开后发现与wpf的界面很像,与其不同的地方是,其内部预先写了一些内容,将其删除后,拖入控件,更改属性,创建事件

选择模拟器(屏幕的分辨率会有差异)

如果你有一步windows phone手机之后,注册一个开发者账号,手机连接机器之后就可以将其部署到手机进行调试和使用。以下是 在连接手机的情况下进行部署的方法

2.4.5 Cloud (windows Azure)

微软云计算上的一个hello world 程序的开发,云计算是未来发展的方向。

在云平台上可以建网站,写一些服务性的东西,此处选择架网站


界面基本与ASP.NET MVC(Model-View-Controller)的基本一样,使用一样的方法来创建代码。(操作一样)

运行时需要启动云平台的模拟器,需要Admin的权限,选择以"管理员身份运行"重启VS,重新加载程序,右上角显示是在管理员权限下运行。

运行之后,云平台模拟器进行启动,云平台模拟器中显示出网站内容。

使用云平台创建的网站和ASP.NET MVC(Model-View-Controller)创建的有什么区别呢?

此时如果点击solution进行publish,可以看到界面已经不同,此时选择一个云平台的subscriptions(订阅),就可以将其直接发布到服务上去。

如果发布网站,你就需要买域名,买空间这些,微软云平台就替你将这些都给做了,只需要你订阅发布就可以了。

2.4.6 WF(Workflow Foundation)

也就是工作流,企业中如果在出差时申请出差费用,工作流就是先写申请,经理审批,再到财务,财务发现批准之后就将钱打到我的账户上,微软的工作流技术采用可视化的技术来实现工作流。

出现的编程界面中没有任何东西,先从"ToolBox"中拖入一个"WriteLine",这相当于concole中的Writeline,并在其中写入内容,这样就完成一个工作流。(实现子啊控制台写一个hello world)

2.4.7 WCF(Windows Coinmunication Foundation)*

WCF(Windows Coinmunication Foundation)是纯网络服务,以下写一个读取数据库的service的project。

界面中创建了一个模板,我们需要将其进行修改,实现如果有别的程序,调用我的service就会返回"hello world !"

启动一个"WCF Test Client"工具(没有用户界面,纯数据服务,数据进出看不到,VS提供了这个工具可以看到数据的进出),双击"Say Hello",出现的界面相当于客户端,其中界面中点击"Invoke",就会调用对应的函数,输出"hello world".

WCF作用:假如我写了一个功能强大的计算器,我以web service的方式发不出来,那么大家都可以调用网络上的计算器,将数据给我计算完之后返给他,实现的功能十分强大。

3. 见识C#编写的各类应用程序

  • 目的1:让大家拥有辨识各类程序的"火眼金睛"
  • 目的2:让大家了解一下完成C#语言学习后的职业发展方向(你最喜欢哪种?)
相关推荐
向宇it7 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
九鼎科技-Leo8 小时前
什么是 WPF 中的依赖属性?有什么作用?
windows·c#·.net·wpf
Heaphaestus,RC9 小时前
【Unity3D】获取 GameObject 的完整层级结构
unity·c#
baivfhpwxf20239 小时前
C# 5000 转16进制 字节(激光器串口通讯生成指定格式命令)
开发语言·c#
直裾9 小时前
Scala全文单词统计
开发语言·c#·scala
ZwaterZ10 小时前
vue el-table表格点击某行触发事件&&操作栏点击和row-click冲突问题
前端·vue.js·elementui·c#·vue
ZwaterZ13 小时前
el-table-column自动生成序号&&在序号前插入图标
前端·javascript·c#·vue
SRC_BLUE_1715 小时前
SQLI LABS | Less-55 GET-Challenge-Union-14 Queries Allowed-Variation 2
oracle·c#·less
yngsqq16 小时前
037集——JoinEntities连接多段线polyline和圆弧arc(CAD—C#二次开发入门)
开发语言·c#·swift
Zԅ(¯ㅂ¯ԅ)16 小时前
C#桌面应用制作计算器进阶版01
开发语言·c#