Navigation


Upcoming courses:

  • Aarhus, Denmark, March 5 - 9, 2012
  • New York City, USA, March 26 - 30, 2012
Read more on our website

About me

Brian Holmgård Kristensen

Hi, I'm Brian. I'm a Danish guy primarily working with ASP.NET e-commerce solutions using Microsoft Commerce Server.

I'm co-founder and core-member of Aarhus .NET Usergroup (ANUG), which is a offline community for .NET developers in Denmark.

You can visit my View Brian Holmgård Kristensen's profile on LinkedIn or follow me on Twitter @brianh_dk. Also please feel free to contact me via e-mail Send me an e-mail.

Categories

On this page

I have passed my first exam
Very cool Commerce Server training with Max Akbar
Upgraded to dasBlog 2.0
Planning Microsoft Certified Technology Specialist (MCTS) certification
Refresh Catalog FullText Index causes search operations to fail
Commerce Server: Search exception on web-site when adding new property
Attending TechEd Developers Barcelona 2007
A new blogger is in town

Archive

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

RSS 2.0

Send mail to the author(s) E-mail

Total Posts: 36
This Year: 0
This Month: 0
This Week: 0
Comments: 10

Sign In

Follow me on Twitter @brianh_dk
 Thursday, 25 October 2007

First let me point out: I know it has been a while since my last post. I will try to get some more posts done in the future and I have already some in the line-up including:

  • Extending Commerce Server 2007 Payment and Shipping Methods
  • Disable "Requires Question and Answer" option in Commerce Server 2007
  • Being part of a sparkling new .NET Usergroup (www.anug.dk / Sørens blog posts)

Some time ago I wrote a post about my upcoming education strategy including a MCTS Web Developer certification. This certification takes two exams and I'm very happy to announce that I have now completed the first of the two exams. I have passed the Exam 70–536: TS: Microsoft .NET Framework 2.0 - Application Development Foundation. My score on the test was 806 points with a passing score of minimum 700 points.

The complexity level of the test took me a little by surprise - or maybe I was not enough prepared, however I think the test was harder than I had imagined. But that is not a bad thing - that only encourages me to study harder for my next exam, 70-528, approximately coming up by week 49 (December).

A small hint about the exam is that a good thing to master completely is the globalization/localization stuff in the .NET Framework, a lot of questions in my test was regarding that, so classes like CultureInfo, RegionInfo, NumberFormatInfo, CompareInfo, Calender etc. are worth looking at.

Next event for me is the upcoming TechEd Developers 2007 in Barcelona. I'm very excited about it and I will soon post a list of some of the sessions that I properly will attend. Also Microsoft Denmark has announced that they will be holding a 'Country Evening Party', a night-out for the Danish attendees which I'm really looking forward to.

Posted on Thursday, 25 October 2007 18:57:05 (Romance Standard Time, UTC+01:00)
# | Comments [0]
 Thursday, 06 September 2007

My first experience with Microsoft Commerce Server was in May 2007 when I started working at Vertica. At that point I had absolutely no clue of what Commerce Server could leverage as a standard eCommerce platform. The first few weeks basically went by doing training based on some internal training material and the documentation on MSDN for Commerce Server. Soon after that I became team member on a Commerce Server project for one of our customers. Since then my work has been more or less exclusively to this project which have been a incredible educational experience for me.

Moving on to my point it had been planned for some months that we should have Max Akbar, former Program Manager for the Microsoft Commerce Server Team, come to our company location in Aarhus and provide us some technical training on Commerce Server. At that time I had only read some of Max' posts about Commerce Server but honestly I did not knew much about who he was or what he had do with the Commerce Server product. But as I got to learn more about Commerce Server and began digging more and more into the technical aspects of the product, in purpose of extending and modifying it to our customer needs, Max' name and posts appeared more frequently on the web-sites I came along. Also he had posted some very useful articles on his blog that really helped me a lot doing the development. So it was very great news that he would come to our company, and I was really looking forward to meet him and none the less learn from him.

