VIII 10 2010

Icon Finger

= Icon Finger

Na webové adrese http://www.iconfinder.com/ je spuštěna služba pro vyhledávání ikon.

VIII 10 2010

Device Filters v ASP.NET

= Device Filters in ASP.NET

 ASP.NET podporuje "elegantní" zápis pro nastavení vlastností controlů a direktiv dle používaného prohlížeče.


<asp:Label IE:Text="Používáte Internet Explorer" Mozilla:Text="Používáte Firefox" PIE:Text="Používáte Pocket IE" Text="Používáte Buchvíco" runat="server" />

 

VIII 10 2010

Extension metody v jazyce C#

= Extension Methods

Jazyk C# od .NET Frameworku 3.0 umožňuje rozšířit metody nad objektem o takzvané Extension Methods, což jsou metody, které rozšiřují funkcionalitu objektu bez zásahu do kódu objektu.

Ukázkou takové metody může být například metoda, která vrací příznak, zda je hodnota libovolného objektu rovna hodnotě null či nikoliv.

namespace System
{
   public static class ObjectExtensions
   {
      public static bool IsNull(this object o)
      {
         return o == null;
      }
   }
}

if (!myObject.IsNull())
{ … }

 

Extension metoda musí být statická, umístěna ve statické třídě a musí obsahovat první parametr uvozený klíčovým slovem this. Jakmile jsou tyto podmínky splněny, bude daná metoda zobrazena u všech objektů, které odpovídají prvním parametru metody, pokud danou statickou třídu vidí, tj. implementují její namespace.

Příkladem použití Extension Methods jsou například metody používané v LINQu.

Další extension metody je možné nalézt na následující adrese: http://www.extensionmethod.net/Default.aspx .

III 05 2010

Zapamatování pozice v divu při přenačtení stránky

= Remember a Div's Scroll Position

Je-li na stránce div s nastavenou vlastností stylu Overflow tak, aby byl obsah bloku div rolovatelný, nastává problém při přenačtení stránky vlivem události na stránce. Po tomto přenačtení se obsah bloku div vždy zobrazí na začátku.

V bloku Erica Pascarello jsem našel způsob, jak si div zapamatuje svojí pozici po její změně a při načtení stránky ji nastaví. Příklad zdrojového kódu ze stránek autora je níže.

<html>
  <head>
    <title>Fun Scroll</title>
    <style type="text/css">
      #divTest{width:150px;height:200px;overflow:auto}
    </style>
    <script type="text/javascript">
      window.onload = function(){
        var strCook = document.cookie;
        if(strCook.indexOf("!~")!=0){
          var intS = strCook.indexOf("!~");
          var intE = strCook.indexOf("~!");
          var strPos = strCook.substring(intS+2,intE);
          document.getElementById("divTest").scrollTop = strPos;
        }
      }
      function SetDivPosition(){
        var intY = document.getElementById("divTest").scrollTop;
        document.title = intY;
        document.cookie = "yPos=!~" + intY + "~!";
      }
    </script>
  </head>
  <body>
    <div id="divTest" onscroll="SetDivPosition()">
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      ERIC<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
    </div>
  </body>
</html>
II 14 2010

Visual Studio 2010 RC – Načtení projektu modelu z verze Beta 2

= Visual Studio 2010 RC – Load Modeling Project from Beta 2

Společnost Microsoft s nově vydanou verzí Visual Studia 2010 RC změnila strukturu projektového souboru projektu modelu. Aby bylo možné otevřít projekt z Beta 2 v RC, je nutné provést několik úprav:

  1. V projektovém souboru změnit <TeamArchitect>0.3.0.0</TeamArchitect> na <ArchitectureTools>1.0.0.0</ArchitectureTools>
  2. Dále v tomto souboru ještě změnit <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\TeamArchitect\Microsoft.VisualStudio.TeamArchitect.ModelingProject.targets" /> na <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\ArchitectureTools\Microsoft.VisualStudio.TeamArchitect.ModelingProject.targets" />
  3. A nakonec u všech souborů v projektu změnit hodnotu dslVersion=”0.3.0.0” na dslVersion=”1.0.0.0”

Po těchto úpravách je již možné projekt otevřít v novém Visual Studiu 2010 RC.

Podklady: http://blogs.microsoft.co.il/blogs/shair/archive/2010/02/11/visual-studio-2010-rc-unable-to-load-modeling-project-from-beta-2.aspx