ASP.NET Hosting


Archives / 2003 / October
  • Big bad update

    Big batch of additions and updates ocurred during the last days to the content of the SharpToolbox.

    Among other things, this brings in a new Internet and communications category, additions and updates to the great RemoteSoft products, new logging tools, and unusual dev tools such as SoftWIRE (picture) and Visual Welder (wich includes a 3D Spatial Editor!).

    Well, this is not all (the counter is now up to 320!), and you'd better just browse the directory, or look at the list of recent additions and updates. Don't forget you can use the RSS feeds to stay informed.

    PS: If you've submitted a request for addition of your tool, be patient, it's coming :-)


  • PDC overflow

    The PDC overflow has begun all over the .NET blogspace. I guess I'll spend the week reading all those posts I flagged for later reading...


  • Presentation about the Application Blocks

    I'll be giving a presentation with Microsoft about the new Application Blocks in December. Of course this will be in french...

    Je participerai le 2 décembre au Forum Architecte organisé par Microsoft sur le thème Patterns & Practices.
    Voici le résumé de cette présentation :

    Au cours de cette journée, nous découvrirons plus en détail quelqu’un des "application blocks" proposés comme :

    • Gestion de l’interface utilisateur (User Interface Process)
    • Gestion du cache (caching)
    • Invocation de service (services aggregation & asynchronous invocation)
    • Déploiement et configuration (application updater & configuration management)

    Je participerai avec Stéphane Goudeau de Microsoft à la présentation sur l'invocation des services dont voici la description :

    Les composants liés à l’« Asynchronous Invocation Application Block» facilitent la gestion d’une communication asynchrone entre un client Web et un ou plusieurs fournisseurs de services. Ce framework enregistre les demandes d’accès à plusieurs sources, délivre les requêtes à des agents chargés de les satisfaire et lorsque les données sont disponibles les communique en retour au client pour affichage.  De cette façon des résultats intermédiaires peuvent être affichés sans que tous les résultats soient complètement disponibles. L’utilisateur a l’impression d’une application plus performante et les ressources du serveur sont libérées plus rapidement.
    Les composants de l’« Aggregation framework Application Block » délivrent les requêtes à des agents, mais présentent les résultats sous forme d’un seul document XML.
    Les deux approches peuvent être ainsi combinées pour offrir des mécanismes d’invocation sophistiqués.

    Si vous souhaitez plus d'information ou vous inscrire, n'hésitez pas à vous rendre sur le site de Microsoft France.


  • Logging Application Block

    Microsoft released a new application block entitled the Logging Application Block that builds on the Enterprise Instrumentation Framework (EIF).

    The logging block provides extensions to the EIF architecture that help to address the common usage scenarios for logging. These include:

    • Formatting of event information
    • Configurable log levels
    • Enhanced information in the published events
    • Asynchronous logging
    • Reliable logging
    • Centralized logging
    • Request tracing for Web services
    • Metering for Web services
    • EIF publisher for Exception Management Block

    Sounds quite interesting, doesn't it? The question is: where do I get EIF?

    Update: EIF is now available as a free public download.
    Update: changed the link to point to the block home page, rather than the dowload page.


  • What to use for RSS feeds?

    I noticed in Eric Sink's post about Vault's RSS feeds that they use an ASPX file for RSS feeds.
    Is there an advantage in using ASP files? Maybe the not-so-well-known ASHX files are better adapted as they require less resources and we don't need to render HTML?
    What I use myself (eg. for the SharpToolbox feeds) is something else : an ASMX with webmethods available for GET requests. The advantage of this method is that the expected parameters are defined just like with any other method, and you get an error if the parameters are not provided as expected. Of course, this is less flexible than a simple URL query where you can have optional parameters.
    What do you use and why?


  • Suggestions for MyBlogroll

    Julien Cheyssial wants to know our opinions and suggestions for MyBlogroll.

    When I first thought about a server aggregator, my idea was having a web service on one side, and a smart client on the other side. I’ll try to reply to Julien’s questions from that perspective and thinking as if developing MyBlogroll myself...

    1. XML/XSLT

    XML and XSLT have several advantages for this kind of application. I used these technologies extensively over the past. Now that I write .NET applications, I tend to stick to the .NET framework. I used XSLT back when creating the SharpToolbox web site, where the data resides in an XML dataset, and the pages are rendered using XSLT.

    ASP.NET and XSLT have their own advantages; the problem is that they don’t really mix together. I still have to find a way to better benefit from both of them at the same time.

    Your first question is: “Should I go on with XSLT to render the pages?”

    ASP.NET and XSLT are so different that choosing between them is decisive. Nevertheless, what I would do is still trying to find my way in-between.

    I would do it in two steps.

    • I would build MyBlogroll V1 with the current technology.

    • For V2, I’d say go for ASP.NET wherever possible, and for XSLT where its advantages are obvious. I’d put the pages’ layout in ASPX files, and use ASP.NET WebControls for the components such as the toolbar, the feed item list… This would require creating some WebControls, that’s why it may be difficult to do it for the V1. I have ideas on how the WebControls could work. A WebControl is a control that renders as HTML, depending on the value of its properties. The HTML could be generated using XSLT. The XSLT would be parameterized by properties defining rendering parameters and the datasource to use. Let me know if you need help to create such controls.

    The second question is: “Do I need to use objects?”

    Thinking using objects lead to better design and reusability. Don’t Feed.Refresh() and FeedItem.BeenRead = true appeal to you? Using objects doesn’t remove the possibility to use XSLT: you can use XPathNavigators over object graphs to achieve XSL transformations!

    But that’s not all. You should design the application as layers and services. One layer to handle storage, one layer to handle feeds retrieval and publishing, and one layer for the presentation. This layered design makes it easier to build another presentation layer (maybe you’ll create a smart client one day using winforms…).

    Your next questions show that you already started to think about MyBlogroll as a service.

    2. Aggregation Service

    The core of MyBloroll should definitely be a service. I would say: go for a Web Service!

    A client application should be able to invoke the service remotely. Today, the client application is a web application, tomorrow who knows…

    3. ASP Mode

    This is what I had in mind, a server collecting feeds continuously, allowing users to retrieve the content on a per feed basis. The server retrieves the content of each feed once, and serves it multiple times to users.

    As you said, such an application would be highly bandwidth consuming, but this seems to be doable as Technorati, Feedster and others show.

    Not everybody will be able to host its own instance of MyBlogroll. For this reason, the ASP mode is required for a full success of MyBlogroll. I’d say do it for V1.5.

    4. What do you expect from a web aggregator?

    I have no doubt that you are able to create a rich web application, and there is a need for this since we are not always able to install a rich client.

    But my ultimate client aggregator would be a desktop aggregator. I want to work with feeds and items the same way I work with e-mails: drag&drop, move to folder, classify, search, forward…

    I don’t know what THE client will be tomorrow, but I know that MyBlogroll’s value is on the server side. I think in terms of plug-ins:

    • a client application handles the display and interaction with feeds and feed items.
    • a client application retrieves its data using plug-ins communicating with server applications.
    • a server application implements the API the plug-in expects.

    I would try to partner with SharpReader, NewsGator, whatever…, asking them to support the MyBlogroll service as a source for their content.

    5. Database or XML files?

    XML is definitely better if you want users to install MyBlogroll on their own computer or server. If you support the ASP mode, you’d better start thinking about the volume. Anyway, one thing is for sure: you need an abstract data access layer.

    I'll take this opportunity to give you some of my wishes

    • Notification icon in the tray bar to let us know when new items are available. The MyBlogroll backend needs to provide a web service with a function returning the number of new items.
    • Support Mozilla. MyBlogroll doesn’t work well with Mozilla right now. (You should use the title attribute instead of alt for tooltips; clicking on feed items does not display them…



  • Reality check

    SOAP, it wasn't Simple, we didn't Access Objects and its not really a Protocol
    David Ing, Meridian Project Systems


  • 302

    SharpToolbox: more than 300 tools and some additions pending...

    I'm not counting books, articles or code samples, but me thinks the offer for .NET development resources is rich, wide and de qualité.


  • Manipulating CSV files

    It doesn't seem to be well known that you can easily access data in CSV files (Comma-Separated Values) using ADO.NET components. For example, you can use the OleDbConnection, OleDbCommand, and OleDbDataAdapter objects to fill a DataSet from a CSV file. You can also update the data. Also notice that it is possible to use Visual Studio's Server Explorer to visualize or edit CSV files.