我喜欢LINQ to SQL,但似乎它生成的类与它们存储的数据库紧密耦合,这看起来像是一件坏事.
例如,使用旧的Northwind数据库,如果我使用Products表创建dbml,Product则会生成一个类.我可以在任何其他层使用此类,这一切都很好,但如果我决定使用普通的旧ADO.NET(或交换机数据库),我将不得不重新创建Product类,以及其他所有类"模型."
有没有解决的办法?或者单独创建对象模型,然后将表映射到它们?我已经玩过各种各样的地图类,但还没有找到满意的答案.
我最近被一些意想不到的东西咬了.我想做出类似的东西:
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 webframworks如何组合在一起吗?
我听说过的三个是CherryPy,TurboGears和Pylons.然而我很困惑,因为TurboGears似乎使用CherryPy作为'控制器'(虽然它本身不是CherryPy的框架吗?),而TurbGears 2将建立在Pylons之上(我认为它是一样?).
我想知道为什么没有浏览器有这么简单但必不可少的功能.我错过了什么吗?有技术原因吗?
我厌倦了所有那些javascript/flash/java hacks out ...
我是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)
所以,我如何才能mouseDown在ClickerView能够调用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,并且不发送消息.
我正在开发一个大的.NET 1.1项目,并且希望升级它,主要是为了能够使用更好的工具,如Visual Studio 2008,还因为.NET中的新功能和少量的bug. 2.0框架.
该项目包含VB.NET的大部分内容,但C#中也有部分内容.它是一个Windows窗体应用程序,使用各种第三方控件.使用.NET远程处理,富客户端与服务器进程通信,该进程与MSSQL 2000数据库连接.
如果我们决定进行升级,我们可以期待什么样的问题?
我正在尝试将多级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结果: …
我有一个非常标准的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有类似的东西吗?
对于我的生活,我无法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上找不到任何体面的文档.
我正在使用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从命令模式手动调用等,这有效,但这不是一个很好的解决方案.
少了什么东西?
python ×3
.net ×2
pylons ×2
architecture ×1
browser ×1
c# ×1
capistrano ×1
cherrypy ×1
cocoa ×1
deployment ×1
deprecated ×1
django ×1
exception ×1
factory-bot ×1
http ×1
indentation ×1
linq-to-sql ×1
macos ×1
nsview ×1
rspec ×1
ruby ×1
turbogears ×1
upload ×1
vb.net ×1
vim ×1
winforms ×1