我曾在两家以两种不同方式实施ASP.Net的公司工作过.我倾向于倾向于A,但我目前的工作遵循B(更典型)的方法.我想知道哪个是最好的,还有这些实现的正式名称吗?
A)没有建立任何项目或解决方案.我们只是将Visual Studio指向一个目录并开始构建页面(我们有一个内嵌的aspx页面和aspx /代码隐藏页面的组合).我们只是将文件推送到服务器,就是这样.如果我们需要任何第三方功能,所有类和服务都位于App_Code目录或Bin中.我们从未在.Net中使用过"构建"功能,而且大部分内容都是JIT编译的.调试是用旧式的Response.Write()方式完成的.
B)创建项目.有Resx文件,sln文件和项目文件等.项目的编译,构建和调试是我最确定的.Net开发人员习惯的方式.一切都与VS IDE紧密相关,并且尝试在另一个Visual Studio副本中打开"项目"需要与发起项目的人相同的目录/ localhost设置.
听取那些在两种实施方式中都有效的人以及他们在任何一方找到的好处,这将是有趣的.
我的理由是,我想我想让我现在的开发团队更多地转向A实现,并删除所有这些锁定VS的外围文件和配置,但我也愿意听到喝微软Kool-Aid的好处.
在Windows上,我的用户模式程序如何获取安装的视频卡的驱动程序版本号?
像ATI的"Catalyst Control Center"这样的程序可以向用户显示此信息或将其自动包含在错误报告中.他们是如何得到它的?
我一直在寻找通过PSDK文档,我找不到任何相关的东西.
用户程序可以通过Device Manager显示的数据库走路吗?
是否有IOCTL调用,如获取磁盘驱动器几何?
它是否在(可靠的)注册表项中?
也许我的问题在性质上与此类似:你是否使用设计模式?
我编写的程序是小型的50-75 K行程序,主要使用Windows Forms和ASP.NET.这些程序是GUI密集型的,允许各种图形和图形处理的设计和布局.
我认为自己擅长OOP并练习平衡OOP和传统的程序方法来创建可维护的代码.
当我考虑设计模式时会出现问题.链接到线程有一个有趣的评论,可以使用设计模式,但不是故意.当我想故意使用设计模式(在我的程序设计中)时,感觉就像我超越了所需要的东西,我在" 建筑宇航员 " 的领域,所以我回到了我的传统方法和一切都顺利进行(即通常).
以MVC模式为例.如果我想使用Windows窗体或ASP.NET(Visual Studio 2005)实现这种模式,那么我必须编写一个"框架",编写框架似乎比应用程序的大小更值得.
也许我的应用程序太小,无法证明使用其中一些模式.也许我只是不了解模式或需要更多地研究它们.
有没有其他人体验过这种"建筑宇航员"的感觉?
你如何有意识地使用设计模式而不"过度"?
我知道这是一个非常基本的问题,我想我知道答案......但我想证实.
这些查询真的相同吗?
SELECT * FROM FOO WHERE BAR LIKE 'X'
SELECT * FROM FOO WHERE BAR ='X'
Run Code Online (Sandbox Code Playgroud)
也许在使用没有外卡的情况下会有性能开销?
我有一个可选择使用LIKE和外卡的应用程序.SP目前做类似的并附加外卡 - 我想只是更新查询使用,但让应用程序根据需要附加外卡.
我有这个枚举:
enum ButtonState {
BUTTON_NORMAL = 0,
BUTTON_PRESSED = 1,
BUTTON_CLICKED = 2
};
const u8 NUM_BUTTON_STATES = 3;
Run Code Online (Sandbox Code Playgroud)
在我的Button类中,我有成员变量ButtonState state;和ButtonColors colors[NUM_BUTTON_STATES];.绘制按钮时,我colors[state]用来获取按钮所处状态的颜色.
我的问题:
我试图将二维数组的引用传递给C++中的函数.我在编译时知道两个维度的大小.这就是我现在所拥有的:
const int board_width = 80;
const int board_height = 80;
void do_something(int[board_width][board_height]& array); //function prototype
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我从g ++中得到这个错误:
error: expected ‘,’ or ‘...’ before ‘*’ token
Run Code Online (Sandbox Code Playgroud)
这个错误意味着什么,我该如何解决?
由于某种原因,以下代码失败.您不能简单地使用其base()方法擦除reverse_iterator.
#include <set>
#include <iostream>
int main()
{
std::set<int> setOfInts;
setOfInts.insert(1);
setOfInts.insert(2);
setOfInts.insert(3);
std::set<int>::reverse_iterator rev_iter = setOfInts.rbegin();
std::set<int>::reverse_iterator nextRevIter = setOfInts.rbegin();
++nextIter;
while ( rev_iter != setOfInts.rend())
{
// Find 3 and try to erase
if (*rev_iter == 3)
{
// SEGFAULT HERE
setOfInts.erase( rev_iter.base());
}
rev_iter = nextRevIter;
++nextRevIter;
}
}
Run Code Online (Sandbox Code Playgroud)
如何正确地做上述事情?如果reverse_iterator对应于您想要擦除的内容,那么如何删除它?
注意,遗憾的是不会使用reverse_iterator.它想要真实的东西.
有人知道为什么java.util.Caldendar中的MINUTE方法返回错误的分钟?
import java.util.Calendar;
public class Clock
{
// Instance fields
private Calendar time;
/**
* Constructor. Starts the clock at the current operating system time
*/
public Clock()
{
System.out.println(this.time.HOUR_OF_DAY+":"+this.time.MINUTE);
}
}
Run Code Online (Sandbox Code Playgroud)