此篇文章适用于有一定经验的wpf开发者,并且是团队协作开发模式,并且业务与此比较相近的话,用起来非常的方便。
我们在开发wpf程序的时候,比如1,2个人,那肯定随便怎么开发,都没事,代码不会怎么乱的。当我们团队有20个人、40人、60人、80人,那么如何进行模块化开发功能呢,此篇文章带你介绍独立模块功能如何在wpf中使用。
当我们创建一个解决方案的时候,下面有很多项目,这些项目都可以独立分出去,分给每一个成员。比如下面的案例:
我们把WpfControlLibrary1项目给A成员,把WpfControlLibrary2项目给B成员,把WpfControlLibrary3项目给C成员,剩余的2个项目给D成员,剩余的其实是最重要的,是整个软件的框架代码,里面融合了前3位的代码的调用方式。所以,对于整个软件开发来说,ABC,都只有一个dll,只维护自己的代码,并且,都只生成1个dll,最后把生成的这个dll全部给D成员发过去即可,D成员对各个模块都进行了组合。所以,当你的功能有很多,你就可以按照此规律再继续建立WpfControlLibrary4,WpfControlLibrary5,WpfControlLibrary6项目,同理左侧的菜单再进行增加,也可以让一个成员负责好几个dll,当业务量大或者工作量大的时候,可以再次进行人员和dll的动态分配问题,合理安排团队之间的任务量和工作模式。
A成员的代码:
对于A成员来说,就是一个单独的项目,只有一个UC界面,那么A成员,随便在这个项目写业务功能都可以。
<UserControl x:Class="WpfControlLibrary1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfControlLibrary1"
mc:Ignorable="d"
xmlns:hc="https://handyorg.github.io/handycontrol"
d:DesignHeight="450" d:DesignWidth="800" Loaded="UserControl_Loaded">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<StackPanel>
<Button Name="a" Content="a" Click="Button_Click"/>
<Button Name="a1" Content="a2" Click="Button_Click_1"/>
<Button Name="a2" Content="a3" Click="Button_Click_2"/>
<TextBox Text="132"/>
<WrapPanel>
<StackPanel>
<Button Content="123456" Margin="5" Style="{StaticResource ButtonSuccess}"/>
<Button IsEnabled="False" Content="666" Margin="5"/>
</StackPanel>
</WrapPanel>
</StackPanel>
</Grid>
</UserControl>
当A成员写完了后,项目生成后,会生成一个dll
把此dll发给D成员,D成员建立一个Libs文件夹后,只需要把其他成员的dll仍在这个文件夹里面即可。然后D成员在主框架里面调用即可。以后可以进行dll升级,修改了任何功能后,只需要把此dll放在这个文件夹下面覆盖即可,做到了互相独立,互相不影响的隔离。
B成员的代码和C成员的代码同理如此,操作也是一样的,所以,不管多少个功能,都可以使用这一种方法来解决,前提是只需要把功能梳理清晰。还有一些公共的dll,也由一个人去负责,ABC成员去调用即可,方法是一样的。
所以整个项目生成的目录结构是这样的。
Libs文件夹同级别的,是整个软件框架的资源
Libs里面的dll,都是各个业务的功能模块
当我们双击exe后,会产生其他的文件夹,比如一些配置文件、数据以及日志文件记录等等,对整个程序的文件夹目录进行了大量的缩减,看起来就不会那么的臃肿了,后期的新人对软件认识和操作都非常容易理解了。
最终效果:
当然,目前看到的这些样式、图标、文字等等,都是可以自行修改的。
当需要左侧有2个菜单栏的时候,请参考:
wpf中团队独立开发模块和左侧2个菜单的框架演示-CSDN博客
本文运行的程序(带环境):
https://download.csdn.net/download/u012563853/89591404
本文源码:
https://download.csdn.net/download/u012563853/89591532
本文来源: