RSS 2.0 Feed
2005-09 Entries
摘要:自定义Page集类可以带来很多好处,如统一处理Cookie,安全性,参数等。不过在继承System.Web.UI.Page实现自己的BasePage时需要注意一点:谨慎的处理构造器(Constructor)中涉及的代码。如果疏忽了这点,可能会导致你在Vs.Net中无法所见即所得的编辑Aspx页面,打开页面时将抛出以下错误,你只能看到Html代码界面。   导致这一错误的最大可能的原因就是你在BasePage的构造器里使用了HttpContext的内容。而Vs.Net在显示所见即所得的Aspx页面时会初始化你的BasePage类,这时候如果使用了Request,Response等类时,由于HttpContext并不存在(因为不是在IIS环境中,没有PageFactory传递过来Http上下文),所以在初始化类时就抛出了NullReferenceException。 为了解决此问题,最好将访问HttpContext的代码放到OnInit中,如下:   protected override void OnInit(EventArgs e)  {      base.OnInit (e);      HttpCookieCollection cookies = HttpContext.Current.Request.Cookies;  } 这一override方法指示在PageHandler阶段被首先调用,而Vs.Net显示页面时并不会调用此方法,所以不会产生NullReferenceException。 如果你确实需要在构造器中进行某些Field的初始化等工作,这时又需要使用Request等内容,那么就需要先判断HttpContext是否为Null。如下:  public class BasePage : Page {    public BasePage()    {         if(HttpContext.Current != null)         {             HttpCookieCollection cookies = HttpContext.Current.Request.Cookies;         }     }  }  ...[阅读全文]

posted @ | Feedback (4) | Filed Under [ DOTNET ]

摘要:   有一个Web项目,Web.Config中requestEncoding和responseEncoding都是gb2312,而从数据库中取出的简介数据可能是中文和韩、日文混合的内容,这时候如果直接输出到页面上,其页面会出现乱码,其中的韩文内容无法正确显示。当然如果项目的编码都使用Utf-8的话将没有这个问题,但这个项目是一个老项目,为了尽量不要影响已有的程序,所以无法将编码改为Utf-8,只能在本页面上动脑筋。    经过研究,发现这个问题可以通过Html实体的方法解决。 对于Html实体请参考: Character entity references in HTML 4 HTML Document Representation 测试代码: Byte[] bComments = Encoding.UTF8.GetBytes("一ンブル????中文");   char[] cComments = Encoding.UTF8.GetChars(bComments);      StringBuilder charBuilder = new StringBuilder();      foreach(char c in cComments)   {    if(c > '\u0800')    {     charBuilder.Append("&#");     charBuilder.Append((int)c);    }     else    {     charBuilder.Append(c);    }   }   Response.Write(charBuilder.ToString()); 这段代码的作用是将所有的中文、韩文、日文字符通过硬编码输出成为html实体。而Html实体是不受ResponseEncoding和页面编码集影响的。 说明: \u0800 以上的为中、韩、日字符。 中文的范围:\u4e00 - \u9fa5,日文在\u0800 - \u4e00,韩文为\u9fa5以上。 这个方法仅仅是为了解决小范围问题,如果各位有更好的办法请指教。...[阅读全文]

posted @ | Feedback (6) | Filed Under [ DOTNET ]

摘要:.Net Beta2中消失的ObjectSpaces正式成为了过去,而DLinq从ObjectSpaces的灰烬出生了。DLinq是在分析了ObjectSpaces的反馈之后重新设计的ORM Solutions。 DLinq:.NET Language Integrated Query for Relational Data,DLinq和XLinq(for Xml)共同组成了.net 3.0的关键部分——LinQ(:.NET Language Integrated Query ),即语言级集成查询能力。 DLinq是在分析了ObjectSpaces的反馈之后重新设计的ORM Solutions,作为更先进的查询数据库得到对象并且持久化对象的方式,DLinq将不再使用ObjectSpaces的mapping文件方式,而是使用了attribute 来进行mapping的定义。当然现在也有一些采用attribute 方式的Solutions,如XPO:http://www.devexpress.com/Products/NET/XPO/。不过DLinq的第一大特点将是任何ORM方案难以匹敌的,那就是语言级别的查询集成。这是目前ORM阵营(无论是.net、java或者其他)中都难以做到的。毕竟Linq是Anders Hejlsberg在主导(猜测,因为Demo和Channel9 video都是他),而这也是.net 3.0的主要提升啊。 此文依据 Dinesh Kulkarni(Program Manager Visual C#,working on C# 3.0) http://blogs.msdn.com/dinesh.kulkarni/archive/2005/09/13/465089.aspx...[阅读全文]

posted @ | Feedback (6) | Filed Under [ DOTNET Database ]

摘要:1.实体类: [Table(Name="Customers")]public class Customer{public string CustomerID; public string City;} 使用Attribute定义ORM的关系,这样的好处是无需产生和维护大量映射文件。 [Table(Name="Customers")]public class Customer{[Column(Id=true)]public string CustomerID; [Column]public string City;} 通过Attribute自定义列,定义主键(PK)……    2.数据上下文          // DataContext takes a connection string DataContext db = new  DataContext("c:\\northwind\\northwnd.mdf"); // Get a typed table to run queriesTable<Customer> Customers = db.GetTable<Customer>(); // Query for customers from Londonvar q =from c in Customerswhere c.City == "London"select c; foreach (var cust in q)Console.WriteLine("id = {0}, City = {1}", cust.CustomerID, cust.City);             这个比较猛,直接写查询,from in where select都成了关键字。直接在对象上进行查询不再考虑数据库了。并且范型化了。             看到var,众位做过asp的兄弟是不是很亲切阿,这是动态语言(解释语言)的特性,变量定义时不定义类型,不过这里应该不是动态语言,应该是根据上下文在编译时确定类型的。   Northwind db = new Northwind("c:\\northwind\\northwnd.mdf"); var q =from c in db.Customerswhere c.City == "London"select c;          foreach (var cust in q)         Console.WriteLine("id = {0}, City = {1}",cust.CustomerID, cust.City);          简单写法。   public partial class Northwind : DataContext{   public Table<Customer> Customers;   public Table<Order> Orders;    public Northwind(string connection): base(connection) {}} 继承一下,表成了成员了。  3.关系定义   [Table(Name="Customers")]public class......[阅读全文]

posted @ | Feedback (17) | Filed Under [ DOTNET Database ]

摘要:Voip IM越来越精彩了 http://investor.ebay.com/event.cfm...[阅读全文]

posted @ | Feedback (4) | Filed Under [ VOIP&Telecom ]

摘要: Demo版包只含单人对战模式,只有2个种族,地图也只有2幅。 http://www.ageofempires3.com/ http://download.microsoft.com/download/d/7/3/d7348fe3-d498-4e13-96c6-3da92e8f0c62/aoe3trial.exe System Requirements: XP1.4G256M RAM64M Video Card with HW T&L370M HDDirectX 9C  ...[阅读全文]

posted @ | Feedback (7) | Filed Under [ 广告 & 闲话 ]