Weblog @ rebex.cz

Weblogy na webu Rebexu
Welcome to Weblog @ rebex.cz Sign in | Help
in Search

Weblog @ Rebex.cz :: Honza Šotola

nepravidelné poznámky .NET vývojáře

  • DevExpress nepřidává ikony do toolboxu VS2010

    Po instalaci nových Windows 7 (64bit) se mi neobjvovaly DevExpress controls v toolboxu ve Visual Studio 2010.
    V logu toolboxcreatoru se objevovala násleudjící chyba:

    Failed registering for 100
    Error - Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.VisualStudio.OLE.Interop.IServiceProvider'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{6D5140C1-7436-11CE-8034-00AA006009FA}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

    Řešení přinesl článek Martina Vobra, který se zabývá obdobnou chybou při práci se SQL Management Studiem. 

  • Internet Explorer přestal otevírat nové záložky či okna

    Dnes jsem se přes hodinu mořil s následujícím problémem:

    MSIE 8 na nových Windows 7 náhle přestal otevírat stránky v nových záložkách či oknech.
    Při kliknutí na hyperlink se Shiftem či s Controlem (stejně jako při kliknutí pravým tlačítkem a výběrem příslušné funkce z kontextového menu) se nová záložka resp. okno otevřelo, ale zůstalo prázné, jen ikonka se stále točila, jako by se stránka nahrávala.

    Zajímavé bylo, že MSIE 64bit tento problém nedělal, zlobil jen MSIE 32bit (který používám defaultně, protože v něm fungují všechny pluginy jako Google toolbar či Flash player).

    Po hodině browsení a zkoušení neúspěšných rad jsem naštěstí narazil na článek, popisující ucelené a hlavně funkční řešení.

     

  • Pěkně popsané nastavení ASP.NET Forms Authentication společné pro několik websites

    Zprovoznit jakousi "single-sign-on" pro více ASP.NET sajt na jednom serveru je celkem snadné, potřebujete k tomu jeden či dva zásahy do web.configu.

    Velmi pěkne, stručně a uceleně to popisuje následující článek Petera Bromberga.

    Podobnou věc řeší i následující MSDN článek.

    Pokud byste chtěli mít více ASP.NET sajt na různých serverech (resp. s různým doménovým jménem), je to už horší.
    Jak to v omezené míře použít lze vyčíst z následující diskuse.
    (tento poslední návod jsem zatím neověřil, o případné zkušennosti se později podělím)

    Posted 15. června 2010 12:45 by honzas | 10 Comments
    Filed under:
  • Číslování týdnů v .NETu

    V letošním roce je (opět) patrné, že .NET používá jiné číslování týdnů, než je standardizováno v České republice.
    Upozornil nás na to klient, jehož aplikace letos používala čísla týdnů o jedno vyšší, než podle papírového kalendáře, přestože vloni fungovala správně.

     

    Jak to má být:

    V ČR se pro reprezentaci času používá (stejně jako ve většine Evropy) norma ISO 8601 (v ČR převzatá jako ČSN ISO 8601) a podle té je první týden v roce takový, který obsahuje 4. leden.

     

    Jak to je:

    Číslo týdne pro zvolené datum se v .NETu získá metodou
    Calendar.GetWeekOfYear(datum, weekRule, firstDayOfWeek).
    Instanci třídy Calendar získáme např. z CultureInfo.CurrentCulture.Calendar.

    Problém je právě v tom, odkud dodat hodnotu parametrů weekRule (pravidlo pro číslování týdnů). Rozumné by bylo převzít ho z aktuálního regionálního nastavení, tedy z
    CultureInfo.CurrentCulture.DateTimeFormat.CalendarWeekRule.
    Bohužel, ta pro českou kulturu (cs-CZ) vrací hodnotu FirstDay (tedy číslování se začíná v týdnu, který obsahuje první leden).

    Tedy zápis

    CultureInto.CurrentCulture.Calendar.GetWeekOfYear(
      datum,
      CultureInfo.CurrentCulture.DateTimeFormat.CalendarWeekRule,
      CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek).

    nevrátí číslo týdne, platné v ČR.

     

    Jak to řešit:

    Natvrdo (resp. po ověření, že aktuální CultureInfo je české) používat hodnotu CalendarWeekRule.FirstFourDayWeek.

    Správné číslo týdne tedy vrátí výraz

    CultureInto.CurrentCulture.Calendar.GetWeekOfYear(
      datum,
      CalendarWeekRule.FirstFourDayWeek,
      CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek)

     

    Poznámka:

    Podobně se chová (ve výchozím nastavení) i český MS Outlook 2007.
    I zde lze ale přepnout na pravidlo číslování týdnů přes
    Nástroje/Možnosti/Možnosti kalendáře/První týden roku: "První týden se 4 dny"

  • Jak nalepit desetinná čísla z SQL Server Management Studia do Excelu?

    Pokud pracujete na počítači s českým regional settings a potřebujete výsledek SQL dotazu z gridu v SQL Server Management Studiu (SSMS) přenést přes clipboard do Excelu, narazíte na to, že SSMS používá u desetinných čísel (datového typu Decimal) natvrdo desetinnou tečku (kdežto Excel vyžaduje desetinnou čárku). Takže se čísla do Excelu přenseou jako text.

    Microsot to na svém fóru uznal jako bug a v tomtéž threadu lze najít i workaround - stačí přetypovat čísla na Float a SSMS už použije desetinnou čárku.

Powered by Community Server (Personal Edition), by Telligent Systems