Problem Step Recorder

1

Myślę, że każdy programista zetknął się kiedyś z tym, że chciał wywołać pojawiający wcześniej problem w aplikacji. Niestety, nie zawsze jednak pamiętamy, kiedy on wystąpił. Podobnie czasem testerzy chcieliby wysłać opis problemu w najlepszy możliwy do sprawdzenia sposób – od strony użytkownika. Ostatnio dzięki koledze z pracy dowiedziałem się o narzędziu standardowo dołączanym do systemu Windows – Problem Step Recorder. Aby uruchomić aplikację w menu start wpisujemy frazę psr

Naszym oczom powinno pokazać się małe okienko aplikacji:

W którym mamy do wyboru 3 opcje:

  • Rozpocznij rejestrowanie - wybranie tej opcji powoduje rozpoczęcie nagrywania problemu, wszystkie akcje użytkownika są nagrywane 
  • Zatrzymaj rejestrowanie – kończy rejestrację akcji
  • Dodaj komentarz – dodaje możliwość dodania komentarza do danej akcji
Po zarejestrowaniu problemu aplikacja prosi nas o zapisanie pliku, który stworzyła, tworzone jest archiwum zip, w którym znajduje się plik o rozszerzeniu mht. Plik ten zawiera dokładne dane dotyczące akcji użytkownika – gdzie kliknięto, wpisanie danych itp. Dostępne są również komentarze, jeśli takie zostały dodane. Najlepiej jest to zobaczyć na przykładzie:

Krok prowadzący do problemu 3: (2011-10-19 21:07:47) Sygnały z klawiatury użytkownika w „Log In – Mozilla Firefox” [...]

 Tak mniej więcej wyglądają logi w pliku, do każdego tekstu dodany jest również zrzut ekranu :)
Mam nadzieję, że porada się przyda, dodaję również stworzony przez aplikację plik z nagraniem problemu.

Visual Studio – Zwijanie częsci kodu

2

Częstym problemem moim jak i kilku innych w VS jest to, że nie od razu wiadomo jak zwinąć poszczególne fragmenty kodu w Visual Studio. W tej notce chciałbym przedstawić możliwości Visual Studio w tym względzie

1. Automatyczne zwijanie

Standardowo Visual Studio umożliwia zwijanie następujących części kodu:

  • regiony
  • przestrzenie nazw
  • klasy
  • metody
  • komentarze dokumentujące
  • sekcja usings

Cała ta funkcjonalność jest dostępna w VS od razu, bez żadnych dodatków i na pewno umila pracę :)

2. Zwijanie wybranych fragmentów

Często chcielibyśmy jednak schować dany fragment tekstu lub automatycznie zawężać części warunkowe kodu. W pierwszym przypadku możemy użyć dostępnego standardowej funkcji Visual Studio:

W menu głównym wybieramy Edit -> Outlining -> Hide Selection

Jeśli chcielibyśmy automatycznie zwijać części kodu objęte nawiasami klamrowymi chciałbym polecić dodatek, który może się przydać programistom C# – Extended Outlining. Dostępny jest z galerii Visual Studio pod adresem:

http://visualstudiogallery.msdn.microsoft.com/db114790-9561-4f11-93c0-3e24e7c1152e

Dzięki dodatkowi możemy otrzymać następujący efekt:

I oprócz zwijania standardowych, wcześniej wymienionych bloków możemy spokojnie zwijać np. zawartość bloków instrukcji warunkowych.

Silesian Code Camp

4

No i po konferencji… Od samego rana mieliśmy okazję słuchać ciekawostek związanych z najnowszymi technologiami związanymi z firmą Microsoft no i wypadałoby coś podsumować :)

1. Organizacja

Świetne miejsce, dojechałem komunikacją miejską szybko i bezproblemowo, jak już przyjechałem na miejsce bez problemu dostałem swój identyfikator, pakiet startowy, wszystko odbywało się praktycznie na czas także brawo :)

2. Wykłady

Najważniejsza sprawa w tego typu eventach, nie będę pisał o każdym z osobna ale moje ogólne przemyślenia są bardzo pozytywne, wykłady mówione ciekawie, jeżeli uczestnicy mieli pytania to prelegenci na nie odpowiadali, wszystko prezentowało wysoki poziom i oczywiście można było zdobyć sporo wiedzy, np. jak zrobić z siebie Super Saiyana za pomocą Kinecta ;)

