Chaves

my.space.share.community

Março 2006 - Posts

IE7 e debbuging

Desde que saiu a versão beta do IE7 eu tenho-a instalado para além de ver bugs aproveitar para ver as melhorias. Elas existem e são muitas como já poderam ter comprovado. De facto o problema surge quando estou a fazer debbuging em aspx 2 com o Visual Studio 2005. Isto porque quando coloco breakpoints e vou seguindo passo a passo, passado algum tempo o IE7 parece que "desiste", deixa de receber informação do servidor e diz que a página não está disponível mesmo avançando no VS. Portanto estamos ou estou :P perante um problema que por vezes me chateia.

Mas pronto nada como esperar pela versão final, ou outra que venha melhorada neste aspecto. Outra coisa que me acontece é quando fecho o IE depois de correr a minha app ele devolve-me um erro que partilho convosco na imagem abaixo. Espero que problemas de memória venham resolvidos e que este seja tão estável como o IE6.

Outro problema que tenho e que também quem "bloga" neste site, é que na área de administração ficamos quase sem todas as opções, como artigos, galerias, links, etc. O que faz recorrer a outro pc com o IE6 (:P) para poder usar estas opções.

Ou seja, espero que o IE7 venha também a pensar nos developers e que não nos traga mais chatices para o desenvolvimento das nossas apps.

Posted: 29-3-2006 22:56 por Chaves | with no comments
SQL Server 2005 - Report Packs

Para quem anda a trabalhar com o SQL Server 2005, como eu, encontrei um link que tem um Report Pack para o SQL.

Este pacote contem:

SQL Server 2005 Report Pack for SQL Server Integration Services

SQL Server 2005 Report Pack for Microsoft SharePoint Portal Server 2003

SQL Server 2005 Report Pack for Microsoft Dynamics Axapta 3.0

SQL Server 2005 Report Pack for Microsoft Dynamics Navision 4.0

SQL Server 2005 Report Pack for Microsoft Dynamics Great Plains 8.0

SQL Server 2005 Report Pack for Microsoft Dynamics Great Plains 9.0

SQL Server 2005 Report Pack for Microsoft Internet Information Services (IIS)

SQL Server 2005 Report Pack for Financial Reporting

 

http://www.microsoft.com/downloads/details.aspx?familyid=d81722ce-408c-4fb6-a429-2a7ecd62f674&displaylang=en

?>

Posted: 27-3-2006 20:46 por Chaves | with 22 comment(s)
Bill Gates

Para quem gosta de ouvir o Presidente da Microsoft, neste link http://www.microsoft.com/events/executives/billgates.mspx existe montes de informação e de webcast que ele tem vindo a realizar.

Existem alguns muito interessantes e que sem dúvida vale apena ouvir e ver.

Posted: 27-3-2006 20:42 por Chaves | with no comments
Finalmente a RTM do BizTalk 2006

Saiu finalmente a RTM do BizTalk Server 2006.

http://www.microsoft.com/biztalk

http://www.microsoft.com/presspass/press/2006/mar06/03-27BizTalk2006RTMPR.mspx

Posted: 27-3-2006 20:39 por Chaves | with no comments
Developer Tool Bar para o IE7

Com as modificações entre as builds do IE7, a developer tool bar deixou de funcionar. Contudo já está diponível uma nova versão que é compatível com o IE7.

Já experimentei e tal como já tinha referido é uma óptima ferramenta principalmente para WebDevelopers como eu :P

http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&displaylang=en

 

Posted: 23-3-2006 1:09 por Chaves | with no comments
IE7 Nova Build lançada hoje 20 de Março

Foi lançada hoje mais uma build do IE7, foi apresentada na conferencia do MIX06.

http://www.microsoft.com/windows/ie/ie7/

 

Posted: 20-3-2006 23:58 por Chaves | with no comments
Windows Workflow Foundation Beta 2.2
Ja está disponível  a versão Beta 2.2 do Windows Workflow Foundation.  Contudo consultem a informação acerca das modificações e sugestões de instalação. download page.
Posted: 18-3-2006 0:53 por Chaves | with no comments
Série de WebCast - BizTalk Server 2006

Na semana de 27 deste mês arranca uma série de WebCast's sobre o BizTalk Server 2006, para quem estiver interessado é uma boa opurtunidade.

http://www.microsoft.com/events/series/msdnbpi.mspx

 

Posted: 15-3-2006 16:26 por Chaves | with no comments
Microsoft Windows Vista Training

Se estão interessados em saber como o Vista funciona a todos os seus níveis, vai haver vários seminários na web.

Em, http://www.msreadiness.com/promotiondetails.asp?promoid=5534

 

Posted: 14-3-2006 9:56 por Chaves | with no comments
Microsoft constroi um novo gigante free mail

A Microsoft prepara-se para o grande lançamento do Windows Live Mail Desktop, este vai ter ligação com todos os outros serviços e sistemas operativos. Os clientes acedem de uma forma fácil, rápida e sem configurações especiais. Vai estar também disponível o serviço de POP e IMAP, com múltiplas Inbox's.

Outro bom exemplo é o "Photo Mail" que vai permitir capturar da câmara uma pic, redimensiona-a e envia por email, ao mesmo tempo que envia uma com qualidade para o espaço MSN.

Os serviços que vão estar incorporados com este Live Mail são:

  • Integration with Windows Live Mail and Messenger
  • Photo Mail
  • RSS Feeds
  • Anti-Phishing
  • Word Wheel
  • Multiple Accounts
  •  

    Posted: 14-3-2006 0:35 por Chaves | with no comments
    SQL Server 2005 -- Tools for row and cell level security
    "

    The toolkit comes from our Federal MCS practice.  The centerpiece is a tool which allows you to logically define the security labeling scheme you wish to be used in your app's database.  Based on this, at the click of a button the tool generates an implementation of the supporting framework described in the whitepaper.  All you need to do is create a simple view over the table(s) you wish to protect.  Support for insert/update/delete is added by writing simple instead-of triggers to capture these operations.  The toolkit documentation includes extensive design guidance and examples of implementing different scenarios.  Several working code samples are included as well.

    Naturally, everything is based on the .Net Framework 2.0.  However, as can be seen in one of the examples (which uses Visual Basic 6.0), .Net is not required for apps which use a SQL Server 2005 database with row/cell level security.  As long as the client app can connect to SQL through a supported database access stack, it can make use of tables protected with row/cell level security.  This includes shrinkwrapped apps like Excel which can treat SQL 2005 as a data source.

    The toolkit is a free download, and is not supported by Microsoft.  Download it here and let us know what you think!

     - Art Rask, MCS Public Sector

    "
    Posted: 14-3-2006 0:30 por Chaves | with no comments
    Windows Vista Software Logo

    Encontra-se já on-line os requesitos para que se possa exibir o logo do Windows Vista :P. Preparem já as vossas aplicações :)

    https://partner.microsoft.com/us/40018574

     

    Posted: 13-3-2006 11:02 por Chaves | with 6 comment(s)
    Performance? Check it out
    "

    Well the comments have been just awesome and many people went right ahead and measured the results.  Some of you have discovered the key point in this particular test:

    Arrays are magic.

    In the test case as given there's a great deal of repeated work extracting the length of the array and accessing the items.  This is because of the unusual property that arrays have -- they implement IList for potetially more than one T even due to inheritance.  In the interest of economy alone then it is worthwhile to consolidate the IList implementations into some kind of secret helper but this has some consequences.

    Luckily there are also alternatives -- the example that I provided is perhaps the worst performing choice.  As one reader pointed out you could make it much better by extracting the count from the IList once and then using that in the loop.  Note that the compiler cannot do this because IList.Count is a virtual method and so we cannot assume anything about the implementation (it could sent a letter to grandma every time it is called and grammy wants her email!)

    Here are the results from my program (source code attached, see link at the very bottom)

    Test Case Milliseconds
    Test1: Array 54
    Test2: List<> 8
    Test3: ArrayWrapper 14
    Test4: Array via foreach 9
    Test5: List<> via foreach            11
    Test6: Array via special 6
    Test7: List<> via special 8

    The first two rows are the problem as given and we can easily see that the array is performing much more slowly than the List.  Let's see where the cost is:

    Excl% Incl% Name
    0.00 51.27 ArrayTest.Program.Test1(uint16[])
    1.64 51.27   ArrayTest.Program.Test.Sum(System.Collections.Generic.IList`1)
    2.38 25.64     System.SZArrayHelper.get_Item(int32)
    5.47 23.26         JIT_IsInstanceOfArray(...)
    4.72 7.26           ArrayIsInstanceOfNoGC(...)
    2.63 10.02           SigTypeContext::InitTypeContext(...)
    0.49 22.40     System.SZArrayHelper.get_Count()
    5.36 21.91         JIT_IsInstanceOfArray(...)
    4.30 6.99           ArrayIsInstanceOfNoGC(...)
    2.40 9.07           SigTypeContext::InitTypeContext(...)

    Well it pretty much leaps off the page, the cost is in those helpers and you can see they're doing a good bit of internal work to verify that we are talking about a simple array of a non-collectable type (ushort) and then more work happens to get to the real data.  The tragedy here is that the work done to validate what we need to do far exceeds the actual job at hand -- which in both cases is just extracting one integer from a well known location.  The price of abstraction....  Though I'm pretty sure there is room for improvement in there.

    Let's look at some of the other alternatives.  First how did the List fare:

    Excl% Incl% Name
    0.00 8.62 ArrayTest.Program.Test2(System.Collections.Generic.List`1)
    1.06 8.62     ArrayTest.Program.Test.Sum(System.Collections.Generic.IList`1)
    5.82 5.82         CLRStubOrUnknownAddress
    1.54 1.54         System.Collections.Generic.List`1.get_Item(int32)

    In the list case there's still a good bit of dispatch code but you can see it's much cheaper.  We're on the sweet path for regular interface dispatch.  The actual count function calls are stil there if we were to look at lower percentages but I pruned anything with inclusive time below 1% in this example so it's not showing up.  We're doing a lot better.

    Now what about some of the other results?  Well, now we're in the bonus marks zone and I don't want to drown you in perf results you can get yourself so I'll summarize a bit.

    In Test 3 I made a generic wrapper class to hold the array.  This adds a level of indirection but it avoids all the magic array processing.  My wrapper is highly lame (it only implements count and get item) but you can see that it's doing fairly well performance wise.  Much better than the raw array and it's a cheap object.

    But the fun continues:  What if we replace that for loop in the original test with a foreach?  We can't get the ultra-special array foreach construct but we can get a nice standard foreach over an IList in both cases.  Both Test4 and Test5 do introduce one allocation for the enumerator (which could be an issue if there were gazillions of these lists) but for our test case that's not even measurable (indeed I get no samples in the allocator).

    And the result?  It's pretty sweet:  The array problem goes away entirely because we only have to do the array testing one time.  After that we've got a nice bound up enumerator that knows all the details of the array -- no more redundant computations.   The array works great.. but the list is a bit slower?  Why would that be?  Well there's some extra safety checks in the enumerator access code for List to make sure the enumerator isn't being used on an List that is being modified for instance.  Those checks slow down the list access a bit.

    And the last two tests:  What if we special case the array in the sum function; assuming that was a very common/important case.  You can see that test6 gives the best result of all -- now there isn't any enumerator and we're on the most optimized code path of any -- foreach over a plain array.

    But why is the List case faster in test7?  Shouldn't it be pretty much the same as test5?  After all there's an extra test and otherwise it's the same.  Now there's a mystery...  I actually ran a variety of control experiments, doing the tests in different order and with different array members to make sure this wasn't an anomolous result -- you can imagine with all these iterations cache effects would be important.  But no matter what I did the code in test7 always went faster than the code in test5.  Adding more iterations actually magnifies the effect.

    The profile isn't especially helpful either -- both Test5 and Test7 have exactly the same call shape but Test7 spends less time in CLR stubs apparently.  At the moment my best theory is that we happen to get better cache alignment in Test7 than Test5 -- less instructions split across cache lines or fewer unfortunate cache evictions because of happenstance.

    Such is the life of the performance engineer -- we sometimes get bit by a secondary effect.

    So shall we continue?  What is happening to make Test7 faster than Test5?

    And this seems like a great place to thank my colleague Vance Morrison for chiming in with the foreach and special case approaches when I first was bouncing this analysis around.  Thanks a ton Vance :)

    "

    http://blogs.msdn.com/ricom/archive/2006/03/12/549987.aspx

    Posted: 13-3-2006 10:58 por Chaves | with 8 comment(s)
    CTP de Março

    Na sexta passada foram lançadas as CTPs do Expression Interactive Designer (code named "Sparkle") e Expression Graphic Designer (code named "Acrylic"). O Blog  Expression team blog publicou post sobre as mudanças destas versões.

    Posted: 13-3-2006 10:57 por Chaves | with no comments
    Key Note Security 360

    Saiu hoje na TechNetFlash :

    "Neste discurso na Conferência RSA 2006, Bill Gates destacou os investimentos e inovações que envolvem a plataforma do Microsoft Windows, incluindo tecnologias de identidade e acesso, Windows OneCare Live, bem como parcerias industriais, como, por exemplo, a SecureIT Alliance. Também poderá assistir ao Webcast."

    Muito bom...

    Posted: 7-3-2006 21:33 por Chaves | with 1 comment(s)
    Mais Entradas Página seguinte »