小编swi*_*ams的帖子

LINQ to SQL生成的对象可以解耦吗?

我喜欢LINQ to SQL,但似乎它生成的类与它们存储的数据库紧密耦合,这看起来像是一件坏事.

例如,使用旧的Northwind数据库,如果我使用Products表创建dbml,Product则会生成一个类.我可以在任何其他层使用此类,这一切都很好,但如果我决定使用普通的旧ADO.NET(或交换机数据库),我将不得不重新创建Product类,以及其他所有类"模型."

有没有解决的办法?或者单独创建对象模型,然后将表映射到它们?我已经玩过各种各样的地图类,但还没有找到满意的答案.

.net architecture linq-to-sql

11
推荐指数
1
解决办法
1399
查看次数

为什么异常可迭代?

我最近被一些意想不到的东西咬了.我想做出类似的东西:

try :
     thing.merge(iterable) # this is an iterable so I add it to the list
except TypeError :
     thing.append(iterable) # this is not iterable, so I add it
Run Code Online (Sandbox Code Playgroud)

好吧,它工作正常,直到我传递了一个继承自Exception的对象,该对象应该被添加.

不幸的是,异常是可迭代的.以下代码不会引发任何TypeError:

for x in Exception() :
    print 1
Run Code Online (Sandbox Code Playgroud)

有人知道为什么吗?

python exception

11
推荐指数
1
解决办法
1067
查看次数

Python Webframework混乱

有人可以向我解释当前的python webframworks如何组合在一起吗?

我听说过的三个是CherryPy,TurboGears和Pylons.然而我很困惑,因为TurboGears似乎使用CherryPy作为'控制器'(虽然它本身不是CherryPy的框架吗?),而TurbGears 2将建立在Pylons之上(我认为它是一样?).

python pylons web-frameworks cherrypy turbogears

10
推荐指数
3
解决办法
2517
查看次数

为什么浏览器没有文件上传进度条?

我想知道为什么没有浏览器有这么简单但必不可少的功能.我错过了什么吗?有技术原因吗?

我厌倦了所有那些javascript/flash/java hacks out ...

browser upload http

10
推荐指数
2
解决办法
2470
查看次数

NSView子类如何与控制器通信?

我是Cocoa编程的新品牌,我仍然对事物如何连接感到困惑.

我需要一个非常简单的应用程序,DoStuff只要点击窗口上的任何一点,它就会触发一个命令(让我们调用它).经过一些研究后,看起来子类化NSView是正确的方法.我的ClickerView.m文件有这个:

- (void)mouseDown:(NSEvent *)theEvent {
    NSLog(@"mouse down");
}
Run Code Online (Sandbox Code Playgroud)

我已经将视图添加到窗口并使其在整个事物中延伸,并且每次单击窗口时都正确地写入日志.

我的doStuff控制器上也有我的方法(这可以重构为我自己的类,但是现在它可以工作):

- (IBAction)doStuff:(id)sender {
    // do stuff here
}
Run Code Online (Sandbox Code Playgroud)

所以,我如何才能mouseDownClickerView能够调用DoStuff控制器?我有一个强大的.NET背景,有了这个,我只在ClickerView中有一个自定义事件,Controller会消耗; 我只是不知道如何在Cocoa中做到这一点.

根据Joshua Nozzi的建议编辑

IBOutlet在我的View中添加了一个(并将其更改为子类NSControl):

@interface ClickerView : NSControl {
    IBOutlet BoothController *controller;
}
@end
Run Code Online (Sandbox Code Playgroud)

我通过单击并从controllerView上的Outlets面板中的项目拖动到控制器,将控制器连接到它.我的mouseDown方法现在看起来像:

- (void)mouseDown:(NSEvent *)theEvent {
    NSLog(@"mouse down");
    [controller start:self];
}
Run Code Online (Sandbox Code Playgroud)

但是控制器没有实例化,调试器将其列为0x0,并且不发送消息.

macos cocoa nsview

9
推荐指数
1
解决办法
6290
查看次数

从.NET 1.1升级到.NET 2.0,可以期待什么?

我正在开发一个大的.NET 1.1项目,并且希望升级它,主要是为了能够使用更好的工具,如Visual Studio 2008,还因为.NET中的新功能和少量的bug. 2.0框架.

