Archive for the ‘open’ Category

Mono Now Has .NET 3.0 Support and 3.5 Features like LINQ and Expression Trees

Friday, July 25th, 2008

Great news!  Mono has made it to .NET 3.0 support and this includes some of the latest stuff like LINQ expressions.

I am pleased to announce that Mono C# compiler (gmcs) has now full C# 3.0 support. Most of the features has been available since Mono 1.2.6 release. However, with the upcoming Mono 2.0 release we will also support complex LINQ expressions and mainly expression trees which is fairly overlooked new feature with a lot of potential.

For anyone interested in compiling and running this LukeH’s slightly extreme LINQ example I have good news. It compiles on Mono and it runs as fast as on .NET.

REST Pattern

Monday, June 30th, 2008

UNIVERSITY OF CALIFORNIA, IRVINE

Architectural Styles and
the Design of Network-based Software Architectures

DISSERTATION

submitted in partial satisfaction of the requirements for the degree of

DOCTOR OF PHILOSOPHY

in Information and Computer Science

by

Roy Thomas Fielding

2000

Dissertation Committee:
Professor Richard N. Taylor, Chair
Professor Mark S. Ackerman
Professor David S. Rosenblum

PDF Editions

1-column for viewing online
2-column for printing

Table of Contents

Dedication
Acknowledgments
Curriculum Vitae
Abstract of the Dissertation
Introduction
CHAPTER 1: Software Architecture
1.1 Run-time Abstraction
1.2 Elements
1.3 Configurations
1.4 Properties
1.5 Styles
1.6 Patterns and Pattern Languages
1.7 Views
1.8 Related Work
1.9 Summary
CHAPTER 2: Network-based Application Architectures
2.1 Scope
2.2 Evaluating the Design of Application Architectures
2.3 Architectural Properties of Key Interest
2.4 Summary
CHAPTER 3: Network-based Architectural Styles
3.1 Classification Methodology
3.2 Data-flow Styles
3.3 Replication Styles
3.4 Hierarchical Styles
3.5 Mobile Code Styles
3.6 Peer-to-Peer Styles
3.7 Limitations
3.8 Related Work
3.9 Summary
CHAPTER 4: Designing the Web Architecture: Problems and Insights
4.1 WWW Application Domain Requirements
4.2 Problem
4.3 Approach
4.4 Summary
CHAPTER 5: Representational State Transfer (REST)
5.1 Deriving REST
5.2 REST Architectural Elements
5.3 REST Architectural Views
5.4 Related Work
5.5 Summary
CHAPTER 6: Experience and Evaluation
6.1 Standardizing the Web
6.2 REST Applied to URI
6.3 REST Applied to HTTP
6.4 Technology Transfer
6.5 Architectural Lessons
6.6 Summary
Conclusions
References

List of Figures

Figure 5-1. Null Style
Figure 5-2. Client-Server
Figure 5-3. Client-Stateless-Server
Figure 5-4. Client-Cache-Stateless-Server
Figure 5-5. Early WWW Architecture Diagram
Figure 5-6. Uniform-Client-Cache-Stateless-Server
Figure 5-7. Uniform-Layered-Client-Cache-Stateless-Server
Figure 5-8. REST
Figure 5-9. REST Derivation by Style Constraints
Figure 5-10. Process View of a REST-based Architecture

List of Tables

Table 3-1. Evaluation of Data-flow Styles for Network-based Hypermedia
Table 3-2. Evaluation of Replication Styles for Network-based Hypermedia
Table 3-3. Evaluation of Hierarchical Styles for Network-based Hypermedia
Table 3-4. Evaluation of Mobile Code Styles for Network-based Hypermedia
Table 3-5. Evaluation of Peer-to-Peer Styles for Network-based Hypermedia
Table 3-6. Evaluation Summary
Table 5-1. REST Data Elements
Table 5-2. REST Connectors
Table 5-3. REST Components

[] © Roy Thomas Fielding, 2000. All rights reserved. [How to reference this work.]

Is Your .NET Application/Assembly Mono Ready? Find Out With MoMa

Saturday, May 17th, 2008

Well Mono has finally reached 2.0. This is great news!  .NET skills now can span *nix, OSX, and Windows platforms.  But is your app or assembly capable of running on Mono?  Find out with MoMa.

Of course this is just a heuristic check and only finds out if your application on the surface has issues with running on a mono platform such as calls to p/invoke to windows apis or unsafe code that uses native calls but it is a great place to start.

The Mono Migration Analyzer (MoMA) tool helps you identify issues you may have when porting your .Net application to Mono. It helps pinpoint platform specific calls (P/Invoke) and areas that are not yet supported by the Mono project.

While MoMA can help show potential issues, there are many complex factors that cannot be covered by a simple tool. MoMA may fail to point out areas that will cause problems, and may point out areas which will not actually be an issue.

Use the results provided as a guide to get you started on porting your application, but remember the true test is actually running your application on Mono.

For a description of the errors that MoMA detects and how to deal with them, see MoMA - Issue Descriptions.

I have recently been really interested in making platforms and applications that aren’t limited by the OS they are contained in.  Thus mono is a very interesting platform now that it supports 2.0 fully and all the generic goodness to limit boxing/unboxing, common code between .net 2.0 apps (which are pretty much mainstream now) and developing for more of a standard that ensures your apps are portable.

