Archives

Archives / 2004 / May
  • Article: The Quest for ASP.NET Scalability

    just published on MSDN:

    Summary
    In this article, Michèle looks at some of the architectural and design decisions that may affect ASP.NET application scalability. In addition, she looks at how you can use Enterprise Services and MSMQ to reduce the effect of those scalability problems.

    Contents
    Introduction
    How Many Threads Does it Take to Slow an Application?
    How Do I Scale Thee...Let Me Count The Ways
    A Little Case Study in Scalability Architecture
    Conclusion
    Related Books

  • Best Practices Analyzer Tool for Microsoft SQL Server 2000 1.0

    Microsoft has released its Best Practices Analyzer Tool for Microsoft SQL Server 2000 1.0.

    Microsoft SQL Server Best Practices Analyzer is a database management tool that lets you verify the implementation of common Best Practices. These best practices typically relate to the usage and administration aspects of SQL Server databases and ensure that your SQL Servers are managed and operated well.

  • My thoughts on dasBlog

    Good:

    • Uses file-based data storage because I don't have an Sql Server (most important for me!)
    • It's free
    • Templates are easy to use and manage
    • Hierarchical catagories
    • Internationalization support
    • Search box
    • Crosspost

    Missing features:

    • Working with drafts / hide posts to users
    • Disable comments for individual posts (then we have somenthing like articles in .Text)
    • Overview of all comments
    • Internationalization support could be better: I'm posting in German and English. dasBlog enables me to mark posts as German, English and "Invariant" and users will only see entries in their language. BUT I need German and "not-German". When I mark my post with "Invariant Language" Germans will see both posts: German and English. If I would set my English post to "English" then Spain users don't see anything.

    Open issues:

    • dasBlog does not write any log files at my ISP

    Conclusion: I love it because it uses file-based storage and is simple to manage but I don't understand why no logs will be written ....

  • Article: XML Support in Microsoft SQL Server 2005

    Just published on MSDN

    Summary

    This article discusses the XML support built into SQL Server 2005. It shows how this support integrates with the client side programming support in the .NET Framework V2.0 and in native code such as OLEDB and SQLXML.

    Contents

  • Articles: Visual Studio 2005 Team System

    Just published on MSDN:

    Visual Studio 2005 Team System: Overview
    Provides an overview of Microsoft Visual Studio 2005 Team System and the role it plays in increasing the productivity and predictability of the Software Development Life Cycle (SDLC). Visual Studio Team System is part of the Microsoft Solution System, which integrates process guidance, prescriptive architectures, and life cycle tools for successfully deploying solutions on the Windows Server System .

    Visual Studio 2005 Team System: Microsoft Solutions Framework
    Microsoft Solutions Framework (MSF) is an integrated system of process guidance that embraces both agile and formal methodologies and provides a framework to implement a customized solution for a wide variety of projects.

    Visual Studio 2005 Team System: Building Robust and Reliable Software
    Describes the code analysis and performance tools available in Visual Studio 2005 Team System.

    Visual Studio 2005 Team System: Extending the Suite
    Visual Studio 2005 Team System is an extensible set of software development life cycle tools that helps teams reduce the complexity of building modern service-oriented software and facilitates better communication among members participating throughout the development process. These tools are integrated through a set of integration services and tool-specific APIs that are publicly available for integrating additional tools.

    Visual Studio 2005 Team System: Designing Distributed Systems for Deployment
    This article examines software design tools available in Visual Studio 2005 Team System for building distributed applications.

    Visual Studio 2005 Team System: Enterprise-Class Source Control and Work Item Tracking
    This article describes the integrated change management components for enterprise-class source code control, work item management, and reporting available in Visual Studio 2005 Team System.

    Visual Studio 2005 Team System: Enabling Better Software Through Better Testing
    This article examines tools for testing software that are integrated into Visual Studio 2005 Team System.

    Visual Studio 2005 Team System: Software Project Management
    This article examines software project management tools available in Visual Studio 2005 Team System

  • Article: SOA Challenges - Entity Aggregation

    New article on MSDN about Entity Aggregation in a SOA:

    Summary: Use Entity Aggregation (EA), within the larger content of a Service Oriented Architecture (SOA), to integrate duplicate information present in different services in your enterprise that are autonomous in nature—HR, Payroll, and Benefits, for example.

    Section 1 discusses the problem context and scenarios that require integration of information that is present in different systems.
    Section 2 discusses various solution models that can be used to implement an entity aggregation solution.
    Section 3 covers some of the key design issues that a solutions architect faces while implementing the solution.
    Section 4
    covers Microsoft technologies that can be used to build an EA solution.

  • Site relaunched

    After several days/weeks of working and thinking about my new personal web site I'm able to bring it on-line now!

    I introduced two new sections: "Architecture" and "Technologies". Architecture concentrates on more theoretical issues like definitions, models and documentation while Technologies shows architecture relevant technologies in the field of .NET.

    But this is only the very, very first step - I hope to  find time for more content soon ...

    Waiting for your feedback!

    http://www.sebastian-weber.org

  • Playing with abbreviations (SOA-P)

    Q: What's the relation between service-oriented architecture (SOA) and the simple object access protocol (SOAP)?
    A: Let's call SOAP the SOA-Protocol ...

    Looks good, doesn't it? :-)

  • Article: Design Patterns Implementation in a Storage Explorer Application

    Great article by Breman Sinaga at http://www.codeproject.com/ 

    Breman explains common design patterns by a Storage Explorer sample application:


    Introduction: "A lot of information about GoF design patterns has been published, however most of the examples use separate illustration for each pattern, and the sample code is not an application with a real function. The Storage Explorer is a small application that is designed to use several design patterns together. While the main purpose of this submission is to share the code than to teach the reader about design patterns, the discussion about the application design itself is explained using design patterns.

    This article discusses the structure of the application, the design patterns that I use, how it works and the advantages of using them. In my opinion design pattern is worth learning. Developers who have design pattern skill can recognize the intent of a program and the purpose by identifying the patterns. The classes with complex relations then can be understood better and faster than if the developers only understand basic OO design. The design patterns can be used as a thinking model for the designer and the code reader.

    The application is used to explore file composition inside a computer storage. The design patterns that are used are: Strategy, Observer, Adapter, Template Method, Singleton and Wrapper Façade. The first five are known as GoF design patterns and the last one is a POSA pattern (POSA book volume-2).

  • Article: Service-Oriented Architecture - Implementation Challenges

    Good article about fundamental challenges implementing a service oriented architecture.

    1. Service identification
    What is a service? What is the business functionality to be provided by a given service? What is the optimal granularity of the service?

    2. Service location
    Where should a service be located within the enterprise?

    3. Service domain definition
    How should services be grouped together into logical domains?

    4. Service packaging
    How is existing functionality within legacy mainframe systems to be re-engineered or wrapped into reusable services?

    5. Service orchestration
    How are composite services to be orchestrated?

    6. Service routing
    How are requests from service consumers to be routed to the appropriate service and/or service domain?

    7. Service governance
    How will the enterprise exercise governance processes to administer and maintain services?

    8. Service messaging standard option
    How will the enterprise adopt a given standard consistently?

    http://msdn.microsoft.com/architecture/journal/default.aspx?pull=/library/en-us/dnmaj/html/aj2soaimpc.asp

  • Are We Hackers?

    Ralf  has started a very good discussion  and I think there are much more issues depending on his observations. A few weeks ago a friend of mine (he's from the J2EE side) asks me, if it is possible to build this application -he shows me a proposal for a mid-range web application- can be build with .NET technologies. I set down and was very, very disappointed. He's really a very good J2EE man and his question wasn't a joke. I calmed down, took a glass of water and said: Yes, of course, you can! - I browsed to Microsoft's case studies site and showed him what else is possible.

    The problem is, that people often don't know about all the technologies Microsoft supports (Message Queuing, Remoting ...). Even more problematic is, that MS developers don't know as well. Test it! Ask next VB.NET, C# .. developer about application servers or about O/R mapping! Most of them/us don't have an answer. Now test a Java guy - he tells you about Bea, Jboss, Hibernate and so on. My personal(!) experience is, that MS developers are more "hackers": putting code together, plug&play, drag&drop. -- Maybe the good MS tools misleads us to do so while others have to think about frameworks in order to reduce code and save time :-) -- But that's really a problem!

     

  • HST vs EAI

    Still great ...

    Pat Helland: "There is a subtle difference between the two of them, in that EAI, you need to have federated infrastructure across your enterprise. You need to have solutions that are thinking about identity management, security management, just management, to distributed directory and naming, all of those problems that it takes to run your application, run you enterprise, your IT ship. And so, it's EAI, B2B, they're very, very important, but when I think about services, I fundamentally prefer to call it HST, or Hooking Shit Together."

    Read more: http://www.theserverside.net/talks/videos/PatHelland/interview.tss?bandwidth=56k

  • Do the Message Queue!

    Maybe that's a kind of "Hello World!" for MSMQ without any Exception handling ...

    Step 1: Install Message Queuing Services

    Install MSMQ via "Add/Remove Programs" >> "Add/Remove Windows Components"

    Step 2: Configure Test Queue

    Open "Computer Management" >> "Message Queuing" and create under "Private Queues" a queue named "Test".

    Step 3: Write your code using ...

    private void SendMessage(string messageText) {
     
    // Open queue:
     
    System.Messaging.MessageQueue queue = new System.Messaging.MessageQueue(".\\Private$\\Test");

      // Create message:
     
    System.Messaging.Message message = new System.Messaging.Message();
      message.Body = messageText;
     
    message.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] {typeof(string)});

     
    // Put message into queue:
     
    queue.Send(message);
    }

    private string ReceiveMessage() {
     
    // Open queue:
     
    System.Messaging.MessageQueue queue = new System.Messaging.MessageQueue(".\\Private$\\Test");
     
      // Receive message:
     
    System.Messaging.Message message = queue.Receive();
     
    message.Formatter =
    new System.Messaging.XmlMessageFormatter(new Type[] {typeof(string)});
     
    return message.Body.ToString();
    }

    Please note that queue.Receive() is synchronous and blocks the current thread of execution until a message is available!

  • Basta! 2004 Vorträge online

    Seit einigen Tagen ist das vorläufige Programm der Basta! 2004, 20. - 23. September, online. Weitere Infos unter http://www.basta.net.

    Speaker

    • Andreas Kosch
    • Bernd Marquardt
    • Carsten Harnisch
    • Chad Hower
    • Christian Gross
    • Christian Wenz
    • Holger Schwichtenberg
    • Ingo Hassler
    • Ingo Rammer
    • Joerg Freiberger
    • Jörg Wegener
    • Marcel Gnoth
    • Michael Stumpf
    • Michael Willers
    • Peter Koen
    • Peter Monadjemi
    • Sebastian Weber
    • Senaj Lelic
    • Tobias Hauser

    ASP.NET (http://www.basta.net/sessions.aspnet.asp)

    • XML statt Programmcode: Von ASP.NET 1.x zu ASP.NET 2.0 (Holger Schwichtenberg)
    • .NET(te) Diagramme für Fortgeschrittene (Tobias Hauser, Christian Wenz)
    • Dynamische Webanwendungen mit Flash und ASP.NET (Christian Wenz, Tobias Hauser)
    • Caching in ASP.NET (Carsten Harnisch)
    • Building custom ASP.NET controls (Chad Hower)
    • Sichere Webanwendungen mit ASP.NET (Joerg Freiberger)
    • Sharepoint - was soll das ? (Senaj Lelic)
    • Sharepoint Advanced (Ingo Rammer)
    • .NET-te Tools: Alles außer VS.NET und zum Teil kostenlos! (Holger Schwichtenberg)


    SQL Server (http://www.basta.net/sessions.sqlserver.asp)

    • SQL Server Yukon-Programmierung (Sebastian Weber)
    • SQL Server Reporting Services Teil 1 - Berichte erstellen (Sebastian Weber)
    • SQL Server Reporting Services Teil 2 - Anwendungsintegration (Sebastian Weber)
    • Yukon T-SQL Enhancements (Peter Koen)
    • Arbeiten mit XML unter MS SQL Yukon (Peter Koen)
    • Yukon Notification Services und ADO.NET (Marcel Gnoth)
    • ADO.NET und Three-Tier (Andreas Kosch)
    • ADO.NET und C/S (Andreas Kosch)
    • Verbesserter Datenfluss: ADO.NET 2.0 im Überblick (Holger Schwichtenberg)


    VB.NET (http://www.basta.net/sessions.vbnet.asp)

    • Objektprogrammierung mit Visual Basic (Peter Monadjemi)
    • Online-Hilfen entwickeln mit HTML Help Workshop und anderen Tools (Peter Monadjemi)
    • Administration und Systemmanagement mit WMI und .NET (Peter Monadjemi)
    • Building custom ASP.NET controls (Chad Hower)
    • XML statt Programmcode: Von ASP.NET 1.x zu ASP.NET 2.0 (Holger Schwichtenberg)
    • Verbesserter Datenfluss: ADO.NET 2.0 im Überblick (Holger Schwichtenberg)
    • Yukon Notification Services und ADO.NET (Marcel Gnoth)
    • ADO.NET und Three-Tier (Andreas Kosch)
    • ADO.NET und C/S (Andreas Kosch)
    • Smartphone-Anwendungen mit .NET (Carsten Harnisch)
    • Caching in ASP.NET (Carsten Harnisch)
    • Google, Amazon und eBay – Web Services nutzen (Carsten Harnisch)
    • Unit Tests in .NET (Michael Stumpf) 


    Visual Studio/Tools (http://www.basta.net/sessions.vstools.asp)

    • .NET-te Tools: Alles außer VS.NET und zum Teil kostenlos! (Holger Schwichtenberg)
    • Sharepoint - was soll das? (Senaj Lelic)
    • Sharepoint Advanced (Ingo Rammer)
    • BizTalk Server 2004 für .NET-Entwickler (Ingo Rammer)
    • Objekt-Relationale Systeme im Überblick (Jörg Wegener)
    • Online-Hilfen entwickeln mit HTML Help Workshop und anderen Tools (Peter Monadjemi)
    • Dynamische Webanwendungen mit Flash und ASP.NET (Christian Wenz, Tobias Hauser)
    • Application Blocks - Features und Best Practices. Kostenlos. (Ingo Rammer)
    • Microsoft Message Queue im Einsatz (Michael Stumpf)
    • Unit Tests in .NET (Michael Stumpf)
    • Smartphone-Anwendungen mit .NET (Carsten Harnisch)
    • SQL Server Reporting Services Teil 1 - Berichte erstellen (Sebastian Weber)
    • SQL Server Reporting Services Teil 2 - Anwendungsintegration (Sebastian Weber)
    • XML statt Programmcode: Von ASP.NET 1.x zu ASP.NET 2.0 (Holger Schwichtenberg)
    • Verbesserter Datenfluss: ADO.NET 2.0 im Überblick (Holger Schwichtenberg)


    C# (http://www.basta.net/sessions.csharp.asp)

    • C# 2.0 Erweitertungen (Bernd Marquardt)
    • Practical Patterns 1: Practical Components and Sub-System Patterns (Christian Gross)
    • Practical Patterns 2: Practical Architectural and Implementation Patterns (Christian Gross)
    • XSD, .NET-Klassen und Serialisierung (Ingo Rammer)
    • Application Blocks - Features und Best Practices. Kostenlos. (Ingo Rammer)
    • Unit Tests in .NET (Michael Stumpf)
    • Advanced Transactional .NET (Michael Willers)
    • Advanced Code Access Security - Secure Deployment & Secure Scripting (Michael Willers)
    • Microsoft Message Queue im Einsatz (Michael Stumpf)
    • XML statt Programmcode: Von ASP.NET 1.x zu ASP.NET 2.0 (Holger Schwichtenberg)
    • Verbesserter Datenfluss: ADO.NET 2.0 im Überblick (Holger Schwichtenberg)
    • Google, Amazon und eBay – Web Services nutzen (Carsten Harnisch)
    • Smartphone-Anwendungen mit .NET (Carsten Harnisch)
    • Caching in ASP.NET (Carsten Harnisch)
    • ADO.NET und Three-Tier (Andreas Kosch)
    • ADO.NET und C/S (Andreas Kosch)
    • Yukon Notification Services und ADO.NET (Marcel Gnoth)
    • Building custom ASP.NET controls (Chad Hower)


    ADO.NET (http://www.basta.net/sessions.adonet.asp)

    • ADO.NET und C/S (Andreas Kosch)
    • ADO.NET und Three-Tier (Andreas Kosch)
    • Objekt-Relationale Systeme im Überblick (Jörg Wegener)
    • Verbesserter Datenfluss: ADO.NET 2.0 im Überblick (Holger Schwichtenberg)
    • SQL Server Yukon-Programmierung (Sebastian Weber)
    • Yukon Notification Services und ADO.NET (Marcel Gnoth)
    • Yukon T-SQL Enhancements (Peter Koen)
    • Arbeiten mit XML unter MS SQL Yukon (Peter Koen)


    .NET Framework (http://www.basta.net/sessions.netframework.asp)

    • Neue Controls in Windows Forms (Bernd Marquardt)
    • XSD, .NET-Klassen und Serialisierung (Ingo Rammer)
    • Administration und Systemmanagement mit WMI und .NET (Peter Monadjemi)
    • Microsoft Message Queue im Einsatz (Michael Stumpf)
    • Caching in ASP.NET (Carsten Harnisch)
    • .NET/J2EE Enterprise-Architekturen im Vergleich (Ingo Hassler)
    • .NET(te) Diagramme für Fortgeschrittene (Tobias Hauser, Christian Wenz)
    • Verbesserter Datenfluss: ADO.NET 2.0 im Überblick (Holger Schwichtenberg)


    Enterprise Development (http://www.basta.net/sessions.enterprise.asp)

    • Application Blocks - Features und Best Practices. Kostenlos. (Ingo Rammer)
    • XSD, .NET-Klassen und Serialisierung (Ingo Rammer)
    • BizTalk Server 2004 für .NET-Entwickler (Ingo Rammer)
    • Sharepoint Advanced (Ingo Rammer)
    • Advanced Transactional .NET (Michael Willers)
    • Advanced Code Access Security - Secure Deployment & Secure Scripting (Michael Willers)
    • .NET/J2EE Enterprise-Architekturen im Vergleich (Ingo Hassler)
    • Microsoft Message Queue im Einsatz (Michael Stumpf)
    • Unit Tests in .NET (Michael Stumpf)
    • Objekt-Relationale Systeme im Überblick (Jörg Wegener)
    • Practical Patterns 1: Practical Components and Sub-System Patterns (Christian Gross)
    • Practical Patterns 2: Practical Architectural and Implementation Patterns (Christian Gross)
    • Google, Amazon und eBay – Web Services nutzen (Carsten Harnisch)
    • Smartphone-Anwendungen mit .NET (Carsten Harnisch)
    • ADO.NET und Three-Tier (Andreas Kosch)
    • Sharepoint - was soll das ? (Senaj Lelic)
    • Yukon Notification Services und ADO.NET (Marcel Gnoth)
    • Arbeiten mit XML unter MS SQL Yukon (Peter Koen)
    • Yukon T-SQL Enhancements (Peter Koen)


    Software Engineering (http://www.basta.net/sessions.software.asp)

    • Practical Patterns 1: Practical Components and Sub-System Patterns (Christian Gross)
    • Practical Patterns 2: Practical Architectural and Implementation Patterns (Christian Gross)
    • Unit Tests in .NET (Michael Stumpf)
    • Advanced Code Access Security - Secure Deployment & Secure Scripting (Michael Willers)
    • Advanced Transactional .NET (Michael Willers)
    • .NET/J2EE Enterprise-Architekturen im Vergleich (Ingo Hassler)

    XML/Web Services (http://www.basta.net/sessions.xmlws.asp)

    • XSD, .NET-Klassen und Serialisierung (Ingo Rammer)
    • BizTalk Server 2004 für .NET-Entwickler (Ingo Rammer)
    • Google, Amazon und eBay – Web Services nutzen (Carsten Harnisch)
    • Arbeiten mit XML unter MS SQL Yukon (Peter Koen)
    • Dynamische Webanwendungen mit Flash und ASP.NET (Christian Wenz)