我们正在开始一个新项目,我正在尝试决定我们应该采用哪种Wpf-esque开发/部署策略.在我们的案例中,我们正在寻找一个非常复杂的商业应用程序,将被100多人(而不是1000人)使用,所以我倾向于点击一次应用程序.我的老板喜欢Silverlight应用程序的想法,因为这意味着更容易部署.那么我们应该跳哪个方向?
答案当然是"它取决于".那么每种方法的优缺点是什么?
我将开始滚球(编辑添加来自artur carvalho的一些答案):
Silverlight的
跨浏览器
不需要完整的框架.
更好地控制用户.如果您的用户登录,您不必担心激活密钥或类似的东西.
它适用于Windows和Mac.
您可以轻松更新所有用户应用.
无法与客户端的文件系统进行交互等
与完整的Wpf相比具有更少的功能(任何人都有一个很好的资源,文件差异?)
单一窗口
单一版本
Wpf Web App(xbap)
全Wpf.
单个浏览器
需要完整的框架
无法与客户端的文件系统进行交互等
单一窗口
单个版本
Wpf单击一次
完整的Wpf
可以脱机工作
多个窗口
多个版本(con?)
更好地访问计算机的低级部件
没有停机维护
单个浏览器
需要完整的框架
稍微(?)更难安装.
将VHD数据磁盘添加到VM时,我被要求提供"主机缓存首选项"(无,只读,读/写).
有人能告诉我选择一个而不是另一个的效果吗?
具体来说,我使用VM作为构建服务器,因此磁盘用于编译.Net源代码.在这种情况下哪种设置最好?
我们正在使用SQL Server数据层应用程序(dacpac或DAC包),我很难找到当前版本的数据库.
有没有办法使用以下任何方法获取当前版本:
我们有一个Silverlight应用程序,它通过WCF与后端通信.是否有可能使用Glimpse监视这些调用,就像它对AJAX调用一样?
尝试将我们的大型项目升级到SL4时出错.我没有写原始主题,我的主题知识不是很好.在我的演示应用程序我有一个标签和一个LabelHeader(我已经创建并从标签只是一个派生类与DefaultStyleKey = typeof运算(LabelHeader);
我的造型像这样LabelHeader:
<Style TargetType="themeControls:LabelHeader">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<DataInput:Label
FontSize="{TemplateBinding FontSize}"
FontFamily="{TemplateBinding FontFamily}"
Foreground="{TemplateBinding Foreground}"
Content="{TemplateBinding Content}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="FontFamily" Value="Tahoma"/>
<Setter Property="FontSize" Value="20"/>
<Setter Property="Foreground" Value="Red"/>
</Style>
Run Code Online (Sandbox Code Playgroud)
这适用于SL3但在SL4中我得到:
错误:Silverlight应用程序代码中的未处理错误:2500
类别:ParserError
消息:在"System.Windows.Controls.Control"类型中找不到属性"Content".
文件:
行:9
位置:168
如果我改变了:CONTENT ="{TemplateBinding内容}",以内容="XXX"那就没有错误,但是,当然,我在标签,而不是我在XAML设置页面上的内容让XXX
我有什么想法可以让这个工作吗?
演示项目在这里:
http://walkersretreat.co.nz/files/ThemeIssue.zip
(道歉转贴,我已经这么远在这里没有答案:http://forums.silverlight.net/forums/p/183380/415930.aspx#415930)
编辑提供的答案看起来会起作用.此问题已在此处打开一个问题:https: //connect.microsoft.com/VisualStudio/feedback/details/561183
如果您认为这很重要,请投票!
我正在使用这个简单的函数来下载文件:
function DownloadFile([string]$url, [string]$file)
{
$clnt = new-object System.Net.WebClient
Write-Host "Downloading from $url to $file "
$clnt.DownloadFile($url, $file)
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我正在使用的脚本调用它可以多次调用,目前这可能意味着多次下载文件.
如果文件本地不存在或者服务器版本较新(例如服务器上的LastModifiedDate大于本地LastModifiedDate),我该如何修改函数才能下载?
编辑: 这是我到目前为止,似乎工作,但不希望有2次调用服务器.
function DownloadFile([string]$url, [string]$file)
{
$downloadRequired = $true
if ((test-path $file))
{
$localModified = (Get-Item $file).LastWriteTime
$webRequest = [System.Net.HttpWebRequest]::Create($url);
$webRequest.Method = "HEAD";
$webResponse = $webRequest.GetResponse()
$remoteLastModified = ($webResponse.LastModified) -as [DateTime]
$webResponse.Close()
if ($remoteLastModified -gt $localModified)
{
Write-Host "$file is out of date"
}
else
{
$downloadRequired = $false
}
}
if ($downloadRequired)
{
$clnt = new-object System.Net.WebClient
Write-Host …Run Code Online (Sandbox Code Playgroud)