我有一个 WPF 应用程序。
在左侧有一个充满按钮的堆栈面板。
右侧有一个空的停靠面板。
当用户单击按钮时,它会将相应的 UserControl (View)加载到停靠面板中:
private void btnGeneralClick(object sender, System.Windows.RoutedEventArgs e)
{
    PanelMainContent.Children.Clear();
    Button button = (Button)e.OriginalSource;
    Type type = this.GetType();
    Assembly assembly = type.Assembly;
    IBaseView userControl = UserControls[button.Tag.ToString()] as IBaseView;
    userControl.SetDataContext();
    PanelMainContent.Children.Add(userControl as UserControl);
}
这种模式很有效,因为每个 UserControl 都是一个 View,它有一个 ViewModel 类,该类向它提供从模型中获取的信息,因此用户可以在页面之间单击,并且每个页面都可以执行独立的功能,例如编辑所有客户,保存到数据库等
但是,现在,在其中一个页面上,我想要一个包含客户列表的 ListBox,并且每个客户都有一个“编辑”按钮,当单击该编辑按钮时,我想用 EditSingleCustomer 填充 DockPanel UserControl 并将其传递给它需要编辑的 Customer。
我可以加载 EditCustomer 用户控件,但是如何将它传递给客户以编辑并设置其 DataContext 以编辑该客户?
我们正在建立一个简单的基于网络的系统,有人添加一个记录,例如CMS页面,在网站上显示之前得到负责人的批准.
如果作者随后决定稍后编辑该页面,我们希望基于实时副本创建草稿,在批准后它将替换旧的实时页面.
我们考虑过进行完整的版本控制,但相信我们可以通过以下方式保持这种简单:只需一个草稿,2.只是一个现场,或者3.一个草稿和一个现场.
跨多个"事物"而不仅仅是页面需要此功能.
最后一个问题:你认为将这两个记录存储在同一个表中会更好,还是镜像表会更好?
我想这可能取决于但我不喜欢有两个具有相同结构的表的理想.稍微慢一点的操作(因为我们必须在显示数据时一直查询草稿)是值得的吗?
database-design web-applications ruby-on-rails application-design
对于多语言 PHP 应用程序,假设标签/短语将被翻译成多种语言。这些标签可以放置在特定语言的文件中(例如,每种语言一个文件)或可以加载到数据库中,以便应用程序可以在需要时访问它们。
问题是,从性能的角度来看,更好的方法是什么?
对我来说,如果标签在数据库中,则加载的数据更少(我只能请求单个页面所需的标签)并且可以更轻松地构建用于翻译的管理工具。但是,似乎有许多应用程序和框架为此目的使用平面文件(例如 phpMyAdmin、CakePHP 等)。
php database localization internationalization application-design
我的问题不是技术问题.这更像是一种哲学而非个人偏好.我正在设计和开发一个应用程序(web +桌面),这只是我想到的,并且想知道你们(程序员和设计师)是否曾经遇到过这个问题:
一些设计人员相信制作将会运行3 - 5年的应用程序,并且任何变更都将反映在他们身上,而无需采用系统核心变更.作为一个程序员,我知道一个事实,这是从来没有的情况.确实发生了小的化妆品变化,但通常它们会在一两年后消失,随着时间的推移,将会发生变化,需要进行核心更改,最终您将进行新的应用.
鉴于技术的快节奏变化,设计一个5年的应用程序是相当荒谬的,恕我直言.嗯,我的意思是不设计,但这个应用程序将运行5年的想法,并认为我们不需要创建一个新的,我认为生活在一个愚人的天堂.我是说真的,各位程序员,有一个正在运行的流程通常被重新制作/重新结构化/重新组织/重新编码几年下来行反正最关键任务的或基本的小应用程序.
所以我的问题是为什么要保持这种完美的应用程序运行十年的态度.真的很愚蠢,因为你知道技术每年都会发生变化; 新框架,新方法,新技术将出现,您的客户将需要它们.所以,如果你原谅我使用这个短语,WTF就是重点?
我一直告诉我的设计师,应用程序将在几年反正被重新设计,有在试图使其从@ss拍摄灯光是没有意义的,因为它只是不会,永远.没有完美的应用程序.
我希望你们得到我的漂移.你们有同样的感受吗?BTW我从事软件编程业务已有7年了.如果你真的考虑过这个问题,你真的认为Facebook将会在5年内保持不变,因为设计每年都会改变,以保持"时髦",但核心每隔几年就会发生变化.我很清楚这一点.我是偏执还是什么?请告诉我其他程序员和我在同一条路上.任何人?
我想从相同的代码库创建两个应用程序.它们的颜色不同,有些数据来自后端.情况就像,让我说我想创建应用程序App1和App2.两者都有类似的流程.我可以吗,
我不知道该如何解决这个问题.任何帮助都会很棒.
谢谢.
我正在为教师(非程序员)创建一个社交网站,教师可以在其上添加活动,链接,练习,提示,课程计划,书籍等.
我希望它们中的每一项都能够像在StackOverflow中一样添加标签.
但是,因为他们是非编程用户,我认为空格分隔的非空间标签和camelCase标签会导致太多的混淆,例如:
grammar teachingtips universityOfMinnesota phrasalverbs
确实在这个类似的stackoverflow问题上,大多数答案建议使用这样的逗号:
grammar, teaching tips, university of minnesota, phrasal verbs
但后来我刚刚注册了一个Delicious.com帐户(我不认为有一个非常以程序员为中心的观众)并看到他们也使用空格:
separate tags with spaces: e.g. hotels bargains newyork (not new york)
就标签的当前用户体验趋势而言,您在此方面的经验是什么?现在,普通的互联网用户是否被认为是以空格分隔的标签?我不得不承认,我从未在我使用的任何主要网站上看过以逗号分隔的标签.你有没有找到一个很好的方法来组合它们,所以它甚至不重要,例如:
grammar book reviews teaching tips
例如,有一个快速算法,用于检查当前标签的数量:
grammar
grammar book
grammar book reviews
book 
book reviews
book reviews teaching
...
将它们全部放在一个单独的文件夹结构中,还是与实现它们的类一起放入?
我将完全重新提出这个问题。所以这是一个大的编辑
我一直在寻找 WPF 专业人士关于他们设计过程的一些反馈。例如,当我设计一个网站时,在我编写任何 HTML、CSS、JavaScript 之前,我会在 Photoshop 中设计界面,这样我就可以向客户展示他们网站的外观证明。在我编写任何代码之前,我会选择样式、配色方案,大多数(如果不是全部)第三方图形(库存摄影)一旦客户批准设计,我就开始构建它。
我想知道设计 WPF 桌面应用程序的等价物是什么。在设计界面时,选择配色方案,选择按钮样式,选择可能进入其中的任何图像,通常先创建模型吗?您是否只是在构建图形的同时动态创建所有图形。或者只是在网上找到一个主题/皮肤并在您的应用程序中使用它是否更常见?
再说一次,我知道没有正确的答案,我只是想听听你们都在做什么。
谢谢
ps - 我有 Expression Blend 4,我擅长手写 XAML(不仅仅是在 Blend 中使用设计视图)。我的问题不是关于我应该使用什么工具来构建 WPF 应用程序,而是关于设计过程。
我创建了一些程序,但大多数都是基于“意大利面条”方法。所有功能都在一起,如果我想添加新功能,我必须将其添加到核心文件中。
注意:我不是在问分离设计和逻辑。
语言是PHP。
我要问的是内容管理系统中通过允许其他用户扩展应用程序(插件、组件或扩展)来使用哪些方法(以及如何实现它们)
这只是设计模式的问题吗?或者文件结构?或者是什么?
我不是一个经验丰富的程序员.我总是浏览源代码来学习一些东西.ASP.NET Boilerplate是我最喜欢的.昨天,我注意到友情应用服务(在服务/应用层)和友情管理器(在业务/域层).我不明白为什么有友谊经理.友谊服务还不够?
public interface IFriendshipAppService : IApplicationService
{
    Task<FriendDto> CreateFriendshipRequest(CreateFriendshipRequestInput input);
    Task<FriendDto> CreateFriendshipRequestByUserName(CreateFriendshipRequestByUserNameInput input);
    void BlockUser(BlockUserInput input);
    void UnblockUser(UnblockUserInput input);
    void AcceptFriendshipRequest(AcceptFriendshipRequestInput input);
}
public interface IFriendshipManager : IDomainService
{
    void CreateFriendship(Friendship friendship);
    void UpdateFriendship(Friendship friendship);
    Friendship GetFriendshipOrNull(UserIdentifier user, UserIdentifier probableFriend);
    void BanFriend(UserIdentifier userIdentifier, UserIdentifier probableFriend);
    void AcceptFriendshipRequest(UserIdentifier userIdentifier, UserIdentifier probableFriend);
}
asp.net domain-driven-design application-design dddd aspnetboilerplate