Design Patterns are an essential tool for any object orientated programmer who wants to take his/her skills to the next level. Understanding the specifics of Design Pattern practices and methodologies will help developers uncover reoccurring patterns in software development and give them the tools to apply the correct solution.
For every difficulty encontered during application development, chances are this problem was encountered before (and solved). Design Patterns represent key programming practices that have been proven to get the job done in the most efficient, reusability and extensibility. This greatly increases efficiency of code and helps to break an application down into loosely compelled manageable chucks.
As a .Net developer you may have used some of these patterns without even knowing. A design patterns name captures the basic concepts that govern its use and a common practice is to include the pattern name in the name of the object that implements it.
You may have come across the following names while working with the .Net framework:
The deeper your understanding of Design Patterns the more youâ€™ll be to understand the .Net framework and how it can leverage you applications.
Main Design Patterns Concepts
- Use interface inheritance over concrete base class inheritance
- Create loosely coupled objects to promote code reuse by keeping object small and specialised
- Defer / Delegate responsibility to specialised objects using composition
Choosing the correct pattern
The best way to decide which pattern is fit for the jobs it to break down your development specification into each requirement. If these requirement exhibit certain characteristics that relate to a design pattern then apply it. E.g. If you application is responsible for monitoring a file system and reporting changes back to a number of objects you are most-likely to implement the Observer pattern.
Once you have gained an understanding of object orientated concepts you should be ready to tackle Design Patterns. You will be surprised how many patterns that are already familiar to you and how much the put things into perspective. Youâ€™ll also find that the more you learn, the more youâ€™ll see application development from a different perspective (almost like seeing the Matrix!!). To truly understand the benefits of Design Patterns you have to apply them to your application development. This will improve your object reuse and make future program changes less painful!
List of Design Patterns LINK:
- Adapter Pattern
- Command Pattern
- Composite Pattern
- Decorator Pattern
- Factory Pattern
- Flyweight Pattern
- Null Pattern
- State Pattern
- Strategy Pattern
- Template Pattern
- Union Pattern
- Visitor Pattern
July 20th, 2008.
There are many tools on the market for creating application for mobile phones and portable devices. This blog post investigates the technologies necessary for creating Microsoft related ASP.Net mobile applications.
Window Mobile (OS)
Window mobile is a compact operating system for mobile devices. These devices include Pocket PCs, Smartphones, Portable Media Centres and on-board computers for cars. Windows Mobile has been designed to be similar aesthetic to Vista and is currently at version 6.1 with a new release scheduled for 2010.
.Net Compact Framework
The .Net compact framework is a scaled sown version of the .Net Framework and uses some of the same class libraries with a few additional libraries designed specifically for mobile devices. This can be integrated with Visuals Studio 2003, 2005 and 2008 to develop impressive mobile windows form based and web based applications.
ASP.Net Mobile Controls and the Microsoft Internet Toolkit
Developing applications for mobile devices can be a challenging as there are certain limitations, which include:
- Different mark-up languages for PDAs, Cell phones or Japanese phones.
- Devices have a varying number or display lines, horizontal/vertical orientation and screen colours.
- Different network connectivity
- Capabilities, display resolution and ability to make phone calls.
All these factors must be taken into consideration when developing applications for mobile devices.
This is where the Microsoft Internet toolkit comes in, as it addresses these issues so that developers can build one mobile web application that delivers the appropriate mark-up for a wide range of mobile devices.
The mobile toolkit contains:
- Mobile web form controls which are similar to ASP.Net controls as the generate mark-up code
- Mobile Internet Designer which integrates with Visual Studio .Net IDE to provide a web application design environment
- Browser Capabilities which makes it possible to run ASP.Net functionality on mobile devices
- Quick Start Tutorial with sample code
- Developer Documentation
- Device adapter code samples
Using a combination of the Windows Mobile operating system, .Net Compact Framework, and the Microsoft Internet Toolkit applications can be written to run on a wide range of mobile devices in a similar manor to that of regular browser base applications.
These are the three basic tools that are necessary to start building applications that target mobile devices.
Mobile devices are becoming increasingly popular as people continually want to stay connected when they are away from their desk. Microsoft has developed a cohesive little package of products that integrate well together and provide an infrastructure similar to their full blown application development environment. This will hopefully encourage developers to venture into the world of mobile application development.
Like many of Microsoftâ€™s recent software products (Visual Studio .Net, .Net Framework or C# 3.0) SQL Server 2008 has been enhanced based previous versions by fixing bugs and adding new functionality built based on existing features. This is a welcome strategy that helps ease the transition for developers and database administrators.
In this blog post I will briefly touch on some of the database administrator functions and focus on the developer functionality, additions and upgrades.
SQL Server 2008 policy management has been updated and is now called the â€˜Declarative Management Frameworkâ€™. It is now possible to configure multiple database servers so that a standard configuration can be applied and maintained on multiple servers and databases.
Multiple Server Integration makes it possible to execute queries against multiple servers by placing them within special groups. Result can be categorised into one result per server or merged together as one set of results.
Security (Transparent Data Encryption)
A cool new feature of SQL Server 2008 is the improved flexibility of data encryption. Data encryption is now a property of the database instead of application code. This makes the database administrator and developerâ€™s lifeâ€™s easier as now they donâ€™t have to make changes to the database every time encryption functionality changes at the application level.
Database administrators can now specify how much CPU/RAM each user is allowed to use. This will help to eliminate situations where a userâ€™s mistake could potentially bring down a whole server. By imposing these limitations users are restricted to a predefined amount of CPU/RAM usage.
Developers have also been treated to some appealing updates in the latest version SQL Server. There are a number of new features that have been added to make a developerâ€™s life easier and increase their productivity.
LINQ Vs SQL
Most developers are pretty familiar with writing T-SQL queries to retrieve data for application objects. Most are also aware of the distinct syntactical differences between VB/C# and T-SQL. SQL Server 2008 provides something called the LINQ to SQL provider, which makes it possible to write LINQ commands directly within SQL Server. This lets develops use one common object centric language in the application domain and the database domain. Developers will be able to use the LINQ programming syntax on database table and application collection, XML and datasets.
DATETIME Data Type
Datetime has now been separated into two separate data types so that each one can be defined independently. These new data types will help increase performance by eliminating the need to perform certain operations to extract the date or time portion of the Datetime data type.
GEOGRAPHY and GEOMETRY
These two additions have been added to better represent location specific data. This eliminates the need to break geography and geometry data down into formats that fit other standard data types.
The SQL language has had some small additions in the shape of Inline Variable Declarations:
DECLARE @myVar int
SET @myVar = 5
DECLARE @myVar int = 5
C like math syntax
SET @i += 5
Icing on the cake
SQL Server 2008 had been blessed with Intellisense. All I can say is â€œabout time tooâ€. Gone are the days where you would have to do a Google search to remind yourself of certain T-SQL keywords, statements or syntax. Now SQL Server will give youâ€™re a full list of statements and keywords available for a particular variableâ€™s data type as well as column names for a particular table.
SQL Server offers some interesting new features that will keep developers and administrators happy. These new features integrate well with Visual Studio and the .Net framework 3.5 making SQL Server a nice finishing touch to a well rounded application development environment.
Web usability is about designing your web site so that users can achieve their desired goal quickly and easily. Taking time out during development to make sure your site meets usability standards can have a huge benefit to your business.
â€œA web usability redesign can increase the sales/conversion rate by 100%â€
– Jakob Nielson
Designers and developers must make sure they spend adequate time planning the flow of information by firstly identifying the needs of their intended users, then creating a path for site visitors to follow, which firstly, addresses a users initial concerns, then gradually takes then towards achieving their goals. This is achieved by understanding the goal the goals of you target users and then identifying the information your site needs to provide.
There are millions of web sites all competing for the same space, so it is important that you get the right information across a quickly as possible. It has never been easier for users to find a competitors web site, which may do a better job than yours. It is important that you meet the immediate needs of your site visitors as this the fundamental principle behind good web design.
Web designer must realise that if a web site is hard to use or hard to read, users will leave the site. This is because most users simply do not want to spend a large amount of time trying to figure out how to use a site as there are plenty of other sites to choose from.
Definition of Usability
- Easy to learn
- Efficient to use
- Easy to recover from errors
- Easy to remember
Navigation (Breadcrumb Trail)
Site navigation is crucial as users must know where they are and where they are going at all times. The easiest way to achieve this is to follow certain site convention, layouts and phrases (i.e. company logo should be in the top left corner with a link back to the home page, â€˜about usâ€™ links should display organisational information, shopping cart or basket should refer to items a user wishes to purchase etc).
These conventions must not be adhered to whenever possible as users have become accustomed to them. Developers and designer must use this to their advantage because sticking to them can increase the usability of the site.
How many times have you exited a web page because it has taken too long to download? As broadband speeds get faster users are becoming increasingly impatient when it comes to page download time. On average users are prepared to wait 8.6 seconds, so it is important that you pay attention to this. There is no use having a fancy web site with high resolution images if users arenâ€™t prepared to wait long enough to see them.
Many web designers fail to complete adequate usability testing due to time and budget constraints. They fail to realise that a usable web site or CMS will eliminate a lot of time spent providing technical support. It is crucial that designers and developers know that the adoption of usability testing will eventually pay for itself many times over.
The key is to start usability testing early and to involve your target demographic. If possible, use five people to complete these tests as this has been known to uncover as much as 85% of usability issues.
Usability is a hugely neglected area of web development and is an issue that needs to be addressed. We must always remember that users always come first and that if you make the user your priority then they will reward you with their loyalty.
It is not good enough using programmers and designers to do the testing either, as IT professionals do not think like the average web user. The best way to complete thorough testing is use candidate that are similar to your target audience.
Usability is an incredibly valuable tool that can save an organisation a lot of money, improve their competitive position and customer loyalty. Itâ€™s never too late, so start today.
Over recent years broadband has become the benchmark standard for internet access at home and at work and the days of dial-up speeds of 56k are a thing of the past. If you have been using the internet for long enough to remember how painfully slow this was, youâ€™ll be pleasantly surprised at what mobile broadband has to offer.
Mobile broadband relies on 3G technology, which makes it possible to access the internet using a laptop (or PC) anywhere that has mobile phone coverage. You donâ€™t even have to be in a wireless hotspot area as your broadband coverage and connection quality depends on how close you are to a mobile phone mast. The closer you are, the faster the connection speed you will be able to achieve.
Who is Mobile Broadband for?
Mobile broadband is an attractive solution for students or those living in temporary accommodation as it doesnâ€™t require a land line. In fact in most cases it doesnâ€™t require a mobile phone contract either. This has many advantages over conventional broadband access.
It is an essential tool for businessman and entrepreneurs, as it gives them the flexibility to complete their work on the move. It enables them to keep in touch with their latest emails and access important documents in a reliable way.
Hardware (3G Modems)
Setting up mobile broadband is extremely easy. Firstly you will need a 3G modem, which comes in three forms; USB Dongle, USB Key or Data card (laptop only).
- Dongles are about the size of a mobile phone and plug into your USB port.
- USB sticks are much smaller and are geared towards users who want a more portable option.
- Data cards are more discrete but are less popular as they require a laptop with a plug and play software/expansion slot.
The five main mobile broadband providers are:
- 3 Mobile
Each company offers various packages and uses their extensive mobile coverage to deliver a high quality internet connection.
Mobile broadband is made possible via 3G services, which are made possible via HSDPA (high speed download packet access) and HSUPA (high speed upload packet access). These enable broadband speeds of up to 7.2 MBPS download and 1.76MBPS upload.
3G functionality is also becoming a standard feature in modern laptops. This means users donâ€™t have to worry about using dongles, making it easy to switch from wireless broadband at home to 3G broadband on the move; all with a few mouse clicks.
Whatâ€™s the catch?
Mobile broadband is a new service and because of this there are still some limitations. Many of the current packages have quite restrictive monthly download limits depending on the package you are on. Another downside is that the higher your download requirements the longer your contract length will tend to be. Contracts lengths range from 0, 12, 18 and 24 months, which allow download limits of between 1-15GBs.
These limits have been imposed as the cost of transferring data across 3G networks is more expensive than transmitting data across home broadband networks. Providers also have to make sure that heavy users do not overload the network causing lost connections and slow services for others.
It is estimated that mobile broadband account will grow by as much as 50% by 2010. By 2009 mobile broadband can be expected by companies like BT, Virgin Media, Tiscali and AOL.
The addition of Femtocell base stations will help to boost mobile reception and advances in technologies like 4G will also bring faster connections. This will lower the cost to mobile operators, which can be passed back to the consumer.
The .Net framework 3.5 (released November 19th 2007) is the latest framework to be released by Microsoft. It has a host of new features and will be shipped as standard with the latest version of Visual Studio .Net 2008 IDE.
.Net framework 3.5 is an incremental build which means that instead of creating a completely new framework Microsoft has instead added new assemblies and fixed known bugs. This decision helped make the transition between .Net framework 2.0 and 3.0 as painless as possible. In essence .Net framework 3.5 contains the 3.0 framework which contains the 2.0 framework.
New assemblies include:
- System.Data.Linq.dll â€“ The implementation for LINQ to SQL.
- System.Xml.Linq.dll â€“ The implementation for LINQ to XML.
- System.AddIn.dll, System.AddIn.Contract.dll â€“ New AddIn (plug-in) model.
- System.Net.dll â€“ Peer to Peer APIs.
- System.DirectoryServices.AccountManagement.dll â€“ Wrapper for Active Directory APIs.
- System.Management.Instrumentation.dll â€“ WMI 2.0 managed provider (combined with
- System.Management namespace in System.Core.dll).
- System.WorkflowServices.dll and System.ServiceModel.Web.dll â€“ WF and WCF enhancements (for more on WF + WCF in v3.5 follow links from here).
- System.Web.Extensions.dll â€“ The implementation for ASP.NET AJAX
- System.Core.dll â€“ In addition to the LINQ to Objects implementation, this assembly includes the following: HashSet, TimeZoneInfo, Pipes, ReaderWriteLockSlim, System.Security.,
- System.Diagnostics.Eventing. and System.Diagnostics.PerformanceData.
- System.Data.DataSetExtensions.dll â€“ The implementation of LINQ to Dataset.
- System.Windows.Presentation.dll â€“WPF support for the System.AddIn.
- System.VisualC.STLCLR.dll â€“ STL development in the managed world.
AJAX support has been added to .Net 3.5 as standard so that server and client-centric AJAX functionality can be added to existing and future web applications.
Some additional data-controls have also been added, in the shape of â€˜ListViewâ€™ control for displaying data and the â€˜LinqDataSourceâ€™ data control that exposes LINQ data to web applications. The ListView control is highly customisable (using templates and styles) and supports edit, update and delete operations as well as paging and sorting functionality.
Support from Vista styled Windows application has been added, which will even allow developers to update the appearance of old applications written using previous frameworks. Common file dialog boxes will be automatically updated to the Vista version. (See. http://support.microsoft.com/kb/926167)
Some of the biggest language orientated changes to.Net 3.5 are the inclusion of XAML, C# 3.0 and LINQ. Link and XAML are covered within my Silverlight and Visual Studio.Net posts.
One of the most important things to realise is that current web and windows application can be easily upgraded to .Net 3.5 as it is essentially built on the back of the previous two frameworks. Developers can make the switch safe in the knowledge that it wonâ€™t break their existing applications (unless their application exploited a bug, in which case it will!).
These types of upgrades are extremely welcome as it lessen the learning curve and give .Net developers more faith in Microsoft frameworks core infrastructure.
Most businesses have to deal with a wealth of information on a daily basis, in the form of emails, office documents, meeting agendas, business plans, project milestones etc. You donâ€™t have to be a genius to realise that even the most well oiled business can find it hard to organise all of this information in a way that is centralised and accessible to the key individuals that need it. In many cases this information is stored in a number of locations including: file systems, web sites, databases, excel files or even in paper files.
Tying these pieces of information together is crucial for the success or any aspiring or enterprise level business. The best place to start is by making this information easier to find by creating a centralised location to store it in. The next step is allowing individuals and teams to have access to this information inside and outside your organisation via intranets and extranets. This is where Microsoftâ€™s SharePoint comes into play.
What is SharePoint?
SharePoint is best described as a â€œbrowser based collaboration and document management platform.â€ It can be used to host a wealth of different data storage mediums in a manner that make accessing the relevant information extremely easy.
Each individual piece of SharePoint functionality is exposed as web part, which is an individual frame or column based piece of information (similar to the way web pages are separated into section like: main-content, left-sidebar, footer etc). Each web part can represent a predefined collation of related information (i.e. monthly meetings, current projects, todayâ€™s weather, industry related blogs/RSS feeds etc). Users can view a summary of the web parts content or click through to access a more detailed view of that particular topic.
Each SharePoint site is built using ASP.Net 2.0, .Net Framework, IIS Web Server and an SQL Server database. This has huge advantages to IT companies that already use these technologies as SharePoint is fully customisable. Even if you arenâ€™t a developer or database administrator it is still possible to create impressive workspaces using SharePointâ€™s intuitive templates and drag and drop web part functionality.
Office 2007 Integration
SharePoint has tight integration with Microsoft Office and can be used to manage large amounts of documents by creating a centralised point of access. The addition of version control means that groups can ensure that they are working with the most up-to-date version of a document and that any changes they make will be reflected across an entire organisation. This integration provides a simple, familiar and consistent user interface.
Security and Authentication
Using window authentication, all users of SharePoint can be identified accurately identified. SharePoint administrators can designate specific privileges / permission so that only certain users can view, add, edit or delete certain content. Network users can be invited to view new content via email and online status can be verified via SharePointâ€™s integration with Instant Messenger.
Separate SharePoint sites can also exist, that target specific departments or topics. These sites can be as simple or as complex as necessary, restricting access to authorised members only. Each site can also have child sites (i.e., the Datadial site contains an Accounts and an IT site. The IT site can then contain an SEO sub-site and a VB.Net sub-site.).
SharePoint has a wealth of possibilities depending of the needs of an organisation, department or individual. It s ability to centralise data from a number of data sources in a manner that is both searchable and collaborative is so astounding that once adopted, many will wonder how they work without it.
Firstly let me start by saying that I do not claim to be an expert in either PHP or ASP.Net. Although I use ASP.Net daily, I am fairly new to it. I have decided to do little investigation to the age old debate about the difference between PHP and ASP.Net. This is only a short post, but hopefully it will give readers a better understanding of how the two technologies differ. Hopefully this will be as un-bias as possible.
The reason I have chosen to investigate the difference between the two is that non-programmer constantly ask the questions: â€œWhatâ€™s the difference between PHP and ASP.Netâ€, â€œWhy canâ€™t PHP applications talk to ASP.Net applications?â€ or â€œThat could have been done in PHP so much quicker, for freeâ€. There are so many deciding factors when choosing a web application framework. I will attempt to outline the differences using a For and Against bullet point format for both.
- Open source
- Easier to learn due to its basic scripting language structure and build in functionality
- PHP5 now offers many object orientated development concepts
- Has many free IDEs available that are very impressive and well supported (e.g. Eclipse)
- Runs on Apache server which is open source
- Run on IIS 6.0 and IIS 7.0 due to Microsoftâ€™s implementation of FastCGI open standard
- Has multiple platform support
- Marginally faster due to the overheads imposed by .Netâ€™s Common Language Runtime, which is responsible for intermediate compilation of .Netâ€™s many languages
- Has a huge support base as it is open source
- Although it claims to be free, when using free 3rd party add-ons developers often run into issues when developing commercially available applications (i.e. ownership of code / intellectual rights)
- Most PHP IDEs require lots of add-ons in-order to add similar functions to Visual Studio
- No built in support for AJAX. Requires add-ons.
- Can be developed using the stunning Visual Studio.Net IDE that offers vast array of features, that make coding much easier and development more productive
- Developers can download a free scaled down version of Visual Studio that offers an impressive array of features. This is aimed at students and hobbyists
- Runs on IIS (Internet Information Services)
- Applications can be written using many programming languages (e.g VB.Net, C#, J#, C++ COBAL)
- The .Net framework (the engine that ASP.Net is runs on) has more sophisticated error handling capabilities than PHP
- Allows better separation of design and application logic using of code-behind pages and user-controls
- Has built support for AJAX as of .Net Framework 3.5
- Requires a Microsoft licenses
- Requires a basic knowledge of object orientated concepts which can sometimes deter newbie developers
- Single platform and will only run on Microsoft web servers
These bullet points emphasise some of the main differences, advantages and disadvantages of the two languages.
Quotes from other developers for ASP.Net and PHP
ASP.Net is Strongly Typed, Object Oriented, Sandboxed, Multi-Syntax, Component Centric, Event Driven, forms oriented, pre-compiled experience.
PHP is a loosely typed, objects optional, fixed syntax, component-less, runtime interpreted, structured programming model.
In the end, PHP is less expensive, faster, more secure, and able to be deployed from a Linux server that is also less expensive, faster, and more secure than their Windows based counterparts.
There are many factors that may sway you decision about which web application framework to choose. This decision should be based on the factors above, the kind of career path you want to choose and detailed research. In reality though the decision is usually down to which framework you are exposed to first as many develops get comfortable with on languages syntax and features.
My advice would be to use both; if you can, as each one has its own merits and has earned its place in todayâ€™s web application development industry.
As the web progresses and continues to deliver more elaborate and rich media content it is inevitable that the speeds at which this information is delivered must increase or at least stay relative to what is considered acceptable. This means that the broadband speeds offered by internet service providers (ISPs) needs to stay on par with the progression of the Web. If we are to realise the true potential of the World Wide Web, first we need to build an infrastructure that can support it.
The main issue in achieving faster broadband is that currently the UK relies on an out dated telephone system to deliver broadband internet. There is a danger that the future growth and use of next generation web applications will be stunted due to our out-dated method of transmitting data. Sites like YouTube, MySpace, BBC iPlayer, 4 on Demand etc, would never have been possible using a dial-up 56k modem. This is a clear indication of how better connection speeds can improve level of web applications that can be delivered. Currently broadband speeds are sufficient for todayâ€™s use, but we must look to the future if we are to realise the potential of the Web.
The majority of the UK ISPs is still using copper wire to deliver their services, as opposed to fast fibre connection. It is estimated that fibre alternative connections can increase broadband speeds as much as 20 times.
BT has plans to install super fast fibre connections via their Openreach project, which will hopefully replace their old copper phone network in the future. The cost will be huge but their aims are to finance this by renting lines to rival ISPs such as TalkTalk, Tiscali, Car Phone Warehouse and Sky on a wholesale basis. This will allow next generation broadband packages and services to be delivered to consumers at a competitive price.
At present the UK is miles behind countries like Japan and South Korea who have some of the fastest broadband speeds in the world, allowing them to watch broadcast quality television over the internet.
It is estimated that 90% of South Koreaâ€™s population are using broadband with an average connection speeds of 43MBPS. In Japan the average advertised connection speed is an incredible 90MBPS, which has been made possible via fibre-optic networks.
Current state of play in the UK
UK broadband prices are certainly dropping, and speeds have definitely improved since the days when 512KBPS was something to be proud of! Todayâ€™s norms are as much as 16x faster than they were a few years ago. The downside though, is that many of us in the UK donâ€™t actually receive the broadband that we are sold. It is very much a postcode lottery, as people who live in more rural areas often receive a poorer service. This is due to the direct correlation between distance from the exchange and broadband speeds achieved.
If we are to keep up with Japan, Korea and of EU countries like France and Germany, our main focus should be on upgrading the way we transmit data. The fact that we are trying to squeeze every ounce of speed out of a network that was designed to transmit voice calls is a stark reflection of where we are and where we need to be in the future. Our current telephone network lacks the capacity to deliver the kind of high-speed broadband we require to realise the potential of UK Internet services.
We risks being left behind if we do not take the necessary steps to upgrade our data transmission infrastructure. This upgrade will allow businesses to develop new web related technologies to serve us in the future.
The future is bright for the Internet as new web applications are developed everyday that would never have been possible 5 years ago. The Internet will continue to evolve in years to come but its growth must not be stunted by something as simple as poor data transmission speed.
Many developers spend a huge amount of time creating well designed object orientated applications only to have to have to write complex mapping classes in-order to interact with a relational database. A large percentage of application code often consists of mapping application objects to a relation database model.
Relational databases have been the industry standard for persisting data since the mid 70â€™s. Relational databases consist of flat two-dimensional table that are related to other tables using keys.
Data manipulation is handled by SQL (Structured Query Language) which is standard across the majority of database vendors.
The downside to relational databases is that the application object model that developers code against cannot be stored in a relational database. Classes have to be written to provide the necessary mapping so that the objects and databases can communicate. Each object has to be flattened out to support many-to-many relationships. Each field and property has to be mirrored in database tables or views in-order for fields to match up. Stored Procedures are also needed (sometimes as many as four per class) to marshal data to and from the object. The mapping of class fields to database columns is a laborious but unavoidable task.
Object database approach things from a different perspective, offering a different way of designing the persistence layer of an application. The fundamental idea behind object databases is the idea that you store your data in the same way that you use it.
Matisse Object Databases
One of the major .Net object database vendors, is a company called Matisse Software Inc. Matisse have created a database management system that helps developers to bypass the whole mapping process usually associated with object application design and relational databases.
Using Matisse the object database management system, developers can create database schemas and generate application code from simple class diagrams. The development mapping process is eliminated as this is all taken care of for you behind the scenes. Performance is increased as complex joins are no longer needed. Object databases store object as they exist in the application domain along with all the necessary object relationships.
There are many other interesting feature object databases have to offer and this post has simply scratches the surface as to what is possible. The main point to make though is that using Matisse or any other object databases database management system allows you to stay within the object orientated paradigm, eliminating the need to bridge a gap between two different domains. Matisseâ€™s support for VB.Net, C#, Java and C++ make it an extremely via candidate for a .Net developers that are ready for the paradigm shift or tired of the huge overheads in terms of code maintenance and database administration.
Internet Explorer 8 (IE8) is currently in its beta testing phase and will be the next version of Microsoftâ€™s Internet Explorer web browser.
IE browsers have been renowned for being bug ridden due to the inability to follow web standards. As well as introducing some new addition to their browser IE8 also tackles past compatibility issues by attempting to make IE8 standards compliant. The downside to this is that it may break existing web page / applications designed to run on their previous browsers (IE6 & IE7).
To combat this issue, Microsoft has design the new browser with a facility that allows IE8 to be switch to three different modes: Quirk, Strict and Standard. These modes are activated either by the inclusion of specific tags (e.g. <meta http-equiv=”X-UA-Compatible” content=”IE=7″ />) within a web page or via user setting within the browser itself (the latter requiring a restart). Standard mode will be the default making IE8 use a more standardised DOM like Firefox and Opera.
The ability to switch modes is a very important as IE8 must stay compatible with older web pages; especially offline versions such as those found on instructional installation DVDs and CDs. Pages like these cannot be updated to accommodate the new changes so this facility is essential.
The addition of the browser version switching facility has been met with some controversy as some have argued that this hinders the progression of web standards. By giving people a choice, developers may continue to target older browser version instead of finally adopting a universal standard. Some have also stated that this is an example of â€œmonolithic behaviour due to Microsoftâ€™s dominating position in the web browser and operating system market.â€ â€“ Hakon Wium Lee â€“ Chief technology officer of Opera Software.
IE8 offer a brand new and interesting feature called Web Slices, which allows users to bookmark a specific section of a page (e.g. the London weather section of the BBC web site). This then allows users to view this specific snippet of information in isolation as a widget of popup. In the future web browsers will be able to predefine specific content that is available as a Web Slice so that users can simply add them to the browser tool bar and access them on demand. Each time a Web Slices content is updated the user is given an un-intrusive indicator to let them know that the content has been updated.
Activities allow developers to attach specific functionality to information on a page. For example, with additional browser add-ons users will be able to hover over an address field and IE will open a popup layer that links directly to Google Maps or by hovering over a key word for an item of clothing IE may open up an EBay popup with a list of search results. Current IE8 beta add-ons include Translate, Send, Map, Find, Define and Blog.
We must remember though that IE8 beta 1 is aimed at developers as it still contains many bugs. It has a long way before a general user beta version is available but it is heading in the right direction. The slight downside is that as much as many developers are excited about many of the new additions and updates, a lot of these updates are simply bug fixes for issues that werenâ€™t addressed in IE6 and 7. Some of these issues even go as far as their core layout engine Trident, which was developed 10 years. IE8 will use Trident Version 6 which, believe it or not is first version to pass the Acid 2 test (except for the white stripes).The decision to make its default mode to be set to Standard (i.e. standard compliance) is also welcome even if some pages viewed in IE8 will initially break.
Microsoft has a huge task of improving their support for web standards without breaking existing web sites and we all know that standard compliance and backward compatibility do not go hand in hand with Internet Explorer.