coollzh

.NET Oriented
随笔 - 76, 文章 - 1, 评论 - 222, 引用 - 14
数据加载中……

2004年12月20日

招多名ASP.NET开发工程师[上海盛大网络]

任职要求:
大学本科以上学历,1年以上ASP.NET开发经验
熟悉ASP.NET2.0,熟悉ADO.NET编程模型,熟练掌握NET Framework 2.0, 3.5
熟练使用Visual Studio.NET2005,2008开发工具
熟悉javascript,css
熟悉一种以上数据库产品的开发和设计
熟悉企业设计模式,具有大型企业级系统设计、开发、调优经验者优先

有意者请发邮件到:liangzhonghua@snda.com

posted @ 2008-07-21 10:02 coollzh 阅读(746) | 评论 (7)编辑

二级域名导致asp.net中的Session_Id访问混乱并使用户访问产生异常

csdn上有一篇帖子:
http://topic.csdn.net/t/20051024/21/4347573.html
原文如下:
一个问题,不知道是我孤陋寡闻还是一直没有注意,我觉得这是一个很常见的应用问题,但是好像没有看到以前有什么反应,现在来请教大家。  
   
  2个域名,根域名相同,例如a.x.com和b.x.com  
   
  这两个域名的网站在不同的服务器,其中a.x.com上通过iframe嵌套了b.x.com的一个页面,例如  
   
  <iframe   src="http://b.x.com/news.aspx"   width="200"   height="400"></iframe>  
   
  a.x.com需要用户登录以后才能完全访问使用所有功能。  
   
  现在的问题是,a.x.com时常会出现用户访问并没有登录,但是登录控件显示已经登录的状态,并出现另一个用户的信息。或者用户正常登录以后出现的是别人的信息。  
   
  这种情况也会在用户通过b.x.com链接访问a.x.com的时候发生。  
   
  经过调试和监测,我们发现用户在访问a.x.com的时候cookie中会获得两个session_id,导致用户无法正常识别。  
   
   
  这个问题曾经还询问微软技术人员,但没有获得圆满答案

__________________________________________________________________
思归的回答是:
听上去很怪,即使是同一机器,Session应该跟Application有关的,不同Application应该有自己的Session,你对Session   Cookie的Domain或Path做了什么手脚了么?”

思归的回答是基于Session 的模式是InProc的
但是如果Session的模式是StateServer,这两个域名都连到同一台StateServer上,是不是Session真的就可以共享了?当然。各子站点在IIS里的ID都是一样的

有没有人做过测试,如果可以的话,asp.net下多子站点共享Session就可以实现了


posted @ 2007-06-01 15:32 coollzh 阅读(692) | 评论 (3)编辑

上海招聘若干.net开发人员

.net软件工程师 3人
任职要求:
1、大学本科以上学历,计算机及相关专业毕业,2年以上工作经验
2、精通Windows平台下的Web技术开发,具有丰富的项目经验,熟悉ASP.NET,Javascript,熟悉ADO.NET编程模型,熟练掌握NET Framework, C#,熟练使用Visual Studio.NET开发工具
3、具有良好的代码编写风格,熟悉Web程序代码安全
4、善于与他人沟通、合作,具有团队精神,良好的自学能力
5、熟悉数据库设计,了解数据库性能调优者优先
6、熟悉企业设计模式,具有大型企业级系统设计、开发、调优经验者优先
7、具有一定的项目管理经验者优先
8、能熟练阅读英文技术文献

有意请发邮件到 liangzhonghua@snda.com

posted @ 2007-04-16 15:10 coollzh 阅读(523) | 评论 (2)编辑

不要使用Microsoft Project的理由


Microsoft Project是为了建造办公大楼设计的,而不是为了开发软件而设计的。
 
Microsoft Project 的毛病在于,它认定你想花费大量的时间去关注依赖性,以至于完全不值得而正式个总他们而做出努力。
 
Microsoft Project的另一个问题是,他认定你以后会希望能够通过按一个小按钮来“重新调整”进度表。这意味着他要重新安排任务并定重新交给不同的人去完成。对于软件而言,这没什么意义。程序员是不可互换的,如果试图让UI程序员去解决类似Winsock的问题,他会在原地踏步并浪费一周时间才能达到Winsock程序设计的速度。
 
 
                                              --- 摘自《Joel on Software》

