The Case of Empty OptionalFeatures.exe Dialog 

The following is a three day saga of empty 'Turn Windows Features on or off' dialog.

This dialog, as unimportant as it may seem, is the only orifice into Windows subsystem installations without having to cramp up command line msiexec.exe wizardry on obscure system installation folders that nobody wants to understand.

Empty, it looks like this:

First thing anyone should do when it comes to something obscure like this is:

  1. Reinstall the OS (kidding, but would help)
  2. In-place upgrade of the OS (kidding, but would help faster)
  3. Clean reboot (really, but most probably won't help)
  4. Run chkdsk /f and sfc /scannow (really)
  5. If that does not help, proceed below

If you still can't control your MSMQ or IIS installation, then you need to find out which of the servicing packages got corrupted somehow.

Servicing packages are Windows Update MSIs, located in hell under HKLM/Software/Microsoft/Windows/CurrentVersion/Component Based Servicing/Packages. I've got a couple thousand under there, so the only question is how to get to rough one out of there.

There's a tool, called System Update Readiness Tool [here] that nobody uses. Its side effect is that it checks peculiarities like this. Run it, then unleash notepad.exe on C:\Windows\Logs\CBS\CheckSUR.log and find something like this:

Checking Windows Servicing Packages

Checking Package Manifests and Catalogs
(f) CBS MUM Corrupt 0x800F0900 servicing\Packages\
Package_4_for_KB2446710~31bf3856ad364e35~amd64~~  Line 1:

(f) CBS Catalog Corrupt 0x800B0100 servicing\Packages\  

Then find the package in registry, take ownership of the node, set permissions so you can delete and delete it. Your OptionalFeatures.exe work again and it took only 10 minutes.

Categories:  Other | Windows 7 | Work
Tuesday, June 7, 2011 7:57:17 AM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Talk at Interoperability Day 2009 

Interoperability day is focused on, well, interoperability. Especially between major vendors in government space.

We talked about major issues in long term document preservation formats and the penetration of Office serialization in real world...

.. and the lack of support from legislature covering long term electronic document formats and their use.

Here's the PPT [Slovenian].

Categories:  Other | Work
Wednesday, June 3, 2009 2:23:45 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Speaking at Document Interop Initiative 

On Monday, 05/18/2009 I'm speaking at Document Interop Initiative in London, England.

Title of the talk is: High Fidelity Programmatic Access to Document Content, which will cover the following topics:

  • Importance of OOXML as a standards based format, especially in technical issues of long term storage for document content preservation
  • Importance of legal long term storage for document formats
  • Signature and timestamp benefits of long term XML formats
  • Performance and actual cost analysis of using publicly-parsable formats
  • Benefits of having a high fidelity programmatic access to document content, backed with standardization

The event is held at Microsoft Limited, Cardinal Place, 100 Victoria Street SW1E 5JL, London.

Update: Here's the presentation.

Categories:  Microsoft | Work
Saturday, May 16, 2009 7:21:51 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Bleeding Edge 2008: Postback 

I'm sorry it took a week, but here we go.

This is my exit content from Bleeding Edge 2008. I'm also posting complete conference contents, just in case.

Thanks go out to Dušan, Dejan, Miha, Miha and Miha.


Remark: PPT in Slovene only. Code international.

Thank you for attending. Hope to see you next year!

Categories:  CLR | Conferences | Microsoft | Web Services | Work
Thursday, October 9, 2008 8:42:02 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Bleeding Edge 2008 

I'm happy to announce our organization work is coming to fruition.

Bleeding Edge 2008 is taking the stage for the autumn season.

Portorož, Slovenia, October 1st, 9:00

Official site, Registration, Sponsors

Go for the early bird registration (till September 12th). The time is now.

Potential sponsor? Here's the offering.

Categories:  Architecture | Conferences | MVP | Work
Thursday, July 17, 2008 2:50:06 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Accreditus: Gama System eArchive 

One of our core products, Gama System eArchive was accredited last week.

This is the first accreditation of a domestic product and the first one covering long term electronic document storage in a SOA based system.

Every document stored inside the Gama System eArchive product is now legally legal. No questions asked.

Accreditation is done by a national body and represents the last step in a formal acknowledgement to holiness.

That means a lot to me, even more to our company.

The following blog entries were (in)directly inspired by the development of this product:

We've made a lot of effort to get this thing developed and accredited. The certificate is here.

This, this, this, this, this, this, this, this, this and those are direct approvals of our correct decisions.

Categories:  .NET 3.0 - General | .NET 3.0 - WCF | .NET 3.5 - WCF | Other | Personal | Work
Saturday, July 5, 2008 1:18:06 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Problem: Adding custom properties to document text in Word 2007 

There is some serious pain going on when you need to add a simple custom document property into multiple Word 2007 text areas.

Say you have a version property that you would need to update using the document property mechanics. And say you use it in four different locations inside your document.

  • There is no ribbon command for it. There was a menu option in Word 2003 days.
  • There is no simple way of adding to The Ribbon. You have to customize the Quick Access Toolbar and stick with ugly, limited use icons forever or so.
    • You need to choose All commands in Customize Quick Access Toolbar to find Insert Field option.
  • This is not the only limiting option for a power user. The number of simplifications for the casual user is equal to the number of limitations for the power user. And yes, I know, casual users win the number battle.


  1. Right click The Ribbon and select Customize Quick Access Toolbar
  2. Select All Commands and Insert Field
  3. Add it to Custom Quick Access Toolbar
  4. Click the new icon
  5. In Field names select DocProperty
  6. Select your value, in this example Version

Yes. Ease of use.

Please, give me an option to get my menus and keyboard shortcuts back.

Pretty please.


Categories:  Microsoft | Personal | Work
Monday, July 9, 2007 9:44:50 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 IIS6: Changing the Locale ID when Regional Settings Won't Work 

I noticed an awkwardness on my IIS6 server installation today.

All my sites were running with a US locale, thus invalidating the currency/date time/decimal calculations by an order of magnitude.

The problem was that the server was installed using the default settings, and also applied those to the Network Service account under which most of my sites work.

How do you fix this?

  1. Login (RDP is OK)
  2. Change the locale to your preference on the logged in account, use Control Panel's Regional Settings UI, you may need to reboot
  3. Go to HKEY_CURRENT_USER\Control Panel\International
  4. Right click, choose Export
  5. Open the file in Notepad, replace "HKEY_CURRENT_USER" with "HKEY_USERS\S-1-5-20", this is the Network Service account
  6. Save the .reg file
  7. Double click the .reg file and import the settings
  8. Restart IIS

You should have your locale set.

Oh, on the other side, while investigating this, here's a scoop on how to get to clear text passwords of IUSR_MACHINENAME and IWAM_MACHINENAME accounts:

  1. Go to C:\InetPub\AdminScripts and open adsutil.vbs script in Notepad
  2. Change the only occurrence of "IsSecureProperty = True" to "IsSecureProperty = False". Save.
  3. Run "cscript adsutil.vbs get w3svc/anonymoususerpass" in command prompt
  4. Run "cscript adsutil.vbs get w3svc/wamuserpass" in command prompt
  5. Don't forget to revert to "IsSecureProperty = True" in adsutil.vbs
  6. Don't forget to save the file again

You should have both passwords now. This comes handy when you need to fine tune the settings of both built-in accounts.

Categories:  Other | Work
Wednesday, April 18, 2007 12:04:31 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Using Dark Room 

If you need a distraction free writing environment, grab a copy of Dark Room. I found it after a few years of using WriteRoom, the original, on a Mac.

I write most of my draft documents in it. Then I move them to Word and apply formatting. I write all blog entries - exclusively in Dark Room - every post.

It does what every text editor should be doing first. It makes you concentrate on the subject.

And, best of all - it's small footprint, single .exe app. Xcopy it to your path. Bam.

Categories:  Other | Personal | Work
Sunday, March 11, 2007 10:19:35 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 MSDN Event Presentation: Code and PPT 

I just finished presenting my talk on the October 2006 Slovenian MSDN event.

Here are the deliverables:

Code: Download
PPT: Download [Slovenian]

Solution file includes:

  1. WCF service using wsDualHttpBinding for duplex session communication scenario. WCF service hosts a workflow which computes stock tax based on the current (complex) Slovenian legislation.
  2. WF workflow named ComputeTaxWorkflow. Workflow calls out to our public ASP .NET WebServices: StockQuotes and ExchangeRates.
  3. WCF Client, which sends requests and receives responses when the workflow is done

Check it out. It's free.

Monday, October 23, 2006 11:04:56 AM (Central Europe Standard Time, UTC+01:00)  #    Comments


 .NET 3.0 Middleware Technologies Day 

We had a nice discussion throughout the day today, together with around 50 attendees. It's hard to even cover feature changes of .NET 3.0 in a day, but we managed to cover the important things of WCF and WF, spending a complete day inside the Visual Studio.

Here are the demos: Download
And the PPT slides: Download [Slovenian]

And the link to the Tom Archer's compatibility matrix for the .NET Framework 3.0 downloads.

Thanks to everyone who attended.

Categories:  .NET 3.0 - WCF | .NET 3.0 - WF | Architecture | Work
Thursday, October 5, 2006 6:03:06 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Installing .NET Framework 1.1 on Windows Vista Build 5456 

This has bothered me for two weeks. There was no way to install .NET Fx 1.1 on a Vista 5456 box.

Here's the solution:

After the permission fix, Framework 1.1 and SP1 for 1.1 install flawlessly.

Thanks Aaron Stebner!

Categories:  Windows Vista | Work
Saturday, July 8, 2006 10:03:34 AM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Hibernation Issue on Windows XP SP2: >1GB RAM 

If you happen to run Windows XP SP2 on a machine with more than a GB of RAM, you may likely see the following notification appear on the system tray:

Hibernate Error on Windows XP SP2

This happens after hibernation is attempted. The error is: "Insufficient system resources exist to complete the API."

The solution is Q909095. There is a hotfix available, but you have to call Microsoft PSS to get it download the patch. It includes a new OS kernel which works flawlessly on my ThinkPad T60p with 2GB.

Knock knock. 

[Update 10/17/2006, Download available]

Categories:  Other | Personal | Work
Wednesday, June 14, 2006 10:24:15 AM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Google goes AJAX: Positive addiction in the framework space 

Today, Google released Google Web Toolkit, which is an alternative to Microsoft's Atlas.

Indeed, Hell is freezing over.

Industry at large is competing for every piece of programming world. The idea of having ability to influence programmers into using your platform has become eligible for every vendor.

These situations are prevalent even on smaller markets. What we see is that companies are willing to offer their frameworks to big clients for a couple of reasons:

  • They can, because they own them (frameworks, that is)
  • They want to, because it is, remember, free to distribute (and hell to develop)
  • They want to, because addiction is goodtm

There is a special case of positive addiction present in the development world. I call it tool addiction, because it's actually not bound to a specific framework and/or platform version.

No one wants to use notepad.exe during development of a serious solution, right? We do need that Intellisense after all. Although it's just a bunch of programmatic schema definitions, one gets addicted to it. Platform vendors know this. This is the main reason tools are becoming free. The addiction flu is spreading out of the platform world, into the tool space, and as it seems to specific framework space.

Anyone who is offering anything for free has a background plan. They are not that stupid. Vendors know that once you get hooked it's not easy to be abstinent.

Categories:  Personal | Work
Wednesday, May 17, 2006 9:51:10 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Joel Spolsky Discussion on Frameworks 

This has to be one of the best written analogies between current framework use cases ever.

We indeed are in a state of using ANYTHING that can make our developer lives easier, no matter what the consequences are. An often times, consequences manifest themselves in increased costs, time-to-ship prolongation, complexity and speed.

Go read it. It's worth way more than the time spent.

Categories:  Other | Work
Thursday, March 9, 2006 12:54:08 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 WinFX and the State of Industry 

My current occupation leads me to spend as much time as possible in WinFX.

WinFX should stand for Windows Framework Extensions. What a Windows Framework is, I don't know. I know what .NET Framework is, but that's another drop in the ocean.

Having said that, there seems to be inconsistency between what is, will be or was inside WinFX (or WinFX Runtime Components, if you wish).

In 2003, WinFX (if you were at the majorrevealingconferenceoftheyear - PDC 2003), you would concur that WinFX will be:

  • Indigo (related to everything communication)
  • Avalon (related to everything presentation)
  • WinFS (related to everything storage, somehow)

In 2004 things changed.

WinFX mysteriously dropped WinFS and inherited something called Workflow - Windows Workflow Services (now called Windows Workflow Foundation).

At first, Windows Workflow Foundation was acronymed WWF, which makes sense - you've got WPF (Windows Presentation Foundation - Avalon), WCF (Windows Communication Foundation - Indigo) and WWF (Windows Workflow Foundation - WWF).

It is now 2006 and WWF is acronymed WF (just Windows Workflow) and it is still a part of WinFX. WinFS is still gone (scheduled to be released after Vista ships).

What worries me the most is that the current plan precludes that this technologies won't make it into the Vista ship vehicle. They just won't be deployed with the OS. If you make all the fuss around it, invest major tolars in education budget you still won't be sure that the client supports it.

Windows Installer 3.1 is a wonderful thing, but nonetheless, if anyone can deploy groundbreaking technology in no time it's Microsoft. Sure, there are 'small footprint security implications' guidelines driving Vista, but no one is saying this beast should be deployed in active state. Make it available and make it passive. Support it via Windows Update if showstoppers arise.

There is no need to be scared of another IIS 4 story. There are mechanisms for deploying technology and not using it by default.

Please, do not make WinFX fade.

Categories:  Windows Vista | .NET 3.0 - General | Work
Sunday, January 29, 2006 12:10:36 AM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Installing WinFX January 2006 CTP over December 2005 CTP 

If you plan to upgrade your WinFX bits with the yesterday released January 2006 CTP of WinFX Runtime Components consider the following:

You do not need to do a fresh reinstall, even though that is what is suggested in the docs:

  • Reinstall procedure works on Windows XP SP2 (x86 and x64)
  • Reinstall procesure workd on Windows Vista 5270 (December 2005 CTP)

First, uninstall all December 2005 CTP bits in the following order:

  1. Visual Studio 2005 Extensions for Windows Workflow Foundation (December 2005 CTP)
  2. Visual Studio 2005 Extensions for WinFX (December 2005 CTP)
  3. Microsoft Command Shell (December 2005 CTP, comes with Windows SDK)
  4. Windows SDK (December 2005 CTP)
  5. WinFX Runtime Components (December 2005 CTP)

Then, invert the installation process:

  1. WinFX Runtime Components (January 2005 CTP)
  2. Windows SDK (January 2005 CTP)
  3. Visual Studio 2005 Extensions for WinFX (January 2005 CTP)
  4. Visual Studio 2005 Extensions for Windows Workflow Foundation (January 2005 CTP)

For now, I can't see any major differences in programming model of January <> December WinFX CTP.

Categories:  Windows Vista | .NET 3.0 - General | Work
Thursday, January 19, 2006 12:04:01 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 WinFX January 2006 CTP Released 

WinFX January 2006 CTP just went live.

With it, a Go-Live licence is available for WCF and WF. Sign and deploy.

Update: They managed to screw up the download links again. Beware: If you're downloading complete installs (and not the setup manager) use the lower links for x86 and x64 images (there are two on the get the beta page).

The following links will lead to correct complete download of WinFX January 2006 CTP Runtime Components:

You can also check the file version. The correct WinFX RTC version for January 2006 CTP is 3.0.50727.154 (file size 44.488 KB [x86] and 84.464 KB [x64]). December CTP was 3.0.50727.151 and file sizes were a couple KB lower.

Categories:  Web Services | .NET 3.0 - General | Work
Wednesday, January 18, 2006 9:34:01 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Running 64-bit Managed Code 

If you happen to be in the 64-bit world (read running a 64-bit OS on the x64 box, not IA64), there are two options on how your managed code runs.

It can run:

  • In a 32-bit process (loads x86 CLR)
  • In a 64-bit process (loads x64 CLR)

The high order bit here is the flag under which the image was compiled. Since you cannot compile for 64-bit architecture in .NET Framework 1.0/1.1, and 2.0 is your only choice, let's focus on Visual Studio 2005/.NET Framework 2.0 features.

If you look under the hood on a x64 box, you will find that VS 2005 installer will drop TWO frameworks on your machine.

The 32-bit framework will install in c:\windows\\framework directory, the 64-bit framework will install in c:\windows\\framework64 directory.

If you installed .NET Framework SDK, you will get two SDKs too. One will be in c:\program files\\sdk\v2.0 64bit (64-bit), the other in c:\program files (x86)\microsoft visual studio 8\sdk\v2.0 (32-bit, installed in VS 2005 base directory).

What happens at load time is the CLR runtime host decides on which CLR it needs to load based on the CLR metadata flags. Normally, if you do not change the defaults in VS 2005, your assemblies will be compiled using the 'anycpu' (also known as MSIL flag) which will allow the runtime to host the managed app in a 64-bit process on a x64 box and in a 32-bit process on a x86 box.

You can, however,  control and override this default behaviour even after your code has been compiled. There's a handy tool called corflags.exe present in the SDK that allows you to force 'anycpu' compiled code to use 32-bit process in 64-bit world.

More on that in another blog entry.

Categories:  CLR | Work
Wednesday, December 28, 2005 1:14:51 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Acer Ferrari 4005 WLMi 

My old laptop died on me this past weekend. Even though it wasn't much of a machine lately, it was dependable to the very last moment, when it decided to stop working completely. Dell Inspiron,  RIP.

My new workhorse is a fabulous machine: Acer Ferrari 4005 WLMi

It's a 64-bit machine, based on AMD Turion 64 processor. It looks splendid, although I have to admit that if it would be possible, I would remove the Ferrari logo during my meetings - even though I am a Ferrari F1 fan.

I'm running Windows Vista December CTP x64 edition, including VS 2005 + .NET Frameword 2.0 x64, WinFX RTC December CTP x64, Windows SDK x64, etc.

Running Indigo in a 64-bit process is a breeze. :)

Anyone deciding between Pentium M and Turion 64 based machine should read: Clash of the Titans: Dothan vs. Turion

The article compares Intel Pentium M 760 (Dothan) and AMD Turion 64 ML-37. It's a great article considering the shift to 64-bit is currently underway.

Categories:  Personal | Work
Wednesday, December 28, 2005 12:39:48 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Installation issue with December CTP of WinFX Runtime Components 

If you are planning to install or have already done so, there's an issue with the automated install of December CTP of WinFX RC (Runtime Components).

The following link will install November 2005 WinFX RC:

And to make it even more complex, if you happen to install it in Windows Vista December CTP, there is no way to remove it and have a clean machine afterwards.

Use the complete download link, ie:

How do you know if this thing screwed you up? You will not be able to install a 1GB pack of Windows SDK (December 2005), which also includes WinFX docs and samples.

Another proof are filename timestamps of for example System.ServiceModel.dll and friends, which are 11/18/2005 - equaling to November 2005 CTP dates.

Categories:  Windows Vista | Other | Personal | .NET 3.0 - General | Work
Thursday, December 22, 2005 1:25:33 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 The Order of Adoption 

Today, when I was driving back home from a client of mine, I managed to squeeze some time off between the necessary phone calls to reason about the state/discrepancies of technology adoption between different businesses.

There's an obvious dicrepancy present.

There are businesses which challenge technology. There are businesses which know about Vista/Indigo/Avalon/Workflow progress. There are businesses which think they know about Vista/Indigo/Avalon/Workflow progress. And then, there are real businesses.

They don't care.

By real I don't mean successful businesses. A business can be successful and not real at the same time. What I mean by real is large, heterogeneous, multi-platform, cross-racial businesses. They just do not care.

A line of thought, which is mostly present in these scenarios is this: What and how do we use technology to drive our business opportunities? And if one thinks about it, they are right in both cases:

  1. Adopting a new technology can help you increase business opportunities. It can also slow you down during the learning cycle. If there are too many learning cycles, you can be slow all the time.
  2. New technology usally costs money. It costs in terms of licences, training and lost working hours trying to make it work. This is counter productive in terms of fulfilling/achieving business opportunities.

The outcome is that real businesses take wise decisions and adopt when the time comes. They do not rush it. That's one of the reasons that makes them successful.

This should not be read as if my opinion is to wait till technology matures. There are rare cases that mandate usage of new technology instantly.

Categories:  Other | Work
Tuesday, December 13, 2005 10:24:33 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Visual Studio 2005 is Gold 

Available for download for all MSDN subscribers.

Currently only Visual Studio 2005 Professional is available. Other SKUs have been pulled, probably because of bandwidth issues.

Also available: SQL Server 2005 RTM.

Now it's time to wait for the corresponding WinFX SDK to appear.

Categories:  Work
Friday, October 28, 2005 10:05:26 AM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Book requests 

There have been quite a few book requests in the last 14 days, while I was away.

If anyone who requested the latest book still didn't receive a copy, please write another email, because it is entirely possible that it got lost somewhere.


Categories:  Personal | Work
Tuesday, September 20, 2005 12:28:50 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Book feedback 

A bunch of you wrote emails to get my new book. And that's great. Love it.
If you missed it, you can do it again.

I also got some strange feedback:

  • "Why do you distribute it for free?"
  • "I'd love it, by why do you distribute it for free?"
  • "I would buy it, if you are selling it."
  • "I'm gonna make sure I buy it."
  • "I'm gonna make sure we buy it."
  • "I can't believe that you believe in open source."

<rant mode="on">
I'm not doing it for the money. I'm doing it to distribute thought, knowledge and/or religion. This book is free, as long you are not making direct profit from it without making me a part of it. You can, though, contribute to local general religion awareness anytime.

There's another line of thought happening:

  • "I have a problem with chapter X.Y.Z. I can't believe you believe this is the right way to go. In any case, I would chose B over A anytime."
  • "Second paragraph in chapter X is just too general. I can't relate to that."
  • "Having spent the last two months on this technology, this just can't be the best way to go."
  • "There's a specific problem with X in chapter Y if you want to do it in our environment."

