ASP.NET Hosting


Archives / 2003 / February
  • Querying objects with XPath

    Mads writes:

    Maintaining complete object hierarchy in-memory

    The alternative would be to load all objects into memory at startup or first use. This way, using stateful session beans, each client could make requests on references to real objects directly, with these references placed in their state on the application layer.

    The big "how" in this scenario is search. How to do an effective complex search in large object hierarchies? If I have 4000 contacts of different types with sub-contacts and aggregated objects etc. it would probably take ages to do what a simple SQL SELECT could do in seconds.

    Maybe you should give a look at XPath for objects. An example of this for Java is JXPath.
    Note: I should have a prototype for .NET any time soon.


  • Think about Mono for source code

    Tim writes:

    If you haven't already, though, I would recommend checking out Anakrino, an awesome open-source C# decompiler. It can be very useful to get insight into a .NET assembly, either to extend / specialize functionality or to debug weird issues. And sure, the source code generated isn't quite as good as the original - for example, MSIL doesn't keep local variable names, so you lose those - but it still does the trick.

    I know for me it has proved useful on more than a few occasions.

    [Loosely Coupled]

    A great resource for the source code of the standard components of .NET is Mono. They've already done the reverse engineering for us.
    Check the Mono Class Libraries, a valuable resource for component writers!


  • Custom TreeView without behavior

    On a project I have worked on, we needed to display a tree view in an ASPX page. The client needed the ability to print the page through IE print command. We started to use the TreeView control coming with the IE Web Controls released by the ASP.NET team. Then we realized that the tree view was not printing correctly due to the use of a client behavior coming with the TreeView server control. The client behavior is automatically activated on IE 5.5+, and deactivated for previous or non IE browsers. ...But, the client behavior cannot be deactivated on up-level browsers!


  • Visual Studio: missing a keyboard shortcut

    I've been struggling with CTRL+TAB since the first day I started working with VS. Till today, I still do not know how to jump to the next (visually speaking) tab in the editor. CTRL+TAB does not make it as it jumps to the next (randomly speaking) tab. I don't understand the logic behind it, and it's not working as I wish it would.

    Does someone know of a working solution to jump between tabs without having to use the mouse?


  • Search page

    I've put a search page for on my weblog. Thank you goes to Google.
    (Scott, I included too :-) )

    Update: forgot to mention that I've added a link (Search) on my main page to make the search page easier to find.


  • Visual Studio Tips

    While showing-off the previous tip to a mate I was eagerly pointed in the direction of this link:

    Chris Sells does it yet again!

    [Darren Neimke]

    Two I like and didn't know about:

    • Let the IDE implement the stubs of an interface function in a class (not a struct):

      1. Type the name of the interface after the name of the class, e.g. "class Foo : IDisposable".
      2. In the Class View (Ctrl-Shift-C), navigate to the class, e.g. Foo, and choose the interface you'd like stubs for under Bases and Interfaces for that class.
      3. In the context menu (Shift-F10), choose Add->Implement Interface.
      4. Bask in the glory of Don Box (who showed me this trick).
    • Let the IDE implement the stub of an virtual function override:

      1. In the Class View (Ctrl-Shift-C), navigate to the class, e.g. Foo, and choose the method on the base class you'd like to override under Bases and Interfaces for that class.
      2. In the context menu (Shift-F10), choose Add->Override.
      3. Bask in the glory of me, who found this all by myself. I found this digging through the .VSZ files on my system. It looks like you can add your own context items to the menus, which sounds like fun...

    I recommend to use this with "Synchronize Class View" from the editor context menu.

    Update: The two tips above seem to work only for C#.


  • Speech by Senator Robert Byrd on war on Iraq

    Escaping from our .NET world for a second (as we are leaving in a real world too...):

    Slavomir Furman wrote:

    Keith Ballinger wrote:

    Floor speech by Senator Robert Byrd. A brilliant articulation of how I feel.

    [Floor speech by Senator Robert Byrd. A brilliant articulation of how I feel.


    Although I never heard about Senator Robert Byrd before and although I'm not an U.S. citizen, I think that this speech articulate also my feelings about all this Iraq thing we heard in news every night everywhere. Great speech!

    Very good. A must read.
    Good to see these opinions clearly expressed!


  • Windows Forms Smart Client Sample

    TaskVision is a sample smart client task management application built using the Windows Forms classes of the Microsoft® .NET Framework—an integral Windows® component that supports building and running the next generation of applications and XML Web services. TaskVision allows authenticated users to view, modify, and add projects and tasks that are shared with other users. It may be used in any number of scenarios, from bug tracking to managing work orders or customer service requests. Its primary purpose is to provide quality, sample source code to developers interested in building smart client applications and XML Web services using the .NET Framework.

    The TaskVision solution demonstrates many technologies provided by the .NET Framework including:

    • Application offline and online model
    • Application update model via HTTP (no-touch deployment)
    • Authorization to control user access to application features
    • Data collision handling
    • Printing and Print Preview
    • Windows XP Themes
    • Dynamic properties
    • Localization support
    • Accessibility support (limited)
    • Forms authentication using a database for user names/passwords
    • Asynchronous XML Web service calls
    • ADO.NET data access using SQL stored procedures
    • Graphics development using GDI+
    • Integration between .NET Framework-based code and COM applications (COM interop)

    [Chris Sells & MSDN]


  • Prevalence

    Ever heard about data prevalence?
    If not, you should take a look at Bamboo.Prevalence which is a .NET object prevalence engine.

    Bamboo.Prevalence is a .NET implementation of the object prevalence concept brought to life by Klaus Wuestefeld in his Prevayler system.

    Basically, Bamboo.Prevalence aims to provide transparent object persistence and synchronization to deterministic systems targeting the CLR (Common Language Runtime). No relational databases. No object-to-relational mapping goo. No SQL. Just you and your objects, isn't life great?

    For the rationale behind object prevalence please read the Object Prevalence Skeptical FAQ.

    Did someone use this technology? I'm curious to know more if someone has some feedback.


  • Release the source code, dammit!

    Microsoft released the complete source code of the Internet Explorer Web Controls (TreeView, MultiPage, ToolBar, and TabStrip ASP.NET server controls). This is great!

    We, developers, appreciate this move, as we need this to build on and extend these controls. We also need this code source to be able to build new components.
    Code sources prove to be highly valuable resources. They provide us with a better understanding of components' internals, can give us design ideas, and serve as examples of coding guidelines.
    MS should release the complete source code of all the controls, components and other classes. Borland has always done that with the VCL (now the CLX), the class library of Delphi, C++ Builder and Kylix.

    There is no secret in the source code of components. We can almost “read” it through the intermediate language. But one reason why MS does not release the source code could be that it is not uniform and totally clean. From what I can see, there were no strong guidelines applied during the development of the internals of the components library.

    Let’s just hope that the release of the source code of the IE Web Controls is just a start and that we will see more moves like this from MS.

    One downside though: the IE Web Controls are not supported...


  • MSDN Bug Center

    Ever faced a situation where you think you're in front of a bug? Well, maybe you should check the MSDN Bug Center. Who knows, maybe you'll find a fix or a workaround.
    This site is not well know, but can help you with bugs concerning Microsoft development tools (VS, VSS, .NET, ADO and other SDKs).


  • SideWinder

    Let's start with some news : Borland unveils more information on its plans around .NET.

    After releasing its Delphi for .NET Preview and licensing .NET, Borland introduces SideWinder. SideWinder (code name) is Borland's new IDE. Surprise (or maybe not...), it is C#-based. What is the future for Delphi?

    Learn more. Two screenshots are available.


  • Hi!

    Hi! My name's Fabrice, and this is my first post on my first weblog.

    I hope to see you around often. I'll try to share thoughts, ideas, tools and source as often as possible. BTW, if someone has a magic recipe to expand time, help is most welcome!

    Two words about my background: after leaving my computer science engineering school six years ago, I have been working on various software projects, mainly technique oriented ones. Indeed, my favourite hobby, as far as software is concerned, is R&D. I started working with .NET two years ago (beta 1). My first projects were about web services (at that time, I worked on a web services deployment tool). Since then I have been creating ASP.NET applications, and lately I am working on an application framework relying on .NET.

    I won't say more for now, things will put in place as time goes by. Stay tuned.
    Last word for this first post but not the least: Thanks Scott! :-)