Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 18 gru 2024, o 22:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 25 lip 2013, o 22:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Obrazek

Powitanko ;)

Bardzo wiele osób w domu/firmie ma postawiony jakiś serwerek, który coś tam robi, to czemu by nie dołożyć do niego opcji: „Centrum dowodzenia”? Chciałem pokazać w jaki sposób można wykorzystać po części coraz bardziej lubiany tu na forum język C#. Ustrojstwem którego użyjemy będzie platforma ASP.NET ( nie mylić z akademią sztuk pięknych ;] ). Wykorzystano jako bazę na uC oczywiście zestaw ATB i projekt z lekcji o komendach AT z zielonej książki. Można już wywnioskować, że nie użyjemy modułu sieciowego ETH dla zestawu ATB, a jedynie wbudowanej przejścióweczki USB-UART, czyli do szczęścia potrzebny nam tylko kabelek USB.

ASP.NET jest to technologia tworzenia stron www wchodząca w skład platformy .NET. Kod takiej aplikacji wykonywany jest po stronie serwera, a jej wynik przekazywany do przeglądarki jako strona HTML. Bez zbędnego pitu pitu, przechodzimy do rzeczy.

Środowisko

Całość została wykonana na świeżutkim Win8 na wirtualnej maszynie VMware Player. Jeżeli ktoś również będzie chciał pracować na VMware, to zawczasu zaznaczam, że należy skonfigurować połączenie sieciowe z hostem jako Bridge.
Obrazek
Po takim zabiegu wirtualna maszyna dostanie swoje własne IP na routerze. Musimy jeszcze zrobić przekierowanie naszego zewnętrznego IP właśnie na lokalny adres wirtualnej maszyny. Robimy to już w ustawieniach samego routera, wtedy będziemy mieli dostęp z dowolnego miejsca.

W pierwszej kolejności musimy ściągnąć i zainstalować Microsoft Visual Studio Express 2012 for Web ze stronki MS. Jest to darmowy produkt, jedynie musimy się zarejestrować aby otrzymać klucz. Proces jest całkowicie bezbolesny.

Tworzymy nowy projekt

Odpalamy, wybieramy New project -> Visual C# ->Web -> ASP.NET Empty Web Application. Nadajemy nazwę jaką chcemy i OK.
Obrazek
Mamy pusty projekt, dodajemy naszą główną stronę. W zakładce Solution Explorer prawoklik na projekt Add ->New Item -> Web Form. Proponuję nadać nazwę pliku default.aspx ponieważ później ułatwi nam to kilka spraw.
ObrazekObrazek

ASP.NET udostępnia dwie metody zarządzania strukturą kodu stron. Pierwsza polega na korzystaniu z modelu code-inline. Cały kod jest umieszczony w jednym pliku .aspx. Drugi sposób korzysta z modelu code-behind, który pozwala na oddzielenie kodu odpowiedzialnego za logikę „roboczą” od kodu realizującego logikę „prezencji”. W tym modelu logika strony www przechowywana jest w pliku .aspx, podczas gdy kod roboczy mieści się w oddzielnym pliku klasowym aspx.cs. My będziemy pracować właśnie z metodą code-behind co poprawia znacznie czytelność i poruszanie się po projekcie.

Po wykonaniu powyższych kroków, mamy przed sobą właśnie plik z kodem prezencji. Jak widać jest to głównie html, więc osoby robiące już stronki szybko się odnajdą.
Obrazek
Na dole okna mamy sposoby wyśiwtlania: Design – Split – Source
W tym momencie dobrze jest dodać pliki z grafiką do naszego projektu. W zakładce Solution Explorer prawoklik na projekt Add ->New Item ->New folder.
Prawoklik na nasz nowy folder Add -> Existing Item i wskazujemy pliki

Style CSS

Wygląd kontrolek i innych rzeczy można zmieniać w oknie properties, ale kod wtedy staje się mało czytelny i mamy ograniczone opcje. Na ratunek przychodzą kaskadowe arkusze stylów. Dodajemy do naszego projektu nowy styl:
Obrazek
Visual Studio ma wbudowany edytor kompozycji, więc nie trzeba się za bardzo znać na CSS :D
Między nawiasami klamrowymi prawoklik -> Build style
Obrazek
Tutaj robimy wolną amerykankę, następnie we właściwościach jakiejś kontrolki wypełniamy pole CSSClass i już mamy przypisany styl.
Poniżej kod pliku css użytego w projekcie:

Składnia: [ Pobierz ] [ Ukryj ]
język css
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Dobra bierzemy się za pisanie kodu:
Wybieramy z panelu Tollbox kontrolki jakie nas interesują, robimy szatę graficzną naszej strony. Opiszę tutaj jedynie istotne komponenty:

AJAX