Over these, I have no control whatsoever. I strongly believe that scenarios are different in everyones lives.

I have to stress again that English reading/speaking audience can NOT benefit from it, since it's written in Slovene.

Categories:  Personal | Work
Tuesday, May 10, 2005 2:10:53 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Modern .NET Architecure: Book Done 

Having spent the last two weeks tweaking my diagrams and pictures with a book designer, I learned quite a lot about differences in a design and development environment. To get facts straight, they live in a DPI-based world, which is nasty. And since my designer uses MacOS X platform to do the design stuff, a lot of interesting issues arrised. Again.

What I wanted to convey is: The book is finally done.

Title (in Slovene): Arhitektura sodobnih rešitev Microsoft .NET - Načrtovalski vzorci

Its physical incarnation should be available to general developer/architect public in a few weeks, but most definitely here.

Everyone who managed to send me an email after my previous blog post, will be getting a copy in his/her mailbox today.

If you would like a copy (electronic one, that is), drop me an email using this link.

Here's the TOC, up to level 3, (in Slovene):

2    UVOD
3.3.1    Začetniki koncepta načrtovalskih vzorcev
3.3.2    Načrtovalski vzorci v informacijski tehnologiji
3.3.3    Načrtovalski vzorec: Windows DNA
3.3.4    Porazdeljene transakcije
3.4.1    Strateški pomen Enterprise Services
3.4.2    Prihodnost Enterprise Services
3.4.3    Hitrost COM+
3.4.4    O .NET Enteprise Services
3.4.5    O porazdeljenem transakcijskem koordinatorju (MSDTC)
3.5    KJE SMO?
4.1.1    Ideja
4.1.2    Porazdeljena aplikacija potrebuje nivo fasade
4.1.3    Porazdeljena aplikacija potrebuje nivo dostopa do podatkov
4.1.4    Objekti entitetnih storitev validirajo poslovna pravila
4.1.5    Ločeno upravljanje transakcij
4.1.6    Procesi
4.1.7    Kje smo?
4.2.1    Namen
4.2.2    Struktura
4.2.3    Stran začasnih naročil
4.2.4    Objekt DataSet
4.2.5    DataSet <> DataTable <> DataAdapter
4.2.6    Kje smo?
4.3.1    Namen
4.3.2    Struktura
4.3.3    Razredi
4.3.4    Dodajanje novega naročila
4.3.5    Kaj pa transakcije?
4.3.6    Dostop do podatkov
4.3.7    Kje smo?
4.4.1    Namen
4.4.2    Struktura
4.4.3    Primer poslovnega pravila
4.4.4    Nivo dostopa do podatkov
4.4.5    Validacija poslovnih pravil
4.4.6    Naprednejši koncepti validacije poslovnih pravil
4.4.7    Kje smo?
4.5.1    Namen
4.5.2    Struktura
4.5.3    Kdaj uporabiti?
4.5.4    Razmislite o spletnih storitvah
4.5.5    Kje smo?
4.6.1    Transakcije in .NET v splošnem
4.6.2    Namen
4.6.3    Struktura
4.6.4    Kako deluje?
4.6.5    Kdaj uporabiti?
4.6.6    Kako uporabiti?
4.6.7    Kje smo?
5.1.1    Načrtovanje komponent
5.1.2    Razredni in članski atributi
5.3    KJE SMO?
6.1.1    Dedovanje iz System.Object
6.1.2    O finalizaciji
6.1.3    Kdaj uporabiti finalizacijo?
6.1.4    Oživljanje
6.2.1    Kdaj klicati metodo Dispose?
6.3.1    Podatkovni nivo – osnovna komponenta
6.3.2    Podatkovni nivo – ostale komponente
6.3.3    Komponente drugih nivojev
6.4.1    Podatkovni nivo – osnovna komponenta
6.4.2    Podatkovni nivo – ostale komponente
6.4.3    Komponente drugih nivojev
6.5    KJE SMO?
7    VIRI

