New website

August 8, 2008

I’ve finally updated my website today.

For now it is only in Dutch. Sorry for all you English speaking folk. I plan to get a multilingual version up in the next two weeks or so.

I got the design from http://www.freecsstemplates.org/. I could have spent a few euro’s on a custom design but I was happy with it so…

However, I did start from the downloaded HTML and converted it to use ASP.NET master pages and ASP.NET controls.

The content is not yet finished either but at the moment I’m very busy getting my new app out for Communication Management. I’ll write a seperate post on that shortly.


New Product: Communications Logging

August 8, 2008

A customer of mine log all incoming and outgoing comunication with his external relations in an excell spreadsheet. I find this a very good  thing to do. He confirms it has helped him numerous times in the past where his customer or vendor gets into a i-did-say-this argument. He can fall back on the communication log an say you said this and that on that day an such.

The spreadsheet did however pose some problems, keeping him from getting the efficiency he needed.

These were his problems:

  • When multiple users accessed the sheet, they had to be very carefull not to overwrite each others entries.
  • The master data for contacts is in their Microsoft Dynamics NAV system. It is a shame he has the same data in multiple places.
  • He cannot run a report from the contact card in NAV to see a log of the communications
  • Some users of the Communications Log do not require access to Navision. They don’t even want access. Fact is that NAV licence pricing is user based.

So, he came to me to see if I could address these problems. Of course I could. The first idea we had was to just write some custom solution in NAV. Then I started seeing an opportunity. Surely other businesses could benefit from such software.

Because we wanted to enable non NAV users to use the software we were pushed towards an external app anyway. So, I decided to write an app in ASP.NET. In this first release, I’m focussing on NAV as a the backend. The software is designed pluggable however. This means that I can write a module to access systems other than NAV in a jiffy.

As a marketing stint, I said to the customer that for avery lead he can generate that leads to a sale, he will get free services from me. I tend on pursuing this further for all paying customers.

The software is priced at 500€ ex vat. For every buying lead, I will give back 125€ ex vat in services on the software (such as customisation or maintenance or upgrades).

If anyone is interested in this, please contact me. I have other reward programmes in mind for lead generation.


ASP.NET on Linux pt2: It works!!!

August 8, 2007

Holy tamole!!!

I take a lot of my words from my earlier post and comments back! I got it running!

So what did I do wrong the first time?

This time I installed an Ubuntu 7.04 Desktop, the previous time I had installed the server version. (in retrospect I think it will work on a server edition too).

I followed Timani’s first post to the letter. Everything was fine and dandy and the xsp2 webserver was happily serving on port 8080. Only one small issue: his post says:

For the ASP.NET 2.0 environment
$ cd /usr/share/asp.net2-demos/
$ xsp2
$ sudo cp /usr/share/asp.net2-demos/index.aspx /usr/share/asp.net2-demos/index2.aspx

But this should be

For the ASP.NET 2.0 environment
$ cd /usr/share/asp.net2-demos/
$ sudo cp /usr/share/asp.net2-demos/index.aspx /usr/share/asp.net2-demos/index2.aspx
$ xsp2

Notice the cp statement comes before running the webserver.

Now came the time to get apache serving the aps.net apps

I headed over to Timani’s second post and again followed it rigidly.

Everything went fine until I got to sudo a2enmod mod_mono. This said the module was already enabled. Step 2 was also not needed. The module was loaded already.

After everything was done I pointed my browser to: http://localhost/AspOnApache/