Aby nasza strona nie przeładowywała się co chwilę użyjemy komponentu AJAX. Na początek musimy dodać ScriptManager, który podpina do strony kod JavaSripta
Składnia: [ Pobierz ] [ Ukryj ]
język asp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Tworzymy teraz kontener który będzie przeładowywany : Update panel.
Składnia: [ Pobierz ] [ Ukryj ]
język asp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W polu Content Template umieszczamy to co ma być odświeżane.
Natomiast w polu Triggers jak nazwa wskazuje będą wyzwalacze, które zainicjują przeładowanie.
Poniżej cały kod pliku Default.aspx
Składnia: [ Pobierz ] [ Ukryj ]
język asp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A tak prezentuje się powyższy kod:
Obrazek

Code-Behind

Przechodzimy do pliku Default.aspx.cs czyli naszego kodu roboczego.
Na początek tworzymy zmienne serwerowe:
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Ważne jest aby były one typu static, wtedy nie będą "ulotne". Bez tego z każdym załadowaniem strony zmienne tworzone by były na nowo, a co za tym idzie stracimy wartości w nich siedzące.
Nie będę opisywał szczegółowo każdego bloku, zaopatrzyłem kod w komentarze.

Mechanizm komunikacji jest taki, że odpalamy timer na serwerze który cyklicznie odpytuje zestaw ATB, natomiast drugi timer "klienta", cyklicznie przepisuje wartości ze zmiennych statycznych do kontrolek wyświetlanych na stronie Web u klienta.

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Podczas testowania stronki jest ona uruchamiana na wirtualnym serwerze i nie ma do niego dostępu z innego miejsca. Klikamy:

1. Build -> publish
2. Select or import a publish profile -> new. Podajemy nazwe -> ok
3. Publish metod -> file system -> c:\NazwaFolderu -> next -> next -> publish (jeśli lokalizacja będzie inna niż dysk C, to będą problemy)

Publikacja strony na własnym serwerze

Aby opublikować stronkę na własnym serwerze to najpierw musimy... zainstalować serwer :D Na szczęście windowsy są uzbrojone w takie cholerstwo jak IIS, ale domyślnie jest nieaktywne.
Przechodzimy do Panel Sterowania -> Programy i funkcję -> Wł/wył funkcję systemu i zaznaczamy opcję Internetowe usługi informacyjne Należy pamiętać o dodatkowym rozwinięciu Usłgi WWW -> Funkcję tworzenia aplikacji -> ASP.NET 4.5
Obrazek

Odpalamy wyszukiwarę programów na windowsie Win+Q i szukamy IIS. Po odpaleniu wykonujemy:
Obrazek

1. IIS -> Polłączenia (lewa kolumna) -> Default Web Site -> Dodaj katalog wirtualny.
2. Podajemy ścieżkę do naszej opublikowanego folderu na dysku C
3. Prawoklik na nasz folder i konwertuj na aplikację
4. Włączamy przeglądanie katalogów
5. Wyłączamy windowsowego firewalla :D

Od teraz wklepujć w przeglądarkę IP/ATB_ASP mamy dostęp z zewnątrz. To tyle części PC-towej.

ATB-ASP kod uC

Program na uC to praktycznie cała lekcja 21 z drobnymi modyfikacjami obsługi poleceń AT

main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


main.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Komendy_at.c
......

komendy_at.h
......

Wyniki




Projekt C#


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lip 2013, o 00:37 
Offline
Użytkownik

Dołączył(a): 16 mar 2013
Posty: 157
Pomógł: 6

Bardzo fajny projekt. Niestety moim zdaniem jest jeden minus. Jak na razie to chyba nie ma żadnych darmowych hostingów które są postawione na Windowsie (a jest to konieczne, żeby ASP.NET działało). Większość hostingów działa na linuxsie, więc pozostaje postawienie własnego serwera na Windowsie bądź wykupienie jakiegoś hostingu, który obsługuje ASP.NET. Generalnie całość wykonana bardzo fajnie i bardzo mi się podoba. Szczególnie ten motyw z tabletem mnie rozwalił. Gratuluję pomysłu i wykonania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lip 2013, o 06:37 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

Bardzo pouczający projekt. Tak na prawdę nie trzeba zaraz mieć gdzieś hostingu żeby wymyślić sposoby na zastosowanie czegoś takiego. Przecież Windowsa prawie każdy ma, w wielu firmach gdzie jest intranet, gdzie i tak często jakiś windows pełni rolę takiego ala serwerka do różnych ceków - to jak w sam raz aby zdalnie czymś zarządzać, sterować itp

A tym bardziej fajny projekt, że znowu jak wiele innych poradników przedstawia w taki sposób krok po kroku jak osiągnąć cel i uczy czegoś. Dobra inspiracja i na takie rzeczy trzeba patrzeć.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2013, o 10:54 
Offline
Nowy

Dołączył(a): 21 kwi 2013
Posty: 11
Pomógł: 0

Urwało mi xxxx


Proszę się powstrzymać od takich komentarzy na przyszłość - Różowy J.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO