我们的产品是ASP.Net Web应用程序.目前,我们在Visual Studio中使用Web站点项目,但一直在研究使用Web应用程序项目.我目前正在研究它们,以便我们可以改进我们的部署过程.
我们有一个在不同客户端之间共享和通用的基本网站,然后我们在客户端网站项目中使用特定于客户端的功能扩展它.客户端项目扩展基础,因此依赖于其内容.要构建完整的产品,我们首先部署基本网站,然后将其与客户端项目中的内容重叠.
在Visual Studio中转换为Web应用程序项目时,我们希望能够创建基础项目,然后创建客户端项目并设置对base的引用.这种结构似乎工作正常,但是当我们尝试使用MSDeploy从客户端项目部署应用程序时,只发布基本网站的dll.这对某些事情来说很好,引用编译的代码很有用,但还有其他项目,如images,js pages,htm等,它们仍然是客户端应用程序运行所必需的源代码.我们需要的不仅仅是基础网站的编译代码.
尽管如此,我可以在这里想到几个选择:
我错过了不同的选择吗?我在设置项目的方式上做错了吗?除了共享编译代码之外,是否还有更多使Web应用程序引用另一个Web应用程序?如果是这种情况,为什么不只是使用共享类库?或者我可能错过了MS Deploy流程的一些内容?
我对这里的建议持开放态度,因为我觉得我错过了一些东西.我不认为我们的Web应用程序模型太独特了.
更新:双部署过程确实有效,但感觉有点笨拙.还有其他输入吗?
asp.net deployment web-applications msdeploy vs-web-application-project
我们开发了一个托管在内部网络上的ASP.Net Web应用程序.目前,我们有一些ASPX页面可以处理来自客户端的Web请求并与我们的服务器进行交互.我们正在开始开发下一个主要的应用程序版本,我们正在决定架构.
与使用完整的Web服务(很可能是WCF服务)相比,使用ASPX页面处理http请求有什么区别?
在研究这个问题时,我发现了一些相关的帖子,这些帖子在这里和这里都是适度的.我对一些主要差异的理解如下:
但是,基于这些概念,我的问题如下:
有什么我想念的吗?使用服务的任何关键好处?就个人而言,我支持Web服务架构.我喜欢拥有一个可以支持未来发展的灵活且定义明确的系统的想法.我基本上想要摆脱这个是一种方式去同事说"这应该是一个服务的xyz原因,我们可以看到abc改进这样做".
我们希望为下一版本的应用程序开发创建一个新的Team Foundation Server Collection.我们当前版本的源代码基本上不适用,除了一些应该或多或少保持不变的DLL.我们想要创建一个新的集合,但想知道我们是否能够从现有集合中克隆DLL项目以保留历史记录.
这可能吗?我们意识到如果DLL需要任何错误修正,这可能会带来一些"双重维护"问题,但我们并不太关心这种情况.
到目前为止,我已经提出了一些资源.一些MSDN帖子指向人们分裂团队项目集.但问题是,每个集合中只能有一个项目.它指出:
项目不能存在于多个集合中.在删除拆分集合之间的所有重复项目之前,您将无法启动重命名的集合.
这不是我们想要的.我们希望在每个集合中保留两个具有历史记录的项目.
否则,我看到了TFSConfig命令.它包含一个/ clone选项,但我不太确定它的用法(其他例子也很难得到),并且它提到它主要用于拆分.
我们是否希望做一些不可能的事情?我们是否需要复制源并将其作为新项目添加到新集合中,如果我们确实需要历史记录,请参考旧集合?谢谢.
我有一个基类,它有一个属性和一个使用该属性的方法.我有一个继承该基类的类,并且有自己的基类属性实现,使用New修饰符显式隐藏.在基类的方法中,是否有一种使用继承类'属性而不是基类实现的好方法?
class Program
{
public class MyBase
{
public string MyProperty { get { return "Base"; } }
public string MyBaseMethod()
{
return MyProperty;
}
}
public class MyInherited : MyBase
{
public new string MyProperty { get { return "Inherited"; } }
}
static void Main(string[] args)
{
List<MyBase> test = new List<MyBase>();
test.Add(new MyBase());
test.Add(new MyInherited());
foreach (MyBase item in test)
{
Console.WriteLine(item.MyBaseMethod());
}
}
}
Run Code Online (Sandbox Code Playgroud)
在示例中,输出为:Base Base
目前的解决方法:
...
public class MyBase
{
public string MyProperty { …Run Code Online (Sandbox Code Playgroud) asp.net ×2
c# ×2
.net ×1
deployment ×1
inheritance ×1
msdeploy ×1
tfs ×1
wcf ×1
web-services ×1