我是一个相对较新的JavaScript,并继续在我正在使用的第三方库中看到.extend和.prototype.我认为它与Prototype javascript库有关,但我开始认为情况并非如此.这些用于什么?
如何开始为我的.NET应用程序设计和实现脚本界面?
有VSTA(的.NET等同VBA于COM),但据我了解,我将不得不支付许可费,我的应用程序的每个安装.它是一个开源的应用程序,所以这将无法正常工作.
还有例如嵌入式解释器(IronPython?),但我不明白这将如何允许将"对象模型"(见下文)暴露给外部(或内部)脚本.
子问题:
背景:
我曾经为Macintosh应用程序设计并实现了一个相当复杂的脚本接口,用于从质谱仪(Mac OS,System 7)获取和分析数据,后来用于Windows应用程序的COM接口.
两者都设计有"对象模型"和类(可以具有属性).这些是重载的单词,但在脚本界面中,上下文对象模型本质上是特定类对象的包含层次结构.类具有属性,包含对象的列表,不仅是数据,还可以包含动词(动作/方法).例如,在Macintosh情况下,定义的应用程序对象可以包含一个采集对象,该对象具有仪器中使用的电压和fireLater动词的属性- 所有这些都可以从外部脚本中看到.
请注意,在这两种情况下,用于实现应用程序的编程语言中的类/对象与脚本对象模型无关.对于Macintosh的情况,用于实现脚本接口的机制由Apple定义.Apple还定义了一些如何设计对象模型的标准.例如,类中某些常见属性的标准化名称.
或者类似于在Microsoft Office应用程序中公开的COM接口,其中应用程序对象可用于添加到其文档列表(具有创建文档的GUI表示的副作用).
外部脚本可以在容器中创建新对象,并在任何给定时间浏览层次结构的内容.在Macintosh中,案例脚本可以用例如AppleScript或Frontier编写.
在Macintosh上,脚本接口的实现非常复杂.在Metroworks的C++类库中支持它(这个名字现在让我失望)使它变得更加简单.
我读了这两篇很棒的文章:
Jonathan Creamer 的angularjs控制器状态
和
由Todd Motto 重新思考AngularJS控制器
在这些文章中,作者讨论了使用控制器的正确方法(使它们成为视图和模型之间的贫血桥梁)和工厂/服务(业务逻辑应该存在的地方).
这是很好的信息,我很高兴开始在我的一个项目上重构控制器,但我很快发现,如果你有一个丰富的对象模型,文章中显示的结构就会崩溃.
以下是"重新思考Angularjs控制器"的设置概述:
这是控制器:
app.controller('InboxCtrl', function InboxCtrl (InboxFactory) {
    var vm = this;
    vm.messages = InboxFactory.messages;
    vm.openMessage = function (message) {
      InboxFactory.openMessage(message);
    };
    vm.deleteMessage = function (message) {
      InboxFactory.deleteMessage(message);
    };
    InboxFactory
      .getMessages()
      .then(function () {
      vm.messages = InboxFactory.messages;
    });
});
这是工厂:
app.factory('InboxFactory', function InboxFactory ($location, NotificationFactory) {
  factory.messages = [];
  factory.openMessage = function (message) {
    $location.search('id', message.id).path('/message');
  };
  factory.deleteMessage = function (message) {
    $http.post('/message/delete', message)
    .success(function (data) {
      factory.messages.splice(index, 1);
      NotificationFactory.showSuccess();
    }) …structure object-model angularjs angularjs-factory angularjs-provider
搜索将提供对象模型,解析,验证等的库或框架
我们的想法是能够启动hl7 v2或v3类型的新对象.然后可能将其称为消息类型ORU_R01或ADT,或ORM.
如果我们能够做到这样的事情,生活会不会很好:
HL7V2 myMessage = new HL7V2();
myMessage.Type = V2MsgTypes.ORU_R01;
myMessage.TryParse(someHL7_string);
if (myMessage.IsValid)
{
  //do some work
  //maybe access the PID segment
  if (myMessage.Patient.Names.FamilyName =="Johnson")
  {
    //do more work
  }
}
创建对象后,我可以随意添加和删除插槽,就像我可以使用字典一样.甚至方法也只是存储在槽中的对象,所以我可能也可以将方法添加到字典中.
我可以用一个(非字典)对象做一些我永远不会用字典做的事情吗?或者是否可以设置一个完全看起来像某个类的对象的字典?
这个问题不是关于它们是如何创建的,而是关于我以后如何使用它们的问题.链接或参考表示赞赏.
我正试图找到一种方法来查找有关TFS2012中的代码审查请求/响应项的详细信息.
我可以通过以下方式查询所有代码审查请求/响应项:
const string TfsUri = "http://mytfsserver:8080/tfs/Default ProjectCollection";
var tfs = new TfsTeamProjectCollection(new Uri(TfsUri));
var store = tfs.GetService<WorkItemStore>();
var versionStore = tfs.GetService<Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer>();
var queryText = "SELECT [System.Id], 
                 FROM WorkItems 
                 WHERE [System.WorkItemType] = 'Code Review Request' 
                 or [System.WorkItemType] = 'Code Review Response'";
var query = new Query(store, queryText);
var result = query.RunQuery().OfType<WorkItem>();
这给了我一个WorkItem类型列表.当我遍历result.FirstOrDefault().Fields属性时,它确实给了我一些有关ShelveSet的有用信息,它与Code Review相关,即"Associated Context".使用此信息,我可以查询ShelveSet:
var versionStore = tfs.GetService<VersionControlServer>();
var shelveset = versionStore.QueryShelvesets("someCodeReviewId_xxxx","someUserName");
这给了我一个ShelveSet项目,但那就是我被困住的地方.
我查看Microsoft.TeamFoundation.CodeReview了两者Microsoft.TeamFoundation.CodeReview.Components和Microsoft.TeamFoundation.CodeReview.Controls库提供的命名空间,但这对我没有任何帮助.
我的问题是:如何通过TFS API找到代码审查期间ShelveSet上的实际注释(包括一般注释和文件注释)?
CWM是数据建模
UML是对象建模.
有人可以解释一个外行人可以理解的区别吗?
我正在使用initWithContentsOfURL:构造函数加载NSManagedObjectModel模型,如下所示:
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyDocument" withExtension:@"momd"];
NSManagedObjectModel *mom = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
但是,这只能让我访问模型的最新/当前版本.是否可以使用相同的momd文件加载以前的版本?怎么样?
我试图在MonogoDB上建模我的对象,但不确定如何继续.我正在构建一个产品目录:
以下是我要做的事情:我需要对产品目录进行建模以捕获多语言功能.假设我有:
product : { 
 _id:xxx,
 sku:"23456",
 name:"Name",
 description: "Product details", 
 tags:["x1","x2"]}... 
}
当然,名称,描述,标签和可能的图像将根据语言而改变.那么,我该如何建模呢?
在产品本身中使用各种语言进行JSON表示:
product :{
   id: xxx,
   en: {
         name: "Name",
         description: "product details.."
       },
   es: {
         name: "Name",
         description: "product details.."
       },
   ...   
}
或者还有其他解决方案吗?在这里需要MongoDB建模专家的帮助:)
首先,我明白这个问题在现实世界中没有应用,我只是好奇.
想象一下,我们有一个使用单例方法的类:
class Foo
    def self.bar
    end
end
如果我们调用Foo.bar它,它将首先在每个祖先的单例类中搜索一个方法Foo,然后查看.class方法及其祖先引用的类.我们可以确认,Foo.singleton_class.ancestors返回:
[#<Class:Foo>, #<Class:Object>, #<Class:BasicObject>,
 Class, Module, Object, Kernel, BasicObject]
但是如果我们有一个嵌套的单例类会发生什么,比如:
class Foo
  class << self
    class << self
      def bar
      end
    end
  end
end
如果我们打电话Foo.singleton_class.singleton_class.ancestors,它会返回:
[#<Class:#<Class:Foo>>, #<Class:#<Class:Object>>,
 #<Class:#<Class:BasicObject>>, #<Class:Class>, #<Class:Module>,
 #<Class:Object>, #<Class:BasicObject>, Class, Module, Object, Kernel, BasicObject]
我不明白这个层次结构是如何组织的.
object-model ×10
.net ×2
c# ×2
angularjs ×1
api ×1
core-data ×1
hl7 ×1
inheritance ×1
javascript ×1
mongodb ×1
prototype ×1
python ×1
ruby ×1
structure ×1
tfs2012 ×1