Archive for the ‘.NET’ Category
Moje przygody z Subsonic
Subsonic jest kolejnym narzędziem ORM stworzonym z myślą o .NET. Ostatnio było dosyć głośno o nim po tym jak Microsoft zdecydował się zatrudnić(zasymilować
) jego twórcę a samego Subsonica dołączyć do swojej implementacji MVC.
V spotkanie poznańskiej grupy .NET
http://www.dotnet.poznan.pl/
W ramach V spotkania poznańskiej grupy .NET miałem okazję przeprowadzić prezentację o WiX, czyli Windows Installer Xml ToolSet. Temat uważam jest dosyć ciekawy i często zaniedbywany – stąd mój pomysł aby przedstawić go szerszemu gronu. Oczywiście temat jest raczej około .netowy, ponieważ może być użyty dla dowolnego projektu.
Przedemną występował Michał Korsak z ITSoftware. Opowiadał o XAF ze stajni DevExpress, muszę przyznać że bardzo mnie zaciekawił ten framework. Na pewno przyjrzę się tematowi bliżej
To co mnie zabolało to stosunkowo mała widownia, myślałem że będzie więcej chętnych do posłuchania i poznania ludzi z branży .netowej. To co mnie najbardziej cieszy to, że zaczynają powstawać nieformalne inicjatywy ludzi zainteresowanych nowymi technologami. Jest to niepowtarzalna okazja żeby dowiedzieć się ciekawych rzeczy, poznać tricki, które stosują inni. Nie do przecenienia jest też poznawanie ludzi i oczywiście aspekt sieciowania.
Przy okazji przygotowań do prezentacji znalazłem rewelacyjny wywiad z Robem Menschingiem na TechNet Radio, w którym opowiada jak powstał WiX oraz o tym jak to się stało że jest to pierwszy projekt Microsoft, który uzyskał status Open Source. Znalazłem go całkiem przypadkowo, gdy szukałem jakiegoś Ľródła w którym można by sprawdzić jak poprawnie wymówić WiX.
Getting the most out of .NET data binding
http://jonkruger.com/blog/2007/02/16/getting-the-most-out-of-net-data-binding/
Mistrz .net 2007 – wyniki
Właśnie ogłoszono wyniki z konkursu Mistrz .NET 2007. Niestety nic nie wygrałem
na pocieszenie zająłem 20 miejsce, co nie jest takie złe biorąc pod uwagę liczbę osób biorących udział w konkursie. Oczywiście jestem pierwszy z Poznania ;p . Pełna lista wyników dostępna jest tutaj. Oczywiście miałem niesamowite szczęście i trafiłem na dużo pytań z VSTO.
Jeśli chodzi o sam konkurs to mam tylko jedną uwagę, część pytań była naprawdę tragicznie sformułowana. Wyglądało to tak jakby to były dosłowne tłumaczenia z angielskiego. Słabe.
Getting Started with NUnitForms
http://www.pksoftware.net/blog/2007/02/06/Getting+Started+With+NUnitForms.aspx
Castle project
http://danbunea.blogspot.com/2006/12/ajax-scaffolding-with-castle-monorail.html
Jakiś czas temu pisałem o castle project. Znalazłem rewelacyjny artykuł opisujący jak szybko używać frameworku, aby zwrobić coś jak rails dla .net i w dodatku z ajaxem.
CastleProject – MonoRail
http://www.castleproject.org/index.html
Tak jak bardzo spodobał mi się Ruby On Rails, część związana z Rubym jest dość problematyczna. Szczeg?lnie od strony tzw. deploymentu i wydajnośći. Sam pomysł związany z Rails jest moim zdaniem rewelacyjny.
Okazuje się, że powstała implementacja Rails na platformę .NET – nazywa się MonoRail i jest częścią projektu Castle. W ramach, kt?rego powstała między innymi implementacja ActiveRecord przy użyciu NHibernate.
Projekt nie jest jeszcze finalny, ale zapowiada się bardzo obiecująco. Mało os?b o nim słyszało, ponieważ M$ woli promować własne webowe frameworki np Web Client Software Factory (WCSF). Sam WCSF jest skomplikowany i wymaga sporo pracy, żeby się z nim oswoić. Podobno r?wnież M$ nie daje _ŻADNEGO_ wsparcia gdy używamy obcych framework?w – można o tym przeczytać tutaj w artykule Scotta Bellware. Generalnie w artykule Scotta jest parę ciekawych postulat?w na temat marketingu i adopcji rozwiązań M$ w opozycji np do Javy. Warto przeczytać.
http://www.castleproject.org/index.html
Using managed custom actions with WIX 3
Embedding custom actions written in .net may be very tricky. Some setup developers even consider it evil. However I found that with some research and reverse engineering it could be quite simple.
First of all you need InstalUtilLib.dll it’s a library which contains ManagedInstall procedure. This procedure allows you to call an assembly consisting of Installer inherited class. In .net 2.0 it is found somewhere near %WINDIR%\Microsoft.NET\Framework\v2.0.50727 . You have to embed it in Binary table of MSI file.
You will also need MSVBDPCADLL. This library setups runtime environment for .net assembly. I’ve seen some installer using .net custom actions which run without this library, hovewer for me it turned out that this library is needed. The easiest way to obtain this library is either decompile a vs made setup using dark from wix, or orca tool from microsoft.
Finally an extensive config file is also needed. This file is quite big and it’s best to obtain it like MSVBDPCADLL. In vs genereated setup it is called VSDNETCFG.ibd and is also located in Binary table.
<Binary Id=“InstallUtil“ SourceFile=“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtilLib.dll“ />
<Binary Id=“MSVBDPCADLL“ SourceFile=“Binary\MSVBDPCADLL.ibd“ />
<Binary Id=“VSDNETCFG“ SourceFile=“Binary\VSDNETCFG.ibd“ />
Now you can embed custom action like a normal file inside component
<File Id="MyCustomActionDll" Name="MyCustomAction.dll" Source="MyCustomAction.dll" />
Now it is time to create custom actions. First of all you have to create an action to call CheckFX from MSVBDCALL. It does some magic, which is unclear for me at the moment and sets VSDFxConfigFile property which will be used as a config file. You also need a custom action to call your assembly. You will need one customaction to set a property with commandline to call and another one which calls ManagedInstall from installutil. The property has to be named exactly the same as custom action calling ManagedInstall.
<CustomAction Id=“SetPrereqs“ BinaryKey=“MSVBDPCADLL“ DllEntry=“CheckFX“ />
<CustomAction Id=“MyCASetProp“ Property=“MyCA“ Value=“/installtype=notransaction /action=install /LogFile= "[#MyCustomActionDll]" "[VSDFxConfigFile]"“/>
<CustomAction Id=“MyCA“ BinaryKey=“InstallUtil“ DllEntry=“ManagedInstall“ Execute=“deferred“ />
Finally you have to instruct msi to execute your actions
<InstallExecuteSequence>
<Custom Action=“SetPrereqs“ After=“InstallFiles“>NOT Installed</Custom>
<Custom Action=“MyCASetProp“ After=“SetPrereqs“>NOT Installed</Custom>
<Custom Action=“MyCA“ After=“MyCASetProp“>NOT Installed</Custom>
</InstallExecuteSequence>
CopySourceAsHTML 2005
http://www.avocadosoftware.com/csblogs/dredge/archive/2006/01/10/544.aspx
32 public static DataTable GetLeftPaymentsSum()
33 {
34 return PaymentProvider.Instance.GetLeftPaymentsSum();
35 }
SqlDependency
http://msdn2.microsoft.com/en-us/library/dzf68kas.aspx
There is a cool new feature in .net 2.0 it is called SqlDependency it fires an event on sql result change. It allows a kind of asynchronous triggers and is probably the best choice to monitor foreign applications databasess for changes.
Only gotcha is you have to enable service broker on database being monitored.
Of course works only on sql server 2005.
I expect it will help in earning some bucks