Nothing nada zip :( I was very dissapointed, again… A nice 503 greeted me, again… I thought this cannot be, what is the matter here.

So then, I looked very carefully at the configuration file /etc/apache2/apache2.conf. I noticed that from copy/pasting from Timani’s post some quotes (“) where replaced by a dot (.). Don’t ask, I dont know why.

After retouching the conf, I reloaded apache again and reloaded http://localhost/AspOnApache/ in my browser. WELL WELL!!! It shouted a parser error at me! At least apache wasn’t hicking up anymore.

In the aspx file, the same foul play as with the conf happened, so I gave the aspx some love and reloaded http://localhost/AspOnApache/ once more.

IT WORKS!!!

Last notes: thanks to Timani and Viraptor for gently kicking me in the rear end! Persistance does pay off!

What next? I’ll see if I can serve some small asp.net 2.0 app i created some time ago. I’ll post the results.

UPDATE: *** I’ve struggled some more these last few days,  trying to get two apps of mine to run on the box. To no avail, I’m giving it up for now, due to too much work ***


Design Inspiration Gallery.

August 7, 2007

I got some graphic inspiration already here: Design Inspiration Gallery – FAVEUP

It seems like this site is very new but it has some nice content already. The aim is that people will show off and share their desings here and hopefully get some exposure in return.

If you have some good graphics, I hope you like to share too!


ASP.NET applications served on Linux

August 7, 2007

I was talking to a friend of mine who said that he was running an ASP.NET 2.0 app on a Linux machine. That would be too good to be true wouldn’t it? Well he indeed showed me and thus I had to believe him. He was running the app on a Redhat linux box with Apache2 and Mono.

I was intrigued and toyed with it myself for several days but could not get it to work. Since then, I allways wanted to try again. If he could do it, I certainly can! I hate to admit failiure…

So, I’m going to have a shot at it again, this time following this post: Timani’s Blog » Blog Archive » Installing mono, apache, mod_mono and deploying applications in Ubuntu

I will let you know what I find out!

Have any of you guys done it before?


Learning NHibernate « Opera Lover Blog

August 3, 2007

Feedster found this post for me: Learning NHibernate « Opera Lover Blog. I’m curious how he will fare with real world applications. Hope to hear (or read) more on his progress/findings. I see a lot of my own experience in his post.


Steep learning curves?

August 2, 2007

I said in a previous post, commenting someone who’s love with NHibernate was over that it is benificial in later stages of an app’s lifecycle to use a framework. I also said it enforces a certain structure on the developer. This led me to reavaluate what I’ve been gaining for using other people’s frameworks.

More and more I start to wonder if the poster of the original isn’t right after all… 

Today there are quite a few frameworks like rails, castle project’s monorail, nhibernate, WilsonORMaper, you name it.

These all promise to simplify .Net development. 

The Castle Project’s homepage says: “…Castle helps you get more done with less code.”
WilsonOR’s about page says:”Why use an O/R Mapper? Most reasons are centered around flexibility and maintainability…”

That’s all true and right of course. But as huenemeca said the learnig curve involved in these is steep.

Personally, I tried the several “getting started” tutorials on their respective websites. After completing the examples you go:”Fantastic!” I mean every one of them “has something”.

The next step sometimes is thinking about a small piece of software you’ve done and wanting to port that idea to the new framework. Well that’s how I do it mostly, it saves me the trouble designing an app. I just pick up the design documentation and I’m off.

Almost as soon as you start, you run into trouble. This won’t work, how do I do this kind of association, and then it’s toiling trough the (mostly) reference documentation.

Reference documentation is in my opinion not a good source for learning. As a beginner you do not see the connection between the different objects, methods and properties. Let alone you see best practices from reference docs. There is no glue. I believe we all can learn much more of complete, well documented apps, examples that have the majority of what is needed to create real world apps.

So I wonder sometimes: “Is it all worth the extra time spent figuring out this new technology?”

It’s inherent to Agile Development that requirements change during the lifespan of an app. Several times I’ve come to the conclusion that I should have used this or that technology instead of the one I’ve chosen. So again I start to wonder if I shouldn’t have created a specific architecture for the app at hand. One you know trough and trough, that is adaptable without the risk of irreversibly breaking something else…


Database Versioning for .Net

July 31, 2007

Have you ever tried out or read about or used Ruby on Rails? Well I’ve been checking it out for a couple of weeks now and it is a fascinating piece of work. There are imho only a couple of big issues with it, but I will talk about that in another post.

One of the very best things I find in RoR is the concept of Migrations.

Migrations allow you to write code that describes the schema incrementally. This means your database schema can evolve, a higly prized fact in Agile Development. What we did in the past was add or remove tables and columns as we needed them. But there was a problem. Your source code is under source control right. So when you want to roll back something, how do you roll back your database schema? Tricky, right. So the answer to that question is to have your database schema exported and kept in source control too. Then you would tear down the DB and rebuild it from the exported file. But then you lose all your data.

I know there are solutions to all those problems. But what if you could just run a command to rollback the last iteration of the DB schema? That would certainly make things a lot easier right?

So in RoR they (or maybe someone else, but I learned from them) introduced Migrations. Each migration has two methods, up and down, and each migration describes a change to a DB schema and holds a sequential number. The number describes sort of a step. So when you want to rollback to a version, you say to which sequence number and the migration thing works out what it has to do to get there.

Another thing i really like with Migrations is you can move your DB to a different technology, you can easily develop on SQLite and have production on a MySQL and later move to a MS SQL. just run the migration and the migrator takes care of using the correct dialect!

Now I wanted this in .NET, not in Rails! So along came a very friendly guy called Marc-André Cournoyer, who I stumbled upon via blogsearch. I saw this post and was sold.

So go on! go there, download it and use it allready!

I will write a seperate post on how I set it up.