by Piotrosz
30. January 2010
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! Należy stworzyć sobie nowy projekt typu Web Application, przekopiować wszystkie pliki
w aplikacji typu Web Site i dopiero wtedy wybrać z menu
Convert To Web Application:
Jeśli to kogoś interesuje, to na przykład pod
tym linkiem można znaleźć porównanie tych dwóch typów projektów.
by Piotrosz
28. January 2010
Sposób na schowanie kontrolki
PopupControlExtender z AJAX Control Toolkit za pomocą JavaScript.
Zaleta takiego sposobu schowania warstwy (popupa) jest taka, że nie spowoduje PostBacka.
AjaxControlToolkit.PopupControlBehavior.__VisiblePopup.hidePopup();
Na przykład:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:TextBox runat="server" ID="txt1" />
<asp:Panel runat="server" ID="pnl1" Width="200" Height="200" BackColor="Orange">
<asp:LinkButton runat="server" ID="lbClose" Text="Zamknij"
OnClientClick="AjaxControlToolkit.PopupControlBehavior.__VisiblePopup.hidePopup(); return false;" />
</asp:Panel>
<act:PopupControlExtender ID="PopEx" runat="server"
TargetControlID="txt1" PopupControlID="pnl1"
Position="Bottom" />
</div>
</form>
by Piotrosz
22. January 2010
Ostatnio przeraziłem się, ponieważ po zainstalowaniu .NET Framework 3.5 na serwerze oczekiwałem, ze pojawi się możliwość wybrania ASP.NET 3.5 w IIS Managerze:
Okazuje się, że nie ma się czego bać, ponieważ .NET Framework 3.5 jest jedynie rozszerzeniem .NET Framework 2.0 i z punktu widzenia IIS nic się nie zmieniło.
A tutaj pewnien Mistrz pisze o tym bardziej szczegółowo:
http://blogs.msdn.com/vijaysk/archive/2008/03/20/running-asp-net-3-5-on-iis.aspx
by Piotrosz
22. January 2010
Zastanawiałem się w jaki sposób dostać się do zasobów globalnych aplikacji ASP.NET z poziomu klasy w projekcie typu class library.
Okazuje się, że jest na to sposób:
HttpContext.GetGlobalResourceObject("NazwaZasobuGlobalnego", "NazwaKlucza");
Jeśli nasza biblioteka ta będzie używana nie tylko w aplikacji ASP.NET, to pewnie też warto sprawdzić czy przypadkiem
HttpContext.Current nie jest null.
A tutaj pan Robert zaproponował prosty wrapper:
http://www.williablog.net/williablog/post/2008/11/20/Accessing-Global-Resource-Files-from-a-Class-Library-in-ASPNET.aspx
by Piotrosz
14. January 2010
AnkhSVN (
http://ankhsvn.open.collab.net/) to
plugin do Visual Studio, który jest klientem Subversion i pozwala na wykonywanie podstawowych operacji na
repozytorium w trybie graficznym i do tego bez opuszczania Visual Studio.
Zapamiętuje on dane użytkownika SVN w cache na dysku. Jest to bardzo wygodne, bo nie trzeba za każdym razem
wpisywać tych danych, jednak pojawia się problem, gdy trzeba zmienić hasło lub użytkownika.
Okazuje się, że są 2 sposoby na wyczyszczenie zapamiętanych nazwy i hasła użytkownika.
1) W Visual Studio wybieramy Tools->Options i potem Source Control->Subversion Environment:
Klikamy na guzik Edit przy Authentication Cache, a potem usuwamy zapamiętane dane:
Drugi sposób (w starszych wersjach AnkhSvn jedyny) to ręczne usunięcie plików z następujących katalogów:
%APPDATA%\Subversion\auth\svn.simple
%APPDATA%\Subversion\auth\svn.ssl.server
Informację o tym znalazłem na tej stronie:
http://www.zuhaib.in/how-to/clearing-ankhsvn-saved-username-password-authentication-data.
W obu przypadkach, po usunięciu informacji z cache AnkhSvn ponownie pyta się o użytkownika i hasło:
by Piotrosz
8. January 2010
Obiekty Microsoft.SharePoint.SPSite i Microsoft.SharePoint.SPWeb korzystają z niezażądzanego kodu (unmanaged code) i mogą długo pozostawać w pamięci.
Dlatego zawsze należy jawnie wywołać na tych obiektach metodę
Dispose() lub zamknąć je wewnątrz using, co jak wiadomo również spowoduje wywołanie Dispose():
using (SPSite site = new SPSite(Url))
{
using(SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
// ...
}
}
Więcej informacji o obiektach, które implementują interfejs IDisposable ("disposable objects") w WSS można znaleźć tutaj:
http://msdn.microsoft.com/en-us/library/aa973248.aspx.