Caution with disposing session.Transaction

In nhibernate 1.2.0 beta versions a similar code path works well without problem

ISession session = SessionHelper.GetSession();
session.BeginTransaction();
//do something
session.Transaction.Rollback();
session.Transaction.Dispose();
session.BeginTransaction();
//Do something
session.Transaction.Rollback();

But above code is not legal since a disposed transaction cannot be used anymore. Until version 1.2.0 beta 3 the Dispose method of the Transaction Object did not mark transaction as disposed, so it can be reused. Starting from NHibernate 1.2.0 GA the above code will throw a NullReferenceException. The solution is not to dispose Session.Transaction if you plan to restart a new transaction again.

Alk.

When sql compare creates anger

I enabled session store in database in a test server, the application is ok and after some test I proceed to store the session in database even in the production site. I create a new session state database into the production server and I copy structure doing a synchronization with session state database of the test server. The application stops to work, whenever I ask for a page the server returns a blank page and nothing is showed on the browser. After investigating log files I checked that asp.net still search state database with the name of the database in temp server. The problem originates from the fact that all the stored procedures that are in session state server use three part name. Golden rule is that asp.net session store database and authentication database should be created using aspnet_regsql.exe and not with a synchronization procedure from an existing database.

Alk.

The advantage of Word2007 blogging

Some of my friends told me that word 2007 is not the right tool to blog, I really must admit that some aspects are not so good, such as code formatting. But one of my favorite option is the ability to include office 2007 graph and images. Really amazing.

Just one click and I can really change the aspect of everything in the graph, for technical blogs this is really a good thing.

And I’m only changing the predefined styles of graphs, I’m actually just copy and paste and click a couple of buttons

Really amazing.

Alk.

How to format code blogging with word 2007

Today I was trying to blog with word 2007 and I found some difficulties with code. First of all I suggest you to install a Visual Studio Plugin that enable a “copy source as HTML” option that permits you to copy the code as HTML and this makes the life easier. The problem is that simply pasting the code into word will produce some strange results

    3 ”’ <summary>

    4 ”’ classe base per la definizione di proprietà comuni

    5 ”’ </summary>

    6 ”’ <remarks></remarks>

    7 <TypeConverter(GetType(ExpandableObjectConverter))> _

    8 Public
Class BaseDefinition

    9 
   17    <NotifyParentProperty(True)> _

   18   Public
Property CssClass() As
String

   19      Get

   20         Return mCssClass

   21      End
Get

   22      Set(ByVal value As
String)

   23          mCssClass = value

   24      End
Set

   25   End
Property

The code above has two problems, the first is that spacing between lines is too big, and then in HTML there are some <BR/> tags that completely makes code unreadable. After some investigation I found that it is possible to force word to generate better HTML making two substitutions. The first is substitute ^p character with ^l, the ^l character does not generate <P> tags but a simple <BR/> and this makes lines spacing smaller.

    3 ”’ <summary>
    4 ”’ classe base per la definizione di proprietà comuni
    5 ”’ </summary>
    6 ”’ <remarks></remarks>
    7 <TypeConverter(GetType(ExpandableObjectConverter))> _
    8 Public
Class BaseDefinition
    9 
   17    <NotifyParentProperty(True)> _
   18   Public
Property CssClass() As
String
   19      Get
   20         Return mCssClass
   21      End
Get
   22      Set(ByVal value As
String)
   23          mCssClass = value
   24      End
Set
   25   End
Property

Now you need to substitute also the space character with ^s (unifying space) this (do not ask me why) makes word not to generate the weird <BR /> tag.

    3 ”’ <summary>
    4 ”’ classe base per la definizione di proprietà comuni
    5 ”’ </summary>
    6 ”’ <remarks></remarks>
    7 <TypeConverter(GetType(ExpandableObjectConverter))> _
    8 Public Class BaseDefinition
    9 
   10    ”’ <summary>
   11    ”’ è necessario questo attributo per far siche il designer si accorga del 
   12    ”’ cambiamento della proprietà e fare in modo che venga serializzata
   13    ”’ </summary>
   14    ”’ <value></value>
   15    ”’ <returns></returns>
   16    ”’ <remarks></remarks>
   17    <NotifyParentProperty(True)> _
   18    Public Property CssClass() As String
   19       Get
   20          Return mCssClass
   21       End Get
   22       Set(ByVal value As String)
   23          mCssClass = value
   24       End Set
   25    End Property

Now the code looks really better but a last problem remains, the code with line numbering cannot be copied and pasted from the blog into visual studio. Even if you remove the numbering, word substitutes all occurrence of double ‘ chars with ” character, so the resulting VB.Code is not valid. At this time I really do not understand how to tell word to leave the ‘ code unchanged.

Alk.