# AIStudio.Wpf.AClient
**Repository Path**: guangdujishu/aistudio.-wpf.-aclient
## Basic Information
- **Project Name**: AIStudio.Wpf.AClient
- **Description**: Wpf客户端框架,AIStudio.Wpf.AClient6.0,全新优化。
- **Primary Language**: Unknown
- **License**: LGPL-3.0
- **Default Branch**: net6-new
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 300
- **Created**: 2023-08-07
- **Last Updated**: 2023-08-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AIStudio.Wpf.AClient 全新升级 【6.0正式上线,2023-01-02】
#### 感谢【一位极少露面的靓仔】提供的[启动说明文档](https://gitee.com/akwkevin/aistudio.-wpf.-aclient/blob/net6-new/%E7%AE%80%E6%98%93%E5%90%AF%E5%8A%A8%E8%AF%B4%E6%98%8E.docx)。
写在前面,下载请选择net6-new的分支(推荐使用VS2022,或者VS2019最新版),[历史版本可查看net5-new和net6,别的版本不推荐使用],
原先使用本框架的朋友注意了,后台使用全新框架AIStudio.Blazor.App(C#的BS版本后台同框架)
本框架包括或后续将实现的内容:
1.自动升级(待部署)
2.采用Prism.DryIoc,而不采用Prism.Unity的原因
3.AvlonDock的Prism实现步骤。
4.使用AOP实现日志记录,AOP还可以帮我们做什么。
5.代码生成器实现的思路。
6.工作流的实现思路(包括工作流编辑器与后台实现)
7.如何制作安装包(可自定义安装界面)。
8.本地服务的启动思路。
9.通用crud配置方法实现,无需定义类,只需要在数据库添加数据即可。
10.拖拽式编程实现。
11.与BS(blazor)使用相同的结构模式,如果BS与CS进行代码统一。
12.Prism区域窗口多开,如何实现区域注册隔离。
使用的控件库地址https://gitee.com/akwkevin/AI-wpf-controls(麻烦大家点个星,谢谢大家)
#### 介绍
Wpf客户端,AIStudio.Wpf.AClient

#### 软件架构
本框架使用Prism做MVVM,优点咱就不说了,主要了容器注入,消息和DI,比自己写省很多事。网上有很多标准的MVVM的使用方法,但是没有形成一个系统级的框架。本框架从登录到具体业务的使用,还有自动升级都搭建完成,没有大神写的那么好,只是起个抛砖引玉的作用。
后端使用ASP.net core,采用的是AIStudio.Blazor.App的框架(与BS使用相同后台).
其它技术特点:AOP,MAP
#### 快速预览
Wpf客户端下载可以直接运行,默认配置文件 AIStudio.Wpf.Client.exe.Config
登录账号:Admin,密码:Admin
```
```
启动ServiceMonitor,点击启动服务,待本地服务启动后,可运行客户端进行连接。

#### 登录界面
快速预览方式可直接在登录界面进行切换。

#### **框架截图**

**系统扩展** :如果需要扩展自己的页面,只需要按照这个工程的目录进行扩展即可。

```
protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
{
var homePageModule = typeof(HomePageModule);
moduleCatalog.AddModule(new ModuleInfo()
{
ModuleName = homePageModule.Name,
ModuleType = homePageModule.AssemblyQualifiedName,
InitializationMode = InitializationMode.WhenAvailable
});
var base_ManageModule = typeof(Base_ManageModule);
moduleCatalog.AddModule(new ModuleInfo()
{
ModuleName = base_ManageModule.Name,
ModuleType = base_ManageModule.AssemblyQualifiedName,
InitializationMode = InitializationMode.WhenAvailable
});
//在这里添加你新增的
}
```
#### **快速代码生成** :
1.在数据库添加新表。
2.选择代码生成菜单,选中查询回来的新表,区域为你所加界面的工程,比如默认值Base_Manage,将把页面加到AIStudio.Wpf.Base_Manage工程下。
3.点击生成即可,重新启动客户端即可快速预览(前提是服务端也用代码生成器生成(在web端的代码生成器)了相应的控制器与接口)

#### 大屏界面(可拖拽,可全屏)

#### 6.0的框架如下,2023-01-02
```
├─Application
│ ├─AIStudio.Wpf.Business
│ │ ├─AOP
│ │ ├─Bussiness
│ │ ├─IBussiness
│ │ ├─ILogger
│ │ ├─Logger
│ ├─AIStudio.Wpf.Client(启动项目)
│ ├─AIStudio.Wpf.Entity
│ │ ├─DTOModels
│ │ ├─Models
│ ├─api
│ │ └─AIStudio.Wpf.ApiBusiness (向后台请求方法)
├─Common
│ ├─AIStudio.AOP
│ ├─AIStudio.Core
│ ├─AIStudio.DbFactory (代码生成使用)
│ ├─AIStudio.LocalConfiguration
│ └─AIStudio.Resource
├─Others
│ ├─Dirkster.AvalonDock (主界面Tab控件)
│ │ ├─Accelerider.Extensions
│ │ ├─AIStudio.Wpf.PrismAvalonExtensions (Prism扩展)
├─Page
│ ├─AIStudio.Wpf.Agile_Development (通用crud配置方法实现)
│ ├─AIStudio.Wpf.BasePage (ViewModel的基类)
│ ├─AIStudio.Wpf.Base_Manage (基础管理类)
│ ├─AIStudio.Wpf.Home (主界面)
│ ├─AIStudio.Wpf.LayoutPage (我的控制台)
│ ├─AIStudio.Wpf.OA_Manage (工作流程)
│ └─AIStudio.Wpf.Quartz_Manage (任务管理)
├─ServiceMonitor(本地服务启动)
│ └─ServiceMonitor
```
#### 3.0新增功能如下,2022-06-01
#### Form 表单

排列方式如下:
水平排列:WrapPanel
垂直排列:StackPanel
固定行列:UniformGrid
#### 表单-代码生成,是代码生成器的一种补充。

#### 通用crud方法1:

根据类直接生成DataGrid
#### 通用crud方法2:

读取数据库配置,生成DataGrid,完全不需要类,后台完成相关接口,前台不需要更改任何代码,只需要在数据库插入脚本即可。
#### 捐助 如果您觉得我们的开源软件对你有所帮助,请扫下方二维码打赏我们一杯咖啡,开源不易,感谢您的支持。(可以联系我,在下面添加特别鸣谢,谢谢。)
#### 技术交流
个人QQ:80267720
QQ技术交流群:51286643(进群提供服务端的开源代码地址)(如果您还喜欢,帮忙点个星,谢谢)
个人博客:https://www.cnblogs.com/akwkevin/
#### 更多
界面截图请到博客介绍:https://www.cnblogs.com/akwkevin/p/14534441.html
相关介绍文章如下: