W dwóch poprzednich tematach poświęconych Integration Services przedstawiłem wykorzystanie Script Component do tworzenia własnego źródła danych oraz ich transformacji. W dzisiejszym wpisie omówię jego ostatnie zastosowanie – implementację własnego zapisu danych.
W jednej z aplikacji pojawiło się wymaganie: dodać windows authentication. Nic prostszego! Zmiana na IIS, dodanie w web.config, i działa, prawda? Ano nieprawda, jeśli aplikacja stworzona jest w MVC 3.
Żyjemy teraz w ciekawym momencie roku, kiedy to Windows 8 uzyskuje status RTM, a za nim inne produkty jak np. Visual Studio 2012, a dodatkowo mamy też SQL-a 2012, który status RTM osiągnął już na przełomie marca i kwietnia tego roku. Wielu developerów zapewne będzie robiło reinstalacje, będzie po kolei instalowało aplikacje niezbędne do pracy, a później np. mogą zobaczyć w SQL Server Configuration Manager coś takiego: Najprościej jest pamiętać aby podczas nowej instancji wykonywać ją wg poniższej kole...
W ostatnim poście pisałem o barierze jako rozwiązaniu na uniknięcie problemów z związanych z optymalizacją dokonywaną przez CPU (re-ordering). Kilka postów wcześniej pisałem z kolei o buforowaniu danych i słowie kluczowym volatile. Jeśli nie wiedzie co to jest MemoryBarrier oraz Volatile zachęcam do przeczytania tych wpisów najpierw – bez nich dzisiejszy post będzie kompletnie niezrozumiały. Wiemy, że caching oraz re-ordering może na niektórych architekturach spowodować trudne w analizie błędy. Dziś chc...
Sztuka programowania 2381 dni, 11 godzin, 18 minut temu 74 rozwiń
Nie, to nie będzie ogłoszenie w którym będę poszukiwał programisty. Wpis ten jednak będzie traktował o zatrudnianiu tychże. Ostatnio coraz częściej ocieram się o jakieś oferty pracy i naszło mnie kilka przemyśleń, którymi chciałbym się tu podzielić. Od razu zastrzegę, że są to tylko i wyłącznie moje opinie, a że za wyrocznię rynku się nie mam, mogą się kompletnie nie zgadzać z tym co mają do powiedzenia moi koledzy (i koleżanki?) programiści. Oferta ofercie nie równa Wiadomo, że ile firm tyle...
1 Sierpnia to bardzo ważny dzień dla firmy Microsoft. Dzisiaj, a właściwie godzinę temu, Windows 8 oraz Windows Server 2012 otrzymały status RTM czyli Release To Manufacture. RTM oznacza tyle, że produkty zostały ukończony. Do RTM-a nie dodaje się poprawek, nie wprowadza się zmian. RTM-a się tłoczy na płytach i wkłada do pudełek Windows 8 Jaki będzie żywot nowego systemu operacyjnego? Na pewno trudny, ponieważ jest bardzo rewolucyjny w swoim interfejsie użytkownika. Na pewno będzie wiele ...
W .NET istnieje metoda Thread.MemoryBarrier(). W użyciu jest bardzo prosta – nie wymaga przekazania żadnych parametrów. Strona teoretyczna jest jednak bardziej skomplikowana. Przed wyjaśnieniem czym jest Memory Barrier w świecie współbieżnym musimy zrozumieć jak wykonywane są instrukcje przez procesor. Załóżmy, że mamy następujące operacje:a = b +1 c = a +1 d = e +1; W jakiej kolejności zostaną wykonane powyższe operacje? Naturalne wydaje się, że procesor wykona je po kolei. Jednak ze względu na różn...
Sztuka programowania 2384 dni, 17 godzin, 9 minut temu 133 rozwiń
Tips & Tricks–handling the virtual keyboard Jakiś czas temu pokazałem jak można utworzyć w łatwy sposób pływające okno. Jednak w przypadku, jeśli takie okno jest używane do wprowadzania danych należy rozważyć obsługę wirtualnej klawiatury, aby menu użytkowania przesunęło się do góry. WinRT posiada odpowiednie zdarzenie do tego celu.Windows.UI.ViewManagement.InputPane.GetForCurrentView().Showing Natomiast kod do unoszenia menu nad wirtualną klawiaturę prezentuje się następująco.int flyoutOffset =...
Piszemy aplikację. Uruchamiamy. Działa. Wysyłamy do klienta. Uruchamia. Nie działa. Znamy to wszyscy, prawda? Powodów może być oczywiście bez liku, od specyficznej konfiguracji konkretnej maszyny po naszą głupotę. Niekiedy jednak problem jest prozaiczny - aplikacja nie może skorzystać z wymaganych dllek! Nie zawsze (a raczej: nigdy?) to co dodajemy bezpośrednio do referencji rozwiązania jest wystarczające do poprawnego działania aplikacji. Strasznie łamałem sobie kiedyś głowę nad takim scenariuszem
Dziś trochę dla odmiany, nie będę pisał o wielowątkowości a o jednym z podstawowych słów kluczowych w c#, które na szczęście nie jest bardzo popularne – bazując na moim doświadczeniu z różnymi projektami, rzadko widuje je w kodzie. Global przydaje się gdy mamy konflikty z przestrzeniami nazw. Wyobraźmy sobie, że mamy następujący kod (kod bazuje na dokumentacji MSDN):class Program { publicclass System { } constint Console =7; staticvoid Main() { } } Następnie chcemy w metodzie Co...
Sztuka programowania 2388 dni, 57 minut temu 242 rozwiń
W poprzednim temacie opisałem użycie komponentu Script jako własnego źródła danych w Integration Services. Dzisiaj przedstawię kolejne zastosowanie Script Component, a mianowicie tworzenie własnej transformacji danych.
Witam kolejna cześć artykułu z cyklu “dobre i złe praktyki w c#”. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/dobre-i-zle-praktyki-w-c-sharp–czesc-2.aspx
Sztuka programowania 2390 dni, 22 godziny, 55 minut temu 390 rozwiń
Często zachodzi potrzeba zaimplementowania w bazie danych struktury hierarchicznej, np. dla kategorii. Pierwszy sposób jaki od razu przychodzi do głowy to adjacency list (lista sąsiedztwa) i polega na dodaniu do tabeli kolumny ParentId na rodzica danej kategorii. Rozwiązanie to jest bardzo proste, jednak mało optymalne gdy mamy wiele zagnieżdżeń. Alternatywą dla tej metody jest nested set (zbiór zagnieżdżony), polega na dodaniu do tabeli dwóch dodatkowych kolumn na lewy i prawy numer każdego węzła. Neste...
Bazy danych i XML 2390 dni, 22 godziny, 55 minut temu 257 rozwiń
Polecenia w Metro 2/3 W tym poście opiszę jak powinno wyglądać ułożenie poleceń na AppBar. Na początku chcę przypomnieć o charms bar jest to wysuwany z prawej strony parek. Wspominam o nim ponieważ operacje jak szukanie, udostępnianie, ustawienia czy też komunikacja pomiędzy urządzeniami powinny znaleźć się właśnie w charms bar unikniemy w ten sposób duplikowania funkcji. Pasek aplikacji czyli kontrolka AppBar służy do przechowywania akcji jakie w danym miejscu aplikacji może wykonać użytkownik. ...
Widoki są tworem dość często wykorzystywanym w bazach SQL – dobrze zaplanowane bardzo ułatwiają pracę z bazą. Widoki indeksowane zapewniają lepszą wydajność zapytań. Niestety nie zawsze nasz indeks będzie brany pod uwagę podczas wykonania zapytania.
Bazy danych i XML 2393 dni, 12 godzin, 47 minut temu 112 rozwiń
Artykuł porusza tematyką związaną z poprawną obsługą Tasków w Windows Phonie. Autor prezentuje w jaki sposób należy wywołać Taski oraz jakie wyjątki powinny zostać przechwycone. Dodatkowo przedstawione zostały scenariusze generujące opisywane błędy.
Mobile development 2393 dni, 12 godzin, 47 minut temu 60 rozwiń
Kiedyś na blogu opisywałem kilka implementacji singleton’a przystosowanych do pracy w środowisku wielowątkowym. Jedna z nich opierała się na tzw. double checked locking:publicsealedclass Singleton { privatestatic Singleton mInstance =null; privatestaticreadonlyobject mSync =newobject(); private Singleton() { } publicstatic Singleton Instance { get { if(m_Instance ==null ) { lock(m_Sync) { i...
Sztuka programowania 2393 dni, 12 godzin, 47 minut temu 212 rozwiń
Nierzadko jest tak, że aplikacja zachowuje się nieprawidłowo, jednak wszystkie wyjątki są przechwycone i nie ma żadnej informacji (czy to wizualnej, czy tez w logach) o tym, że wydarzyło się coś niepokojącego, program po prostu dalej działa. Klasyczny przykład, to ‘połykanie’ wyjątków, czyli konstrukcja typu: try {...KOD...} catch(Exception) { } czyli blok obsługi wyjątku jest puściutki :) My jednak wyczuwamy jakąś zmyłkę i chcemy dowiedzieć się, co też poszło nie tak. Systemowy mechanizm obsługi wyj...
Artykuł omawia tworzenie własnego MembershipProvidera i RoleProvidera w ASP.NET MVC. Możemy oczywiście skorzystać z bazy ASPNETDB stworzonej przez Microsoft, ale warto się zastanowić czy jest to najlepszy sposób gdy mamy własne wyobrażenie tabel w bazie danych przechowujących użytkowników i role albo korzystamy z Entity Framework i Code First - wówczas do projektowanej bazy możemy dodać tabele z ASPNETDB, ale przy każdej zmianie którejś z klas modelu zostaną one usunięte jeśli dziedziczymy po klasie Drop...
W drugiej części artykułu o tym jak stworzyć własny MembershipProvider i RoleProvider rozpoczynamy od utworzenia w głównym katalogu projektu folderu o nazwie Infrastructure, a w nim dwóch plików: MyMembershipProvider.cs i MyRoleProvider.cs.
Polecamy
Nadchodzące wydarzenia
Najaktywniejsi

