Windows Identity Foundation można również z łatwością wykorzystać w Windows Communication Foundation. Zainteresowanych odsyłam do tego artykułu:): http://msdn.microsoft.com/pl-pl/library/ff769959.aspx?id=rss
Strona głównaUżytkownik
pzielinski | użytkownik
Framework WIF dostarcza ujednolicony model zabezpieczeń. W łatwy sposób można przełączać się między tokenami generowanymi na podstawie loginu\hasła czy CardSpace – kod pozostaje niezmienny. Zainteresowanych zapraszam mojego ostatniego artykułu: http://msdn.microsoft.com/pl-pl/library/ff720168.aspx
Widoki częściowe pozwalają na wyodrębnienie ze strony pewnych części do osobnego pliku. Załóżmy, że projektujemy widok strony głównej sklepu internetowego. Z pewnością taki widok zawiera m.in. informacje o stanie koszyka, menu, listę kategorii i produkty w promocji. Można oczywiście wszystkie dane umieścić w jednym pliku aspx. Niestety w takim przypadku plik źródłowy widoku byłby bardzo długi i skomplikowany. Lepszym rozwiązaniem jest zapisanie poszczególnych fragmentów do różnych plików – widoków części...
OUTPUT pozwala na zwrócenie wierszy d0danych, zaktualizowanych lub usuniętych za pomocą komend INSERT, UPDATE i DELETE. Zwrócony wynik możemy wyświetlić po prostu na ekranie lub wstawić do innej tabeli. Wyobraźmy sobie, że mamy tabele Employee oraz EmployeeLog zawierającą logi. W celu wykonania loga możemy: INSERTINTO Employee (IDEMPLOYEE,FirstName,LastName) OUTPUT getdate(),'wstawiono wiersz',inserted.IDEMPLOYEE INTO EmployeeLog values(1,'Jakies imie,','Jakies nazwisko'); Równoważny efekt można osi...
Bazy danych i XML 5256 dni, 23 godziny, 24 minuty temu 47 źrodło rozwiń
W SQL Server 2005 wprowadzono operator Apply. Służy on do łączenia tabeli z funkcją zwracającą również tabelę (table-valued function). Po lewej stronie operatora mamy więc zwykłą tabelę (np. "Employees”) a po prawej jakąś funkcję (np. “GetContactInfo”). Apply wywoła GetContactInfo dla każdego wiersza z Employee. W T-SQL występują dwie odmiany operatora: CROSS APLY i OUTER APPLY. Pierwszy z nich złączy wyłącznie te wiersze dla których funkcja zwraca jakiś wynik. Z kolei OUTER APPLY złączy wiersze zastęp...
Bazy danych i XML 5260 dni, 15 godzin, 22 minuty temu 79 źrodło rozwiń
Formularz w ASP .NET MVC można zdefiniować za pomocą czystego HTML np: Znacznie wygodniejszym rozwiązaniem jest jednak użycie metod dostarczonych przez helpery. W ASP .NET MVC podstawowym helperem jest HTMLHelper do którego można uzyskać referencję w widoku za pomocą właściwości HTML. Stworzenie formularza wygląda więc następująco:<% using (Html.BeginForm()) { %><%}%> Domyślnie zostanie użyta akcja w której się znajdujemy – np. /Clients/Create. Można również zdefiniować...
Widok czyli graficzny interfejs użytkownika definiuje się w ASP .NET MVC za pomocą kilku helperów oraz czystego HTML\XHTML. Prosty widok prawie niczym nie różni się od dokumentu XHTML:<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage"%> Jedyną nowością jest dodanie deklaracji Page oraz atrybutu runat=”server”. Jak jednak pamiętamy z poprzedniego postu, kontroler do widoku...
ASP .NET MVC jest frameworkiem wspierającym wzorzec projektowy MVC. Należy zdawać sobie sprawę, że przechodząc z klasycznego ASP .NET na ASP .NET MVC tracimy możliwość korzystania ze zbioru kontrolek typu ListView, Repeater itp. Na początku może wydawać się to bardzo ograniczające jednak w praktyce czas wymagany na stworzenie aplikacji webowej jest niewiele dłuższy a za to zyskujemy znacznie większą elastyczność. Ponadto ze względu na brak standardowych kontrolek nie ma bałaganu z ViewState. Uogólniając,...
Architektura 5272 dni, 54 minuty temu 72 źrodło rozwiń
Załóżmy, że mamy tabelę składającą się z 4 kolumn: FirstName, LastName, CompanyName oraz PersonType. Pole PersonType przyjmuje ‘C’ gdy dany wiersz przedstawia firmę oraz ‘N’ gdy reprezentuje osobę fizyczną. Następnie chcemy wyświetlić w zależności od typu osoby nazwę firmy (C) lub imię+nazwisko(N). Zadanie można zrealizować za pomocą klauzuli case when:select (casewhen PersonType='C'then CompanyName else FirstName+''+LastName end) Name from Persons Powyższy przykład miał tylko pokazać zastosowanie ca...
Bazy danych i XML 5275 dni, 13 godzin, 25 minut temu 58 źrodło rozwiń
Jakiś czas temu napisałem artykuł o podstawach EF. Jeśli ktoś interesuje się EF to możliwe, że zaciekawi go mój nowy artykuł o wykorzystaniu Entity Framework w aplikacji trójwarstwowej – warstwa prezentacji jest oddzielona usługą sieciową (WCF) od warstwy dostępu dodanych. Miłego czytania: http://msdn.microsoft.com/pl-pl/library/ff714342.aspxExplore posts in the same categories:EntityFramework This entry was posted on Friday, June 4th, 2010 at 10:39 am ...
Bazy danych i XML 5279 dni, 10 godzin, 58 minut temu 108 źrodło rozwiń
W MVC wyróżniamy 3 główne typy klas: model, widok oraz kontroler. Model stanowi bramkę dostępową do warstwy biznesowej. Przetrzymuje informacje o aktualnym stanie interfejsu. W pewnych przypadkach model może stanowić bezpośrednio klasę z warstwy biznesowej (np. dla wzorca skrypt transakcji jest to możliwe). Zwykle jednak tworzy się osobne modele (albo wrappery) dla warstwy prezentacji. Widok z kolei to interfejs graficzny w czystej postaci. W przypadku Silverlight, WPF jest to po prostu plik zawierając...
Architektura 5279 dni, 10 godzin, 58 minut temu 98 źrodło rozwiń
Warstwa prezentacji odpowiedzialna jest za komunikację z użytkownikiem. W dzisiejszych czasach interfejsy graficzne są na tyle rozbudowane, że poprawne zaprojektowanie warstwy prezentacji stanowi poważne wyzwanie. W małych projektach często ta warstwa stanowi najbardziej złożoną część całej architektury. Bez wykorzystania stosownych wzorców projektowych po pewnym czasie pisania aplikacji okaże się, że jakakolwiek zmiana interfejsu wiąże się ze skomplikowaną refaktoryzacją kodu. Jedną z podstawowych cec...
Architektura 5279 dni, 14 godzin, 5 minut temu 105 źrodło rozwiń
Zaczynamy standardowo od czystej definicji zasady:Kod z warstw z wyższego poziomu nie powinien zależeć od kodu z niższych warstw. Obie warstwy za to powinny być zależne od abstrakcji.Abstrakcje nie powinny zależeć od szczegółów (konkretnej implementacji). Z kolei szczegóły (implementacja) powinna zależeć od abstrakcji. Najlepiej rozważmy to na przykładzie aplikacji enterprise. Kodem z niższej warstwy może być np. DAL (warstwa dostępu do danych) a z wyższej – warstwa biznesowa. Według zasady, warstwa bi...
Architektura 5283 dni, 4 godziny, 32 minuty temu 78 źrodło rozwiń
Zasada mówi żeby tworzone przez programistę interfejsy były odpowiedzialne za jak najmniejsza funkcjonalność. Użytkownik chcąc zaimplementować taki interfejs nie powinien pisać metod, których nie potrzebuje. Jeśli znajdują się w nim niepotrzebne metody to wtedy nazywamy go interfejsem “fat” lub “polluted”. Najlepiej rozważyć to na klasycznym przykładzie (z oodesign):interface IWorker { void Work(); void Eat(); } class Worker: IWorker { publicvoid Work() { } publicvoid ...
Architektura 5285 dni, 18 godzin, 20 minut temu 94 źrodło rozwiń
Na początek podam czystą definicje z wiki: “Funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów.” Początkowo za wiele ta tajemnicza definicja nie mówiła mi. Innymi słowy, klasa dziedzicząca powinna rozszerzać możliwości klasy bazowej a nie całkowicie zmieniać jej funkcjonalność. Sposób korzystania z klasy potomnej powinien być analogiczny do wywoływania klasy bazowej...
Architektura 5290 dni, 17 godzin, 2 minuty temu 101 źrodło rozwiń
Zasada O\C mówi, że oprogramowanie powinno być otwarte na rozszerzenia a zamknięte na modyfikacje. Innymi słowy programista powinien być w stanie uzyskać zamierzony efekt poprzez rozszerzenie klasy czy przeładowanie metody a nie zmianę już istniejącego kodu. Zasada jest szczególnie istotna w przypadku kodu produkcyjnego, w którym wszelkie możliwości modyfikacji kodu są ograniczone. Zasada pozwala budować modularne systemy. Użycie ENUM moim zdaniem jest złamaniem Open\Closed principle. Wykorzystując w kod...
Architektura 5292 dni, 18 godzin, 23 minuty temu 93 źrodło rozwiń
W Inżynierii oprogramowania SOLID oznacza zestaw podstawowych zasad projektowania oprogramowania. Każda literka w wyrazie jest skrótem do jakieś zasady. ‘S’ oznacza Single Responsibility Principal. Podejrzewam, że większość osób doskonale zna już tą zasadę. Aby jednak zachować pewien porządek na blogu będę tłumaczył nawet te oczywiste reguły:). W skrócie zasada mówi, że każdy obiekt (klasa) powinien być odpowiedzialny za jak najmniejszy fragment logiki. Niedopuszczalne jest aby klasa wykonywała dwie nie...
Architektura 5296 dni, 2 godziny, 46 minut temu 248 źrodło rozwiń
Pewien kolega podesłał mi dziś ciekawy fragment kodu (znaleziony na jakimś blogu):int level =10; Func
Kiedyś czytając książkę “More Effective C#” zaciekawiło mnie wyjaśnienie interpretacji wyrażeń lambda przez kompilator. W książce autor przedstawił następujący fragment kodu:publicclass ModFilter { privatereadonlyint modulus; public ModFilter(int mod) { modulus = mod; } public IEnumerable
Architektura 5302 dni, 11 godzin, 8 minut temu 98 źrodło rozwiń
Podczas generowania modelu encji na podstawie bazy danych, EF potrafi pobrać maksymalną długość pola. Jeśli kolumna w bazie posiada typ nvarchar(50) to EF zmapuje to na zmienną typ string oraz ustawi pole MaxLength na wartość 50. Informacja o dozwolonej długości (50) jest zapisana w metadanych. Niestety próba przypisania wartości dłuższej niż 50 znaków zakończy się powodzeniem ponieważ nvarchar(50) został zmapowany na string, który nie ma ograniczenia do 50 znaków. Poniższy kod NIESTETY zadziała:Conta...
Bazy danych i XML 5309 dni, 4 godziny, 9 minut temu 34 źrodło rozwiń