If you still don't have my previous book, Arhitektura spletnih storitev - Usmeritve za načrtovanje, you can write to me using this link.

Thanks again to all the reviewers and especially to Microsoft gals who had to read this technical, unreadable text during the proof reading process. Thanks to Mateja from Alten, for doing a fantastic design work.

Categories:  Architecture | Personal | Work
Monday, April 18, 2005 12:21:06 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Indigo CTP 

Microsoft “Indigo” is now available for general public.

If you are an MSDN Subscriber, you can download the bits from here.

Categories:  Web Services | Work | XML
Sunday, March 20, 2005 6:34:26 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 On book writing 

This week I'm clearing issues and fixing mistakes of my current brain child.

It's a book.

The second one.

It's a book on application architecture.

During the review process that I spawned last week, I noticed the following:

  1. Reviewers are strict, which I like a lot
  2. Most of them focus on layout, which is fine and helps a lot
  3. Chapter flow seems to be my weakness
  4. Discovering technical issues requires a lot of time, not everybody has enough cycles to go through it
  5. A lot of people seem to think the draft is ready for print, which is actually not the case. By far.
  6. Everybody wants a special chapter on the must-have technology and/or methodology

I value all opinions and learn a lot from them. Kudos go to all of you, you know who you are.

The book is called: Architecture of Modern .NET Applications - Design Patterns (Arhitektura sodobnih aplikacij .NET - Načrtovalski vzorci)

It's supposted to be available by the end of January 2005. Published by Microsoft Slovenia and distributed to all Slovenian architects and lead developers.

If somebody would like a copy of final cleartext, please send me an email. And yes, it's NOT written in English.

Categories:  Personal | Work
Monday, December 20, 2004 8:02:22 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Slovenian Developer User Group (SLODUG) Launched 

Yesterday we launched a developer oriented user group in Slovenia. The event was held in Microsoft Slovenia conference room (Ljubljana, BTC).

First three talks were:

We had around 25 attendees, some beer and pizza. As always, everyone is welcome.

Will follow up with specific URLs of SLODUG homepage, when it becomes available.

Update: PPTs are available.

Categories:  Other | Work
Friday, November 5, 2004 10:14:38 AM (Central Europe Standard Time, UTC+01:00)  #    Comments


 SCT in WSE2 and WS-SecureConversation 

If you get this error [1], while working on a WS-SecureConversation based application, consider the following:

  • Look at the timeout period for you SCTs, issued by the server-side service.
  • If this is all ok, then you're probably in my situation. Check if you enabled web garden support in your IIS's application pool. If so, go back to Performance tab in application pool's properties and enter 1 (one) as a 'Maximum number of worker processes'.

Things can get really rough in a state WSE2 is in if you create a web garden and use WS-SecureConversation at the same time.

A few weeks ago I was designing an architecture for a complex B2B secure communication channel and parts of it wanted to use some form of a web garden. Since I forgot to disable it, there were trouble.

The strangest thing I noticed when investigating this was that everything worked the first time after IIS restart happened - sure - a session is pinned to the first worker process, the second one just gets created.

Of course, there are workarounds regarding this, but they include some non-trivial WSE2 subclassing.

[1] Additional information: Microsoft.Web.Services2.Security.SecurityFault: The specified source for the derivation is unknown ---> System.Exception: WSE512: This derived key token's parent cannot be found. The reference to the parent token follows: <wsse:SecurityTokenReference xmlns:wsse=""><wsse:Reference URI="uuid:227d47ac-1b2b-45a5-92f0-d7d630aeda86" ValueType="" /></wsse:SecurityTokenReference>.

