<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://zine.net.pl/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">dario-g</title><subtitle type="html">Blog o programowaniu w .NET, ASP.NET (C#), a także o bazach danych MS SQL Server i nie tylko. Większość wpisów pochodzi z http://dario-g.com, ale pojawiają się także wpisy wyłącznie na tym blogu.</subtitle><id>http://zine.net.pl/blogs/dario-g/atom.aspx</id><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/default.aspx" /><link rel="self" type="application/atom+xml" href="http://zine.net.pl/blogs/dario-g/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.61129.2">Community Server</generator><updated>2007-07-02T22:20:59Z</updated><entry><title>Jak debugować zewnętrzne biblioteki w Visual Web Developer Express?</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/08/26/jak-debugowa-zewn-trzne-biblioteki-w-visual-web-developer-express.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/08/26/jak-debugowa-zewn-trzne-biblioteki-w-visual-web-developer-express.aspx</id><published>2008-08-25T22:37:24Z</published><updated>2008-08-25T22:37:24Z</updated><content type="html">&lt;p&gt;
Nie wiem czy wszyscy mają tego świadomość, ale w Visual Web Developer Express da się bez większych przeszk&amp;oacute;d debugować zewnętrzne biblioteki projektu. Jak wiadomo nie można ich dodać do pliku &lt;em&gt;sln&lt;/em&gt; w projekcie webowym i trzeba utrzymywać dwa pliki &lt;em&gt;sln&lt;/em&gt;. Jeden dla projektu webowego, drugi otwarty w Visual C#Express Edition.
&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="Jak debugować zewnętrzne biblioteki w Visual Web Developer Express?" href="http://dario-g.com/Jak-debugowac-zewnetrzne-biblioteki-w-Visual-Web-Developer-Express-0-84.aspx"&gt;(Jak debugować zewnętrzne biblioteki w Visual Web Developer Express?) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=1822" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>MVC.NET i hosting</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/08/18/mvc-net-i-hosting.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/08/18/mvc-net-i-hosting.aspx</id><published>2008-08-18T09:47:00Z</published><updated>2008-08-18T09:47:00Z</updated><content type="html">&lt;h1&gt;Hosting&lt;/h1&gt;Jak wiadomo z hostingiem dla aplikacji pisanych przy użyciu MVC.NET nie jest łatwo. W Polsce znam dwie firmy wogóle oferujące hosting aplikacji ASP.NET na platformie Windows. Jest to &lt;a href="http://www.amm.net.pl/windows_hosting.htm"&gt;http://www.amm.net.pl/windows_hosting.htm&lt;/a&gt; i &lt;a href="http://hostedwindows.pl/"&gt;http://hostedwindows.pl/&lt;/a&gt;. Na AMM mam swoją stronę już od dłuższego czasu i narzekać nie mogę - zero problemów. W drugiej firmie stoi ZINE i jak działa sami widzicie (&lt;a href="http://zine.net.pl/blogs/mgrzeg/default.aspx"&gt;Michał&lt;/a&gt; miałby tu pewnie coś do powiedzenia :).&lt;br&gt;&lt;br&gt;Na dodatek dziś dowiedziałem się, że poczynając od planu START można uruchamiać aplikacje oparte o MVC.NET bez definiowania rozszerzenia pliku w URL'u. Jak to możliwe skoro hosting oparty jest na IIS6?&lt;br&gt;&lt;br&gt;Otóż na prośbę skierowaną mailem firma AMM może zmienić indywidualnie konfigurację danej aplikacji. Daje to możliwość wyłączenia sprawdzania istnienia zasobu w konkretnej aplikacji. Wyłączenie tego sprawdzenia powoduje, że przy takim odwołaniu jak to:&lt;i&gt; http://domena.pl/blog/2007/08/18/hosting-mvc-net&lt;/i&gt; nie dostaniemy błędu 404. Żądanie takie zostanie przepuszczone przez IISa i trafi bezpośrednio do naszej aplikacji. :)&lt;br&gt;&lt;br&gt;UPDATE: &lt;a href="http://bartekszafko.pl/"&gt;Bartek&lt;/a&gt; napisał, że w HostedWindows jest tak samo, wystarczy wysłać maila. :)&lt;br&gt;&lt;h1&gt;Jakieś minusy?&lt;/h1&gt;Od tej pory nasza aplikacja będzie serwować każdy zasób i musi zatroszczyć się o obsługę żądań do tych nieistniejących, nawet statycznych, takich jak: css, js, itd. Przy prawidłowej konfiguracji żądanie do kontentu statycznego przejmuje DefaultStaticHandler.&lt;br&gt;&lt;br&gt;Ponadto trzeba mieć na uwadze sposób działania tego handlera. Otóż jeśli podczas żądania do kontentu statycznego nie zostanie zmodyfikowany/dodany żaden nagłówek i nic nie zostanie dopisane do kontentu oraz nie zostanie założony żaden filtr (patrz kompresja) i proces działa właśnie na IIS6 to żądanie takie zostanie przekazane spowrotem do IISa. W przeciwnym wypadku żądanie to zostanie wykonane przez StaticFileHandler, który nie działa w sposób optymalny (na przykład nie obsługuje nagłówków 'If-Modified-Since' czy 'If-None-Match'). Dodatkowo handler ten nie wczytuje do pamięci wcześniej pobieranego zasobu, co oznacza każdorazowe czytanie plików z dysku za każdym żądaniem.&lt;br&gt;&lt;br&gt;Oczywiście można napisać własny handler, który będzie lepszy i bardziej optymalny, albo poszukać i &lt;a href="http://msmvps.com/blogs/omar/archive/2008/06/30/deploy-asp-net-mvc-on-iis-6-solve-404-compression-and-performance-problems.aspx"&gt;znaleźć na sieci już napisany&lt;/a&gt;. Tu o problemach i ich rozwiązaniu pisał niejaki Omar. :)&lt;br&gt;&lt;br&gt;Poza tym dobrą praktyką jest wystawianie statycznego kontentu z innego miejsca niż sama aplikacja. Przykładowo css i js wystawiamy na &lt;i&gt;static.domena.pl&lt;/i&gt;, gdzie sama aplikacja działa na &lt;i&gt;domena.pl&lt;/i&gt;. Dzięki temu static.domena.pl działa standardowo bezpośrednio na IIS'ie bez żadnych dodatkowych zmian. Z planów hostingowych obu firm wynika iż można zakładać kilka subdomen w ramach jednej domeny, a każda subdomena jest odrębną aplikacją.&lt;br&gt;&lt;br&gt;Zatem do dzieła. Spodziewam się teraz wysypu startup'ów opartych o MVC.NET ;)))))&lt;br&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=1734" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author><category term="aspnet" scheme="http://zine.net.pl/blogs/dario-g/archive/tags/aspnet/default.aspx" /><category term="mvc" scheme="http://zine.net.pl/blogs/dario-g/archive/tags/mvc/default.aspx" /></entry><entry><title>int widoczny jako hex</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/08/13/int-widoczny-jako-hex.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/08/13/int-widoczny-jako-hex.aspx</id><published>2008-08-13T21:41:34Z</published><updated>2008-08-13T21:41:34Z</updated><content type="html">&lt;p&gt;
Piszę, klikam, debuguję, programuję... klikam... ups... coś mi się przełączyło i zamiast liczby dziesiętnej Visual Studio pokazuje w tooltipie reprezentację hexadecymalną.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;img src="http://zine.net.pl/file.aspx?file=41.gif" alt="Hex" /&gt;
&lt;/p&gt;
&lt;p&gt;
Ki czort? Pr&amp;oacute;żno szukać opcji zmieniającej spos&amp;oacute;b wyświetlania w menu &lt;em&gt;View&lt;/em&gt;, czy &lt;em&gt;Tools/Options&lt;/em&gt;. Poświęciłem na to trochę czasu i nie znalazłem. Myślałem już, że środowisko zwariowało, więc restarcik. ;) Niestety także nic nie pomogło.
&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="int widoczny jako hex" href="http://dario-g.com/int-widoczny-jako-hex-0-83.aspx"&gt;(int widoczny jako hex) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=1720" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>Konfiguracja aplikacji - własne podejście</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/06/11/konfiguracja-aplikacji-wlasne-podejscie.aspx" /><link rel="enclosure" type="text/plain" length="3691" href="http://zine.net.pl/blogs/dario-g/attachment/1156.ashx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/06/11/konfiguracja-aplikacji-wlasne-podejscie.aspx</id><published>2008-06-11T18:43:00Z</published><updated>2008-06-11T18:43:00Z</updated><content type="html">&lt;P&gt;Każda aplikacja nie może się obyć bez konfiguracji. W ASP.NET mamy do dyspozycji web.config, który z jednej strony zawiera ustawienia aplikacji dotyczące platformy, framework'a, a z drugiej własne ustawienia aplikacji - appSettings. Czasami zdarza się, że tych ustawień może być bardzo dużo co powoduje zmniejszoną czytelność i pomieszanie z ustawieniami systemowymi. Dlatego też w każdej aplikacji, którą tworzę korzystam z własnego mechanizmu przechowywania ustawień. Rozdzielenie tych ustawień powoduje, że mój plik web.config zawiera podstawowe tagi frameworka, które są niezależne od aplikacji.&lt;/P&gt;
&lt;P&gt;Stworzyłem zatem prostą klasę &lt;EM&gt;AppConfig&lt;/EM&gt;, która implementuje znany pattern Singleton. W chwili pierwszego skorzystania z obiektu klasa zostaje zainicjalizowana i zostają załadowane wszystkie ustawienia aplikacji.&lt;/P&gt;
&lt;P&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;static&lt;/span&gt; AppConfig config &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;static&lt;/span&gt; AppConfig Current&lt;br /&gt;{&lt;br /&gt;    get&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt;(config == &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;null&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;lock&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;typeof&lt;/span&gt;(AppConfig))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt;(config == &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    config &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;new&lt;/span&gt; AppConfig();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;return&lt;/span&gt; config;&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Ustawienia zapisywane są w prostym pliku XML o stałej nazwie 'application.xml', który zawiera proste elementy.&lt;/P&gt;
&lt;P&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt; &lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;config&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &amp;lt;!-- Configuration for production server --&amp;gt;&lt;br /&gt;    &amp;lt;application.name&amp;gt;Project name&amp;lt;/application.name&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;shared.upload-directory&amp;gt;C:\Project\shared&amp;lt;/shared.upload-directory&amp;gt;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;config&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Do załadowania danych użyłem poprostu XMlDocument, który ładuje wszystkie tagi pokolei do kolekcji. Dodatkowo konfigurator szuka pliku o nazwie 'application.&lt;EM&gt;machineName&lt;/EM&gt;.xml', gdzie dla danej maszyny można nadpisać ustawienia z podstawowego pliku konfiguracyjnego. I tak dla przykładu w podstawowym pliku mamy ustawienia takie jakie obowiązują w środowisku produkcyjnym. W plikach rozszerzających mamy konfigruację, na przykład developerską, która jest&amp;nbsp;prywatna dla maszyny danego developera.&lt;/P&gt;
&lt;P&gt;Każdy programista w zespole może stworzyć własną konfigurację nadpisując tylko te pozycje, które wymagają zmiany do uruchomienia aplikacji na danej maszynie. Przykładowo połączenie do bazy danych, z którą komunikuje się aplikacja może być zupełenie inne niż na produkcji, czy u innego programisty.&lt;/P&gt;
&lt;P&gt;Pobranie danego ustawienia&amp;nbsp;wymaga podania konkretnego klucza oraz typu danych jaki spodziewamy się uzyskać. Mamy do wyboru dwie metody. Pierwsza oczekuje istnienia parametru w konfiguracji. Jeśli podanego parametru nie ma to zostanie wyrzucony wyjątek. Druga metoda pozwala na podanie wartości domyślnej i oznacza to, że parametr jest niewymagany i nie musi istnieć w konfiguracji. Dopisanie takiego parametru przesłoni domyślną wartość podaną w kodzie.&lt;/P&gt;
&lt;P&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;public&lt;/span&gt; T GetItem&amp;lt;T&amp;gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;string&lt;/span&gt; key)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;lock&lt;/span&gt; (locker)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt; (!items.ContainsKey(key))&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;throw&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;new&lt;/span&gt; NotImplementedException(String.Format(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"The key '{0}' is not defined in application config file."&lt;/span&gt;, key));&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;return&lt;/span&gt; (T)Convert.ChangeType(items[key], &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;typeof&lt;/span&gt;(T));&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;public&lt;/span&gt; T GetItem&amp;lt;T&amp;gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;string&lt;/span&gt; key, T defaultValue)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;lock&lt;/span&gt; (locker)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt; (items.ContainsKey(key))&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;return&lt;/span&gt; (T)Convert.ChangeType(items[key], &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;typeof&lt;/span&gt;(T));&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;return&lt;/span&gt; defaultValue;&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;A poniżej przykład pobrania wartości:&lt;/P&gt;
&lt;P&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;string&lt;/span&gt; _name &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; AppConfig.Current.GetItem&amp;lt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;string&lt;/span&gt;&amp;gt;(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"application.name"&lt;/span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/P&gt;
&lt;P&gt;Niektórzy mogą zapytać po co takie zmyślne i długie nazwy parametrów. Otóż mam w tym dwa cele. Po pierwsze parametr jest dobrze opisany i nazwa tagu odrazu wiele mówi. Po drugie dzielenie nazwy kropką na segmenty daje mi możliwość udoskonalenia mechanizmu, ale o tym w kolejnym poście. :)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://zine.net.pl/blogs/dario-g/attachment/1156.ashx"&gt;Kod źródłowy całej klasy AppConfig&lt;/A&gt;&amp;nbsp; - zapraszam do pobrania i korzystania/eksperymentowania. :)&lt;/P&gt;
&lt;P&gt;PS&lt;BR&gt;Na fali ostatnich wydarzeń post ten ukazał się tylko na zine.net.pl i nie jest dostępny na mojej prywatnej stronie. :)&lt;/P&gt;
&lt;P&gt;PS2&lt;BR&gt;Kod AppConfig używa kilka dodatkowych elementów i bez nich się nie kompiluje, ale zamieszczam go tutaj raczej w celach ogólno-poglądowych całego rozwiązania.&lt;/P&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=1156" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author><category term="aspnet" scheme="http://zine.net.pl/blogs/dario-g/archive/tags/aspnet/default.aspx" /><category term="web.config" scheme="http://zine.net.pl/blogs/dario-g/archive/tags/web_2E00_config/default.aspx" /></entry><entry><title>MVC.NET i brakujące SubView</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/05/23/mvc-net-i-brakuj-ce-subview.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/05/23/mvc-net-i-brakuj-ce-subview.aspx</id><published>2008-05-23T00:12:27Z</published><updated>2008-05-23T00:12:27Z</updated><content type="html">&lt;p&gt;
Od jakiegoś czasu dłubię&amp;#160;sobie w domku aplikacyjkę ćwicząc&amp;#160;&lt;a href="http://www.codeplex.com/aspnet/"&gt;MVC.NET&lt;/a&gt;. Co to jest i jak to się je napiszę innym razem. Teraz chciałem zwr&amp;oacute;cić uwagę na jeden aspekt. MVC.NET jest obecnie w fazie rozwojowej. O wersji beta można narazie sobie pomarzyć, a z tym co narazie jest trzeba sobie radzić. 
&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="MVC.NET i brakujące SubView" href="http://dario-g.com/MVCNET-i-brakujace-SubView-0-78.aspx"&gt;(MVC.NET i brakujące SubView) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=973" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>Ku pamięci ITCore</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/04/29/ku-pami-ci-itcore.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/04/29/ku-pami-ci-itcore.aspx</id><published>2008-04-29T18:59:20Z</published><updated>2008-04-29T18:59:20Z</updated><content type="html">&lt;p&gt;
Projekt ITCore został pogrzebany. Mimo iż nie byłem związany z tym projektem ani trochę to życzyłem ekipie tworzącej ITCore powodzenia. Niestety ani grupa pasjonat&amp;oacute;w, ani &amp;quot;profesjonalna firma&amp;quot; nie dała rady. Szkoda.... 
&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;img src="http://zine.net.pl/file.aspx?file=38.gif" /&gt; 
&lt;/div&gt;
&lt;p&gt;
Więcej wyjaśnień na temat tego co się stało &lt;a href="http://zine.net.pl/blogs/sqlgeek/archive/2008/04/24/pl-by-sobie-portal.aspx"&gt;pisze Brejk&lt;/a&gt;. Niestety troszeczkę tracę wiarę w to iż: 
&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="Ku pamięci ITCore" href="http://dario-g.com/Ku-pamieci-ITCore-0-77.aspx"&gt;(Ku pamięci ITCore) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=948" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>MGrzeg na łamach microsoft.com/poland</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/03/21/mgrzeg-na-amach-microsoft-com-poland.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/03/21/mgrzeg-na-amach-microsoft-com-poland.aspx</id><published>2008-03-21T20:43:00Z</published><updated>2008-03-21T20:43:00Z</updated><content type="html">&lt;P&gt;&lt;IMG src="http://dario-g.com/file.aspx?file=37.jpg" align=left&gt; &lt;/P&gt;
&lt;P&gt;Na stronach polskiego oddziału microsoft.com pojawił się wywiad z polskim MVP Michałem Grzegorzewskim. Pogratulować samozaparcia w dążeniu do celu i zaangażowania w działalność grupy &lt;A href="http://groups.google.com/group/wg-net"&gt;WG.NET&lt;/A&gt;, &lt;A href="http://zine.net.pl/"&gt;Zine.NET&lt;/A&gt;, organizację konferencji &lt;A href="http://www.c2c2008.pl/"&gt;C2C 2008&lt;/A&gt;, itd. itd. &lt;/P&gt;
&lt;P style="FONT-SIZE:9px;TEXT-ALIGN:right;"&gt;&lt;A title="MGrzeg na łamach microsoft.com/poland" href="http://dario-g.com/MGrzeg-na-lamach-microsoftcompoland-0-76.aspx"&gt;(MGrzeg na łamach microsoft.com/poland) - Czytaj więcej na dario-g.com&lt;/A&gt;&lt;/P&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=881" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>ClassNamer, czyli jak nazwać klasę</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/03/19/classnamer-czyli-jak-nazwa-klas.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/03/19/classnamer-czyli-jak-nazwa-klas.aspx</id><published>2008-03-18T23:41:11Z</published><updated>2008-03-18T23:41:11Z</updated><content type="html">&lt;p&gt;
Czy nie spotykacie się czasami z problemem jak nazwać klasę, aby nazwa była wymowna i 'profi'? ;) Ot&amp;oacute;ż powstał malutki serwisik, kt&amp;oacute;ry ułatwi Wam to zadanie. :) &lt;a href="http://www.ClassNamer.com"&gt;ClassNamer&lt;/a&gt;&amp;#160;generuje nazwy klas, kt&amp;oacute;re można z powodzeniem wyorzystać w swoim projekcie. ;)
&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="ClassNamer, czyli jak nazwać klasę" href="http://dario-g.com/ClassNamer-czyli-jak-nazwac-klase-0-75.aspx"&gt;(ClassNamer, czyli jak nazwać klasę) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=872" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>C# snippet</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/03/14/c-snippet.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/03/14/c-snippet.aspx</id><published>2008-03-14T22:26:25Z</published><updated>2008-03-14T22:26:25Z</updated><content type="html">&lt;p align="left"&gt;
Właśnie spędzam troszkę czasu nad pewnym programikiem. Staram sobie ułatwić pracę jak mogę, więc szukam r&amp;oacute;żnych możliwości poprawy efektywności pracy. Snippet's są właśnie takim ułatwieniem. Niestety podstawowe funkcje to troszkę za mało, więc postanowiłem zwiększyć sobie ich ilość dodając kolejne. Na pierwszy ogień poszedł &lt;a href="http://pl.wikipedia.org/wiki/Wzorzec_singletonu"&gt;Singleton&lt;/a&gt;. 
&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="C# snippet" href="http://dario-g.com/C-snippet-0-73.aspx"&gt;(C# snippet) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=865" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>IE8 beta 1</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/03/06/ie8-beta-1.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/03/06/ie8-beta-1.aspx</id><published>2008-03-06T22:04:34Z</published><updated>2008-03-06T22:04:34Z</updated><content type="html">&lt;p align="center"&gt;
Zaisntalowałem IE 8 beta 1 i r&amp;oacute;wnie szybko o nim zapomniałem. Wersja beta 1 to bardzo wczesna wersja, ale wiem już też, że za wczesna do test&amp;oacute;w. Same strony wyświetlają się prawie poprawnie, ale problem większy staje się z niekt&amp;oacute;rymi komponentami systemu. W moim przypadku systemu Windows Vista. 
&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="IE8 beta 1" href="http://dario-g.com/IE8-beta-1-0-71.aspx"&gt;(IE8 beta 1) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=847" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>Vista SP1 zainstalowany</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/02/15/vista-sp1-zainstalowany.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/02/15/vista-sp1-zainstalowany.aspx</id><published>2008-02-14T23:29:09Z</published><updated>2008-02-14T23:29:09Z</updated><content type="html">&lt;p&gt;
Dziś zainstalowałem ServicePack 1 na firmowym laptopie, na kt&amp;oacute;rym mam zainstalowaną Vistę w polskiej wersji Business. Wszystko wykonałem &lt;a href="http://www.ddluk.eu/2008/02/09/instalacja-sp1-windows-vista/"&gt;według opisu na blogu ddluk.eu&lt;/a&gt;. Cały proces instalacji jest mimo wszystko niezwykle prosty i tak naprawdę nie do końca zgodny z opisem, gdyż obie wspomniane na blogu poprawki już miałem wcześniej zainstalowane. (Nie wiem skąd/nie wiem jak :))
&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="Vista SP1 zainstalowany" href="http://dario-g.com/ista-SP1-zainstalowany-0-68.aspx"&gt;(Vista SP1 zainstalowany) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=796" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>Masowe zmniejszanie zdjęć</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/01/22/masowe-zmniejszanie-zdj.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/01/22/masowe-zmniejszanie-zdj.aspx</id><published>2008-01-22T15:45:39Z</published><updated>2008-01-22T15:45:39Z</updated><content type="html">&lt;p&gt;
Kilka dni temu postanowiłem zgrać sobie na dysk wszystkie fotki, kt&amp;oacute;re z czasem zgrywałem na płytki robiąc kopię bezpieczeństwa. Fotki te chciałem zgrać na dysk, aby m&amp;oacute;c je przeglądać. Do przeglądania nie potrzebna mi jest pełna wielkość z 8 megapikselowej matrycy, więc chciałem je masowo pomniejszyć. Pomyślałem, że zastosuję się do rady kolegi i zainstaluję fajny poniekąd programik IrfanView. 
&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="Masowe zmniejszanie zdjęć" href="http://dario-g.com/Masowe-zmniejszanie-zdjec-0-64.aspx"&gt;(Masowe zmniejszanie zdjęć) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=757" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>Kod źródłowy Framework.NET dostępny z debuggera</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2008/01/17/kod-r-d-owy-framework-net-dost-pny-z-debuggera.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2008/01/17/kod-r-d-owy-framework-net-dost-pny-z-debuggera.aspx</id><published>2008-01-17T08:42:05Z</published><updated>2008-01-17T08:42:05Z</updated><content type="html">&lt;p&gt;
Jak można się dowiedzieć już&amp;#160;z niejednego &lt;a href="http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx"&gt;źr&amp;oacute;dła&lt;/a&gt;&amp;#160;można już podczas debugowania aplikacji &amp;quot;wejść w głąb&amp;quot; Framework.NET i popatrzeć jak wygląda od środka. Super sprawa, ale niestety dotyczy tylko środowiska Microsoft Visual Studio 2008 i to w dodatku bez linii Express. 
&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="Kod źródłowy Framework.NET dostępny z debuggera" href="http://dario-g.com/Kod-zrodlowy-FrameworkNET-dostepny-z-debuggera-0-63.aspx"&gt;(Kod źródłowy Framework.NET dostępny z debuggera) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=738" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>9 spotkanie warszawskiej grupy .NET</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2007/09/20/9-spotkanie-warszawskiej-grupy-net.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2007/09/20/9-spotkanie-warszawskiej-grupy-net.aspx</id><published>2007-09-20T21:52:21Z</published><updated>2007-09-20T21:52:21Z</updated><content type="html">&lt;p&gt;Właśnie wr&amp;oacute;ciłem z &lt;a href="http://www.wss.pl/NewsList/1,9280.aspx"&gt;dziewiątego spotkania Warszawskiej Grupy .NET&lt;/a&gt;. Spotkanie było bardzo interesujące. Jako pierwszy wystąpił Marcin Pytlik i zaprezentował PowerShell'a. Mimo iż elementy tej prezentacji widziałem już wcześniej to mimo wszystko temat jest na tyle ciekawy, że&amp;#160;przysłuchiwałem się&amp;#160;uważnie.&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="9 spotkanie warszawskiej grupy .NET" href="http://dario-g.com/9-spotkanie-warszawskiej-grupy-NET-0-56.aspx"&gt;(9 spotkanie warszawskiej grupy .NET) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=450" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry><entry><title>Jak dopisać dane do istniejącego pliku XML</title><link rel="alternate" type="text/html" href="http://zine.net.pl/blogs/dario-g/archive/2007/07/02/jak-dopisa-dane-do-istniej-cego-pliku-xml.aspx" /><id>http://zine.net.pl/blogs/dario-g/archive/2007/07/02/jak-dopisa-dane-do-istniej-cego-pliku-xml.aspx</id><published>2007-07-02T20:20:59Z</published><updated>2007-07-02T20:20:59Z</updated><content type="html">&lt;p&gt;Od&amp;#160;jakiegoś czasu (o ile mam ten czas)&amp;#160;przepisuję na nowo XmlBloga. Tym razem chcę skorzystać z klasy XMLWriter, a nie jak do tej pory XmlDocument. Dlaczego z tej klasy? Ot&amp;oacute;ż pozwala ona bardziej panować nad tym co i w jaki spos&amp;oacute;b jest zapisywane do pliku XML.&lt;/p&gt;&lt;p&gt;Ponadto dzięki tej klasie mogę dopisywać kolejne dane na koniec istniejącego pliku &lt;strong&gt;bez wczytywania całości&lt;/strong&gt;. Jest to dosyć istotne, aby zwiększyć wydajność i przy większej ilości post&amp;oacute;w nie wczytywać ich wszystkich do pamięci. Zwłaszcza kiedy na stronie wyświetlamy tylko kilka ostatnich.&lt;/p&gt;&lt;p style="text-align:right;font-size:9px;"&gt;&lt;a title="Jak dopisać dane do istniejącego pliku XML" href="http://dario-g.com/Jak-dopisać-dane-do-istniejącego-pliku-XML-0-47.aspx"&gt;(Jak dopisać dane do istniejącego pliku XML) - Czytaj wi&amp;#281;cej na dario-g.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://zine.net.pl/aggbug.aspx?PostID=374" width="1" height="1"&gt;</content><author><name>dario-g</name><uri>http://zine.net.pl/members/dario-g.aspx</uri></author></entry></feed>