3. Nagrody

Na bogato ;) trzeba napisać, że organizatorzy się spisali i nagród było bardzo dużo, chyba większość ludzi wychodziła z przynajmniej malutkim gadżetem, mnie udało się wygrać licencję Telerika, książkę, smycz i koszulkę więc jestem bardzo zadowolony i jeszcze raz dziękuję :)

Podsumowując to wszystko na piątkę i oby następnym razem było tak samo, a Ci, którzy nie byli niech żałują ;) I jeszcze zapraszam na stronę konferencji: http://scc.srgm.pl/ i Śląskiej Regionalnej Grupy Microsoft oraz na następne spotkanie - http://geeksontour.pl

Klasy statyczne – bardzo mały wstęp

1

Klasa statyczna jest taką klasą, w której dostęp do jej elementów jest możliwy bez tworzenia jej obiektu, nie chciałbym wchodzić w szczegóły definicyjne, chciałbym jednak przedstawić zastosowanie takich klas.

1. Często używane operacje

Klasy statyczne są używane w celu łatwego dostępu do często używanych metod. Na przykład jeżeli w naszej aplikacji w wielu miejscach musimy przeprowadzać operacje serializowania obiektu do XML. W takim właśnie celu możemy napisać klasę „XmlHelper”, która na początku może zawierać tylko jedną metodę – Serialize, potem może być rozszerzona o operacje deserializacji czy inne metody, które są związane z operacjami dotyczącymi plików XML. Poniżej podaję przykład takiej klasy

public static class XmlHelper
{
#region Methods
public static string Serialize(object ob)
{
   string XmlString = string.Empty;

   // Stworzenie streamu
   MemoryStream MemoryStream = new System.IO.MemoryStream();

   XmlSerializer XmlSerializer = new XmlSerializer(ob.GetType());

   XmlSerializer.Serialize(MemoryStream, ob);

   StreamReader StreamReader = new StreamReader(MemoryStream);
   XmlString = StreamReader.ReadToEnd();

   return XmlString;
}
#endregion
}

Jak widać struktura takiej klasy nie jest skomplikowana, a potem w każdym miejscu możemy korzystać z tej metody pisząc tylko


string Xml = XmlHelper.Serialize(object);

2. Singleton

Singleton jest to jeden z kreacyjnych wzorców projektowych (obiektowy), którego celem jest ograniczenie możliwości tworzenia obiektów danej klasy do jednej instancji oraz zapewnienie globalnego dostępu do stworzonego obiektu. (według Wikipedii), nie chciałbym w tym momencie wchodzić w szczegóły i dokładne zastosowania ale jednym z nich może być tworzenie obiektu, który przechowuje dane, które powinny być szybko dostępne we wszystkich instancjach aplikacji.

public sealed class ClassProvider
{
static readonly Class _Instance = new Class();
static Singleton()
{

}

Singleton()
{

}

public static Class Instance
{
   get
   {
      return _Instance;
   }
}
}

2nd Silesian Code Camp

0

Chciałbym zaprosić wszystkich na konferencję Silesian Code Camp, która odbędzie się w tę sobotę (09.04.2011) w siedzibie firmy Kamsoft w Katowicach.

Myślę, że jeżeli macie wolną sobotę i jesteście zainteresowani technologiami firmy Microsoft to warto się pojawić w Katowicach :) oczywiście oprócz dokształcania się można zdobyć cenne nagrody (np. licencje na produkty firmy Telerik czy konsole do gier)

Silesian Code Camp

Silesian Code Camp

Serdecznie zapraszam i mam nadzieję do zobaczenia ;)

Podsumowanie roku

0

Zbliża się nowy rok więc wypadałoby w jakiś sposób podsumować ten stary. W związku z tym, że blog traktuje przede wszystkim o programowaniu  chciałbym zacząć od tego :) można powiedzieć, że ten rok był najbardziej owocny jeżeli chodzi o naukę nowych technologii czy metod tworzenia oprogramowania, dość mocno wszedłem w tematykę .NET, szczególnie jeżeli chodzi o aplikację webowe, z nauczonych rzeczy w tym roku mogę wyróżnić:

- ASP.NET MVC

- Tworzenie web services

- Sporo zdobytej wiedzy dotyczącej tego jak tworzyć dobry kod

- Wiedza dotycząca programowania serwisów dla telefonów IP Cisco

- Testowanie serwisów i serwerów pod kątem wydajności

Na pewno by się jeszcze kilka rzeczy znalazło bo przecież w tym zawodzie praktycznie ciągle uczymy się czegoś nowego :) dodatkowo obroniłem swoją pracę magisterską – „Deterministyczna obsługa serwisów web”, wraz z przeprowadzką do Katowic podjąłem pracę w firmie Intelix, w której zajmuję się tworzeniem aplikacji internetowych w technologii ASP.NET :)

Spoglądając na ten rok z perspektywy mniej komputerowej mogę tylko powiedzieć, że był bardzo „różny”, przeplatało się w nim wiele złych, jak i dobrych rzeczy Był to taki rok, którym można byłoby obdzielić wiele innych lat, tak samo trudny jak uczący wielu rzeczy. Sobie samemu i Wam wszystkim chciałbym życzyć wszystkiego najlepszego w nowym roku, oby był lepszy od tego, który powoli dobiega końca ;)

Testy obciążenia – Jakarta JMeter

0

W dzisiejszej wpisie chciałbym napisać o aplikacji, która umożliwia kompleksowe testowanie naszej aplikacji www, serwera www czy bazy danych - Jakarta JMeter.

Aplikacja umożliwia łączenie się z serwerem za pomocą wybranej ilości wątków przy danej ilości powtórzeń.  Program pozwala badać obciążenie różnych stron – możemy w niej zdefiniować listę stron, które mają być pobierane oraz możemy dowolnie dostosować obciążenie, które powinien obsłużyć nasz serwer. Bardzo ważna jest również możliwość pobierania strony razem ze wszystkimi zasobami, które są na niej zawarte (obrazy, filmy, style). Aplikacja zachowuje wszystkie dane dotyczące szybkości odpowiedzi stron, dzięki czemu możemy otworzyć plik zewnętrznym programem i odpowiednio zanalizować dane dostarczone przez program.

Aplikacja oprócz badań dotyczących przesyłania stron www może się łączyć również z zasobami za pomocą innych protokołów:

  • FTP,
  • JDBC (połączenie z bazą danych),
  • SOAP,
  • LDAP.

Program może wyświetlać dla każdego żądania, które zostało wykonane raport jak i dane, jakie zostały przesłane przez serwer.  Raport zawiera między innymi informacje:

  • wątku, z którego pochodziło żądanie,
  • informację o tym czy żądanie zostało prawidłowo obsłużone
  • numer próbki
  • wielkość odpowiedzi
  • dane wysłane na serwer
  • odpowiedź uzyskana z serwera
  • czas obsługi

Cechą aplikacji jest również to, że udostępnia możliwość tworzenia raportów z wykonanych testów. Oprócz standardowego widoku szybkości przetworzenia danych może tworzyć również statystyki takie jak:

  • rozkład gęstości funkcji,
  • średnia,
  • mediana,
  • linia 90%,
  • odchylenie standardowe,
  • wykresy.

Bardzo polecam aplikację, sam używałem jej przy tworzeniu swojej pracy magisterskiej. Następnym razem chciałbym pokazać jak tworzyć testy i czytać statystyki ;)

Google Chrome OS

4

Tak, Google w końcu ujawniło swój system operacyjny Chrome OS, ja podchodziłem do sprawy nieco sceptycznie ale Panowie z Google jednak mają w sobie ‘to coś’ ;)

W skrócie – Google Chrome OS to trochę system a’la przeglądarka internetowa, sam jeszcze nie testowałem ale po przeczytaniu kilku recenzji i obejrzeniu prezentacji ze strony http://www.google.com/chromeos mogłem wyrobić swoje zdanie, co ciekawe dobre zdanie.

System oparty jest na chmurze, więc wszelkie nasze dane, edytowane dokumenty, obrazy i inne automatycznie lądują gdzieś na serwerach Google, automatycznie nie musimy martwić się o to, że po awarii czy zgubieniu naszego kochanego komputera ;) zdjęcia z ostatniej imprezy gdzieś przepadną. Minusem tego rozwiązania jest to, że jeżeli cokolwiek stanie się z serwerami Google automatycznie nie mamy dostępu do danych.