Categories:  Web Services | Work
Tuesday, October 26, 2004 12:56:29 PM (Central Europe Standard Time, UTC+01:00)  #    Comments



John writes:

I'm thankful Matevz didn't blast me for my über-crappy persistance model (read "save to C:\subscriptions.xml"):

Give LOCAL SERVICE account permissions to write/modify the c:\ directory. By default Plumbwork.Orange.Eventing.dll will write subscriptions file (called subscriptions.xml) there.

This line (above) - due to my extreme laziness while coding - makes me shudder. This is something I really, really, really need to clean up.


I agree that next version should include a config option to use Plumbwork.Orange.Eventing.MemorySubscriptionManager instead of Plumbwork.Orange.Eventing.XmlSubscriptionManager.

Even better would be to add SqlSubscriptionManager, which I can do, when I get into the GDN workspace.

Categories:  Web Services | Work | XML
Tuesday, August 24, 2004 9:11:21 AM (Central Europe Standard Time, UTC+01:00)  #    Comments


 WS-Eventing Implementation 

WS-Eventing Application

It took me half of today to implement a WS-Eventing based service, together with service control application and demonstration client.

I took Plumbwork.Orange implementation of WS-Eventing stack. It includes WSE 2.0 based implementation of WS-Eventing specification, written by John Bristowe. Latest post about updates can be found here.

How it works

Windows service queries message queue (MSMQ) after the period elapses. If it finds any messages, they are dispatched to all registered clients.

There is a service control application, which can enroll new messages into the queue.

There's also a simple client which you can use to register and receive notifications.


You can download the bits from here:

  • Installer package for WS-Eventing windows service, which does registrations and sends notifications back. Grab it here. Source is available here.
  • Source code, which you can use to compile the service control application. Grab it here.
  • Source code, which you can use to compile the WS-Eventing client. Grab it here.

Do the following:

  • Install WS-Eventing service.
  • Update WSEventingService.exe.config with desired endpoint address, MSMQ query period and queue name
  • Give LOCAL SERVICE account permissions to write/modify the c:\ directory. By default Plumbwork.Orange.Eventing.dll will write subscriptions file (called subscriptions.xml) there.
  • Start the service using SCM (Service Control Manager). Service will automatically create the specified queue. Note: You should have Message Queuing installed.
  • Start the service control application.
  • Start the client. It will register automatically.
  • Send notification using the service control application and watch it emerge on the client side.

If you get into trouble, please email me. Have fun!

Categories:  Web Services | Work | XML
Sunday, August 22, 2004 10:49:46 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Changing faces 


They just changed its face and turned Mother Teresa.

They are now going to donate code to open source community while being one of the fathers of closed source initiative.

And if they are planing to donate their database product, why not donate DB2 instead of Java based Cloudscape?

IBM will continue to offer its own version of Cloudscape. It believes that some customers will use it in preference to the open source version in order to take advantage of the company's technical support.

What? If the idea is to offer some code to people who want to learn concepts and improve, why don't they want to participate in the game?



Categories:  Other | Personal | Work
Tuesday, August 3, 2004 10:27:16 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 OTS 2004 

As last year, I spoke on OTS 2004 too.

This time, we discussed transactional semantics in weakly bound, distributed systems.

Hope to see you on 2005's annual reincarnation of a great conference.

Categories:  Transactions | Web Services | Work
Sunday, June 20, 2004 10:19:39 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 VS 2005 CTP - May 2004 help broken 

If you already downloaded or installed a TechEd 2004 San Diego version of Visual Studio 2005 CTP you must have found out that the help system does not work.

What you get is a “Downloading...” progress bar and nothing is shown.

To fix it, do this:

  • Open c:\program files\common files\microsoft shared\help whidbey\dexplore.exe.config
  • Change supportedRuntime's and requiredRuntime's element attribute version from “v2.0.40507“ to “v2.0.40426”.
  • Final text should read <supportedRuntime version=“v2.0.40426“ safemode=“true“ />

It should work now.

Categories:  Other | Work
Thursday, May 27, 2004 8:47:03 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 See it, hear it 

It just ended. The biggest IT conference (NTK 2004) in Slovenia.