--- 本文不能完全代表本人观点,但是从敏捷开发的角度来说,用Microsoft Excel的效率和方便性胜过Project

posted @ 2006-01-03 10:32 coollzh 阅读(1816) | 评论 (4)编辑

Using distributed transactions in .Net 1.x without deriving from ServicedComponent

Using distributed transactions in .Net 1.x without deriving from ServicedComponent

The most used feature of System.EnterpriseServices or COM+ is the distributed transaction support. And the automatic transaction programming model in ES using attributes ([Transaction] and [AutoComplete]) is great and nice but (it is always a but!)... you need to inherit from ServicedComponent and the Transaction attribute is only available at class level, and you need to register your component in the COM+ repository and the list can continue.

 

If doing this seems overkill to you, because all you need is a distributed transaction to protect your code/actions and you don't care of any of the others ES features (which are great ones nevertheless) then there is a solution for you: System.EnterpriseServices.ServiceDomain. Here is some sample code:

 

using System;

using System.EnterpriseServices;

 

namespace SDSample

{

   class Class1

   {

      [MTAThread]      

      static void Main(string[] args)

      {

         ServiceConfig config = new ServiceConfig();

         config.Transaction = TransactionOption.Required;

         ServiceDomain.Enter(config);

         try

         {

            MyTxCode();

         }

         catch(Exception e)

         {

            // we got an exception

            Console.WriteLine(e.Message);

            // so, we should abort the transaction

            ContextUtil.SetAbort();

         }

         finally

         {

            ServiceDomain.Leave();

         }

      }

 

      // The code that I want to be transactional

      static void MyTxCode()

      {

         Console.WriteLine(ContextUtil.TransactionId);

                 

         // Open connection to database 1

         // Execute update in database 1

 

         // Open connection to database 2

         // Execute update in database 2

      }

   }

}

 

Of course, you can go further and create a helper class, let’s call it ESTransactionScope (similar to System.Transactions.TransactionScope that will arrive in Whidbey) that will be very easy to use:

 

using System;

using System.EnterpriseServices;

 

namespace SDSample2

{

   class Class1

   {

      [MTAThread]      

      static void Main(string[] args)

      {

         using( ESTransactionScope ts = new ESTransactionScope())

         {

           MyTxCode();

 

           // Everything went well, no exception thrown

           // so let’s vote for Commit

           ts.Complete();

         }

      }

 

      static void MyTxCode()

      {

         Console.WriteLine(ContextUtil.TransactionId);

                 

         // Open connection to database 1

         // Execute update in database 1

 

         // Open connection to database 2

         // Execute update in database 2             

      }

   }

 

   // Used to create transactional code blocks

   class ESTransactionScope : IDisposable

   {

      // Dispose must be called to exit the transactional block

      public void Dispose()

      {                

         if(!this.Consistent)

         {

            ContextUtil.SetAbort();

         }

         ServiceDomain.Leave();

      }

 

      // by calling this method, you mark the scope as being consistent

      // and ready to for commit

      // if the method is never called, upon dispose, the scope will abort the transaction 

      public void Complete()

      {

         this.Consistent = true;

      }   

 

      public ESTransactionScope()

      {                

         EnterTxContext(TransactionOption.Required);

      }

 

      public ESTransactionScope(TransactionOption txOption)

      {

         EnterTxContext(txOption);

      }

 

      private void EnterTxContext(TransactionOption txOption)

      {

         ServiceConfig config = new ServiceConfig();

         config.Transaction = txOption;

         ServiceDomain.Enter(config);          

      }

 

      // By default, the scope is inconsistent;

      // To Commit the transaction on exit, the Consistent flag

      // must be set to true before Dispose is called

      private bool Consistent = false;

   }

}

 

System.EnterpriseServices.ServiceDomain is available only on XP SP2 (or higher) and Windows Server 2003 and only in .Net 1.1.

 

If you need your app to work with .Net 1.0 or on Windows 2000 or XP pre-SP2, you can use the trick that Don Box posted at http://www.gotdotnet.com/team/dbox/default.aspx?key=2004-07-12T08:40:44Z  It uses exactly one transactional ServicedComponent based class and a DoCallback method to which you pass the delegate to your MyTxCode function that needs to execute in a transaction.

 

posted @ 2005-03-09 23:43 coollzh 阅读(1143) | 评论 (0)编辑

.NET下的开发者们正在继承计算机早期时代伟大的黑客精神

以下来自《程序员》2005第一期
    “纵观整个.NET阵营,给人留下最深刻印象的,也许不是它在技术上的具体成就,而是它的活力本身。身为C++元老的Stan Lippman说过这样一段话:'......只有少数几个人在努力进行技术创新,努力向人们提供更具有创新性的计算环境,让人们更加自由自在。微软就是这少数人中的一个。我在微软工作,那气氛让我似乎回到了十多年前。', 这段话并非有没有道理。.NET 2.0的探索,C++/CLI的创新,Delphhi for .NET的勇敢尝试,Avalon/Indigo的宏伟蓝图,似乎都能令人产生这样的一个印象:
.NET下的开发者们正在继承计算机早期时代伟大的黑客精神。 "

                                                                                                                                                                                        -- 文 / 左轻候
这段从某个角度可以做为.NET技术在2004总结的,2005的展望。。。

posted @ 2005-01-08 18:13 coollzh 阅读(1210) | 评论 (5)编辑

上海著名网络公司招聘高级软件工程师

.net高级软件工程师  2人
岗位职责:
负责项目的总体架构设计、分层详细设计,代码编写;负责项目的管理,对于软件工程师提供技术指导。
任职要求:
1、大学本科及以上学历,计算机及相关专业,三年以上工作经验
2、精通面向对象分析设计,具有大型企业级系统设计、开发、调优经验
3、精通.NET Framework, C#,熟练使用Visual Studio.NET开发工具,精通ASP.NET编程模型,精通ADO.NET编程模型
4、熟悉SQL Server或Oracle大型数据库系统,熟悉SQL存储过程的编写
5、具有完整的应用开发周期经验,熟悉设计、编码、测试、实施等各阶段工作,有丰富的项目管理经验
6、具有适当领导和组织才能,能够带领技术团队创造核心技术,引导团队的技术发展
7、具有熟练的英语听说读写能力

.net软件工程师 4人
任职要求:
1、大学本科以上学历,计算机及相关专业毕业,2年以上工作经验
2、精通Windows平台下的Web技术开发,具有丰富的项目经验,熟悉ASP.NET,Javascript,熟悉ADO.NET编程模型,熟练掌握NET Framework, C#,熟练使用Visual Studio.NET开发工具
3、具有良好的代码编写风格,熟悉Web程序代码安全
4、善于与他人沟通、合作,具有团队精神,良好的自学能力
5、熟悉数据库设计,了解数据库性能调优者优先
6、熟悉企业设计模式,具有大型企业级系统设计、开发、调优经验者优先
7、具有一定的项目管理经验者优先
8、能熟练阅读英文技术文献

C/C++软件工程师 1人
任职要求:
1、 大学本科以上学历,计算机及相关专业毕业,2年以上工作经验
2、 熟练掌握C/C++,熟练使用VC++等开发工具,精通Windows编程
3、 善于与他人沟通、合作,具有团队精神,良好的自学能力
4、 熟悉计费相关业务者优先
5、 熟悉.net技术架构者优先
6、 具有一定的项目管理经验者优先

7、能熟练阅读英文技术文献

SQL Server数据库管理员 1人
任职要求:
1、 大学本科以上学历,计算机及相关专业毕业,2年以上工作经验
2、 精通SQL Server2000,有1年或以上大型数据库维护管理经验
3、 熟悉数据库设计、性能调优和查错,精通存储过程编写
4、 有数据库相关应用程序开发经验者优先
5、能熟练阅读英文技术文献
熟悉asp.net或者.net者优先

posted @ 2005-01-06 20:13 coollzh 阅读(3666) | 评论 (17)编辑

即将过的2004

看到别人在总结即将过的2004,感觉非常惭愧,2004我都做了什么?

1.年初辞职,再次投入到.net的怀抱,决定不再三心二意
2.为了工作方便,搬到浦东一个偏僻的地方
3.在博客园开始写blog,感谢dudu,认识了一批朋友
4.今年技术上没有太大长进,惭愧,关注软件工程和项目管理
5. 因电子商务的需要,对网络加密,签名,证书有了一个深刻的认识,算是一个小小收获
6.第一次实施一个企业级网络负载均衡的电子商务系统
7.2年多没回老家,惭愧的很。。。。

每天碌碌,不知道在忙些什么......,惭愧得很呀。

posted @ 2004-12-20 12:37 coollzh 阅读(1134) | 评论 (6)编辑