Skip to content

Programista.NET

praktyk
WebDeveloper ASP.NET | ASP.NET MVC | PHP, SEO, AJAX
Ten blog ma służyć jako mój podręczny notatnik, a także narzędzie dzięki któremu usystematyzuje zbieraną na co dzień wiedzę.

Archive

Author Archive

Dzisiaj wpis z kategorii HTML/CSS/JS do wykorzystania w dowolnej technologii. Podstawa przy przetwarzaniu formularzy ajaxem lub wczytywania formularzy z załącznikami które może chwile zająć. Zadanie to poinformować użytkownika, że trwa wczytywanie oraz zablokowanie ponownego przesyłania forma.

Poniżej przykładowa implementacja:

loading-form 
continue reading…

Dla databindingu Ajaxowego:

1
2
columns.Bound(p => p.Title)
    .ClientTemplate("<input type='checkbox' name='Title' #= Title? 'checked' : '' # disabled /> ");

Dla databindingu serwerowego:

1
2
3
4
columns.Bound(p => p.Title)
          .Template(@<text>
              <input type="checkbox" name="Title" disabled="" checked="@item.Value"/>
          </text>);

continue reading…

Makra postbuild i prebuild potrafią bardzo ułatwić życie przy często wykonywanych czynnościach przed i po kompilacji.

Przykładowe zastosowanie z mojego projektu w MVC4, gdzie każdy moduł aplikacji jest w oddzielnym projekcie. Dodając referencje w głównym projekcie kopiują się tylko binarki bez widoków, cssów i jsów. Widoki można również by było skompilować ale dalej zostaną CSS i JS które trzeba przekopiować ręcznie po każdej kompilacji.

Rozwiązanie

makra postbuild prebuild

makra postbuild prebuild

PostBuildEvent modułów dodałem

1
2
3
xcopy "S:\WEB\Strony\PolaMVC\PolaMVC.Modules\PolaMVC.Modules.SelfInvoicing\Views" "S:\WEB\Strony\PolaMVC\PolaMVC\Areas\SelfInvoicing\Views" /s /i /y /EXCLUDE:S:\WEB\Strony\PolaMVC\excludefiles.txt
xcopy "S:\WEB\Strony\PolaMVC\PolaMVC.Modules\PolaMVC.Modules.SelfInvoicing\Content\Css\*.css" "S:\WEB\Strony\PolaMVC\PolaMVC\Content\Css" /s /i /y
xcopy "S:\WEB\Strony\PolaMVC\PolaMVC.Modules\PolaMVC.Modules.SelfInvoicing\Scripts\*.js" "S:\WEB\Strony\PolaMVC\PolaMVC\Scripts" /s /i /y

excludefiles.txt zawiera listę plików/katalogów do pominięcia:

1
katalogi i pliki do pominiecia

continue reading…

Podczas 'build’a swojego projektu ASP.NET MVC spotkałeś się z wyjątkiem?

Error 1 It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS
Error	1	Używanie sekcji zarejestrowanej jako allowDefinition='MachineToApplication' poza poziomem aplikacji jest błędne. Ten błąd może być spowodowany nieskonfigurowaniem katalogu wirtualnego jako aplikacji na serwerze IIS.	

continue reading…

Zapraszam wszystkich web developerów do skorzystania z okazji jaką jest darmowy kod na egzamin 70-480.

Sam już jestem po egzaminie, mogę tylko polecić materiału nie jest strasznie dużo do ogarnięcia.

Voucher na Egzamin 70-480(Programming in HTML5 with JavaScript and CSS3) to HTMLJMP
Kod należy wkleić na stronie Prometric przy wybieraniu formy płatności.

continue reading…

Jednym z ciekawszych sposobów na dzielenie danych pomiędzy procedurami jest użycie tabel tymczasowych. Rozwiązanie jest proste i skuteczne, można z niego korzystać we wszystkich sytuacjach, minusem jest utrudnione zarządzanie w przypadku gdy więcej procedur będzie korzystać z jednej tabeli tymczasowej, np chcąc zmienić kolumny trzeba będzie zmieniać je we wszystkich procedurach korzystających z danej tabeli tymczasowej.

continue reading…

Dzisiaj na szybko, dwa linki do artykułów Piotra Zielińskiego dotyczących MVC3 i silnika Razor, idealne na start z MVC

http://msdn.microsoft.com/pl-pl/library/wprowadzenie-do-asp-net-mvc-3-0

I parę słów o silniku renderującym razor:

http://msdn.microsoft.com/pl-pl/library/razor–nowy-silnik-renderujacy

http://www.pluralsight-training.net to moje niedawne odkrycie. Na stronie znajdziecie mnóstwo video-tutoriali dotyczących wszelkich technologii Microsoftu, co wyróżnia stronę to wysoka jakość materiałów i ich aktualność. Znajdziecie tam m.in. dużo o C#, WebFormsach, MVC, TeamFoundation, WCF, Silverlight nawet WP 7 .

Problemem jest koszt subskrypcji który wynosi 30$  / miesiąc. Na szczęście studenci mogą otrzymać darmową subskrypcję na 90 dni za darmoszke!

Wystarczy zarejestrować się na stronie http://www.dreamspark.com/ przez swoje konto live i zatwierdzić swój status jako studenta

continue reading…

AJAX w MVC3

mar 26

Aby używać AJAXA w MVC należy wywołać poniższe biblioteki JS znajdziemy je w folderze Scripts naszego projektu

1
2
3
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>

Teraz możemy przystąpić do generowania linku naszej akcji, wykorzystamy do tego nowy silnik generowania widoków „Razor” dostępny od MVC3

1
2
3
4
5
6
7
@Ajax.ActionLink("Kliknij aby wykonać akcję",
"NazwaAkcji",
new AjaxOptions{
UpdateTargetId = "idElementu",
HttpMethod = "Get", //default
InsertionMode = InsertionMode.Replace,
})

Przydatne opcje AjaxOptions
OnBegin – Gets or sets the name of the JavaScript function to call immediately before the page is updated.
OnComplete – Gets or sets the JavaScript function to call when response data has been instantiated but before the page is updated.
OnFailure – Gets or sets the JavaScript function to call if the page update fails.
OnSuccess – Gets or sets the JavaScript function to call after the page is successfully updated.

continue reading…

Singleton to wzorzec często przydający się w większych aplikacjach np w odniesieniu do połączenia z bazą danych czy innym źródłem danych.
Jak prawidłowo zaimplementować wzorzec singleton.

Kod dla aplikacji jednowątkowych:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public sealed class Singleton
{
   private static Singleton instance;

   private Singleton() {}

   public static Singleton Instance
   {
      get
      {
         if (instance == null)
         {
            instance = new Singleton();
         }
         return instance;
      }
   }
}

continue reading…