in

ASP.NET Weblogs

Natty Gur

.Net from enterprise architect point of view.

November 2004 - Posts

  • Back to NWAF.

    My family has been expanded two month ago so I don't have much time to deal with NWAF. in the last days I managed to go through the last (unread :-)) article that I wrote and to make it readable and hopefully understood. You can find it at : http://weblogs.asp.net/ngur/articles/168365.aspx.

    I'll be happy to hear your opinion.

     

    Posted Nov 30 2004, 11:34 PM by nattYGUR with 2 comment(s)
    Filed under:
  • Assemblies aren’t being downloaded to client machine.

    If you use <OBJECT> tag to download assemblies and embed them into HTML document you should download and use SP 1 of .Net CLR. Due to a bug in mscorie.dll, this is part of the .Net download mechanism. It appears that sometimes certain or all assemblies simply not being download to the client. This behavior cause the user to work with unappeasable version of the software without any indication to the user that he is working with the wrong version or at least that something has been failed.

     

     

    Posted Nov 29 2004, 11:01 PM by nattYGUR with no comments
    Filed under:
  • The future of Microsoft and Google.

  • Two models for sharing enterprise data.

    Our Information architecture group has been discussed models for sharing enterprise data. The following lines summarize of our discussions.

     

    Each and every enterprise systems deal with data entities for certain enterprise users group. That system target is to let the user to work with system data in order to fulfill user enterprise tasks. As such the user has very close and intimate knowledge of the system data and business logic that activate on system data.

     

    When we want to share data between enterprise user groups we don’t want users group to deal with other users groups internal data. We'd like user groups to deal with certain system data that concern them rather then all system data. It is pretty much clear that most of the system data is for internally uses and the minority has meaning for other groups thus should be shared.

     

    After mapping all systems data that should be shared across the enterprise there are two main concerns that we address.

     

    1)      Format to share data. Usually most of data sharing is done by writing documents and send them across the enterprise.  So the default format was Word which is the enterprise word processor. But we are talking about sharing system data so we need away to mark entities and their types when they appear on document. So it looks like plain XML will be much more appropriate for this task. Using XML we can use XML tags to mark entities and we can use XSLT to format and display them to the end user. Yes we can do it with word but we will end up with Word engine that will be responsible for marking entities… (And I don’t mention other formats such as power point and excel). From our point of view and enterprise business architecture we currently are voting for XML.

    2)      Model of data sharing. There are two models that we thought about:

    a.       Single point of share: this model is built on dedicate system that map all shared systems entities and present certain flow of work on those entities. Dedicate system form structural way of work on enterprise entities which is easy to work with but is very firm and hard to "bend".

     

    b.      Virtual share bus:  in this model there isn’t one system that manages share data. Instead every system has transformer that know how to convert system shared data to XML and present XML document and manipulate it. Virtual share bus present XML bus that enable transferring of data between systems and enable every system to show and manipulate or add information to the shared XML document. This model is much more flexible but harder for user to grasp.

     

     

     

    XML BUS

  • Page compilation and regular expressions that might be useful.

     I’m working on asp.net page compilation for new webcast. As part of the work I found out that page compilation mechanism is using System.Web.RegularExpressions to parse ASPX file. Actually there are some useful regular expressions there for analysing page parts as well as certain HTML elements.  

     

    Posted Nov 23 2004, 10:57 PM by nattYGUR with no comments
    Filed under:
  • "Why they are so expert with what will come and can't help me with my current problems."

    One of our development teams summoned for open architecture day in our local MS office. MS want to present how they think certain project architecture should be. Well they don’t know nothing about our business architecture nor information architecture or project demands but they surly know what is the right architecture for certain project needs …ummmm  sounds fishy, so I gave up this experience.

     

    When the developer came back from MS I heard that sentence: "Why they are so expert with what will come and can't help me with my current problems.", and not for the first time. It seems that for every existing problem, regarding MS tools and technology, which the developers present. MS suggest that the upcoming technology (2005, indigo, longhorn) has the cure. Those answers really piss-off. As enterprise developers they have current set of tools which aren't going to change in the next year so it worthless to suggest using new technology as solutions. Much more mature answer could be how to use current tools in order to solve problems.

     

    It's really cool to talk about the future and it's nice that Microsoft is always improving our tools but there is real live here with real problems that demand immediate solutions.   

  • System architecture team – what we have been done by now.

     As you remember, as part of the enterprise architecture process we formed teams to deal with system architecture (and development methodology). Until now we went over business and information architecture outcomes and kind of approve them. I think this process is important for 2 reasons:

    1)      Those are the foundations of the team products so team members should be as much as possible familiar with those foundations. Discussing and proving helps team members to be much more familiar with those foundations.

    2)      Approving process make team members more loyal to them. It’s not set of decision that made by others and they must follow it’s their work outcome.

    If there are point in the business and information architecture that the group wouldn’t accepted I went back to the relevant team and trying to found compromise that both team agreed on (yes I can run to the congress, diplomacy and politics are my second name those days :- )) .

     

    We already finished approving business and information points and now we discussing system architecture subjects (such as system structure, system type, communication between systems and system components, etc’). the process involved  attempt to find out which one of the suggestion subjects solutions, that put on the table, has better match business and information foundations.

     

  • Cache Application and RPS (request per second).

    I’m maybe the last one to discover it :- ). As part of improving web application from 3 RPS to 120 RPS we cache some VO’s (value object) that shared between application pages. Just to check the impact of caching VO’s we add them to the Application items collection but I asked the team to move those VO’s into Cache. What surprise me that while the VO’s stored in the Application RPS reach about 60 RPS but when VO’s moved into Cache application RPS reached up to 100 RPS.

    Posted Nov 17 2004, 11:16 PM by nattYGUR with no comments
    Filed under:
  • And… don’t forget enterprise politics!

    You might be the brilliant architect in the world with firm grasp of architecture and solutions but you doomed to be failed if you will neglect the human aspect of enterprise. Yes, enterprises based on people and when dealing with people politic always involve. To success with enterprise architecture process the management support is not enough! You need key workers support, even active support, to win!

     

    When I start new architecture process first I’m taking time to meet with workers and to find out who are the leading forces in the IT/Business enterprise world. Those people are already leaders that other workers follow, so it worth time and effort to convince them and share them in the architecture process.

     

    My first stage is to meet them face by face and try to see how they react to my thoughts. If they seem reserved form my thoughts I pay time to try and convince them or to reach common denominator. There isn’t any practical decision involved in those discussions, just to make sure that we have the same “view”.

     

    The second stage is to form architecture groups that will discuss and suggest business/information/system/infrastructure architecture. Architecture that suggest by group of enterprise leaders will be more easily accept and more important adopt by all other enterprise workers. Therefore identifying those key workers is one of the most important tasks when you start enterprise architecture.

  • Heavy use of XML and controls cause slow web application.

    Today I was called to help web application that failed to pass sniffer test (pass too much bytes on network) and performance test. After discuss the system with the team leader that manages the development I found to major problems:

    1)      They use XML heavily. They use DAL classes to load data from DB, convert it into XML format, save it in session object and update the XML data by user actions.

    2)      For performance reason (that what they thought) they load one page with lot of controls. They have page with 3 tabs (every tab contain about 50 controls) and they want to load all controls and play with controls visibility to gain performance.

    3)      COM+ has been used in high isolation level to separate application domain logic from web application. But they call application domain logic for domain logic class’s properties directly from page.

     

    First of all we change XML uses to Domain classes holding and managing controls data. This change prevents many string manipulation/casting and improves performance slightly. Then we add façade to domain model classes and change page calls to go through domain model façade. Adding the façade really improve performance. In the end we change the page to use “lazy load” and to load tab controls just when certain tab clicked by the user. Using lazy load we decrease the amount of bytes transferred when the user asked for a page.

     

    Now they’re running profiler (Ants) in order to find other problems in the system.

More Posts Next page »