<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Thern Around</title>
	<atom:link href="http://blog.thern.nu/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thern.nu</link>
	<description></description>
	<lastBuildDate>Thu, 14 Jul 2011 15:59:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Använda NHibernate under Medium Trust</title>
		<link>http://blog.thern.nu/2009/04/23/anvanda-nhibernate-under-medium-trust/</link>
		<comments>http://blog.thern.nu/2009/04/23/anvanda-nhibernate-under-medium-trust/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 06:50:37 +0000</pubDate>
		<dc:creator>Martin Thern</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[Medium Trust]]></category>

		<guid isPermaLink="false">http://blog.thern.nu/?p=71</guid>
		<description><![CDATA[Jag kan tänka mig att jag inte är den enda som suttit med något litet hobbyprojekt i ASP.NET och kört med NHibernate som OR-mapper. Allt är guld och glada skogar tills man bestämmer sig för att köra applikationen på ett &#8230; <a href="http://blog.thern.nu/2009/04/23/anvanda-nhibernate-under-medium-trust/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Jag kan tänka mig att jag inte är den enda som suttit med något litet hobbyprojekt i ASP.NET och kört med NHibernate som OR-mapper. Allt är guld och glada skogar tills man bestämmer sig för att köra applikationen på ett webbhotell som Loopia, Binero osv. Alla dessa webhotell brukar köra medium trust vilket innebär att man bl a inte har möjlighet att använda sig av Reflection, något NHibernate annars använder sig av (gällande Reflection så är Binero ett undantag, då de säger att dem tillåter Reflection, har dock inte testat detta hos dem). Det finns en rad olika inställningar man behöver  göra för att lyckas få igång NHibernate i Medium Trust.</p>
<ol>
<li>Sätta attributet AllowPartiallyTrustedCallers på alla refererade assemblies</li>
<li>Stänga av NHibernates Reflection Optimizer</li>
<li>Stänga av lazy loading</li>
</ol>
<p>Attributet som måste sättas på alla assemblies görs i AssemblyInfo.cs för varje refererat projekt:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&#91;</span>assembly<span style="color: #008000;">:</span> AllowPartiallyTrustedCallers<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span></pre></div></div>

<p>Reflection Optimizer stänger man enklast av i web.config. Det innebär att config-blocket för NHibernate kan se ut enligt följande:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;hibernate-configuration</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;urn:nhibernate-configuration-2.2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reflection-optimizer</span> <span style="color: #000066;">use</span>=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;session-factory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;connection.provider&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>NHibernate.Connection.DriverConnectionProvider<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/property<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;dialect&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>NHibernate.Dialect.MsSql2005Dialect<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/property<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;connection.driver_class&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>NHibernate.Driver.SqlClientDriver<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/property<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;connection.connection_string_name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>MyConnectionString<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/property<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;connection.release_mode&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>on_close<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/property<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;show_sql&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/property<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mapping</span> <span style="color: #000066;">assembly</span>=<span style="color: #ff0000;">&quot;MyBusinessObjects&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/session-factory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/hibernate-configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Lazy Loading stänger man av genom att definera det i varje mappnings-fil:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;hibernate-mapping</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;urn:nhibernate-mapping-2.2&quot;</span> <span style="color: #000066;">default-lazy</span>=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;class</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;MyBusinessObjects.MyObject, MyBusinessObjects &quot;</span> <span style="color: #000066;">table</span>=<span style="color: #ff0000;">&quot;MyObject&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Id&quot;</span> <span style="color: #000066;">column</span>=<span style="color: #ff0000;">&quot;id&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;System.Int32&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;generator</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;native&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Text&quot;</span> <span style="color: #000066;">column</span>=<span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;System.String&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/hibernate-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Detta är iallafall ett första steg att få igång NHibernate under Medium Trust. Det återstår dock en del jobb för att få det riktigt perfekt. Reflection är som sagt avstängt, vilket innebär att man inte kan använda lazy loading. Detta kan ha en negativ inverkan på prestandan. I NHibernate finns en ProxyFactory-klass som genererar proxyklasser som är nödvändiga för att kunna använda lazy loading. Lyckligtvis kan man i NHibernate konfigurera en egen ProxyFactory. Med verktyget <a href="http://nhforge.org/blogs/nhibernate/archive/2008/09/22/introducing-nhibernate-proxygenerators.aspx" target="_blank">NHibernate ProxyGenerators</a> kan man generera en ProxyFactory och proxyklasser utifrån sina mappade klasser.</p>
<p>Detta har fungerat för mig på mitt Windows-konto hos Loopia där NHibernate kör mot en MySQL-databas. Jag har använt en liknande arkitektur som i artikeln <a href="http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx" target="_blank">NHibernate Best Practices with ASP.NET, 1.2nd Ed.</a> för NHibernate sessionshantering osv.</p>
<p>Målet med min enkla demoapplikation är nu i nästa steg att få igång lazy loading med egna proxyklasser och i nästa steg få igång Fluent NHibernate på samma sätt.</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.thern.nu/2009/04/23/anvanda-nhibernate-under-medium-trust/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Guide: Sidnumrering i Word 2007</title>
		<link>http://blog.thern.nu/2007/12/14/sidnumrering-i-word-2007/</link>
		<comments>http://blog.thern.nu/2007/12/14/sidnumrering-i-word-2007/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 00:34:15 +0000</pubDate>
		<dc:creator>Martin Thern</dc:creator>
				<category><![CDATA[Office 2007]]></category>
		<category><![CDATA[Word 2007]]></category>

		<guid isPermaLink="false">http://www.thern.nu/?p=45</guid>
		<description><![CDATA[Jag kan tänka mig att jag inte är ensam om problemet vid uppsatsskrivning, där man vill att sidnumreringen ska börja på t ex sida 4, då man har försättsblad, abstrakt, innehållsförteckning osv, som ska vara onumrerade. Jag har varit ganska &#8230; <a href="http://blog.thern.nu/2007/12/14/sidnumrering-i-word-2007/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Jag kan tänka mig att jag inte är ensam om problemet vid uppsatsskrivning, där man vill att sidnumreringen ska börja på t ex sida 4, då man har försättsblad, abstrakt, innehållsförteckning osv, som ska vara onumrerade. Jag har varit ganska frustrerad då jag bara hittat hur man gör detta i Word 2003, men lyckades äntligen hitta funktionerna i Word 2007.</p>
<p>Det hela är ganska simpelt. Säg att du först skapar de sidorna du vill onumrerade. Se till att markören är i slutet av de sidorna du vill ha onumrerade, och klicka där efter på fliken <strong>Sidlayout</strong>. Under <strong>Utskriftsformat</strong> finns en knapp som heter <strong>Brytningar</strong>. Klicka på den och välj <strong>Nästa sida</strong> under <strong>Avsnittsbrytningar</strong>. Då har man skapat ett nytt avsnitt av de följande sidorna, alltså de som ska börja numreras på 1. Nästa steg är att skapa sidfot på någon av de sidorna som ska ha numrering. När redigeringen för sidfoten är aktiv, se till att fliken <strong>Design</strong> för sidhuvud och sidfot är aktiv. Där under <strong>Navigering</strong>, finns en knapp som heter<strong> Länka till föregående</strong>. Denna knapp ska inte vara intryckt, för att sidfoten i detta avsnitt ska vara oberoende av det som finns i föregående avsnitt. Efter att ha kontrollerat så att den inte är intryckt, är det bara att infoga sidnummer i sidfoten.</p>
<p>Om sidhuvudet ska skilja sig från det föregående avsnittet, behöver man troligtvis även där kontrollera samma sak med länkningen till föregående.</p>
<p>Hoppas min förklaring går att förstå. Något jag däremot inte förstår, är logiken i Office uppbyggnad!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thern.nu/2007/12/14/sidnumrering-i-word-2007/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

