Rasyadi's blog

Programming, Software, and Tools

  • Visual Studio 2010 slow access to TFS

    Initially I thought it was a network issue. Though I compared the performance with Visual Studio 2008 and notice a huge different in terms of performance. After a few days, it was still the same. After a few google search. I found out the solution is to change the proxy setting for Visual Studio 2010 from MSDN forum.

    You need to edit devenv.exe.config file location in C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE. Open the file and look for <system.net> tag. Under that tag, add the following markup:

      <defaultProxy enabled="true" useDefaultCredentials="true">
           <proxy bypassonlocal="True" proxyaddress="your proxy server"/>
      </defaultProxy>

    The modified markup look as follows: 

    <system.net>
          <settings>
               <ipv6 enabled="true"/>
          </settings>
         <defaultProxy enabled="true" useDefaultCredentials="true">
              <proxy bypassonlocal="True" proxyaddress="your proxy server"/>
          </defaultProxy>
     </system.net>

    Now better performance when accessing TFs with Visual Studio 2010.

    Read more...

  • How to uninstall GAC without gacutil

    The web server behave differently and after tracing using ProcMon (Process Monitor) I found out that it using dlls from the GAC_MSIL directory. The directory doesn't visible to human eye because it used by the system the read the IL code. Basically the actual dlls' directory is in C:\WINDOWS\assembly. I know that the app use the wrong dlls, it should used the dlls inside bin directory instead. now what?

    Read more...

  • Meet WPF Twitter Client

    I'm not sure how many of my readers being on twitter. If you have no idea what it is, go to twitter.com, create your account there and start post what are you doing. I am a big fan of twitter. Normally I post and read it on the web, until I found this cool WPF client called wittytwitter. I'm a windows guy, so this probably a good thing for me since it only supported Windows XP and Vista. The best things is, it was released under open source's New BSD License. Try to be platform agnostic, dear reader, whether you are a Mac guy, Linux guy, or just a Web advocate, check their project website hosted on code.google.com. If you're a developer and trying very hard day and night, sacrificed your valuable time for years but still thinking that you're a noob, let's try to follow Scott's advice on reading code to be a better developer. Get your subversion client running on your machine and check out the code.

    Read more...

  • Shame and Down to Earth HttpContext.Items Property

    There is a few options to used if you want to stored object on the server-side. Some of the common techniques people used are including Session, Cache, Application. There's a different between each of the techniques.Obviously Items does not gain a lot of attention from developer. Mike Duncan has posted 3 hot uses for HttpContext.Current.Items that might change the way developers look at it. So what it is? What so special about it? Where can I used it? Taken from MSDN site:

    Gets a key/value collection that can be used to organize and share data between an IHttpModule interface and an IHttpHandler interface during an HTTP request.

    Notice the word HTTP request. It can be used to stored object in a single HTTP request to achieve a singleton in ASP.NET (only in single request). Ah ha. Simple idea how we can take advantage of this is by creating a class that can be used to stored key and object in a single HTTP request. This idea can be expand to create a more reusable framework for managing context. Another advantage of this property is that you can add object in all http request pipeline. Meaning you can share data between httpmodules and httphandlers implementation. One example use of HttpContext.Items is to store page setting when visitor request for the page.

       1: public static PageSettings GetPageSetting()
       2: {
       3:     if (HttpContext.Current == null) return null;
       4:  
       5:     PageSettings currentPage = HttpContext.Current.Items["CurrentPage"] as PageSettings;
       6:     if (currentPage == null)
       7:     {
       8:         currentPage = LoadCurrentPage();
       9:         if (currentPage != null)
      10:             HttpContext.Current.Items["CurrentPage"] = currentPage;
      11:     }
      12:     return currentPage;
      13: }

    There's lack of documentation about HttpContext.Items from Microsoft. Here's are some of the resources I found:

    Until next time.

    Read more...

  • Bridging TFS and SVN

     

    This is my second attempt to write on a public on what I've found interesting to be shared and I hope it can established a series of posting. From The Pragmatic Programmer's book tip #23: Always Use Source Code Control. For me, using source control is not just for tracking purpose. There's a lot of free source code project hosting available publicly on the Internet. One of the reason I've installed TortoiseSVN on my machine is to let me sync down those open source codes from public hosting such as code.google.com, codeplex.com or sourceforge.net (this require CVS). For code.google.com you can use TortoiseSVN directly because it was hosted using Subversion server. For codeplex.com, Microsoft's open source project hosting web site, the source code was hosted using Microsoft's proprietary Team Foundation Server (TFS). You can you either use TortoiseSVN or CodePlex Client to access the code repository. I prefer to use TortoiseSVN since I already used it to access the code from other SVN server. This is possible with SvnBridge, a tool that converts the call made by subversion client to the API supported by TFS. The developer's planet is lucky enough to have TFS SDK available, this will allow other tool to talk to TFS. To get it running on your local machine is pretty easy and no harm.  
     
    image  
    It's a mandatory tools to be installed on your machine since a few cool projects hosted there:
     
     
    Now lots of source codes to be sync down.

    Read more...