这个ASP.NET顾问知道他在做什么?

我们子公司的IT部门有一个咨询公司写他们一个ASP.NET应用程序.现在有了间歇性的问题,混淆当前用户是谁,并且已经知道向Joe显示一些Bob的数据错误.

顾问被带回来进行故障排除,我们被邀请听取他们的解释.两件事情出了问题.

首先,顾问负责人提供了这个伪代码

void MyFunction()
{
    Session["UserID"] = SomeProprietarySessionManagementLookup();
    Response.Redirect("SomeOtherPage.aspx");
}

他继续说,会话变量的分配是异步的,这似乎是不真实的.授予查询功能调用可以异步执行,但这似乎是不明智的.

鉴于所谓的异步性,他的理论认为,在引发重定向的不可避免的ThreadAbort异常之前,会话变量没有被分配.这样就可以防止SomeOtherPage显示正确的用户数据.

第二,他举了一个他推荐的编码最佳实践的例子.而不是写:

int MyFunction(int x,int x)
{
    try 
    {
        return x / y; 
    }
    catch(Exception ex)
    {
        // log it
        throw;
    }
}

他推荐的技术是:

int MyFunction(int x,int y,out bool isSuccessful)
  {
    isSuccessful = false;

    if (y == 0)
        return 0;

    isSuccessful = true;

    return x / y;
  }

在某些情况下,从性能角度来看,这肯定会奏效.

然而,从这些和其他讨论点来看,在我们看来,这个团队在技术上并不精通.

意见?

解决方法

我同意这些家伙似乎相当无能.

(BTW,我会检查一下,在“SomeProprietarySessionManagementLookup”中,他们使用的是静态数据,看到这个 – 正如你在几个月前继承的一个项目所描述的行为完全一样,这是一个全面的头痛时刻我们终于看到了…而且希望我们可以和写这个的人面对面…)

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...