Skip to content

Latest commit

 

History

History
127 lines (124 loc) · 7.37 KB

README.md

File metadata and controls

127 lines (124 loc) · 7.37 KB

Steam++ v2.X Source Code

🏗️ 项目结构

  • Common 通用基础类库
    • Common.AreaLib 地区数据
    • Common.ClientLib 适用于客户端的通用基础类库
    • Common.ClientLib.Droid 适用于 Android 的通用基础类库
    • Common.ClientLib.iOS 适用于 iOS 的通用基础类库
    • Common.CoreLib 全局通用基础类库
    • Common.ServerLib 适用于服务端(AspNetCore)的通用基础类库
    • Common.PinyinLib 汉字转拼音库
    • Common.PinyinLib.CFStringTransform 仅适用于 iOS 平台,由 CFStringTransform 实现
    • Common.PinyinLib.ChnCharInfo 由 Microsoft Visual Studio International Pack 1.0 中的 Simplified Chinese Pin-Yin Conversion Library(简体中文拼音转换类库)实现,多音字将返回首个拼音
    • Common.PinyinLib.TinyPinyin 在 Android 上由 TinyPinyin 实现,其他平台由 TinyPinyin.Net 实现
    • Repositories.EFCore EF Core 仓储层实现
    • Repositories.sqlite-net-pcl SQLite 仓储层实现
    • Services.SmsSender 统一短信发送服务
  • Test 单元测试
    • Common.UnitTest 通用基础类库的单元测试
    • Common.UnitTest.Droid 适用于 Android 通用基础类库的单元测试
      • Common.UnitTest.Droid.App 启动项
  • Lib 类库
    • ST 业务通用类库
    • ST.Client 客户端通用类库
    • Bindings 平台原生绑定库
    • Platforms
      • ST.Client.Windows 用于 Windows 的实现
      • ST.Client.Mac 用于 macOS 的实现
      • ST.Client.Linux 用于 GNU/Linux 的实现
      • ST.Client.Android 用于 Android 的实现
      • ST.Client.iOS 用于 iOS 的实现
    • ResSecrets 使用资源存储的密钥
    • UI Framework
      • ST.Client.Avalonia 使用 Avalonia 实现的 View 层
        • Avalonia.Ref 通过友元程序集调用内部函数或空程序集实现手动裁剪
      • ST.Client.WPF 使用 Avalonia 实现的 WPF 层
      • ST.Client.WinUI 使用 Avalonia 实现的 WinUI 层
      • ST.Client.XamarinForms 使用 Xamarin.Forms/MAUI 实现的 View 层
    • Web API
      • ST.Services.CloudService 客户端调用服务端 API 定义
      • ST.Services.CloudService.Models 服务端 API 数据传输对象(DTO)定义
      • ST.Services.CloudService.ViewModels 客户端视图模型
  • Tool 工具
    • ST.Tools.AndroidResourceLink 将 Android Studio Project 中的 res 资源 Link 到 csproj 中(生成 XML)
    • ST.Tools.AreaImport 从高德城市编码表 Excel 文件中导入地区数据
    • ST.Tools.DesktopBridgeLink Link DesktopBridge 打包中的内容,例如 CEF
    • ST.Tools.MinifyStaticSites 用于将静态 html 删除空行缩小体积的命令行工具
    • ST.Tools.OpenSourceLibraryList 开源许可协议清单生成工具
    • ST.Tools.Packager 带进度的压缩与解压演示
    • ST.Tools.Packager.InstallerSetup 安装程序
    • ST.Tools.Publish 用于发布的控制台工具
    • ST.Tools.Translate Resx自动翻译工具
    • ST.Tools.Win7Troubleshoot 适用于 Windwos 7 OS 的 疑难解答助手
      • 目标框架使用 .NET FX 3.5 并通过 App.config 配置 supportedRuntime 允许在 4.X 中运行 实现在 Windows 上兼容所有的运行库环境
  • Launch 启动项
    • FDELauncher FDE(框架依赖) 启动器,判断运行时是否安装与提示,使用 .NET FX 3.5
    • ST.Client.Android.App Android 客户端(Xamarin.Android)
    • ST.Client.Android.App.Modern Android 客户端(.NET 6+)
    • ST.Client.Desktop.Avalonia.App 桌面客户端
    • 5_DesktopBridge\ST.Client.Avalonia.App.Bridge.Package Desktop Bridge
    • ST.Client.Avalonia.App.MsixPackage 桌面客户端单项目 MSIX 打包
    • ST.Client.Desktop.Avalonia.Demo.App 桌面客户端(UI演示)
    • ST.Client.Maui.App MAUI 客户端

🗂️ 命名空间/文件夹

  • 中划线 表示此文件夹下的命名空间使用上一级的值
  • Properties
    • AssemblyInfo.cs 程序集信息
    • InternalsVisibleTo.cs 指定 internal 对单元测试可见
    • SR 本地化资源
  • Extensions 扩展函数静态类
  • Application 业务应用
    • Columns 模型、实体列定义接口
    • Converters 视图模型(VM)值绑定到视图(V)中的值转换器
    • Data EFCore DbContext
    • Entities ORM 表实体
    • Filters AspNetCore Mvc Filters
    • Models 模型类
    • Mvvm MVVM 基础组件
    • Repositories 仓储层
    • UI
      • Assets 资源资产
      • Styles Xaml 样式
      • Activities Android 活动
      • Adapters Android 适配器
      • Fragments Android 片段
      • ViewModels 视图模型
      • Views 视图
        • Controls 自定义控件
        • Pages 页面
        • Windows 窗口
      • Resx 本地化资源
    • Windows.winmd Windows 10 UWP API 投影 Win32
    • Resources Android res、iOS BundleResource、其他嵌入的资源
    • Security 应用安全
    • Services 业务服务定义公开的接口或抽象类
      • Mvvm 用于 MVVM 绑定的业务服务
      • Implementation 业务服务的实现
    • Serialization 业务相关的序列化、反序列化
  • Logging 日志自定义实现
  • ServiceCollectionExtensions.cs DI 注册服务扩展类,命名空间统一使用
// ReSharper disable once CheckNamespace
namespace Microsoft.Extensions.DependencyInjection

📁 存储空间

  • AppData
    • Microsoft Store %USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalState
    • Windows \AppData or %LocalAppData%\Steam++
    • macOS ~/Library/Steam++
    • Linux $XDG_DATA_HOME/Steam++ or $HOME/.local/share/Steam++
    • Android /data/data/net.steampp.app/files
  • Cache
    • Microsoft Store %USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalCache
    • Windows \Cache or %Tmp%\Steam++
    • macOS ~/Library/Caches/Steam++
    • Linux $XDG_CACHE_HOME/Steam++ or $HOME/.cache/Steam++
    • Android /data/data/net.steampp.app/cache
  • Logs
    • Microsoft Store %USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalCache\Logs
    • Windows \Logs or %Tmp%\Steam++\Logs
    • macOS ~/Library/Caches/Steam++/Logs
    • Linux $XDG_CACHE_HOME/Steam++/Logs or $HOME/.cache/Steam++/Logs
    • Android /data/data/net.steampp.app/cache/Logs