Granted .NET 3.0 and 3.5 (pretty much the same version really with the addition of new frameworks such as WCF, LINQ which is very cool and functional as well as Silverlight) but most places deployed code is still .NET 2.0 and the poor souls working on very constricting .NET 1.0 and 1.1.

Also, recently Moonlight the Mono version of Silverlight has been released for alpha.

Baseplane Tool: Is PureMVC the Cross Platform MVC Toolkit You Have Been Looking For?

Saturday, March 29th, 2008

PureMVC is quite a versatile MVC kit.  With implementations for AS3, .NET (c#), Python, PHP, Silverlight and other platforms it is quite a system and domain to spread that far and have consistency.  There are small changes but for the most post the MVC is the same structure across the platforms.  This can be very beneficial for a service firm or for a product base that needs to support many different platforms.

PureMVC is a lightweight framework  for creating applications based
upon the classic Model-View-Controller design meta-pattern.
This free, open-source framework is implemented in ActionScript 2 and
3, Java, C# and a number of other popular programming languages.
This allows development on a wide variety of platforms including:

  • Mobile Environments: FlashLite, .NET Compact Framework, J2ME
  • Server Environments: ColdFusion, J2EE, PHP, Python
  • Browser Environments: Flash/Flex, JavaFX, Silverlight
  • Desktop Environments: .NET, AIR, FLASH, J2SE

For Flex PureMVC happens to be my favorite MVC kit.  I only use one if absolutely necessary but PureMVC keeps it clean.  The great thing is that is works with or without Flex unlike Cairngorm and it is always up to date.  It is just an added bonus that is spans so many other platforms. There are a few things I don’t like about it in other platforms like the url naming but it is much better than kits out there now and Microsoft’s ASP.NET MVC most likely wont’ be cross platform *wink*.

Some info on the PureMVC framework (caution PDF):

PureMVC Manifold

Ports

JSON-RPC Implementations

Thursday, March 20th, 2008

JSON-RPC is the answer to the argument that XML RPC is too verbose and bloated and convoluted.  JSON is just about as simple as you can get in data formats and it is becoming a great baseplane standard and is a tool that spans many platforms.

“Does distributed computing have to be any harder than this? I don’t think so.”

Can it be even simpler ?

JSON-RPC is lightweight remote procedure call protocol similar to XML-RPC. It’s designed to be simple!

JavaScript

C

C#

Erlang

Java

Lisp

Lua

Perl

Php

Python

Ruby

Frameworks

MonoDevelop 1.0 Released

Tuesday, March 18th, 2008

mono-logo.pngMono is a great open source .NET implementation that has been looking to being a baseplane dream to .net development. They even have Moonlight which will eventually be caught up with Silverlight development.

However today mono gets a killer IDE in the MonoDevelop name.

[insertname]Develop projects are largely based on the SharpDevelop IDE that is one of my favorites with .net and is open source. If you are looking for a FAST IDE SharpDevelop is that. In the FAQ Miguel mentions that MonoDevelop is a port or branch of SharpDevelop which is great news for quality, speed and usability.

FlashDevelop is also another great kit based on this IDE framework. I am very pleased Mono is using the same standard for IDEs that mimic VS.NET only much more speedy and usable in SharpDevelop and FlashDevelop (both .net apps themselves and two of the only good winforms apps there ever were).

mmI highly recommend mono and MonoDevelop. These are tools that are baseplane languages and platforms that have all the benefits of .net development but for any platform and now for any platform as an IDE. One problem with FlashDevelop is that it is only for Windows machines but maybe MonoDevelop will influence and will allow it for other platforms as well and everyone will be able to use the best IDE there is for flash and flex development.

In the meantime if you are a .net developer and want to develop for multiple platforms not just Windows then Mono is your tool and MonoDevelop is your IDE.

The main features of MonoDevelop are:

  • Customizable workbench, including custom key bindings, custom layouts, and external tools.
  • Support for several languages, with C#, VB.NET and C/C++ support included, and Boo and Java (IKVM) support available as separate add-ins.
  • Support for code completion and type information tooltips.
  • Refactoring operations to simplify changes like renaming types and type members, encapsulating fields, overriding methods, or implementing interfaces.
  • Code navigation operations such as jumping to variable definitions and finding derived classes.
  • Easy to use GUI designer for GTK# applications, also supporting the creation and management of custom GTK# widget libraries.
  • Integrated source code version control, with support for Subversion.
  • Integrated unit testing based on NUnit.
  • Support for ASP.NET projects, allowing web projects can be built and tested on XSP.
  • Integrated database explorer and editor (beta).
  • Integration with Monodoc, to provide documentation about classes.
  • Support for makefiles, both generation and synchronization.
  • Support for Microsoft Visual Studio project formats.
  • Packaging system that allows generating tarballs, source code and binary packages.
  • Command line tools for building and managing projects.
  • Support for localization projects.
  • Extensible add-in architecture.


baseplane - technology platforms is proudly powered by WordPress
Entries (RSS) and Comments (RSS).

© 2006-2008 Ryan Christensen - template by drawk }}



Unless othewise specified the content in this site is licensed under a Creative Commons License
Your Ad Here Your Ad Here Your Ad Here Your Ad Here