Jak automatycznie generować skrypt bazy danych np. w celu okresowego przebudowywania programu instalacyjnego ze względu na zmianę struktury tejże bazy.
Bazy danych i XML 4325 dni, 19 godzin, 8 minut temu 72 źrodło rozwiń
O strukturach na blogu pisałem już wielokrotnie m.in.: “Klasy i struktury w C#”, “Dlaczego struktury nie mogą posiadać konstruktora bez parametrów?”, “StructLayout – wprowadzenie”, “StructLayout–zastosowanie”. W pierwszych z tych postów, przedstawiającym różnice między klasami a strukturami napisałem, że co prawda struktury nie mogą dziedziczyć po klasach ale mogą za to implementować interfejsy. Dzisiaj chciałbym rozszerzyć to o kilka słów gdyż w tamtym wpisie ograniczyłem się tylko do stwierdzenia, że j...
Sztuka programowania 4326 dni, 19 godzin, 58 minut temu 99 źrodło rozwiń
„Ciemno wszędzie, głucho wszędzie, Co to będzie, co to będzie?” … ano będzie, będzie! a raczej jest! pierwszy odcinek drugiego sezonu codingtv();! Dzisiaj zaczynamy tworzyć instalator naszego bloga. Przygotowujemy metodę do uaktulniania ustawień bazy danych w web.confgu i standardowo omawiamy komentarze z poprzedniego odcinka. Pamiętamy również o naszym konkursie i zgodnie z obietnicą dzisiaj wylosowaliśmy zwycięzcę
Knockout jest javascriptowym frameworkiem, pozwalającym na wprowadzenie w obrębie interfejsu użytkownika, wzorca MVVM (Model View ViewModel) - w ramach projektu, przy którym obecnie pracuję często go stosujemy - warto się z nim zapoznać (więcej o knockoutjs tutaj). W wielkim skrócie, pozwala on na "podpięcie" elementów interfejsu, takich jak na przykład textbox'y, do modelu danych - aktualizacja wartości w tak podpiętym textbox'ie powoduje aktualizację wartości w modelu, a co za tym idzie w innych elemen...
O dwóch sposobach inicjalizacji właściwości obiektu pisałem już tutaj. Dziś chciałbym pokazać jak zainicjalizować kolekcję używając “nowego” mechanizmu wprowadzonego w C# 3.0. Z poprzedniego post’a wiadomo, że właściwości można ustawiać tak:internalclass Person { public Person() { } public List
Hi everyone, I was thinking about subject of this post. I tried invent something what wasn't written yet. After few days I asked myself: "What should I expect during reading about programming in Metro?" .The answer: "Workshop!" But not basic "hands-on-lab" which give you some information and recommend you to read many articles if you would like to know more. I was expecting "driving" through all process of project . From bussiness case, architecture, development backend, to Metro application im...
Mobile development 4330 dni, 7 godzin, 22 minuty temu 50 źrodło rozwiń
W zeszłym tygodniu na dotNETomaniaku wypromowano artykuł na temat interfejsów. Zapoznałem się z nim i odnoszę wrażenie, że autor nie rozumie w pełni roli interfejsu i myli go z klasą bazową. O taką pomyłkę rzeczywiście nietrudno, wiele klas buduje bowiem swoją funkcjonalność na podstawie interfejsów, ale to nie oznacza automatycznie, że interfejs jest ich przodkiem, zaczynem. Trzeba zacząć od tego, że choć interfejs umieszcza się w definicji klasy tak samo jak klasę dziedziczoną...
Sztuka programowania 4330 dni, 10 godzin, 35 minut temu 98 źrodło rozwiń
Piotr Zieliński pisze ciekawy cykl “Dobre i złe praktyki w C#”, a ja dzisiaj chciałem się odnieść do części VI i opisać rzecz, której dotychczas nie byłem świadom. Inicjalizacja właściwości obiektu.
It is a common practice to validate function arguments before running actual code. Usually validation looks like that: public void Update(Car entity) { if(entity ==null) throw new ArgumentNullException("entity"); } There is nothing wrong with this code, however we have to repeat this piece of code in every function. Of course we could create some helper class for argument validation and call approperiate validation function before launching...
Platforma .NET pozwala na definiowanie metadanych, czyli pewnych informacji opisujących różne elementy kodu. Funkcjonalność ta realizowana jest poprzez atrybuty. Atrybuty używane mogą być do opisu takich elementów jak klasy, metody, zdarzenia, pola, właściwości oraz wielu innych. Oprócz szeregu zdefiniowanych atrybutów mamy możliwość tworzenia własnych.
Wyrażenia lambda są łatwe w użyciu, ale jak to bywa z takimi ułatwieniami również nieświadomie można spowodować poważne problemy. Przykład:class SampleClass { } class Factory { private Type _type =typeof (SampleClass); public Func
Sztuka programowania 4332 dni, 22 godziny, 31 minut temu 144 źrodło rozwiń
SQL Server 2012 jest już na rynku chwilę. Pracując z klientami i partnerami zbudowałem sobie na własne potrzeby listę co cenniejszych zasobów pomocnych w opanowaniu zarówno samej technologii, jak i trudnej sztuki licencjonowania. Mam nadzieję, że dzięki wymienionym na poniższej liście materiałom uda się odszukać większość odpowiedzi na nurtujące Was pytania i wątpliwości.
Bazy danych i XML 4334 dni, 6 godzin, 19 minut temu 86 źrodło rozwiń
Kolejna część artykułu o dobrych i złych praktykach. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/dobre-i-zle-praktyki-w-c-sharp–czesc-6.aspx
Sztuka programowania 4335 dni, 22 godziny, 36 minut temu 350 źrodło rozwiń
Notacja węgierska to ZŁOOOOOO! Słychać to ze wszystkich stron i trudno się z tym nie zgodzić. Przedrostki nazw identyfikatorów określające typy takiego identyfikatora nigdy nie były jakimś nowatorskim rozwiązaniem – prędzej protezą. Czy oznacza to jednak, że całość tego pomysłu należy odbierać negatywnie? W mojej opinii nie. A dlaczego - o tym tenże wpis.
Sztuka programowania 4335 dni, 22 godziny, 36 minut temu 148 źrodło rozwiń
Wracając jeszcze do filozofowania o kodzie, dziś trochę o cechach klas, a dokładniej: pola i właściwości. Zanim wymyślono idee właściwości dostęp do pól odbywał się na dwa sposoby. Pole w klasie (np. name) mogło być publiczne i każdy miotał nim jak szatan, druga opcja to dostęp kontrolowany przez parę metod typu GetName i SetName. Umożliwiały one kontrolowanie tego kto i na jakich zasadach może korzystać z cech wewnętrznych klasy. Później, aby pominąć pisanie GetName/SetName, wymyślono właściwości, któr...
Sztuka programowania 4335 dni, 22 godziny, 36 minut temu 144 źrodło rozwiń
O walidacji w ASP.NET MVC raz jeszcze - tym razem, skupię się tylko na stronie klienta. Wykorzystując do tworzenia layoutów, niestandardowe kontrolki, może się zdarzyć, że standardowa walidacja jQuery w ASP.NET MVC nie będzie działać - przykład z życia, konkretnie z dzisiaj: mamy textbox'a, służącego do wprowadzania kwoty - do wyrenderowania go, skorzystałem z pluginu do jQuery - autonumeric (warto się zapoznać - bardzo przydatne). Nie będę się wgłębiać w konfigurację samego pluginu, ogólnie rzecz biorąc...
O interfejsach napisano już wiele artykułów. Postaram się dlatego podejść do tego zagadnienia od innej strony. Na początek pytanie: czym różni się metoda wirtualna od implementacji metody z interfejsu? Mogło by się zdawać, że są to bardzo podobne operacje.
Sztuka programowania 4337 dni, 16 godzin, 45 minut temu 200 źrodło rozwiń
Walidacja oparta o atrybuty walidacyjne jest w ASP.NET MVC świetnym rozwiązaniem - w standardowych rozwiązaniach sprawdza się znakomicie - jednak czasami, podczas pracy nad projektem dochodzimy do sytuacji, gdy zaczyna nam brakować standardowych atrybutów. W takim przypadku najczęściej warto stworzyć własny atrybut walidacyjny oraz jego obsługę. Nie jest to wcale takie trudne, co postaram się pokazać w niniejszym wpisie.Po pierwsze, atrybut walidacyjny Przykład - często zachodzi potrzeba sprawdzania wy...
Artykułów na temat Garbage Collector zostało napisanych już wiele. Dlatego nie będę przedstawiać dokładnie zasady jego działania, a raczej praktyczne wskazówki implementacji finalizerów i wzorca IDisposable.
Z komendy Make Object ID korzystam już od bardzo dawna, nie codziennie ale w niektórych sytuacjach jest ona nieodzowna. Ostatnio zorientowałem się jednak, że nawet doświadczeni użytkownicy VS mogą o niej wiedzieć i stąd pojawił się pomysł na ten post.