ASP.NET udostępnia programiście dwa typu kontrolek serwerowych, które może wykorzystać w swoich aplikacjach webowych: HTML Controls oraz Web Controls. Ale zanim opiszę różnice między nimi, warto zapoznać się z cyklem życia strony ASP.NET.View State ASP.NET poszczególne żądania do strony traktuje jako osobne i nie przechowuje żadnych informacji pomiędzy kolejnymi odsłonami (są różne mechanizmy zapisywania stanu, które zostaną opisane w późniejszych artykułach). ASP.NET wykorzystuje mechanizm View State, k...
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Witajcie w moim pierwszym artykule, w nowej serii wpisów. Dziś troszkę podstaw. Powiemy o tworzeniu nowego projektu w Visual Studio, dodawaniu nowych stron itp.Tworzenie strony internetowej Visual Studio 2008 pozwala nam stworzyć projekt typu Web Site, z rozróżnieniem tego w jaki sposób chcemy mieć dostęp do zawartości strony. Możemy stworzyć projekt Web podłączony do systemu plików na naszym komputerze, na serwerze IIS lub FTP. Wybór odpow...
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Przed przystąpieniem do poznawania technologii ASP.NET 3.5 oraz tworzenia witryn internetowych w niej (również w każdej innej technologii do tworzenia aplikacji www), warto zapoznać się z głównymi elementami wykorzystywanymi w udostępnianiu użytkownikowi stron. Aplikacje internetowe są klasycznym przykładem architektury klient – serwer. Użytkownik korzysta z przeglądarki internetowej (klient). Za pomocą Internetu (przy wykorzystaniu proto...
W poprzednim poście przedstawiłem różne alternatywne narzędzia jeśli chodzi o tworzenie przepływów pracy z poziomu przeglądarki internetowej. Narzędzia te mimo tego, że oferują możliwości znacznie większe niż SharePoint Designer czasami nie spełniają naszych oczekiwać. W dalszej części skupię się na Nintex WorkFlow 2007 i pokażę w jaki sposób można samemu tworzyć akcje, które wykorzystywane są później w przepływach pracy.
Jako programista naturalne było dla mnie tworzenie przepływów pracy (ang. Workflow) z poziomu VisualStudio. SharePoint Designer w tym temacie udostępniał bardzo skromne funkcje. Miał jednak duży plus gdyż nie wymagał znajomości języka programowania przy tworzeniu prostych przepływów pracy. Daje to możliwość tworzenie przepływów pracy osobom, które nie są programistami. Jednak przepływy pracy tworzone z poziomu VisualStudio też mają jedną zasadniczą wadę. Naturalne jest, że każdy przepływ się zmienia - zm...
W Pakiecie AjaxControlToolkit będącego obecnie częścią Microsft AJAX Library znajduje się fajna kontrolka ValidationCalloutExtender. Pozwala ona na wykorzystanie sztandarowych walida torów ASP.NET (RegualExpressionValidator, RequiredFieldValidator itp. ) w scenariuszach Ajaxowych, tzn. do walidacji po stronie klienta. Wszystko jest fajne dopóki walidowany formularz jest wysyłany zwykłym submitem. Problem pojawia się, gdy chcemy zaprogramować przycisk w javascripcie i np. wykorzystać dane do wywołania met...
Dzisiaj odpalając moja aplikacje webowa w Visual Studio Proffesionall stwierdziłem że w niemal wszystkie pozycje są zdublowane. Miałem np. po 4 listboxy,xmle, textboxy czy buttony. Wiadomo że zawsze można zrobić porządek ręcznie. Jeśli jednak nie macie akurat kilku godzin wolnego żeby przekopać się przez wszystkie itemy, udajcie sie do katalogu: C:\Users\username\AppData\Local\Microsoft\VisualStudio\9.0 w Windows Vista i 7 lub C:\Documents and Settings\username\Ustawienia Lokalne\Microsoft\VisualStudi...
Klikając opcję w menu WebParta - "Modyfikuj udostępniony składnik WebPart" użytkownik w SharePoint ma możliwość jego skonfigurowania. W bardzo prosty sposób można też dodać dodatkowe opcje konfiguracyjne (tworzy się pole w klasie z odpowiednimi parametrami). Ten sposób ma jednak duże ograniczenie polegające na używaniu jedynie podstawowych typów danych: string, int, enum. Co zrobić jeśli chcemy udostępnić użytkownikowi listę wyboru tworzącą się dynamicznie, np.: na podstawie jakiejś listy w SharePoint ?
W wielu miejscach w sieci (na przykład tutaj) są zamieszczone artykuły o profilu użytkownika w ASP.NET Membership. Profil to bardzo wygodna rzecz. W skrócie można powiedzieć, że wystarczy w Web.config dodać sobie jakieś właściwości tegoż profilu.
Przechowywanie obiektów w sesji nie jest ogólnie wskazane ze względu na szybkość działania strony (poza typem InProc) jak i ulotność miejsca składowania (InProc). Mimo wszystko czasami trzeba. Aby ułatwić sobie pracę z obiektem sesji napisałem kilka pomocniczych metod rozszerzających możliwości HttpSessionStateBase. Bardzo często zdarzają się przypadki przechowania czegoś na chwilę w kontekści...
Przy pisaniu kilku ostatnich stron WWW potrzebowałem dość często tworzenia elementów HTML na podstawie konkretnego źródła danych - coś co zwykle załatwia ASP:Repeater czy ASP:ListView (i jeszcze kilka innych kontrolek serwerowych). Problem polegał jednak na tym, że naprawdę nie chciałem zaprzęgać do tego wszystkiego ASP.NET, mogę większość rzeczy zrobić w JavaScript to po co mi do tego code behind?
Zauważyłem ciekawą rzecz związaną z Visual Studio 2008. Chciałem przekonwertować sobie aplikację typu Web Site na Web Application i okazuje się, że w menu w Solution Explorer nie ma takiej opcji (a w Visual Studio 2005 SP1 to było!).Ale okazuje się, że jest na to sposób!
Witam z powrotem w szóstym odcinku serii Ekstremalna przeróbka ASP.NET. W poprzednich artykułach skupialiśmy się na technologiach związanych z przeglądarką po stronie klienta: XHTML, CSS, JavaScript, jQuery i jQuery UI. Kilka następnych artykułów w tej serii będzie się skupiać na kodzie po stronie serwera. Jak możemy zmodyfikować nasz kod C#, aby poprawić możliwości utrzymywania i rozszerzania naszej bazy kodu oraz jej elastyczność. Ten artykuł, część 6, skupi się w szczególności na podziale obowiązków. ...
Zaleta takiego sposobu schowania warstwy (popupa) jest taka, że nie spowoduje PostBacka. AjaxControlToolkit.PopupControlBehavior.__VisiblePopup.hidePopup();
Poprawne widoki w projekcie asp.net mvc nie powinny posiadać plików codebehind. Ponadto nie powinny posiadać żadnej logiki. Mają służyć jedynie prezentacji/wizualizacji danych oraz zbierania informacji, które będą przesyłane do kontrolera. W związku z tym całe ustrojstowo typu auto-zdarzenia (znane z WebForms'ów), viewstate'y, czy nawet dostęp do obiektu sesji powinno być wyłączone/zablokowane. Wybra...
Autor: W ramach przygotowań do egzaminu 70-562: TS: Microsoft .NET Framework 3.5, ASP.NET Application Development, chciałbym zaprosić do lektury na temat zagadnienia p.t. "Dostosowanie i Personalizacja Aplikacji Web" ("Customizing and Personalizing a Web Application"). Opracowanie zostało podzielone na nastepujące części:Strony Wzorcowe (Master Pages) - teoriaStrony Wzoorcowe - przykładTematy, motywy (Themes) - teoriaTematy, motywy - przykładWeb Parts - teoriaWeb Parts - przykład Dodatkowo zachęcam do ob...
Metoda UpdateModel jest metodą dostępną w klasie kontrolera, która w automagiczny sposób przepisze wartości przesłane z formularza do naszego obiektu modelu. Niestety przepisze wszystkie jakie tylko zostały przesłane. A co jeśli nie chcemy przepisywać wszystkich? Wystarczy podać listę dopuszczonych wartości do przepisywania. Niestety lista ta to nic innego jak array stringów. Poniżej prezentuję kawałek kodu, który ...
W ramach uzupełnienia teorii dotyczącej mechanizmu Web Parts, tym razem pojawi się przykład, w którym na prostej stronie osadzone kontrolki Web Parts.
Domyślna konfiguracja instalacji IIS na Win7 nie do końca nadaje się do uruchamiania stron ASP.NET. Ba, "nie do końca" to za mało powiedziane... W przyszłości pewnie natknę się jeszcze na ten problem, dlatego zamieszczam swoją konfigurację, która po prostu działa...
Poprzednio informowałem o wydaniu nowej wersji biblioteki jQuery – 1.4. Teraz pora aby przyjrzeć się jej dokładniej: na początek postanowiłem sprawdzić wydajność dwóch często wykorzystywanych przeze mnie metod: html() oraz remove(). Test metody html() polegał na wykonaniu jej w pętli – 100 powtórzeń. Kod dla wersji 1.4 oraz 1.3.2 był identyczny: $("#htmlTest").click(function() { perfChecker.setStartTime(); for (i = 0; i < 100;="" i++)="" {="" document...