C#,入门教程(07)——软件项目的源文件与目录结构

这篇具有很好参考价值的文章主要介绍了C#,入门教程(07)——软件项目的源文件与目录结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇:

C#,入门教程(06)——解决方案资源管理器,代码文件与文件夹的管理工具https://blog.csdn.net/beijinghorn/article/details/124895033

c#项目目录结构,C#入门教程 Beginner‘s Recipes,C#,教程,入门教程

创建新的 C# 项目后, Visual Studio 会自动创建一系列的目录与文件。
程序员后面的工作就是在这个目录及这些文件的基础上进行的。
本文对这些目录与文件做一个概要性的解释。

一、目录

1、默认的目录

Visual Studio 默认创建 3 个子目录及下层的目录。

\bin
\---Debug
\---Release
\obj
\---Debug
\---Release
\Properties

\bin 目录保存项目生成的程序集(.exe 或 .dll)
\bin\Debug 保存“调式版本Debug”模式的文件,一般都是在这个目录下能找到可执行文件 .exe
\bin\Release  保存“正式发布版本Release”模式的文件

\obj 目录保存项目的编译临时文件(一般无需操心)
\obj\Debug 保存“调式版本Debug”模式的文件
\obj\Release 保存“正式发布版本Release”模式的文件

\Properties 目录保存项目相关的一些设置信息,一般无需阅读与修改。

2、改良与更好的目录结构

建议在工程目录下创建 App_Code 子目录,用以保存工程相关的所有 namespace 的 class 文件。
并且按类别予以区分。比如,幸运之门50018.COM的目录结构:

\App_Code
\App_Code\Basic  存储常用的 Helper 类的基础静态类
\App_Code\K50018 存储核心数据分类代码
\App_Code\K50018\Basic 数据分析的基础代码
\App_Code\K50018\Entity 数据体(从数据库、文件获得)的相关代码
\App_Code\K50018\Algorithm 数据分析的算法代码
\App_Code\K50018\Graph 生成走势图表等分析结果的代码
。。。

请,举一反三!

二、文件

工程相关的文件分类两类:(1)*.cs 是C#源代码类;(2)*.else 其他类;

1、.sln 解决方案(solution)文件

.sln 是解决方案的配置文件,保存着项目project和解决方案的关系。
这个文件也是双击打开 Visual Studio 的默认文档。

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.32228.430
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Desktop", "Desktop.csproj", "{D87DE9F7-951F-4392-A24B-64DF168191CA}"
EndProject
。。。

2、.csproj 工程项目(C sharp project)文件

.csproj 为c sharp project的缩写。
.csproj 项目文件,保存着源代码、其他文档、资源和本项目的归属关系。
用编辑器(推荐韩国人写的Editplus!)打开 Desktop.csproj 文件,可以看到类似这样的(XML)内容:

。。。

<ItemGroup>
    <Compile Include="App_Code\K50018\Basic\Statistics.cs" />
    <Compile Include="App_Code\K50018\Algorithm\Prime.cs" />
    <Compile Include="App_Code\K50018\Graph\Trend.cs" />
。。。
    <Compile Include="Form1.cs">
        <SubType>Form</SubType>
    </Compile>
    <Compile Include="Form1.Designer.cs">
        <DependentUpon>Form1.cs</DependentUpon>
    </Compile>
    <Compile Include="Program.cs" />


。。。

3、App.config 项目配置文件

App.config 一般是这样的XML内容。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
    </startup>
</configuration>

4、Form 相关文件

(1)Form 相关

Form 是指软件的窗口。Form 相关文件是3个一组。

Form1.cs (窗口事件处理的)源代码
Form1.Designer.cs 窗口设计的源代码(初学者略过)
Form1.resx 窗口设计的资源信息(初学者掠过)

Form1.cs 一般是这样的内容:

// 引用系统的命名空间

using System;
using System.IO;
using System.Text;
using System.Data;
using System.Linq;
using System.Drawing;
using System.Threading;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Windows.Forms;

// 引用自己开发的命名空间
using Legalsoft.K50018;

namespace Desktop_Application
{
    public partial class Form1 : Form
    {
        // 默认构造函数
        public Form1()
        {
            InitializeComponent();
        }