该项目包含VB.NET的大部分内容,但C#中也有部分内容.它是一个Windows窗体应用程序,使用各种第三方控件.使用.NET远程处理,富客户端与服务器进程通信,该进程与MSSQL 2000数据库连接.

如果我们决定进行升级,我们可以期待什么样的问题?

.net c# vb.net deprecated winforms

8
推荐指数
3
解决办法
3548
查看次数

Capistrano不承认多阶段阶段

我正在尝试将多级capistrano部署到我的生产和登台服务器.这是我的deploy.rb文件(省略scm详细信息):

require 'bundler/capistrano'
require 'whenever/capistrano'

set :application, "myapp"

set :stages, %w{staging, production}
set :default_stage, "staging"
require 'capistrano/ext/multistage'

set :deploy_to, "/webapps/myapp"

set(:domain) { "#{domain}" }
role(:web) { domain }
role(:app) { domain }
role(:db, :primary => true) { domain }

default_run_options[:pty] = true

namespace :one do
    task :foo do
        puts "foo"
    end
end
Run Code Online (Sandbox Code Playgroud)

并在config/deploy/production.rb:

set :domain, "production.com"
set :user, "prod"
Run Code Online (Sandbox Code Playgroud)

config/deploy/staging.rb:

set :domain, "shootsystage.com"
set :user, "stage"
Run Code Online (Sandbox Code Playgroud)

没什么太奇特的了(我想).跑步cap production one:foo很好.但运行cap staging one:foo结果: …

deployment capistrano

8
推荐指数
1
解决办法
3824
查看次数

Django:如何创建到视图的通用URL路由?

我有一个非常标准的django应用程序,我想知道如何设置URL路由,以便我不必显式地将每个URL映射到视图.

例如,假设我有以下观点:Project, Links, Profile, Contact.我宁愿不要urlpatterns看起来像这样:

(r'^Project/$', 'mysite.app.views.project'),
(r'^Links/$', 'mysite.app.views.links'),
(r'^Profile/$', 'mysite.app.views.profile'),
(r'^Contact/$', 'mysite.app.views.contact'),
Run Code Online (Sandbox Code Playgroud)

等等.在Pylons中,它将如此简单:

map.connect(':controller/:action/:id')
Run Code Online (Sandbox Code Playgroud)

它会自动获取正确的控制器和功能.Django有类似的东西吗?

python django pylons

7
推荐指数
3
解决办法
3021
查看次数

让factory_girl在Rails3中工作

对于我的生活,我无法factory_girl在Rails3中工作.我创建了一个全新的应用程序.我的Gemfile:

gem "rspec"
gem "rspec-rails"
gem "factory_girl_rails"
Run Code Online (Sandbox Code Playgroud)

application.rb像这样的发电机:

  config.generators do |g|
      g.test_framework :rspec, :fixture => true, :views => false, :fixture_replacement => :factory_girl
  end
Run Code Online (Sandbox Code Playgroud)

然后,使用生成器创建新模型:

> rails g model Addon name:string

  invoke  active_record
  create    db/migrate/20101223205918_create_addons.rb
  create    app/models/addon.rb
  invoke    rspec
  create      spec/models/addon_spec.rb
   error      factory_girl [not found]
Run Code Online (Sandbox Code Playgroud)

我想念什么?我bundle install当然跑了...我试着环顾四周,但在factory_girl和rails3上找不到任何体面的文档.

rspec ruby-on-rails-3 factory-bot

7
推荐指数
1
解决办法
4474
查看次数

如何覆盖Vim中Ruby的默认tabindent?

我正在使用Janus for vim,我真的很喜欢它,但我似乎无法让我喜欢的4个tabstop工作正常.这是我的.vimrc

set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
Run Code Online (Sandbox Code Playgroud)

后来我有

filetype plugin indent on
Run Code Online (Sandbox Code Playgroud)

但我的所有ruby文件都使用默认版本2,我不喜欢.我已经尝试按照此页面上的说明操作,包括ruby.vim在after文件夹(以及indentjanus创建的文件夹)中创建文件.我已经添加:

au FileType ruby set softtabstop=4 tabstop=4 shiftwidth=4
Run Code Online (Sandbox Code Playgroud)

到我的.vimrc,但没有一个工作.

我可以set tabstop从命令模式手动调用等,这有效,但这不是一个很好的解决方案.

少了什么东西?

ruby vim indentation

7
推荐指数
1
解决办法
3325
查看次数