我已经阅读了很多关于Model-View-ViewModel模式的好文章,我的团队打算在最新版本的应用程序中实现这种模式.我仍然没有完全得到所有的位来使这项工作.我想找到一个我可以解决这个模式的好例子.一些小规模很像贾森Dolinger在他的视频确实在这里,但我想的东西,我可以通过我自己以较慢的速度工作.
在此先感谢您的帮助.
我一直在使用Caliburn Micro作为我们的MVVM框架在新的Silverlight应用程序上做一些原型工作.团队一直很满意.为了解决对服务的限制请求的一些问题,建议我查看ReactiveUI的ReactiveCollections及其INotifyPropertyChanged的实现.
有没有人有任何使用这两者的经验?因为它们都是主要的MVVM框架,所以有很多重叠,所以我想知道它是否可能比尝试使它们一起工作更麻烦.
我们真正喜欢Caliburn Micro的一些事情是:
ReactiveUI的东西吸引了我们(至少最初).
我几乎没有机会玩ReactiveUI,但是当我看着它并看到两者之间的重叠时,我想知道谁可能试图将两者都用于一个项目.我无法通过谷歌找到任何东西(这可能是我的错).
我很想知道你是否尝试过这个; 你有什么问题?您使用了每个框架的哪些部分?为什么?是否有任何好的例子或博客文章一起使用它们?
干杯,
史蒂夫
我的团队和我开始计划开发一个模块化的应用程序,它可能会多目标WPF和Silverlight.
我个人有一些使用旧版PRISM来使用MVVM模式构建复合Silverlight应用程序的经验.我们当时并不熟悉MEF来处理各种模块依赖关系,因此我们没有使用它.
我们没有与任何特定框架结婚,但想要使用其中一个更大的玩家.因此,我们开始研究Caliburn/Caliburn Micro,Prism,MVVM Light和Reactive UI.
我读到的模块化大部分内容都表明PRISM和MEF可以处理这一过程.由于我还在围绕其中的一些,我不确定我是否缺少一些明显的选择.我能够在Caliburn Micro和MEF上找到这篇文章.
任何人都可以指点我使用其他一些框架编写复合应用程序的类似文章,类似于PRSIM使用区域等的方式吗?理想情况下,我想限制所需框架的数量,同时提供最大的灵活性.我们不反对采用"最佳"方法并使用例如MEF/PRISM来处理View管理的合成和MVVM Light等; 但为什么在1时会使用2?
我在Silverlight应用程序中有一个方法,当前返回一个IList,我想找到最简单的方法将其转换为一个ObservableCollection:
public IList<SomeType> GetIlist()
{
//Process some stuff and return an IList<SomeType>;
}
public void ConsumeIlist()
{
//SomeCollection is defined in the class as an ObservableCollection
//Option 1
//Doesn't work - SomeCollection is NULL
SomeCollection = GetIlist() as ObservableCollection
//Option 2
//Works, but feels less clean than a variation of the above
IList<SomeType> myList = GetIlist
foreach (SomeType currentItem in myList)
{
SomeCollection.Add(currentEntry);
}
}
Run Code Online (Sandbox Code Playgroud)
ObservableCollection没有一个构造函数,它将IList或IEnumerable作为参数,所以我不能简单地新建一个.是否有一种替代方案看起来更像是我缺少的选项1,或者我只是在这里太挑剔而且选项2确实是一个合理的选择.
此外,如果选项2是唯一真正的选项,是否有理由在IEnurerable上使用IList,如果我真正要做的就是迭代返回值并将其添加到其他类型的集合中?
提前致谢
作为一个相当初级的开发人员,我遇到了一个问题,突出了我缺乏经验和我的知识漏洞.如果这里的序言太长,请原谅.
我发现自己正处于一个涉及我需要学习一些新的(对我而来)技术的项目,包括LINQ(对象来说是OBJECTS和XML).我在这一点上所读到的一切都表明,要利用LINQ,我需要完全理解以下内容(代理,匿名方法和Lambda表达式).
好的,所以现在很有趣.我曾经使用过.NET事件模型,但是我已经消费了代表,但是大多数细节都被隐藏了(感谢Microsoft!).我理解在基本层面上,委托实例是指向方法的指针(我知道这是一个过度简化的过程).
据我所知,匿名方法本质上是一种内联的未命名方法,通常(如果不是唯一的话)创建为委托的目标.
我也理解lambdas以不同的方式用于简化语法,可用于将简单的匿名方法指向委托.
请原谅我,如果我的任何描述都在这里,那么这就是我理解这些主题的基本层面.
所以,挑战:
如果我对这些项目的了解甚至更接近,至少在基本水平上有人能告诉我吗?我不是在寻找复杂的深奥细节,只是基础(现在).
在项目中应用LINQ以达到合理的效果之前,我需要在多大程度上真正理解这些概念?我想完全理解它,并愿意花时间.在我需要完成一些工作之前,我可能没有时间完全理解所有这些东西.
任何人都可以向我指出一些解释这些主题的好文章,并将它们应用到"真实世界"的例子中,这样我就可以了解这些主题和应用的基础知识吗?我的意思是现实世界,我是如何在"客户和发票"的背景下使用它而不是抽象的"矢量和形状"或"动物和奶牛".出于演示目的,这种情况可能有点人为,但希望不是严格的学术性的.我在网上和书中找到了一些例子,但似乎很少有"简单英语"的解释.
提前感谢您的耐心,时间和专业知识.
我正在用EF做我的第一个项目,我打算去代码优先模型.我试图找到一些关于处理一个相当经典的"查找表"场景的指导.
我正在处理一个非常规范的情况,我会坚持地址数据.所以,我有一个简单的地址DTO ......
public class Address
{
public int Id { get; set; }
public virtual string StreetAddress1 { get; set; }
public virtual string StreetAddress2 { get; set; }
public virtual string City { get; set; }
public virtual string State { get; set; }
public virtual string ZipCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在state属性中,我想存储标准的美国双字母状态代码.出于验证目的,我希望在生成的Address表和相当标准的状态查找表之间建立标准的一对多外键关系.该表可能包含一个ID,两个字母的代码和一个包含完整州名的第三列.
我希望使用这个状态查找表来填充和说明下拉样式框等,并且还可以作为对地址实体中提交的State的验证.相当常见的东西.所以,我有几个简单(我希望)的问题.
我在这里明确表达了我的观点,我有点挣扎,所以如果我不清楚,可以随意询问更多细节.
提前致谢.在UI中适当?
我的团队(其中我是最新和最初级的成员)在短短一年内从3到9名开发人员的规模增加了.我们的主要产品复杂性增加,我们即将进行为期一年的端口/重写Silverlight.在过去,没有强制执行特定的风格/标准.
我向老板建议现在是实施这些标准的好时机.我把IDesign的文件传给了他,他喜欢这个主意.他有两个问题.
这是一个吸收的大文件.在这里我的想法是建立一个精简下来备忘单的,我们很可能会遇到的最常见的物品,以理解的■设计标准是"康师傅"和任何不包括在削减版本应该看在"主"文件中.
执行此操作的最佳方法是什么.这不是试图指挥的问题; 这是试图让人们习惯于发展到特定标准的问题.团队中至少有两个人已经发展到目前的非标准状态已有好几年了.为了解决这个问题,我想看看是否有可以被配置为执行这些标准,或者至少警告在编译时或设计时的标准的"违规"的工具.我找到了Microsoft的StyleCop,但是从我能够确定的,它是不可配置的,并且设置为遵循微软的标准,这与IDesign的完全不相符.
任何关于工具的输入或我正在看的方法都将不胜感激.
在为我正在处理的项目设置一些引用类型属性时,我遇到了一些需要正确初始化才能使用的属性,并且永远不应为null.我已经看到了一些方法来处理这个问题,并且无法确定我看到处理这个问题的主要方法是否存在任何重大缺陷.我想得到社群对处理这个问题的最佳方法的看法,以及每种方法可能存在的缺点.
给定一个简单的类,我已经看到了几种方法来确保属性永远不会在属性中具有此类的null版本
public class MyClass
{
//Some collection of code
}
Run Code Online (Sandbox Code Playgroud)
选项1 - 初始化后备存储
public class OtherClass1
{
private MyClass _mC = new MyClass();
public MyClass MC
{
get { return _mC; }
set { _mC = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
选项2 - 在构造函数中初始化属性
public class OtherClass2
{
public MyClass MC { get; set; }
public OtherClass2()
{
MC = new MyClass();
}
}
Run Code Online (Sandbox Code Playgroud)
选项3 - 根据需要处理Getter中的初始化
public class OtherClass3
{
private MyClass _mC;
public MyClass MC
{
get
{ …Run Code Online (Sandbox Code Playgroud) 有没有办法禁用Internet Explorer 8开发人员工具,或至少更改快捷键映射?
我正在开发一个ASP.NET AJAX应用程序,它多年来一直使用F12键来实现一个功能(它实际上是原始DOS应用程序的保留).客户已使用此密钥用于sam功能近15年,我们真的希望避免移动该功能.
干杯
我已经做了很多搜索,没有太多运气找到一些有凝聚力的东西.我是一个相对较新的开发人员,刚刚开始我的第一个职业发展职位.我知道即使在基础知识领域我也有很多东西可以学习.基于收听PodCasts,阅读博客,论文等; 我已经明白,在设计和构建软件时要牢记关注点,IOC,依赖注入似乎是正确的做法.我将这些概念处于非常高的水平,并希望尽可能多地接近我对此的处理方式.
所以,这就是问题所在.我怎么这样设计东西?我在一个团队中工作,这个团队继承了一个基于网络的产品,这个产品非常紧密地联系在一起,文档记录很差,并且通常不容易维护一些软件.Evryone似乎喜欢删除这对夫妇的想法.他们喜欢开发自动化测试的想法(从我读过的内容来看,使用松散耦合的组件更容易).似乎没有人知道该怎么做.我愿意接受它,但我需要指导.我发现的所有东西似乎总是以非常高的方式谈论这些东西,或相反,只关注整体的一小部分.我想要一本关于一本书,一系列教程,视频或SOMETHING的指导,它们采用了一些现实世界的例子,并向您展示了如何应用这些原则.理想的情况下,
我知道这有点啰嗦,我只是有点沮丧,因为我发现的大部分综合训练材料根本就没有讨论这个话题,有人从一天开始就可以应用好的做法一.
谢谢大家的时间.
史蒂夫
c# ×7
silverlight ×3
mvvm ×2
.net ×1
alt.net ×1
asp.net ×1
caliburn ×1
code-first ×1
coding-style ×1
delegates ×1
lambda ×1
linq ×1
mef ×1
mvvm-light ×1
poco ×1
prism ×1
properties ×1
reactiveui ×1
standards ×1