Ściągasz sobie SQL Server 2012 i instalujesz. Wchodzisz w menu start -> SQL Server 2012, chcesz odpalić management studio i zonk! Nie ma! No nie ma! Chyba z godzinę szukałem gdzie i jak to zainstalować. Ściągnąłem od początku SQL Server 2012 Express i nadal dupa. Okazuje się, że trzeba ściągnąć odpowiedni pakiet, o stąd:
http://www.microsoft.com/en-us/sqlserver/editions/2012-editions/express.aspx
czwartek, 23 stycznia 2014
czwartek, 14 listopada 2013
Socket in C# - łączenie i wysyłanie wiadomości do serwera
Ostatnio po raz pierwszy byłem zmuszony użyć klasy Socket pisząc testy jednostkowe sprawdzające komunikację między klientem a serwerem z użyciem Socketów. Standardowo można stworzyć nową instancję klasy Socket, następie wywołać Connect i po połączeniu z serwerem wysłać do niego odpowiednią wiadomość. Ja jednak postanowiłem skrócić sobie pracę używając klasy TcpClient, która generalnie jest pewnym "wrapperem" nad klasą Socket, dzięki której po prostu możemy sobie pisać szybciej i mniej. Przykładowo w konstruktorze tej klasy następuje połączenie poprzez socket z serwerem, więc już nie muszę wołać metody Connect(), co wydaje się być mega fajne. Dodatkowo klasa TcpClient ma właściwość Client, która zwraca typ Socket.
Sama komunikacja z klienta na serwer wygląda następująco:
using (Socket socket = new TcpClient(host, port).Client)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
int bytesSent = socket.Send(msg);
Assert.IsTrue(bytesSent > 0);
int bytesReceived = socket.Receive(bytes);
Assert.IsTrue(bytesReceived > 0);
}
Instalacja windows service za pomocą installutil - security access error
Czasami przychodzi potrzeba instalacji usługi Windows Service w środowisku developerskim bez używania installera. Jest to standardowy sposób przy tworzeniu nowego serwisu lub w przypadku gdy chcemy go zdebugować po raz pierwszy. Aby zainstalować taki windows service, który de facto jest naszą aplikacją konsolową należy w Visual Studio Command Prompt wpisać komendę:
installutil yourproject.exe
Czasami jednak wyskakuje błąd np. taki: "Security logs inaccessible". Oznacza to, że nie mamy dostatecznych praw na zainstalowanie serwisu i dodanie informacji o takim zdarzeniu do Event Loga. Rozwiązaniem jest po prostu uruchomienie Visual Studio Command Prompt jako administrator. "As simple as that"
piątek, 8 listopada 2013
"Symulacja" wysyłania maili - czyli inna metoda doręczenia maili
Jeśli piszecie funkcjonalność wysyłania maili a w środowisku developerskim nie macie dostępu do serwera smtp, istnieje prosty mechanizm, który pozwoli na symulację takiej wysyłki. Wystarczy w pliku konfiguracyjnym wartość w deliveryMethod zmienić z "Network" na "SpecifiedPickupDirectory" co skutkuje tym, że maile będą zapisywały się na dysku. Wystarczy jeszcze tylko podać gdzie dokładnie.
Poniżej przykład:
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="c:\temp\maildrop\"/>
</smtp>
</mailSettings>
</system.net>
czwartek, 7 listopada 2013
X509FindType - FindBySerialNumber
Aby korzystać z połączenia SSL potrzeby nam jest odpowiedni certyfikat. Ostatnio w pracy nasz administrator systemu zmieniał certyfikat z "self-signed" na wystawiony przez "well know issuer" tak aby użytkownik zawsze widział ten certyfikat jako zaufany i aby nie było potrzeby dodawać odpowiedniego certyfikatu do TrustedPublishers. Administrator uaktualnił certyfikat a ja musiałem zmienić konfigurację w web.config tak aby serwis używał nowego certyfikatu. Aby znaleźć certyfikat musimy określić odpowiedni typ szukania. W naszym konfigu z FindBySubjectDistinguishedName zmieniliśmy na FindBySerialNumber. Zmieniłem, dodałem w findValue wartość z certyfikatu w polu SerialNumber ale klops! Okazało się, że certyfikat nie może być znaleziony. W związku z tym szybko na msdn i szukam. Okazało się, że wartość SerialNumber musi być wpisana bez spacji!!
The findValue parameter for the Find method must be a string that represents the serial number of the certificate as displayed by the certificate dialog box, but without the spaces
środa, 6 listopada 2013
Wyszukiwanie procedur składowanych
Ostatnio chciałem w bazie znaleźć wszystkie procedury składowane, które w ciele miały odpowiedni tekst. Wiedziałem, że trzeba szukać po jakiś obiektach systemowych SQL Servera ale nie byłem pewien jak dokładnie. 10 sekund w google zajęło mi znalezienie odpowiedniego skryptu:
SELECT OBJECT_NAME(id)
FROM SYSCOMMENTS
WHERE [text] LIKE '%Text_To_Search%'
AND OBJECTPROPERTY(id, 'IsProcedure') = 1
GROUP BY OBJECT_NAME(id)
poniedziałek, 6 lutego 2012
Breadcrumbs w asp.net mvc 3
Ostatnimi czasy uczyłem się troszkę ASP.NET MVC3. Stworzyłem sobie pewną stronkę w której musiałem mieć zaimplementowaną obsługę breadcrumbs (nie wiem jakie jest polskie tłumaczenie w kontekście stron www, więc będę używał tego terminu).
Czym jest breadcrumbs?
To- część nawigacji stron WWW. Najczęściej wyglądają one podobnie do tego:
Strona główna > Kategoria > Podkategoria > Docelowy artykuł
w realnym świecie, biorąc za przykład stronę z nieruchomościami mogłoby to wyglądać następująco:
Strona główna > Rynek wtórny > Poznań > Kawalerka dla studenta
Subskrybuj:
Posty (Atom)