        // 窗口加载时候的处理
        private void Form1_Load(object sender, EventArgs e)
        {
        }

        // button1 点击事件的处理
        private void button1_Click(object sender, EventArgs e)
        {
            //一般的代码都从这里起飞!
        }
    }
}

Form1.Designer.cs的内容一般这样:

namespace Desktop_Application
{
    partial class Form1
    {
        /// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows 窗体设计器生成的代码

        /// <summary>
        /// 设计器支持所需的方法 - 不要修改
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.panel1 = new System.Windows.Forms.Panel();
            this.button1 = new System.Windows.Forms.Button();
            this.panel2 = new System.Windows.Forms.Panel();
            this.webBrowser1 = new System.Windows.Forms.WebBrowser();
            this.panel1.SuspendLayout();
            this.panel2.SuspendLayout();
            this.SuspendLayout();
            
            。。。
        }
    }
}

Form1.resx 窗口设计的资源信息(初学者掠过)

<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    。。。
  -->
</root>


(2)更多的窗口

如果软件设计有多个窗口,则就具有多个配套的文件。常见的有:

欢迎窗口
Welcome.cs (窗口事件处理的)源代码
Welcome.Designer.cs 窗口设计的源代码(初学者略过)
Welcome.resx 窗口设计的资源信息(初学者掠过)

软件配置窗口
Setting.cs (窗口事件处理的)源代码
Setting.Designer.cs 窗口设计的源代码(初学者略过)
Setting.resx 窗口设计的资源信息(初学者掠过)

软件帮助窗口
Help.cs (窗口事件处理的)源代码
Help.Designer.cs 窗口设计的源代码(初学者略过)
Help.resx 窗口设计的资源信息(初学者掠过)

再见!
Bye.cs (窗口事件处理的)源代码
Bye.Designer.cs 窗口设计的源代码(初学者略过)
Bye.resx 窗口设计的资源信息(初学者掠过)

三、更多的项目!!!

压轴的,都是精彩的!

《幸运之门彩票网50018.COM》 有这样一系列的实际需求:
(1)网站:运行于 Windows Server 2008 之 IIS 的 Web 服务;
     需要 App_Code 下的所有代码支持的功能;
(2)合作:运行于合作伙伴 Linux 之 Web 服务;
     需要 App_Code 下的所有代码支持的功能;
(3)桌面PC:《蓝彩和app》;
     需要 App_Code 下的所有代码支持的功能;
(4)安卓(Andriod)App:《蓝彩和app》;
     需要 App_Code 下的所有代码支持的功能;
(5)苹果(iOS)App:《蓝彩和app》;
     需要 App_Code 下的所有代码支持的功能;
(6)合作伙伴Unity游戏软件内的《CaiPiao分析》;
     需要 App_Code 下的主要代码支持的功能;

于是,在我的工程目录下就有了这样一些文件:

App.config
Desktop.csproj 桌面PC软件
Desktop.sln
Web.csproj IIS网站,WEB服务
Web.sln
Linux.csproj LINUX,WEB服务
Linux.sln
MAPP-Andriod.csproj 安卓app
MAPP-Andriod.sln
MAPP-iOS.csproj 苹果app
MAPP-iOS.sln
Unity.csproj 游戏Unity app
Unity.sln
Form1.cs
Form1.Designer.cs
Form1.resx
Welcome.cs
Welcome.Designer.cs
Welcome.resx
Setting.cs
Setting.Designer.cs
Setting.resx
Help.cs
Help.Designer.cs
Help.resx
Bye.cs
Bye.Designer.cs
Bye.resx

重要的是!仅仅只需要维护一个 App_Code !!!

C# 是无与伦比的!

下一篇:

C#,入门教程(08)——基本数据类型及使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123906998


 文章来源地址https://www.toymoban.com/news/detail-805488.html

