Showing posts with label windows. Show all posts
Showing posts with label windows. Show all posts

Sunday, February 7, 2010

.NET SplitContainer panels do not deserve a name?

For some time now I've been coding for a world-wide company called Zehnder. I'm implementing some logistic solutions for their Polish office workers. Technology limits: .NET 2.0.

Some part of the work includes UI - that is, Windows Forms. In order to split the form into two spaces, it seems obvious to use SplitContainer control especially designed for that purpose. Everything seems fine if one does not write unit tests for the UI. When it comes to doing so, a small shortcoming becomes visible - neither of the panels of the split container have a name! Unfortunately, the assumption of NUnitForms is that each control or form has it's own name; that is, one has to make sure that each control has a name. That is not a problem to name a control; it's a matter of simple assignments:

this.SplitContainer1.Panel1.Name = "Panel1";
this.SplitContainer1.Panel2.Name = "Panel2";
 
Not a big deal. But hey, where should one put that code? Is it the InitializeComponents() method body, which is strictly forbidden to be modified manually, a good place for that? Maybe. Until the Designer decides to overwrite this code. All in all, it seems that adding a separate method, let's say - InitializeSplitContainerNames() - and calling it after the InitializeComponents() method (in the form/control constructor) is the best solution (with all of the drawbacks this solution has).

I think.

Sunday, January 31, 2010

NUnitForms a testowanie plików exe

Traf chciał, że ostatnimi czasy realizuję zlecenia pewnej firmy mającej siedzibę we Wrocławiu. Ze względu na technologie stosowane w tejże firmie, rozwiązania które tworzę ze swoimi partnerami są oparte o .NET. Nadszedł taki moment, że trzeba było napisać testy do Windows Forms, które tworzą UI naszej aplikacji. Dość rozsądnym wyborem wydawał się być NUnitForms i na jego użycie się zdecydowaliśmy.

NUnitForms ma tą własność, że nie lubi testować plików EXE - z założenia wszystkie formatki miały być zapakowane w plik DLL aby NUnitForms mógł je testować. Zanim jednak ślepo wydzieliliśmy formatki do osobnej biblioteki dynamicznej, zastanowiliśmy się, jak testować sam plik EXE.

Da się to zrobić.

PS. I tak zmuszeni byliśmy wydzielić bibliotekę dynamiczną z formatkami. Powód był prozaiczny: nasza aplikacja była zależna od początkowych ustawień (pamiętanych w pliku konfiguracyjnym z pomocą narzędzi z przestrzeni System.Configuration). Ustawienia te były wstrzykiwane do formatki głównej programu. A teraz pytanie: jak wstrzyknąć taki obiekt z innego programu? :-) Nie przyszło nam żadne rozsądne rozwiązanie do głowy i postanowiliśmy podzielić projekt. Swoją drogą, jeśli ktoś zna jakieś ładne rozwiązanie tego problemu - z chęcią posłucham :-)

Friday, August 28, 2009

Toshiba Satellite A300-210 - drugie starcie.

To jakiś koszmar, żeby systemy operacyjne od jednego producenta wygryzały się nawzajem.

Moje wojowanie z instalacją trzech systemów operacyjnych na jednym komputerze już było na ukończeniu - wydawać by się mogło, że wystarczyło dodać jeszcze jeden niewielki wpis w /boot/grub/menu.lst i powinno być po krzyku.

I co się okazało?  Otóż z zainstalowanych Windowsów działa tylko ten, który był zainstalowany jako ostatni. Kilka prób naprawienia (zakończonych niepowodzeniem) i eksperymentów pozwoliły stwierdzić, że... wcale nie potrzebuję Windowsa 7. Póki co i tak nie ma do niego sterowników pozwalających obsłużyć mój sprzęt komputerowy, a XP ma pełne wsparcie. Pewnego dnia po prostu przeniosę swojego XP na maszynę wirtualną, a starą instalację zastąpię Windowsem 7. O ile będzie tego wart.

[Można powiedzieć, że się poddałem, ale granica szaleństwa już została przekroczona. Koszty walki już dawno przerosły oczekiwane zyski, co czyni każdy kolejny krok bezsensownym]

Inauguracja, czyli kilka słów na początek.

Zdecydowałem się.

Ta myśl chodziła za mną czas już jakiś, ale dotychczas zdrowy rozsądek skutecznie powstrzymywał moje sinusoidalne napady ekstrawertyzmu. Dzisiaj, oprócz oscylowania wokół potrzeby ekspresji, w odsieczy przyszła jeszcze potworna nuda. W obliczu zmasowanego ataku wymienionych,  zdrowy rozsądek musiał się poddać.

Będzie krótko i treściwie:

Cześć wszystkim i miłego czytania.