Jak automatycznie generować skrypt bazy danych np. w celu okresowego przebudowywania programu instalacyjnego ze względu na zmianę struktury tejże bazy.
Strona głównaUżytkownik
PaSkol | użytkownik
Bazy danych i XML 4442 dni, 18 godzin, 48 minut temu 72 ź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 4447 dni, 10 godzin, 14 minut temu 98 ź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 4452 dni, 22 godziny, 15 minut temu 148 źrodło rozwiń
Proces instalacji to czynność długotrwała. Dodatkowo wymaga on co jakiś czas uwagi, choćby po to, aby potwierdzić warunki licencji, lub wcisnąć przycisk Dalej, albo podjąć jakąś decyzję. Niniejszy artykuł opisuje co należy zrobić, aby przygotować instalację automatyczną, w pełni powtarzalną.
Bazy danych i XML 4461 dni, 23 godziny, 27 minut temu 58 źrodło rozwiń
Kiedy rozważa się dostęp do bazy danych z poziomu urządzenia przenośnego zazwyczaj (skojarzenia to przekleństwo) na myśl przychodzi wersja Compact SQL Serwera. W większości przypadków jest to właściwy trop, niemniej obecnie urządzenia coraz częściej wyposażone są w Wi-Fi, co daje nowe możliwości, jeżeli chodzi o przechowywanie przez nie danych. Tak wyposażone mogą bowiem skorzystać ze zwykłego SQL-a, z całym wachlarzem dobrodziejstw, jakie posiada używana wersja...
Bazy danych i XML 4481 dni, 12 godzin, 18 minut temu 52 źrodło rozwiń
Do niedawna nie miałem pojęcia o czymś takim jak NDepend. Co prawda szperając po sieci raz na jakiś czas trafiałem na informacje o metrykach, ale jakoś niespecjalnie mnie to pociągało, ani nie odczuwałem potrzeby, aby „szukać dziury w całym” czyli we własnym kodzie. Zakładałem, że jest wystarczająco prawidłowy, a ja nie mam aż tyle czasu, aby cyzelować go do perfekcyjnej postaci. Sytuacja zmieniła się, kiedy niedawno nadarzyła się okazja zostania obdarowanym właśnie ta aplikacją...
C# ma tę genialną zaletę, że pozwala komentować swoją treść specjalnymi znacznikami XML. Natychmiastowym efektem takich komentarzy jest ich prezentacja w postaci pomocy kontekstowej dla elementów kodu, które zostały nimi opatrzone. Drugie ich zastosowanie, to możliwość wygenerowania dla każdego pliku z treścią oprogramowania dokumentacji zawierającej elementy opatrzone wspomnianym typem komentarza. Niestety – określanie tych plików mianem dokumentacji jest nadużyciem...
Dzisiaj przykład skryptu SQL, który pozwala na serwerze MSSQL 2008r2 odtworzyć kopię dowolnej bazy danych, umieszczoną w dowolnej, dostępnej dla serwera SQL lokalizacji, na dowolną bazę danych serwera. Skrypt wymaga podania dwóch parametrów (które należy wprowadzić do dwóch, zadeklarowanych jako pierwsze, zmiennych) tj. ścieżki do kopii bezpieczeństwa oraz nazwy bazy danych. Wszystkie pozostałe informacje skrypt pobiera sobie automatycznie, czyli ...
Bazy danych i XML 4515 dni, 8 godzin, 18 minut temu 92 źrodło rozwiń
Niniejsze rozważania zacznę od następującej anegdoty, która doskonale oddaje ich sedno. Pewna mała dziewczynka przyglądała się mamie przygotowującej pieczeń: - Mamo, dlaczego gdy robisz pieczeń, to zawsze odcinasz końcówki mięsa i wkładasz je po bokach brytfanny? - Bo tak się piecze kochanie. - Ale dlaczego tak się piecze? - Końcówki obcina się, aby mięso lepiej się upiekło. - Mamo, ale przecież i bez tego mięso by się upiekło. - Córeczko, twoja babcia tak piekła, ciocia tak piecze i ...
Sztuka programowania 4518 dni, 7 godzin, 10 minut temu 163 źrodło rozwiń
To będzie króciutki wpis, niemniej traktujący o dość istotniej zasadzie programowania obiektowego, tj. zasadzie jednolitego dostępu. Jej treść brzmi następująco: Wszystkie usługi oferowane przez moduł powinny być dostępne za pośrednictwem jednolitej notacji, która nie zdradza, czy zostały one zaimplementowane z wykorzystaniem danych przechowywanych statycznie, czy też obliczanych na bieżąco w razie potrzeby. Jakie są zalety ze stosowania tej zasady? Otóż...
Sztuka programowania 4541 dni, 17 godzin, 28 minut temu 195 źrodło rozwiń
Na blogu Pawła Potasińskiego istnieje wpis o sposobach konwersji polskich liter zakodowanych w standardzie Mazovia w środowisku SQL Serwera. Jednym z tych sposobów jest zrealizowanie konwersji za pomocą funkcji rozszerzonej, napisanej w .NET. Niestety, nie wykorzystuje ona standardowych mechanizmów konwersji .NET (Encoding), ale zwykłą podmianę znaków (Replace). Dlaczego klasa Encoding nie podołała temu zadaniu i jak mimo wszystko zmusić ją do niego? Odpowiedź w tym wpisie.
Bazy danych i XML 4554 dni, 20 godzin, 54 minuty temu 121 źrodło rozwiń
W dwóch poprzednich wpisach rozważałem odczyt i zapis danych, które były odzwierciedleniem (obrazem) pamięci w tzw. programach Win32 (czyli pracujących w środowisku 32 bitowych Windows, z bezpośrednim, niezarządzanym dostępem do pamięci). Wypadałoby postawić „kropkę nad i” tj. wspomnieć jeszcze o klasie Buffer oraz opisać związane z nią i klasami Encoding i BitConverter niuanse, które, gdybym umieścił je w poprzednich wpisach, niepotrzebne utrudniły by lekturę ...
Sztuka programowania 4571 dni, 18 godzin, 53 minuty temu 88 źrodło rozwiń
Kontynuując temat z poprzedniego wpisu, obecnie przedstawię, w jaki sposób wypełnić plik, aby odpowiadał obrazowi pamięci oczekiwanemu przez aplikacje nie napisane w .NET (napisane w kodzie niezarządzanym). W tym wypadku swoją rolę ponownie odegrają klasy BitConvert oraz Encoding. W obu wypadkach użyte zostaną metody o takiej samej nazwie: GetBytes...
Sztuka programowania 4581 dni, 18 godzin, 38 minut temu 84 źrodło rozwiń
Jak wiadomo wszystkie dane platformy .NET są przechowywane w postaci obiektów [...], więc siłą rzeczy sposób przechowywania tychże danych jest ukryty przed programistą (obiekty są wszak hermetyczne). Jest to całkowicie odmienne podejście do przechowywania danych w stosunku do stosowanego przed erą .NET. Tam typy proste były zwyczajnie obszarem pamięci, który był odpowiednio interpretowany przez oprogramowanie (dbał o to kompilator)...
Sztuka programowania 4585 dni, 19 godzin, 9 minut temu 132 źrodło rozwiń
Przechodząc na język C#, chcąc nie chcąc programuje się zgodnie z wyrobionych dotąd stylem i wg starych przyzwyczajeń. Niemniej, staram się weryfikować, czy obrana droga rzeczywiście jest tą, z której należy korzystać na nowym terenie, jakim jest C#. Dotąd często korzystałem z możliwości domyślnych parametrów, tak w konstruktorach, jak i w metodach (procedurach i funkcjach). Ostatnio mój kolega zauważył, że C# do konstrukcji klas nie używa konstruktorów z domyślnymi parametrami...
Sztuka programowania 4594 dni, 11 godzin, 38 minut temu 131 źrodło rozwiń
Postanowiłem poruszyć kwestię zasady oddzielania poleceń od zapytań. Pisał o niej ostatnio Piotr Zieliński. Cóż to takiego te „polecenia” i „zapytania”? Ujmując to zagadnienie bardzo ogólnie można powiedzieć, że cechy charakteryzujące klasę dzielą się na polecenia i zapytania. Pierwsze z nich służą do modyfikowania obiektu, drugie do uzyskiwania o nim informacji...
Architektura 4608 dni, 13 minut temu 124 źrodło rozwiń
Piotr Zieliński na swoim blogu rozważał zasadność redefiniowania przez klasy dziedziczące metod z klas dziedziczonych (przy pomocy modyfikatora new), warto zapoznać się z tym wpisem przed kontynuowaniem lektury niniejszego tekstu. Na zakończenie Piotr poprosił o podanie innych, od przestawionych przez niego, powodów, na zasadność użycia modyfikatora new. Oto jeden z nich...
Architektura 4614 dni, 21 godzin, 18 minut temu 160 źrodło rozwiń
Zasada odwracania zależności głosi, że moduły wysokopoziomowe nie powinny zależeć od modułów niskopoziomowych. Obie grupy modułów powinny zależeć od abstrakcji. Innymi słowy abstrakcje nie powinny zależeć od szczegółowych rozwiązań, to one (rozwiązania) powinny zależeć od abstrakcji. Użyte w treści reguły pojęcie abstrakcji należy interpretować jako klasę abstrakcyjną lub interfejs. Jak widać pozostaje tutaj swoboda wyboru jednego z tych dwóch bytów...
Architektura 4616 dni, 16 godzin, 30 minut temu 180 źrodło rozwiń
Sprostowanie nieścisłości dotyczącej pojęcia polimorfizmu, która pojawiła się w kursie C# na portalu virtualstudy.pl
Architektura 4621 dni, 11 godzin, 30 minut temu 134 źrodło rozwiń