So this week we had Max coming all the way from California, USA to Aarhus, Denmark to spend a couple of days with us giving in-house training on the Commerce Server 2007 product. Although Max suffered a bit jetlag from his flight there were no way to tell it because he really pulled off some very intensive training and the level of expertise was just stunning! The experience and in-depth knowledge with the Commerce Server product was absolutely remarkable. I really enjoyed attending the course with Max and it fully lived up to my expectations - and then some.

This blog post doesn't cover all the topics that we went through the training with Max, but hopefully it gives a resume of what went on. The first day we got around talking about the installation, architecture and security stuff of Commerce Server as well as giving us some insight on some of the work he had been doing at Microsoft and some of the large scale enterprise solutions he have been a part of. It was very exciting to hear about all that. The second day we learned a lot about the CSS - Commerce Server Staging on how to easily deploy Commerce Server business data and content between different environments. It was very cool to learn about because the CSS part of Commerce Server is one thing that I have none on-hands experience with nor much knowledge about. We also got through the Catalog-, Profiles- and Marketing systems which gave me some very good insight on how this is implemented in the product and how to best interact with the systems. After the second day of training most of us from Vertica went out with Max to grap a beer on Kafé Komma and later we all went to eat on a really good restaurant. The third and last day of the training was primarily focused on integration, extending the Orders system and building custom pipelines.

For me it was really cool to show Max some of the stuff that I have been working on. Especially on how I have extended the Payment- and Shipping Methods using the standard Profile System and how I integrated this into the Customer and Orders Manager application with pretty much no modification to the application at all. I'm proud to say that Max found the stuff I did very cool. I might write a post about it some day.

Also pretty cool was that Max gave us some of the custom tools that he has developed for his various Commerce Server solutions and I'm absolutely sure that they will come in pretty handy in our solutions as well. Max is a really nice guy and besides all the training he did we also had a lot of fun during the training days. I'm really glad to met Max and hopefully I'll come across him again some day.

I'm sorry for any bad English, bad grammar or misspelling. The clock is getting pretty late and I'm not even done packing all my stuff yet. The thing is that we are all leaving very early in the morning (4.15 AM to be exact) as we are going with the train from Aarhus to the Copenhagen Airport from where we are flying to Edinburgh. Vertica has arranged a company trip throughout the weekend to Scotland which I'm really looking forward to.

Posted on Thursday, 06 September 2007 21:30:35 (Romance Standard Time, UTC+01:00)
# | Comments [0]
 Saturday, 01 September 2007

I was told yesterday by Søren that dasBlog has released a new version of their blog engine with complete migration to ASP.NET 2.0.

Although the previous version I used (1.9.7) also was hosted on ASP.NET version 2.0, it is always nice to upgrade to the newest version and know that it is now a native ASP.NET 2.0 application.

Not much to report on the upgrade part - it all went smooth.

Le me know if you encounter any problems - thanks :)

Posted on Saturday, 01 September 2007 11:39:49 (Romance Standard Time, UTC+01:00)
# | Comments [1]
 Tuesday, 28 August 2007

Today I have been planning my upcoming education strategy for the rest of the year. I'm going for the MCTS: .NET Framework 2.0 Web Applications certification which includes two exams:

  1. Exam 70–536: TS: Microsoft .NET Framework 2.0 - Application Development Foundation
  2. Exam 70–528: TS: Microsoft .NET Framework 2.0 - Web-Based Client Development

The books have already been ordered by my employer and I have set the estimated dates for the exams. My goal is to complete the first exam by week 42 (October) and complete the next exam by week 49 (December).

Announcing it here on my blog and declaring a specific timeframe is an intentional strategy to give myself some degree of pressure that should keep me focused on completing it in time.

This will be my first certification to come so I'm obviously very excited about all this. Last year I completed a x-masterclass Axapta 3.0 System Development course and was supposed to take a certification in Dynamics AX 4.0 Development, but such particular certification was not available at that time. And still isn't - at least what I know of.

It is my plan to achieve the Microsoft Certified Professional Developer (MCPD) Web Developer certification - although this will properly not happen before Q1/2008. After that I think that it would be clever to focus on some SQL Server 2005 aimed certifications.

My ultimate goal would be to become a Microsoft Certified Architect (MCA) one day. It was my colleague Søren who introduced me to this today, but it seems to be a hard thing to accomplish. I believe such a certification will be very valuable.

So - now there is really nothing else to it, than open the books and start reading...

Posted on Tuesday, 28 August 2007 19:50:41 (Romance Standard Time, UTC+01:00)
# | Comments [0]

The other day I wrote a blog post about a search problem in the Commerce Server Starter Site. I had added a new property to the propertiesToReturn element of web.config and that caused all search operations on the web-site to fail with the following exception from the database: 'Invalid column name 'Show_Variants_As_Products'.

In my efforts to solve the problem I stumbled across another issue when I tried to execute the "Refresh Catalog FullText Index" command on one of my catalogs in the Catalog Manager (screenshot provided).

This command executed without errors but when I tried to perform a new search on the web-site the database threw another exception with the following error message:

Full-text table or indexed view has more than one LCID among its full-text indexed columns.

This post helped me to the solution.

The solution

In SQL Server Management Studio I opened the Product Catalog database and found the table holding the products for the specific catalog I initially performed the Refresh command on. I changed  the "Language for Word Breaker" setting for the CategoryName column from 'English' back to 'Neutral'  in the properties Full Text Indexing (screenshot provided below).

dbo.[catalogname]_CatalogProducts > Full Text index > Properties > Columns > CategoryName=Neutral (from English)

Posted on Tuesday, 28 August 2007 19:30:22 (Romance Standard Time, UTC+01:00)
# | Comments [0]
 Saturday, 25 August 2007

Short explanation

When creating a new property definition which has the 'Assign to all products' attribute set to true and when this new property is added to the propertiesToReturn element in web.config (configuration/commerceSite/propertiesToReturn) search operations on the web-site can cause the following exception: Invalid column name '[property-name]'. This occurs if one or more of the catalogs in Commerce Server are out of sync with the catalog schema (defined in the Catalog And Inventory Schema Manager) e.g. if the catalog is empty.

Solution: Create a new dummy product in each catalog to ensure synchronization is done. You can safely delete the dummy product after creation.


Complete explanation

I had added the property 'Show_Variants_As_Products' in the Catalog And Inventory Schema Manager. The 'Assign to all products' attribute was set to true to ensure that all products in Commerce Server include this property.

Afterwards I added the new property to the propertiesToReturn string list in web.config:

<commerceSite
 requireSSL="false"
 enableExpressCheckout="false"
 persistAnonymousBaskets="false"
 rewriteProductUrls="true"
 assetLocation="~/"
 defaultShippingMethodId="87c0e40f-3661-4197-8f88-fa3f101ae1ad"
 propertiesToReturn="CategoryName, ProductID, CatalogName, i_ClassType, DisplayName, cy_list_price, VariantID,  Show_Variants_As_Products">

This setting ensures that the property is available in the returned DataSet when e.g. performing search operations on the web-site.

However when I tried to perform a search, the web-site crashed with the following exception coming from the SQL Server:

Invalid column name 'Show_Variants_As_Products'.

In the Catalog Manager I opened a random product in one of my catalogs to verify that the new property was actual present - and it was. So a bit confused I opened SQL Server Profiler to create a new trace to check the queries which was actually sent to the database from the web-site when performing a search.

The query sent to the database was:

exec dbo.ctlg_GetResults
 @Catalogs=N'MyCatalog1,MyCatalog2,MyCatalog3,',
 @Language=N'da-DK',
 @PropertiesToReturn=N
'[CategoryName], [ProductID], [CatalogName], [i_ClassType], [DisplayName], [cy_list_price], [VariantID], [Show_Variants_As_Products], [BaseCatalogName],
 [oid], [OrigProductId], [OrigVariantId], [OrigCategoryName], [DefinitionName], [PrimaryParentCategory], [UseCategoryPricing]'
,
 @SQLClause=NULL,
 @FTSPhrase=N'perfume',
 @AdvancedFTSPhrase=NULL,
 @OrderBy=NULL,
 @StartingRec=1,
 @NumRecords=10,
 @SortAscending=1,
 @ClassType=10,
 @eJoinType=-1,
 @TargetTableName=N'',
 @SourceJoinKey=N'',
 @TargetJoinKey=N'',
 @RecordCount=@p16 output,
 @EnableInventory=1,
 @InventoryServerName=NULL,
 @InventoryDatabaseName=NULL,
 @FilterOutOfStockProducts=0,
 @FilterBackOrderableProducts=0,
 @FilterPreOrderableProducts=0,
 @UseThresholdAsFloor=1,
 @TreatmissingAsOutOfStock=0,
 @StockHandling=0,
 @InventoryPropertiesToReturn=N'*',
 @CategoryClause=NULL,
 @Recursive=0

When executing this query directly on database I got the same error message. I opened each of the catalog tables to verify that the new column 'Show_Variants_As_Products' was present. The column was present in the first two catalogs (MyCatalog1 and MyCatalog2) but in the last catalog (MyCatalog3) the column was not present indicating that this specific table was out of sync with the Catalog schema. The catalog was also in fact empty. So creating a new dummy product in MyCatalog3 using the Catalog Manager did the trick of getting the MyCatalog3 catalog table back in sync with the Catalog schema. I tested it with a new search operation on the web-site and everything returned successfully.

Posted on Saturday, 25 August 2007 11:24:16 (Romance Standard Time, UTC+01:00)
# | Comments [0]
 Thursday, 09 August 2007

Last week I got great news that I am going to attend the TechEd Developers conference in Barcelona.

It was Søren who told me the news about TechEd and I will have a lot to live up to as he did a large scale cover of his attendance at TechEd in 2006.

The TechEd will span five days with hopefully hardcore technical subjects and I am obviously very excited as this will be my first TechEd. I can't wait to hear about all the cool new technologies out there.

I have done a quick scan of the Technical Tracks and I think that I will be focusing on new language and framework features including LINQ, C# 3.0 and som web-development topics such as AJAX and Silverlight.

I have wrote a post on ActiveDeveloper regarding my trip as it could be cool to know who else will be attending the conference.

So please feel free to contact me if you are going to the TechEd Developers, Barcelona 2007 - it could be cool to arrange something together.

You should of course also stay tuned on this blog around 5th to 9th November (the actual dates for the conference in Barcelona) as I promise to write daily posts about the sessions I will attend and of course my generel experiences with TechEd.

Posted on Thursday, 09 August 2007 18:30:39 (Romance Standard Time, UTC+01:00)
# | Comments [0]
 Saturday, 04 August 2007

As the title says this is my first blog on the web, therefore I think it would be appropriate to give myself some kind of introduction.

My name is Brian, and I live in Aarhus, Denmark. My full time job is working as .NET developer at Vertica A/S implementing large scale eCommerce solutions with Microsoft Commerce Server. Besides working at Vertica, I have a small IT-business called Yourhost together with my friend Peter, on which we spend a lot of our spare time. Yourhost offers hosting services, customized web-solutions, and other products and services.

I finished my education in November 2005 as Datamatician at the IT College in Skive. After that I got employed as a Microsoft Dynamics AX developer in a company called MW data, where I worked until May 2007. After that I started at Vertica. Here is a link to my LinkedIn profile, if you want to read more on this :)

The main focus on this blog will be about .NET technology and naturally other subjects I will come across in my professional life, although unrelated things probably also will be mentioned once in a while.

I will keep the blog-writing in English - the reason why is that I want to distribute it to as many people as possible, but also to improve my own language skills – I have used English as long as I remember, but mainly for reading and understanding - not so much writing and speaking in the latest years – so I want to focus on improving this (of course the blog properly will not improve the speaking part that much).

Thanks for reading this very first post - hopefully there will be a lot more to come :)

Posted on Saturday, 04 August 2007 13:03:39 (Romance Standard Time, UTC+01:00)
# | Comments [0]