我负责的这个应用程序基本上是一个CRUD系统,可能大约有十几个表.
该技术很可能是ASP.NET WebForms + Ajax Ctrl Toolkit + jQuery在正面,而SQL Server在背面.
这个应用程序可能永远不会被超过10-20个用户用作单租户系统; 但是,在某些时候,我们可能希望将其作为一个多租户系统,并希望尽可能减少影响.
我对你这些聪明人的问题是:我应该
将其构建为一个简单的2层Web应用程序,其中ASP.NET WebForms直接与业务对象/层通信,后者通过存储过程(可能还有一些Linq2SQL)处理SQL Server中的数据持久性?
构建一个n层应用程序,其中ASP.NET WebApp与WCF服务进行通信,该服务处理通过存储过程(可能还有一些Linq2SQL)处理SQL Server中处理数据持久性的业务对象/层的操作?
一些额外的选择,我没有想到的?
问我问题的一种更简单的方法是,我应该构建一个2层应用程序,还是一个3层应用程序?我简单地倾向于2层,但也许因为长期目标是多租户,3层WCF方法可能是明智的吗?
更新
我很欣赏ASP.NET MVC的建议,我将调查这条路径; 但是,任何使用MVC和WCF的链接都将有助于选择最终答案.
I have a basic Windows Phone List application, with code like this in the MainViewModel class
// CODE THAT WORKS --
Items.Clear();
foreach (var itm in e.Result)
Items.Add(itm);
Count = Items.Count;
// CODE THAT DOES NOT WORK -- I'm trying to understand WHY
Items = e.Result;
Run Code Online (Sandbox Code Playgroud)
The databinding Xaml looks like this:
<DataTemplate>
<StackPanel x:Name="DataTemplateStackPanel" Orientation="Horizontal">
<Image x:Name="ItemImage" Source="/AppName;component/Images/ArrowImg.png" Height="43" Width="43" VerticalAlignment="Top" Margin="10,0,20,0"/>
<StackPanel>
<TextBlock x:Name="ItemText" Text="Event Name" Margin="-2,-13,0,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
<TextBlock x:Name="DetailsText" Text="{Binding Path=Description}" Margin="0,-6,0,3" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</StackPanel> …Run Code Online (Sandbox Code Playgroud) 我主要从事小型个人项目.我的挑战之一是源代码存储库维护.我已经使用了我的MSDN许可证提供的Team Foundation Server的基本版本,虽然它工作得很好,但它并不理想(我不会像我应该那样进行备份等).我真的宁愿付钱让它托管.我喜欢TFS,但我也对其他选项持开放态度(因为托管的TFS看起来真的很贵).
有关提供商的任何建议吗?只要它们与Visual Studio很好地集成,我愿意考虑任何事情.
这真的很奇怪,我在delphi中有一个数组并用directX矩阵填充它.然后我得到指向第一个元素的指针,并通过com将其传递给c#托管代码:
function TMPlugTransformInPin.GetMatrixPointer(out SliceCount: Integer; out
ValueP: Int64): HResult;
var
matrices: array of TD3DMatrix;
i: Integer;
begin
SliceCount := UserSliceCount;
//make a temp array of all matrices
SetLength(matrices, SliceCount);
for i := 0 to SliceCount - 1 do
matrices[i] := FTransformManager.ModelMatrix[i];
//return a pointer to the first matrices cell [0,0]
if SliceCount = 0 then
ValueP := 0
else
ValueP := Int64(@matrices[0]);
Result := S_OK;
end;
Run Code Online (Sandbox Code Playgroud)
在托管方面,代码如下所示:
if (IsChanged)
{
int sliceCount;
long source;
FTransformIn.GetMatrixPointer(out sliceCount, out source);
SliceCount = …Run Code Online (Sandbox Code Playgroud) 我正在使用C#应用程序来启动java Web应用程序.我希望我的C#应用程序知道用户什么时候关闭java应用程序.我正在使用此代码:
var javaws = File.Exists(@"C:\Program Files\Java\jre6\bin\javaws.exe") ? @"C:\Program Files\Java\jre6\bin\javaws.exe" : @"C:\Program Files (x86)\Java\jre6\bin\javaws.exe";
var psi = new ProcessStartInfo(javaws, String.Format("http://{0}:/appstart.jnlp", hostAddress));
Process.Start(psi).WaitForExit();
Run Code Online (Sandbox Code Playgroud)
这段代码成功启动了java程序,然后WaitForExit()被调用并立即返回.我相信这是因为"javaws"只是启动另一个名为"javaw"的进程,然后"javaws"关闭.有没有办法A)等待所有子进程也完成,或者B)等待特定的子进程?
-
我发现了这个相关的帖子:javaws退出代码真的坏了吗?虽然答案表明1.6.0_23修复了它,但我在Java 1.6.0_23的开发机器上看到完全相同的行为.我现在正在寻找的是一种解决方法,使上述代码按预期工作.我需要启动这个jnlp文件,等待它的执行完成,然后在C#程序中做一些额外的代码.Java应用程序不受我的控制,所以我无法在那里添加功能.
-
对于任何想知道的人,最终解决方案看起来像这样:
var javaws = File.Exists(@"C:\Program Files\Java\jre6\bin\javaws.exe") ? @"C:\Program Files\Java\jre6\bin\javaws.exe" : @"C:\Program Files (x86)\Java\jre6\bin\javaws.exe";
var psi = new ProcessStartInfo(javaws, String.Format("http://{0}:/appstart.jnlp", hostAddress));
Process.Start(psi).WaitForExit();
var javaw = Process.GetProcessesByName("javaw");
javaw.Single(ja => ja.StartTime.Equals(javaw.Max(j => j.StartTime))).WaitForExit();
Run Code Online (Sandbox Code Playgroud)
如果javaw在计算机上运行其他Java Web应用程序,则仅提供等待最近启动的进程的额外好处.
while(thingA is true)
{
}
if(thingA is not true)
{
make thingA true
then back to looping
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如果循环是真的它将继续循环但如果不是我将通过其他代码使其成为真,之后我希望它再次循环.我可以这样做吗??
我有一个List<List<string>>,当我尝试搜索List<string>它时,它返回没有结果.
有任何想法吗?
谢谢
List<List<string>> test = new List<List<string>>();
List<string> ff = new List<string>();
ff.Add("1");
ff.Add("ABC 1");
test.Add(ff);
ff = new List<string>();
ff.Add("2");
ff.Add("ABC 2");
test.Add(ff);
var result = test.Where(x=>x.Contains("ABC"));
//result.Count(); is 0
Run Code Online (Sandbox Code Playgroud) 我正在尝试开发一个非常简单的应用程序,显示像图像幻灯片,我肯定无法弄清楚(如果有人有任何建议将非常感激)但我想知道有什么办法可以阻止设备如果它通过这些图像离开骑行,从睡觉?
我是Android开发的新手,正在开发一个简单的练习项目,用户在两个EditText字段中输入一个数字并按下标有"Calculate"的按钮,并显示两个数字的总和.这是我到目前为止的代码,但我不知道如何添加两个字符串值并将其输出到名为"answer"的TextView字段:
public void calNumbers(View view) {
EditText text = (EditText)findViewById(R.id.edit_number1);
String value = text.getText().toString();
EditText text2 = (EditText)findViewById(R.id.edit_number2);
String value2 = text2.getText().toString();
TextView answer = (TextView) findViewById(R.id.answer);
}
Run Code Online (Sandbox Code Playgroud)