到了这里,关于C#,入门教程(07)——软件项目的源文件与目录结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#(CSharp)入门教程

    目录 C#的第一个程序 变量  折叠代码  变量类型和声明变量  获取变量类型所占内存空间(sizeof)  常量  转义字符  隐式转换  显示转换  异常捕获  运算符  算术运算符  布尔逻辑运算符 关系运算符  位运算符  其他运算符  字符串拼接  条件分支语句  if...else 语句

    2024年02月02日
    浏览(44)
  • 基于区块链和门限密码的安全投票系统(Python+Django+Node+web3+SQLite3) 毕业论文+文献综述+方案对比+图形源文件+参考文献+项目源码

    2022年1月28日,中国创建首个区块链与隐私计算科技创新平台,为解决多方协作和多方信任等安全性问题提供了有力支持。区块链实现数据可信存储,隐私计算保护实体秘密提供可信计算,如果将隐私计算的数据部署到区块链,并由智能合约触发,那么可以解决传统领域各种

    2024年02月05日
    浏览(55)
  • Unity快速入门教程-创建并启用c#脚本

    提示:本篇文章主要提供新手入门学习,初次发文,多多指教 unity通过c#脚本构建项目逻辑关系,本篇介绍c#脚本创建,启用及其简单示例 提示:以下是本篇文章正文内容,下面案例可供参考 在Project窗口依次单击右键–Create–C#Script,创建脚本,假设命名为【Test】。

    2024年02月11日
    浏览(49)
  • C#,入门教程(66)——枚举Enum的高等用法

    前言:国内码农与国外优秀程序员的最大区别是,我们的专家、教授喜欢唾沫横飞地,夸夸其谈语言特性、框架、性能,唯一目的是带私货(书籍或教程),很少能写出真有用的程序。差距在哪呢?基础!基础!基础! 枚举enum是常用的数据类型,有很多优点。 枚举使用过程

    2024年01月17日
    浏览(50)
  • C#,入门教程(15)——类(class)的基础知识

    上一篇: C#,入门教程(14)——字符串与其他数据类型的转换 https://blog.csdn.net/beijinghorn/article/details/124004562 物以类聚,凡物必类。 类的使用,须遵循几个简单的原则: (1)能类则类,留有余地。 (2)凡数据体及其集合,必写为类; (3)凡类,必独立文件; 类class实际上可

    2024年01月20日
    浏览(44)
  • C# 正则表达式30分钟入门教程到放弃

    最近用到了C#的Regex类,所以又复习了一遍C#的正则表达式,发现还是和其他语言或者说以前的学习有很多不同以及提高之处,所以写这篇文章,用来给后来人一个系统性的教程或者引导。 字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行

    2024年02月15日
    浏览(45)
  • C#,入门教程(20)——列表(List)的基础知识

    上一篇: C#,入门教程(19)——循环语句(for,while,foreach)的基础知识 https://blog.csdn.net/beijinghorn/article/details/124060844 List顾名思义就是数据列表,区别于数据数组(array)。 List比数组提供强大得多!多!多!多!的功能,能存储更多!多!多!类型的数据(泛型)! List是更

    2024年01月16日
    浏览(55)
  • c#入门教程(有一定计算机基础的人看)

    废话不说,有一定基础的人看,如java等程序员 开发语言,为什么要学?主流游戏是用这个开发 c#微软做的,微软做了个.net framework,c#运行在这个之上。windows自带.net framework,但太辣鸡了,只支持windows,效果不好,就没更了,然后微软出了个新的 .net core ,支持linux,windows,m

    2024年02月04日
    浏览(104)
  • 最新UI作品集源文件文件模板Sketch和Adobe XD源文件格式

    俗话说:人靠衣服马靠鞍!设计师要想进入面试环节,一个优秀的作品集是很有力的敲门砖。但是你想面试?你拿什么作品谈条件!你想跳槽?你拿什么作品跳槽! UI作品集 前几天更新过 今天小编给大家带来了 最新一整套作品集模板-64页 XD+Sketch格式的 可用于参考/学习/替换

    2024年02月11日
    浏览(56)
  • C#,入门教程(24)——类索引器(this)的基础知识

    上一篇:   C#,入门教程(23)——数据类型转换的一点基础知识 https://blog.csdn.net/beijinghorn/article/details/124187182 工业软件首先要求高可靠性、高可维护性。 作为工业软件的开发者,我们对语言重载的需求是:“ 不可或缺 ”。 没有重载几乎就无法开展大规模的工业软件编程项目

    2024年01月22日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包