Posts

Posts uit juli, 2007 weergeven

Aan de slag met NHibernate in 5 stappen

Wil je aan de slag met Object Relational Mapping?
Ik heb gekozen voor NHibernate, de .NET versie van het populaire Hibernate (J2EE).
Dankzij een paar websites had ik vrij snel een draaiende NHibernate implementatie. Ik volgde de volgende stappen:

Download de NHibernate distribute (ik gebruikte versie 1.2.0.GA);Download het basic example uit het project NHibernate Best Practices with ASP.NET, 1.2nd Ed. gehost op CodeProject;Download de Northwind example database bij Microsoft;Maak een App_Data folder in het example project aan en kopieer de mdf en ldf naar deze map;Pas de connection-string aan in web.config als volgt, vrij overgenomen uit het project Eucalypto - ASP.NET CMS library using NHibernate gehost op CodeProject: <property name="connection.connection_string">data source=.\SQLEXPRESS;Integrated security=SSPI;AttachDBFilename=|datadirectory|northwnd.mdf;User instance=true</property>
Draaien maar!

RunBot leert zelf nieuwe loopjes

Vandaag verschenen op nrc.nl:
De tweebenige robot ‘RunBot’, verbonden aan de universiteit van Göttingen, leert zelf zijn manier van lopen aan te passen aan het terrein waarop hij loopt. Dat is knap voor robots.
Lees meer

Kijk zelf naar het filmpje:

Mobiele telefoon als 'universeel' woordenboek

Verschenen op Emerce.nl, dinsdag 17 juli:
Nederlanders die de Olympische Spelen bezoeken, kunnen zich volgend jaar moeiteloos in het Chinees verstaanbaar maken via hun mobiel telefoon. Het Nederlandse bedrijf Xs2TheWorld publiceerde reeds een handzame Chinees 'sprekende reisgids' en lanceerde vorige week een aantal Europese versies.
Lees meer

Ben heel benieuwd waar deze vorm van toepassingen zich naartoe gaat ontwikkelen. Briljant dat je je gewoon in de moerstaal verstaanbaar kan maken. Zoals in één van de commentaren bij het artikel is te lezen: Probleem blijft het interpreteren van het antwoord. Je zou de Chinees in kwestie eenzelfde toepassing voor hun taalgebied naar het Engels (liefst Nederlands natuurlijk ;-)) moeten voorleggen.

Ik maak zelf veelvuldig gebruik van bijv. Babelfish van Altavista voor het vertalen van teksten van taal x naar taal y. Zo zijn er verder websites die middels spraaksynthese teksten kunnen vertalen naar spraak. In principe hebben we dus alle gereedsc…

.NET User Controls en Internet Explorer: COM visibility

Het heeft me uren van mijn leven gekost, ik snapte maar niet waarom ik mijn eigen user control niet met JScript kon laten communiceren.

Blijkt dat Visual Studio 2005 standaard de COM visibility van assemblies op false heeft staan in AssemblyInfo.cs:

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]


Zet deze instelling dus snel op true!

Code Access Security zonder signed assemblies

Blijkt dat je ook gewoon codegroups kan toevoegen die van toepassing zijn op url's. Er is dus geen sprake van een verplichting dat online assemblies moeten zijn ondertekend. Voer bijvoorbeeld het volgende commando uit:

caspol -ag All_Code -url http://localhost/controls/upload.dll FullTrust -n UploadCodegroup -d "Toegevoegd middels caspol"

Hiermee geef je te kennen dat de bewuste assembly lid moet worden van de FullTrust permissionset.

.NET User Control en JScript in Internet Explorer

Ben weer verder gegaan met het client-side invoegen van een usercontrol in IE.
Als uitgangspunt ben ik de code aan het bestuderen afkomstig uit MSDN Magazine van januari 2002, artikel DHTML and .NET: Host Secure, Lightweight Client-Side Controls in Microsoft Internet Explorer van de hand van Jay Allen.

Jay heeft een stuk html opgesteld met daarin een aantal JScript eventhandlers:

<script event="BeginUpload" for="upload1">
window.status = "uploading files...please wait";
</script>

<script event="UploadComplete" for="upload1">
window.alert("Upload complete");
</script>

Er komt nogal wat bij kijken om deze eventhandlers te koppelen aan code in je usercontrol. Een hoop COM interface gedoe.

De events zijn in c# netjes gedefinieerd:
public event UploadCompleteHandler UploadComplete;
public event BeginUploadHandler BeginUpload;

De signatuur van de usercontrol ziet er al wat minder transparant uit:

[ClassInterface(ClassInte…

Microsoft .NET 2.0 Code Access Security (3)

OK, zoals je in de twee voorgaande blogs kan nalezen: ik wilde in mijn ASP.NET website een client-side .NET user control toegang geven tot het lokale bestandssysteem. Voor het gemak wilde ik deze assembly dus Full Trust geven. Ik kon daar geen gebruikersvriendelijke manier voor vinden.

De manieren die ik heb op kunnen maken uit de geraadpleegde bronnen om een assembly Full Trust te geven:
Via de .NET Framework 2.0 Configuration MMC snap-in (mscorcfg.msc);Via het uitvoeren van een specifieke caspol.exe opdrachtregel;Via het uitvoeren van een mooi voorbereid Windows Installer Package .MSI bestand;Via het direct toevoegen van je permission rule aan het configuratiebestand security.config.Ik heb ze allevier uitgeprobeerd. 1. MMC snap-in ---De MMC snap-in werkt mbv wizards. Dat is wel zo prettig. Twee wizards zijn hier relevant:Increase Assembly Trust; Create Deployment Package.Ad 1. Geef hier rechtstreeks de url op van de assembly die je Full Trust wilt toekennen. Blijkt dat je assembly wel…

Microsoft .NET 2.0 Code Access Security (2)

Spannend wordt het bijvoorbeeld als de user control het lokale bestandssysteem moet kunnen raadplegen.

Nou heb ik een beetje gekeken naar het Code Access Security model, en het is verdraaid gedetailleerd. Je kunt in principe op assembly-niveau aangeven wat deze assembly mag.

Een paar mooie artikelen die mij op weg hebben geholpen:
DHTML and .NET: Host Secure, Lightweight Client-Side Controls in Microsoft Internet Explorer; verschenen in MSDN Magazine van januari 2002, auteur Jay Allen;Return of the Rich Client: Code Access Security and Distribution Features in .NET Enhance Client-Side Apps; verschenen in MSDN Magazine van juni 2002, auteur Jason Clark;HOW TO: Use the IEHost Log to Debug .NET Object Hosting in Internet Explorer; Knowledge Base artikel 313892, verschenen in january 2004;Are You in the Know? Find Out What's New with Code Access Security in the .NET Framework 2.0; verschen in MSDN Magazine van november 2005, auteur Mike Downen;How to run a user control assembly that is …

Microsoft .NET 2.0 Code Access Security

Ben de afgelopen dagen bezig met het doorgronden van het Code Access Security bouwwerk dat we van Microsoft cadeau hebben gekregen bij de intrede van .NET 2.0.

Wat wil ik namelijk bereiken? Ik wil mijn ASP.NET 2.0 applicatie verrijken met een client-side .NET 2.0 user control, zoals we vroeger gewend waren ActiveX componenten op onze websites te gebruiken.

Misschien word ik zo langzamerhand overigens alweer ingehaald door de tijd, de methode die ik nu probeer te begrijpen stamt al uit 2002. Inmiddels is Microsoft hard bezig met het nieuwe rich internet client platform Silverlight.

Maar goed, altijd al interesse gehad in Code Access Security, dus waarom neem ik mijn huidige doel niet gewoon als case-studie?

Het blijkt enorm eenvoudig om een user control op een dergelijke website te krijgen:
Je bouwt een assembly met daarin een class die overerft van één van de classes die afstammen van de class System.Forms.Control. De assembly zet je op een ASP.NET 2.0 webserver. Je bouwt verder een html-f…