Kolejnym plusem systemu jest to, że każda zakładka działa w osobnym procesie – dzięki temu jeżeli otworzymy niebezpieczną aplikację nie musimy obawiać się, że zaatakuje inne aplikacje systemowe czy otwarte zakładki, wszystko jest wydzielone, a jeżeli już w jakiś sposób uda się „przebić” Google Chrome OS potrafi wykryć zmiany w systemie i powrócić do poprzedniego stanu z serwerowego backupu :) dodam jeszcze, że wszystkie dane trzymane na naszym komputerze(np. cookies czy dane aplikacji) są szyfrowane, a system zapewnia automatyczne aktualizacje. Możemy również użyć konta gościa, w którym żadne dane nie są zapisywane, otrzymuje tylko możliwość przeglądania stron internetowych, dzięki temu nikt nam nie nabrudzi w komputerze ;)

Jak wcześniej wspominałem system działa właściwie w internecie – co zrobić jeżeli aktualnie nie mamy połączenia z siecią? Możemy pracować za pomocą zainstalowanych wcześniej aplikacji, a dane zostaną zsynchronizowane przy pierwszym połączeniu z internetem :)

Google Chrome OS zawiera wszystko, co jest potrzebne przeciętnemu internaucie – dostęp do prostych aplikacji, możliwość posiadania wszędzie własnych zasobów, możliwość instalowania aplikacji, w Stanach Zjednoczonych kupując notebooka z Chrome OS dostajemy 100 megabajtów miesięcznie do wykorzystania w sieci 3G Verizon. Google podchodzi do sprawy kompleksowo i o ile w moim komputerze Windows ze względów zawodowych ciągle pozostanie dominującym systemem to do szybkiego sprawdzenia poczty i sprawdzenia statusu znajomych z chęcią użyję systemu, który uruchamia się w kilka sekund, a nie minut :)

Krótka prezentacja ze strony Google:

Visual Studio Express – Generowanie Edmx

1

Witam po dłuższym okresie czasu :)

W dzisiejszym wpisie chciałbym wspomnieć o problemie, na który natrafiłem chcąc używać Entity Framework wraz z bazą danych MySQL w Visual Studio 2010 Express. Wybrałem oczywiście standardową ścieżkę – ściągnąłem ze strony MySQL dodatek MySQL Connector. Niestety ku mojemu zaskoczeniu kiedy chciałem dodać połączenie do bazy wśród dostępnych możliwości nie było MySQL. Jak się okazuje VS2010 Express nie wspiera takowych dodatków.

Aby wygenerować poprawny plik EDMX, który możemy spokojnie dodać do naszej aplikacji musimy użyć narzędzia udostępnianego przez firmę Microsoft – Edmgen2 (do pobrania ze strony http://code.msdn.microsoft.com/EdmGen2).

Po ściągnięciu źródeł aplikacji, otwieramy projekt w Visual Studio, kompilujemy a następnie z katalogu bin\debug projektu kopiujemy plik do miejsca docelowego.

Kolejnym krokiem jest odpalenie wiersza poleceń – Start -> Uruchom -> cmd

W wierszu poleceń przechodzimy do katalogu, w którym znajduje się plik edmgen2.exe i odpalamy go z paramterami:

edmgen2 /ModelGen ConnectionString Provider Model

Przykładowe wywołanie:

edmgen2 /ModelGen "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;” MySql.Data.MySqlClient Model

Po wykonaniu polecenia w katalogu, w którym znajduje się plik edmgen2.exe powinien zostać utworzony plik Model.edmx, który już bez problemu może być dodany do naszego projektu :)

Pendrive – Zabezpieczenie przed zapisem

3

Ostatnimi czasy na moim komputerze domowym pojawił się problem związany z tym, że nie było możliwe nagrywanie na żaden zewnętrzny dysk USB. Tak czy inaczej aby odblokować możliwość nagrywania należy:

1. Uruchomić program regedit (Start -> Uruchom -> Regedit)

2. Przejść do klucza HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\StorageDevicePolicies

3. Zmienić wartość WriteProtect na 0

Od tego momentu można spokojnie korzystać z przenośnych pamięci :)

Go to Top