I managed to visit two sessions in four days, since I had four of my own (System.XML, WSE2, C# Syntax Changes, GXA stack description).

The first one was an unofficial MihaK's public revelation of New Zealand Joy After One Year(tm). Great! It's still messing with my head. One guy inside is telling me it's too good to be true. The other one is forcing me to go there.

The second one was the presentation of work we did during the last 6 months for a GSMA/Mobitel/Microsoft project. When a mobile operator CTO says it's good, it better be. And I believe it's super important to recognize the security characteristics & requirements as early as we did.

Categories:  Work
Thursday, May 13, 2004 6:19:00 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 We Achived A Major Milestone On The Hotel Project Im On On Friday We Deploye 

We achived a major milestone on the hotel project I'm on on Friday. We deployed the application to complete 5th floor.

Although the web site does not say much, there is A LOT of meat behind this concept.

I attached a picture of the simple room control application.

It's all XML. It's .NET/COM/Java. And it interoperates beautifully.

Categories:  Other | Work
Sunday, April 18, 2004 1:31:03 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 UDDI level 2 status 

We are unsuccessful with our emails to Microsoft UDDI team to upgrade our UDDI account to level 2 status. If anyone knows an appropriate contact or is able to help directly, please do so.

UDDI Provider name: Gama System
Current UDDI level: 1

Categories:  Web Services | Work | XML
Saturday, October 4, 2003 1:54:35 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Read without prejudice.. 

In early November you should be updating your blogrolls with this OPML list.

A lot of fresh information will be posted on those blogs.

Categories:  Work | RSS
Monday, September 1, 2003 9:49:45 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Virtual machine software 

I'm a strong believer in virtual machine software (and its integration into Microsoft OS). Although I use VMWare and not Virtual PC, it's quite useful that I can play with all betas without reinstalling my bread-making machine.

Why is Virtual PC 5.2 available for MSDN subscribers and not the newest, 6.1 version? What seems to be the policy anyway?

... and I know I'm not the only one.

Categories:  Work
Monday, September 1, 2003 9:42:16 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 'Server Application Unavailable' Error after Applying Security Update for IE 

It just happened to my server.

Damn. Two hours of my time wasted because I happen to have the exact config I shouldn't have. It seems that Win XP + IIS5.1 + ASP.NET 1.0 + MS03-32 Security update are not compatible. Drew notified me about my server failure. Thanks!

This is the solution.


Categories:  Work | Other
Monday, September 1, 2003 8:32:17 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Web services subpage redesigned 

We just did a redesign on our /webservices subsection. You can find info/downloads/functions/... on it. Everything is free to use - some contents are applicable only to local users, though.


Categories:  Work | Web Services
Tuesday, August 26, 2003 6:35:44 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 XML schema review done 

I just finished a review of a huge XML schema for the biggest mobile operator in Slovenia.

By huge, I mean around 2000 lines. It takes XML Spy one second to validate an instance document on my machine. Element nesting goes ten levels deep.

Categories:  Work | XML
Wednesday, August 6, 2003 6:37:30 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


Categories:  Work
Wednesday, August 6, 2003 2:08:56 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Product spec done 

I just finished another developer-oriented product specification. The product is called Gama System® EDocs.

It grew to 160 pages/5 documents. It's a .NET app, which includes MSMQ integration, system services and a WinForms client. Backend storage is SQL Server. It's using partitioned views to achive maximum scalability, since we're expecting over 1TB of data on particular installations.

It's time to use that whip on our developers again.

Categories:  Work
Thursday, July 31, 2003 4:20:20 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 MSMQ limitations 

What seemed to be no obstacle at all is turning out to complicate my architectural designs lately.

Microsoft Message Queuing (MSMQ) has this strange limitation (at least for year 2003) which prevents you to have messages longer than 4MB. Since most of .NET architects are dumping object instances into MSMQ, which get serialized into XML, we all have a problem with binary data. The problem lies in binary XML serialization,  XML Schema and its base64Binary datatype, which is used in encoding. We do not get 4MB, but ~3MB message content limitation, due to a well known 1.333 factor of base64 encoding.

Architectural design is now vastly different, since I have to split the binary documents, while allowing them to be linked appropriately with their parent messages. And since I'm building a document management system which will push .doc, .xls and friends on a MSMQ stack, 4MB is often not enough.

Categories:  Work | XML
Tuesday, June 24, 2003 3:17:59 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Chris Brumme 
I admire this guy. Not only he writes five pages of first class material from his vacation in Maui, he also does it besides the pool.
Categories:  Work | CLR
Monday, June 23, 2003 9:18:30 PM (Central Europe Standard Time, UTC+01:00)  #    Comments


 OTS 2003 
Sure enough, it was it's 8th reincarnation. It finished yesterday and I gave a talk on Wednesday. Talked about XML versus CLR type system, dived into XML Schema specifics and compared early programmatic type systems with modern ones, including JVM and CLR.

Later on, I joined in and answered questions on a e-business related roundtable. The conference room was half full (~100 folks), which wasn't that bad. See you next year Maribor guys...
Categories:  XML | Work
Friday, June 20, 2003 11:19:06 AM (Central Europe Standard Time, UTC+01:00)  #    Comments


 Politically correct 
Well, starting with a self definition. I belong to this camp. I do a lot of work for this camp.
Categories:  Personal | Work
Friday, June 20, 2003 11:08:28 AM (Central Europe Standard Time, UTC+01:00)  #    Comments


Copyright © 2003-2024 , Matevž Gačnik
Recent Posts
RSS: Atom:

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

My views often change.

This blog is just a collection of bytes.

Copyright © 2003-2024
Matevž Gačnik

Send mail to the author(s) E-mail