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

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

文章目录

  • 1. 编程学习的捷径
  • 2. 编写我们的第一个程序--Hello,World!
    • 2.1 Console-控制台
    • 2.2 Windows Forms (Old)
    • 2.3 WPF(Windows Presentation Foundation)
    • 2.4 高版本VS进行C#编程(了解c#还可以做什么)
      • 2.4.1 ASP.NET Web Forms (Old)
      • 2.4.2 ASP.NET MVC(Model-View-Controller)*
      • 2.4.3 Windows Store Application**
      • 2.4.4 Windows Phone Application*
      • 2.4.5 Cloud (windows Azure)
      • 2.4.6 WF(Workflow 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 ”字符串。

如果直接运行以下代码:

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事件之后,自动生成一个方法,在其中输入代码,实现如下

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,自动添加事件方法
在这里插入图片描述
方法内添加代码

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#语言学习后的职业发展方向(你最喜欢哪种?)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/488132.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端工程化面试题 | 16.精选前端工程化高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

算法沉淀——FloodFill 算法(leetcode真题剖析)

算法沉淀——FloodFill 算法 01.图像渲染02.岛屿数量03.岛屿的最大面积04.被围绕的区域05.太平洋大西洋水流问题06.扫雷游戏07.衣橱整理 Flood Fill&#xff08;泛洪填充&#xff09;算法是一种图像处理的基本算法&#xff0c;用于填充连通区域。该算法通常从一个种子点开始&am…

解决Maven爆红以及解决 Idea 卡在 Resolving问题

关于 Idea 卡在 Resolving&#xff08;前提是Maven的setting.xml中配置好了阿里云和仓库&#xff09; 参考文章https://blog.csdn.net/jiangyu1013/article/details/95042611 解决Maven爆红参考文章https://devpress.csdn.net/beijing/656d993b76f0791b6eca7bb0.html?dp_toke…

什么是柔性事务?

概念 柔性事务&#xff0c;是业内解决分布式事务的主要方案。所谓柔性事务&#xff0c;相比较与数据库事务中的ACID这种刚性事务来说&#xff0c;柔性事务保证的是“基本可用&#xff0c;最终一致。”这其实就是基于BASE理论&#xff0c;保证数据的最终一致性。 虽然柔性事务…

关于使用Mxnet GPU版本运行DeepAR报错解决方案

1.引言 我们经常使用GPU来训练和部署神经网络&#xff0c;因为与CPU相比&#xff0c;它提供了更多的计算能力。在本教程中&#xff0c;我们将介绍如何将GPU与MXNet GluonTS一起使用。 首先&#xff0c;确保您的机器中至少有一个Nvidia GPU&#xff0c;并正确安装了CUDA以及CUDN…

Linux实验记录:使用PXE+Kickstart无人值守安装服务

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; 实际生产中安装操作系统的工作&…

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(二)

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(二) 大家好 我是寸铁&#x1f44a; 金三银四&#xff0c;树、dfs、bfs、回溯、递归是必考的知识点✨ 快跟着寸铁刷起来&#xff01;面试顺利上岸&#x1f44b; 喜欢的小伙伴可以点点关注 &#x1f49d; 上期回顾 感谢大家的支持&am…

Vue3 (unplugin-auto-import自动导入的使用)

安装 参考链接 npm i -D unplugin-auto-importvite.config.ts里面配置 import AutoImport from unplugin-auto-import/viteAutoImport({imports:[ vue,vue-router]})重新运行项目会生成一个auto-imports.d.ts的文件 /* eslint-disable */ /* prettier-ignore */ // ts-nochec…

C# If与Switch的区别

在 switch 语句中使用表达式比较时&#xff0c;编译器会生成一个查找表&#xff0c;其中包含所有表达式的值和对应的 case 标签。因此&#xff0c;与使用常量或字面量比较相比&#xff0c;使用表达式比较可能会略微降低性能。 只有当 switch 语句中的所有 case 标签都使用常量或…

亿道丨三防平板丨加固平板丨为零售业提供四大优势

随着全球经济的快速发展&#xff0c;作为传统行业的零售业也迎来了绝佳的发展机遇&#xff0c;在互联网智能化的大环境下&#xff0c;越来越多的零售企业选择三防平板电脑作为工作中的电子设备。作为一种耐用的移动选项&#xff0c;三防平板带来的不仅仅是坚固的外壳。坚固耐用…

记录 使用FFMPEG 笔记本摄像头推流

一、使用 FFMPEG 测试摄像头拉流显示 # 获取摄像头名称 ffmpeg -list_devices true -f dshow -i dummy# 我笔记本上的摄像头名称如下 device_pnp_\\?\usb#vid_0408&pid_1020&mi_00#6&199e90f7&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global# 使…

Typora+PicGo+super-prefix+阿里云OSS设置图床

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;实用工具 1 TyporaPicGosuper-prefix阿里云OSS设置图床1.1 设置阿里云OSS1.2 以时间戳命名图片1.2.1 安装super-prefix1.2.2 设置配置文件 1.3 批量上传图片遇到的问题1.4 参考资料 2 将ma…