.NETMicrosoft’s new .NET Framework is arguably the biggest development in PC software development since the release of Visual Basic. However, Microsoft’s decisions to attach the .NET label to almost all of its new products and to focus its marketing on the new web features have somewhat obscured the importance of this change for application developers. There's already a vast amount of information about .NET on the internet: here are some of the sources we've found useful. What is .NET—How Will it Affect Us? A fairly broad introduction to .NET, aimed at non-programmers. Introducing .NET A more technical summary, aimed at technical managers and developers. MSDN .NET Homepage This is the main .NET homepage within Microsoft.com, although it mainly focusses on XML. Visual Studio .NET (Microsoft) This part of Microsoft.com answers many questions about the new development tool Visual Studio.NET. GotDotNet A Microsoft 'community' site. DevX .NET A large site with a lot of information about .NET, including a comprehensive list of .NET links. DOTNET Discussion A very active e-mail list and discussion board for .NET developers. J2EE vs. .NET A very interesting paper, which compares Java Enterprise Edition and .NET and concludes that .NET is cheaper for e-business applications. Interesting stuff, though it's not clear if there is any commercial relationship between the authors and Microsoft. XMLAlthough more than slightly over-hyped, XML is here to stay. The following is a collection of links that may help developers answer their XML questions. Scientific American XML and the Second-Generation Web—a good explanation of why XML has become so important. O'Reilly XML.COM A large site mostly containing technical material for XML developers. XML Spy A sophisticated and professional Windows program for viewing and creating XML files. Free Tools This web site includes a long list of free tools for processing and working with XML. A lot of them are UNIX and university-oriented, obviously, but there are some good PC programs here too. Borland C++ Builder/DelphiMore powerful than Visual Basic and substantially faster to use than Visual C++, these two development environments from Borland are much loved by many Windows application developers. Blueberry, in particular, has gained significant commercial advantage from using BCB instead of the mainstream Microsoft alternatives. BCB Home Page This is Borland's main home page for BCB. It gives lots of information about the product and access to two updates that are strongly recommended. Torry's Delphi Site A vast collection of shareware, freeware and commercial components—mostly for Delphi, but also for BCB. Dream Company Some very impressive components for Delphi and BCB, including a very good Outlook Bar and a collection of components that can be used to construct a complete IDE. Object Databases/Object Relational TechnologyMoving data from programming languages into databases has always been a difficult problem. The root cause is that relational databases and OO programming languages use completely different ways of storing data: databases spread information across multiple tables whereas OO systems keep it all together in one place. In the early to mid 1990s, companies and universities worked on Object Databases, which effectively allowed C++ objects to be stored directly in the database. These systems were adopted in some markets, particularly telecoms, but the wider business community found this to be too great a shift from the familiar, if cumbersome, world of relational databases. Most of the companies selling OODB technology have now either specialized in Java or become web companies, providing XML interfaces. In response to commercial insistence on retaining the back-end SQL system, two new trends have emerged. The first is to add object functionality to existing relational databases, which tends to result in patchy and unwieldy solutions. The second is to provide a mapping layer to interface between the OO program and a relational database. There are performance concerns of course, but any OO program must use some mapping system to get data to/from a database, so it's arguable that a polished and well-implemented mapping layer will actually improve system performance. Object Relational Object-relational mapping articles and products: Free, online articles about object-relational mapping products along with links to product vendors. Infoobjects Infobjects have a sophisticated product that allows programs to issue OQL commands against relational databases, and handles object caching. Very interesting. POET Software POET's main product, Object Server Suite, has been renamed FastObjects and now supports embedded applications. Programming System ResearchHow can we write programs faster? What will programming look like in 2050? Programming systems, i.e. programming languages and their supporting environments, often seem to evolve in cycles, with old ideas frequently being rediscovered. It also seems to be true that programming technology doesn't move forward in the same discontinuous way that other technologies do. Intentional Programming Intentional Programming is a programming system designed to allow programmers to work at a much higher level than usual—by specifying their 'intentions' and letting the system convert them into program code. This work has been pioneered by Charles Simonyi, a very intelligent and senior programmer at Microsoft. It is an absolutely fascinating subject, but unfortunately a lot of the material on this site is rather difficult to understand. Also, we haven't noticed anything new on the site in the last three years, so we wonder whether the project is still live. Tunes An idealistic site describing a project to build a computer system that is reflective, i.e. self-referential. It has some aims in common with our ideas about the future of software. The site doesn't yet tell us what the authors think of Microsoft.NET, which is a delivered, reflective programming system. Linda Linda is a tuple-based parallel programming system. This site describes some of the features of this approach, and is interesting because of the simplicity it brings to the parallel processing problem. |