"…mais ce serait peut-être l'une des plus grandes opportunités manquées de notre époque si le logiciel libre ne libérait rien d'autre que du code…"

Archive for the ‘C_sharp’ Category

[Grenoble] Soirée Spéciale avec Bruce Eckel : Scala as a first programming language » le mercredi 12 octobre 2011

Posted by patrick sur octobre 7, 2011

Source:: http://www.jugevents.org/jugevents/event/41752

Est-il besoin de présenter Bruce Eckel ?
Sans doute avez vous déjà vus son nom sur les bestsellers: Thinking in Java ou Thinking in C++.

Nous profitons de sa présence à la conférence internationale ICALEPCS à l’ESRF pour l’inviter au Java User Group.

Bruce Eckel : Scala as a first programming language

Bruce Eckel : Scala as a first programming language

Autres liens

Comptes rendus:

Posted in 2011, Années, Architecture logicielle, C_sharp, design pattern, DotNet, Grenoble, java, Langages | Tagué: , , | Leave a Comment »

Programmation : python versus C#3

Posted by patrick sur janvier 7, 2008

Quelques exemples de code Python versus C#3:

http://brad.livejournal.com/2354680.html (« Cet article permet de comparer l’écriture d’un programme simple entre différents langages: Tcl, Ruby 1.8, Ruby 1.9, C#3, Perl. On apprend aussi que chez Google Python est un langage bien employé: « Google has a shitload of code and infrastructure. Google also has a shitload of engineers that altogether know a shitload of languages. If every engineer were allowed to write in his/her favorite pet language of the week, the necessary explosion of substandard bindings for each library * each language would be unmaintainable. Given that Perl/Python/Ruby are all effectively the same, it makes sense to standardize on one. Python has the right mix of learnability, readability, industry/community support, etc. I don’t object to having to write in Python… it makes a ton of sense

C# Code

using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;public class AnagramNames {
 public static void Main(string[] args) {

 	var names = from name in File.ReadAllLines("dist.male.first") select name.Split(' ')[0];
 	var pairs = from pair in (
 		from name in names group name by SortCharsInString(name)
 	) where pair.Count() > 1 select pair;

foreach (var pair in pairs) {
 		Console.WriteLine(String.Join(",", pair.ToArray()));
 	}
 }

 public static string SortCharsInString(string s) {
 	char[] arr = s.ToArray();
 	Array.Sort(arr);
 	return new string(arr);
 }
}

Python Code

#!/usr/bin/python
by_anagram = {}
for name in [l.split()[0] for l in open("dist.male.first")]:
        by_anagram.setdefault("".join(sorted(name)), []).append(name)
print "\n".join([" ".join(n) for n in by_anagram.itervalues() if len(n) > 1])

http://www.25hoursaday.com/weblog/2008/01/02/DoesC30BeatDynamicLanguagesAtTheirOwnGame.aspx(« Un article comparant C#3 et Python: Does C# 3.0 Beat Dynamic Languages at their Own Game? For the past few years I’ve heard a lot of hype about dynamic programming languages like Python and Ruby. The word on the street has been that their dynamic nature makes developers more productive that those of us shackled to statically typed languages like C# and Java. A couple of weeks ago I decided to take the plunge and start learning Python after spending the past few years doing the majority of my software development in C#. I learned that it was indeed true that you could get things the same stuff done in far less lines of Python than you could in C#. Since it is a general truism in the software industry that the number of bugs per thousand lines of code is constant irrespective of programming language, the more you can get done in fewer lines of code, the less defects you will have in your software. Shortly after I started using Python regularly as part of the prototyping process for developing new features for RSS Bandit, I started trying out C# 3.0. I quickly learned that a lot of the features I’d considered as language bloat a couple of months ago actually made a lot of sense if you’re familiar with the advantages of dynamic and functional programming approaches to the tasks of software development

After getting up to speed with Python and then comparing it to C# 2.0, it was clear that the dynamic features of Python made my life as a programmer a lot easier. However something interesting happened along the way. Microsoft shipped C# 3.0 around the same time I started delving into Python. As I started investigating C# 3.0, I discovered that almost all the features I’d fallen in love with in Python which made my life as a developer easier had been integrated into C#. In addition, there was also a feature which is considered to be a killer feature of the Ruby programming language which also made it into C# 3.0

The capability of a programming language to treat functions as first class objects that can be the input(s) or the output(s) of a function call is a key feature of many of today’s popular « dynamic » programming languages. Additionally, creating a short hand syntax where anonymous blocks of code can be treated as function objects is now commonly known as « lambda expressions ». Although C# has had functions as first class objects since version 1.0 with delegates and introduced anonymous delegates in C# 2.0, it is in C# 3.0 where the short hand syntax of lambda expressions has found its way into the language. Below are source code excerpts showing the difference between the the lambda expression functionality in C# and IronPython

C# Code

//decide what filter function to use depending on mode

Func<RssItem, bool> filterFunc = null;

if(mode == MemeMode.PopularInPastWeek)

   filterFunc = x => (DateTime.Now - x.Date < one_week) ;

else

   filterFunc = x => x.Read == false;

IronPython Code

#decide what filter function to use depending on mode
filterFunc = mode and (lambda x : (DateTime.Now x.date) < one_week) or (lambda x : x.read == 0)

Although the functionality is the same, it takes a few more lines of code to express the same idea in C# 3.0 than in Python. The main reason for this is due to the strong and static typing requirements in C#. Ideally developers should be able to write code like

Func<RssItem, bool> filterFunc = (mode == MemeMode.PopularInPastWeek ? x => (DateTime.Now - x.Date < one_week) : x => x.read == false);

However this doesn’t work because the compiler cannot determine whether each of the lambda expressions that can be returned by the conditional expression are of the same type. Despite the limitations due to the static and strong typing requirements of C#, the lambda expression feature in C# 3.0 is extremely powerful.

You don’t have to take my word for it. Read Joel Spolsky’s Can Your Programming Language Do This? and Peter Norvig’s Design Patterns in Dynamic Programming. Peter Norvig’s presentation makes a persuasive argument that a number of the Gang of Four’s Design Patterns either require a lot less code or are simply unneeded in a dynamic programming language that supports higher order functions. For example, he argues that the Strategy pattern does not need separate classes for each algorithm in a dynamic language and that closures eliminate the need for Iterator classes. Read the entire presentation, it is interesting and quite illuminating.

Python vs. C# 3.0: List Comprehensions vs. Language Integrated Query

A common programming task is to iterate over a list of objects and either filter or transform the objects in the list thus creating a new list. Python has list comprehensions as a way of simplifying this common programming task. Below is an excerpt from An Introduction to Python by Guido van Rossum on list expressions

List comprehensions provide a concise way to create lists without resorting to use of map(), filter() and/or lambda. The resulting list definition tends often to be clearer than lists built using those constructs. Each list comprehension consists of an expression followed by a for clause, then zero or more for or if clauses. The result will be a list resulting from evaluating the expression in the context of the for and if clauses which follow it.

Below is a code sample showing how list comprehensions can be used to first transform a list of objects (i.e. XML nodes) to another (i.e. RSS items) and then how the resulting list can be further filtered to those from a particular date.

IronPython Code

# for each item in feed
# convert each <item> to an RssItem object then apply filter to pick candidate items
items = [ MakeRssItem(node) for node in doc.SelectNodes(« //item »)]
filteredItems = [item for item in items if filterFunc(item)]

My friend Erik Meijer once observed that certain recurring programming patterns become more obvious as a programming language evolves, these patterns first become encapsulated by APIs and eventually become part of the programming language’s syntax. This is what happened in the case of the Python’s map() and filter() functions which eventually gave way to list comprehensions.

C# 3.0 does something similar but goes a step further. In C# 3.0, the language designers made the observation that performing SQL-like projection and selection is really the common operation and not just filtering/mapping of lists. This lead to Language Integrated Query (LINQ). Below is the same filtering operation on a list of XML nodes performed using C# 3.0

C# 3.0 Code

//for each item in feed

// convert each <item> to an RssItem object then apply filter to pick candidate items

var items = from rssitem in

              (from itemnode in doc.Descendants("item") select MakeRssItem(itemnode))

            where filterFunc(rssitem)

            select rssitem;

These are two fundamentally different approaches to tackling the same problem. Where LINQ really shines is when it is combined with custom data sources that have their own query languages such as with LINQ to SQL and LINQ to XML which map the query operations to SQL and XPath queries respectively.

Python vs. C# 3.0: Tuples and Dynamic Typing vs. Anonymous Types and Type Inferencing

As I’ve said before, tuples are my favorite Python feature. I’ve found tuples useful in situations where I have to temporarily associate two or three objects and don’t want to go through the hassle of creating a new class just to represent the temporary association between these types. I’d heard that a new feature in C# 3.0 called anonymous types which seemed like it would be just what I need to fix this pet peeve once and for all. The description of the feature is as follows

FINAL THOUGHTS

C# has added features that make it close to being on par with the expressiveness of functional and dynamic programming languages. The only thing missing is dynamic typing (not duck typing), which I’ve come to realize is has a lot more going for it than lots of folks in the strongly and statically typed world would care to admit. At first, I had expected that after getting up to speed with C# 3.0, I’d lose interest in Python but that is clearly not the case.

I love the REPL, I love the flexibility that comes from having natural support tuples in the language and I love the more compact syntax. I guess I’ll be doing a lot more coding in Python in 2008. « )

Posted in 2008, C_sharp, python | Tagué: | Leave a Comment »

Le futur proche de DotNet: Mono, VisualStudio 2008, C#3, ..NET3.5, Ironpython2.0, LINQ

Posted by patrick sur octobre 19, 2007

Des nouvelles en provenance de:

  • http://www.asp-php.net/tutorial/asp.net/linq-1.php (« Cette article est, je l’espère, le première d’une série que j’ai décidé de nommer « LINQ et vous ». Force est de constater que dans la lignée de mes articles précédent relatifs au .NET Framework 2.0 et Visual Studio 2005, nous avons toujours dans cette nouvelle version une convergence de plus en plus forte des langages et outils de développements associés« )
  • http://www.asp-php.net/tutorial/asp.net/linq-2.php?page=1 (« L’objectif est toujours de nous amener pas à pas vers la finalité de l’évolution du .NET Framework en version 3.5. Poursuivons ainsi notre découverte du .NET Framework 3.5 et de son écosystème !« )

Evolution des produits Visual Studio

Les principaux enseignements de ces billets:

  • Les versions de Framework et de la CLR ne sont pas pas associés. Entre 2005 et 2008 c’est toujours la machine virtuelle CLR V2.0== »Vous pouvez ainsi faire évoluer aisément vos applications actuelles vers les nouvelles librairies du .NET Framework 3.0 ou 3.5« 
  • les nouveautés des langages viennent non pas de la modification de la CLR mais des demandes des développeurs pour le développement de LINQ
  • « Les évolutions du .NET Framework de la version 2.0 à 3.5 peuvent être en quelque sorte considérées comme des ajouts de nouvelles librairies basées elles-mêmes sur le .NET Framework 2.0 et de ce fait la CLR 2.0.
  • Les projets Visual Studio 2005 sont récupérables sans migration dans Visual Studio 2008.
  • Visual Studio 2008 vous permet de sélectionner la version du .NET Framework que vous souhaitez cibler pour chaque projet mais plus encore de modifier cette cible à tout moment !

Historique de .Net Framework

Source: http://www.asp-php.net/tutorial/asp.net/linq-2.php?page=1

« Voici pour rappel, quelques dates clés :

  • 2002 : .NET Framework 1.0
  • 2003 : .NET Framework 1.1
  • Fin 2005 : .NET Framework 2.0
  • Fin 2006 : .NET Framework 3.0
  • Fin 2007 (début 2008) : .NET Framework 3.5″

Historique .NET framework

Autres sites à consulter

  • LINQ (http://en.wikipedia.org/wiki/Language_Integrated_Query , « Language Integrated Query (LINQ), pronounced « link », is a Microsoftsyntax reminiscent of SQL to .NET Framework programming languages, initially to the Visual Basic .NETC# languages. Many of the concepts that LINQ has introduced were originally trialled in Microsoft’s research project. LINQ defines project that adds a native querying and standard query operators that allow code written in LINQ-enabled languages to filter, enumerate, and create projections of several types of collections using the same syntax. Such collections may include arrays, enumerable classes, XML, datasets from relational databases, and third party data sources. The LINQ project uses features of version 2.0 of the .NET Framework, new LINQ-related assemblies, and extensions to the C# and Visual Basic .NET languages. Microsoft has distributed a preview release of LINQ, consisting of those libraries and compilers for C# 3.0 and Visual Basic 9. LINQ is planned for release with the ‘Orcas‘ version of Visual Studio 2008. [6] The release date for Visual Studio 2008 has been announced by Microsoft as February 27, 2008.« )

Les fils de syndication

Posted in C_sharp, DotNet | Tagué: , , , , , , , , , | Leave a Comment »

Utilisation de sqldeveloper pour accéder à une base Microsoft_SQL_Server

Posted by patrick sur août 20, 2007

Toujours dans le but de développer des applications C# à partir du mois de septembre, je regarde les outils graphiques que je peux utiliser pour voir le contenu d’une base de données Microsoft SQL Server. Sous Oracle, j’avais utilisé sqldeveloper et j’en étais très content. La version 1.2 de sqldeveloper permet d’accéder aux bases de données MySql, Access et SqlServer. Pour Sqlserver, il faut juste charger un pilote que l’on peut trouver là (il faut d’abord s’enregistrer auprès d’oracle): http://sourceforge.net/project/showfiles.php?group_id=33291(« Open source JDBC 3.0 Type 4 driver for Microsoft SQL Server (6.5, 7.0, 2000 and 2005) and Sybase. jTDS is the fastest JDBC driver for MS SQL Server and is a complete implementation of the JDBC spec. For more information see http://jtds.sourceforge.net/« ).

Pour installer le pilote jTDS voir http://forums.oracle.com/forums/thread.jspa?messageID=1762500 (« Download jTDS – SQL Server and Sybase JDBC driver from http://sourceforge.net/project/showfiles.php?group_id=33291(« In Oracle SQL Developer open Tools -> Preferences, Database -> Third Party JDBC Drivers, Add Entry, Browse the unzipped driver and add the jtds-1.2.jar file« ).

Et ça marche !

Utilisation des méta-données de sqlserver (information_schema) pour connaitre le contenu d’une base de données:

‘select * from vs2005db.information_schema.tables’ (‘vs2005db’ est le nom de votre base de données appelée aussi ‘TABLE_CATALOG’

VS2005DB dbo ALBUMS BASE TABLE
VS2005DB dbo DESSINATEUR BASE TABLE
VS2005DB dbo GroupeDetail BASE TABLE
….
VS2005DB dbo Ville BASE TABLE

select column_name, data_type, character_maximum_length from vs2005db.information_schema.columns where table_name=’albums’;

ID bigint (null)
TITRE varchar 100
NOMBRE_PLANCHES int (null)
DATE_SORTIE datetime (null)
INDICATEUR_COULEUR bit (null)
ID_SERIE bigint (null)
RESUME varchar 500

Pour plus d’infos voir http://www.sqlteam.com/article/using-metadata

View Name Description
CHECK_CONSTRAINTS Holds information about constraints in the database
COLUMN_DOMAIN_USAGE Identifies which columns in which tables are user-defined datatypes
COLUMN_PRIVILEGES Has one row for each column level permission granted to or by the current user
COLUMNS Lists one row for each column in each table or view in the database
CONSTRAINT_COLUMN_USAGE Lists one row for each column that has a constraint defined on it
CONSTRAINT_TABLE_USAGE Lists one row for each table that has a constraint defined on it
DOMAIN_CONSTRAINTS Lists the user-defined datatypes that have rules bound to them
DOMAINS Lists the user-defined datatypes
KEY_COLUMN_USAGE Lists one row for each column that’s defined as a key
PARAMETERS Lists one row for each parameter in a stored procedure or user-defined function
REFERENTIAL_CONSTRAINTS Lists one row for each foreign constraint
ROUTINES Lists one row for each stored procedure or user-defined function
ROUTINE_COLUMNS Contains one row for each column returned by any table-valued functions
SCHEMATA Contains one row for each database
TABLE_CONSTRAINTS Lists one row for each constraint defined in the current database
TABLE_PRIVILEGES Has one row for each table level permission granted to or by the current user
TABLES Lists one row for each table or view in the current database
VIEW_COLUMN_USAGE Lists one row for each column in a view including the base table of the column where possible
VIEW_TABLE_USAGE Lists one row for each table used in a view
VIEWS Lists one row for each view

Exemples: 

select constraint_name,column_name from vs2005db.information_schema.KEY_COLUMN_USAGE where table_name=’albums’;

FK_ALBUMS_SERIE    ID_SERIE
PK_ALBUMS    ID

select constraint_name, constraint_type from vs2005db.information_schema.table_constraints where table_name=’albums’;

PK_ALBUMS                  PRIMARY KEY
FK_ALBUMS_SERIE    FOREIGN KEY

Posted in bases de données, C_sharp | Leave a Comment »

GrassHopper: faire tourner des applications ASP.NET sur des serveurs J2EE

Posted by patrick sur août 17, 2007

En lisant les flux RSS du blog de Miguel de Icaza (http://tirania.org/blog/miguel.rss2), (infos disponible aussi sur http://blog.mainsoft.com/blog/feed/) une information intéressante pour mono: faire tourner des applications ASP.NET sur des serveurs J2EE.

http://tirania.org/blog/archive/2007/Aug-16.html (« A few years ago we met Rafi at one of our Mono summits in Boston, he works for Mainsoft and he has always been amazing. Watch his interview on what he is doing with Grasshopper here and here. He talks about Mainsoft’s contributions to Mono, about his testing procedures and the kind of things that are possible with Grasshopper when integrating ASP.NET applications when running on J2EE servers. »)

Quelques définitions

http://en.wikipedia.org/wiki/J2EE (« The platform was known as Java 2 Platform, Enterprise Edition or J2EE until the name was changed to Java EE in version 1.5.

Java EE is defined by its specification. As with other Java Community Processstandard since providers must agree to certain conformance requirements in order to declare their products as specifications, Java EE is also considered informally to be a Java EE compliant; albeit with no ISO or ECMA standard

History

The original J2EE specification was developed by Sun Microsystems.

Starting with J2EE 1.3, the specification was developed under the Java Community Process. JSR 58 specifies J2EE 1.3 and JSR 151 specifies the J2EE 1.4 specification.

The J2EE 1.3 SDK was first released by Sun as a beta in April 2001. The J2EE 1.4 SDK beta was released by Sun in December 2002.

The Java EE 5 specification was developed under JSR 244 and the final release was made on May 11, 2006.

The Java EE 6 specification is being developed under JSR 316 and is scheduled for release in 2008. « )

http://en.wikipedia.org/wiki/Java_%28programming_language%29 (« Java is a programming language originally developed by Sun Microsystems and released in 1995. Java applications are typically compiled to bytecode, although compilation to native machine code is also possible. At runtime, bytecode is usually either interpreted or compiled to native code for execution, although direct hardware execution of bytecode by a Java processor is also possible.

The language derives much of its syntax from C and C++ but has a simpler object modelJavaScript, a scripting language, shares a similar name and has similar syntax, but is not directly related to Java. and fewer low-level facilities.

The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1995.

As of May 2007, in compliance with the specifications of the Java Community Process, Sun made available most of their Java technologies as free software under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java and GNU Classpath

Releases

Main article: Java version history

The Java project has seen many release versions. Since 1995 they are:

http://dev.mainsoft.com/ ( » We believe that for Visual Studio developers, the fastest route to open systems is extending your existing .NET development skills to the Java EE platform. Grasshopper 2.0 enables you to produce .NET Web and server applications that run on Linux & other Java-enabled platforms using ASP.NET 2.0 controls, role-based security, and C# generics. Check out our developer blogs, interop forums, code samples, and how-to articles to learn how…« )

http://dev.mainsoft.com/Default.aspx?tabid=130 (« For most .NET developers, there is simply no substitute for the Visual Studio® IDE, the .NET Framework, and either Visual Basic or C#. With Grasshopper, you can use your favorite development environment from Microsoft® to deploy applications on Java-enabled platforms such as Linux®. Grasshopper is the freely available Developer Edition of Mainsoft® for Java EE, a Visual Studio plug-in that you can use to create server and ASP.NET applications, or port existing .NET 2.0 applications on Linux and other Java-enabled platforms, without having to re-engineer your code in Java.

Grasshopper 2.0 introduces support for the Visual Studio 2005 development environment, Visual Basic, and C# 2.0, including the generics language feature, the .NET Framework 2.0, and ASP.NET 2.0 controls. Use Grasshopper and the Visual Studio IDE to code, compile, debug, and deploy your application natively on the Java EE platform. »)

http://blog.mainsoft.com/blog/ (Le blog des développeurs de Mainsoft)

Posted in ASP.NET, C_sharp, J2EE, java, mono | Leave a Comment »

DotNet, Mono, C#, Ironpython: quelques liens et définitions en vrac

Posted by patrick sur août 13, 2007

Pour mon retour de vacances, quelques liens sur le framework .NET, C# , Ironpython et Mono (des projets étant à l’horizon au mois de septembre 2007).

Les framework DotNet

http://en.wikipedia.org/wiki/.NET_Framework#.NET_Framework_2.0 («  .NET Framework 2.0. Released with Visual Studio .NET 2005, Microsoft SQL Server 2005 and BizTalk 2006.

.NET Framework 2.0 shipped with Windows Server 2003 R2 (not installed by default).« )

http://en.wikipedia.org/wiki/.NET_Framework#.NET_Framework_3.0 («  .NET Framework 3.0, formerly called WinFX,[1] includes a new set of managed code APIs that are an integral part of Windows Vista and Windows Server 2008 operating systems. It is also available for Windows XP SP2 and Windows Server 2003 as a download. There are no major architectural changes included with this release; .NET Framework 3.0 includes version 2.0 of the Common Language Runtime.[2]. NET Framework 3.0 consists of four major new components:

http://en.wikipedia.org/wiki/.NET_Framework#.NET_Framework_3.5 (« In an interview with Channel 9, Jason Zander, general manager of the .NET Framework team at Microsoft, discussed version 3.5 of the framework.[3] This version will include a new compiler that will support new features such as Language Integrated Query (LINQ), as well as new language features in C# and VB.NET. This version of the framework, containing version 3.0 of the CLR (as opposed to CLR 2.0 in .NET Framework 3.0), will be included in Visual Studio 2008. »)

http://en.wikipedia.org/wiki/Mono_%28software%29 (« Mono is a project led by Novell (formerly by Ximian) to create an ECMA.NET compatible set of tools, including among others a C# compiler and a Common Language Runtime. Mono can be run on Linux, FreeBSD, UNIX, Mac OS X, Solaris and Windows operating systems.

Mono current version is 1.2.4 (as of May 2007). This version provides the core API of the .NET Framework as well as support for C# 2.0 and Visual Basic.NET. Support for the 2.0 APIs[1]. Complete support for the .NET Framework 2.0, including the .NET 2.0 version of Windows.Forms, is planned for Mono 2.2, by the end of 2007[2]. Implementation of .NET Framework 3.0 is under development under an experimental Mono subproject called Olive, but the availability of a Mono framework supporting .NET 3.0 is still not planned yet[3]. An open source implementation of Silverlight has now been integrated into Mono proper, parts of it are in the core of Mono, parts are implemented as part of the Olive components. «  )

http://en.wikipedia.org/wiki/IronPython (« IronPython is an implementation of the Python programming language, targeting .NET and Mono, created by Jim Hugunin. Version 1.0 was released on September 5, 2006.[1]
Until version 0.6 it was released under the Common Public License.[2] Following recruitment of the project lead in August 2004, IronPython was made available as part of Microsoft‘s Shared Source initiative. Authors claim that the license,[3] while not reviewed by the Open Source Initiative, conforms to the OSI’s definition of open source. With the 2.0 alpha release, the license was again changed, to the Microsoft Permissive License.[4]
IronPython is written entirely in C#, although some of its code is automatically generated by a code generator written in Python. »
)

IronPython Integration Sample and the WPF Designer (Aaron Marten explains how to get the IronPython integration sample working with Visual Studio with WPF Designer)

http://en.wikipedia.org/wiki/Windows_Presentation_Foundation (« The Windows Presentation Foundation (or WPF), formerly code named Avalon, is the graphical subsystem feature of the .NET Framework 3.0 (formerly called WinFX)[1] and is directly related to XAML.[2] It is pre-installed in Vista,[3] the latest version of the Microsoft Windows operating system. WPF is also available for installation on Windows XP SP2 and Windows Server 2003. It provides a consistent programming model for building applications and provides a clear separation between the UI and the business logic. A WPF application can be deployed on the desktop or hosted in a web browser. It also enables richer control, design, and development of the visual aspects of Windows programs. It aims to unify a host of application services: user interface, 2D and 3D drawing, fixed and adaptive documents, advanced typography, vector graphics, raster graphics, animation, data binding, audio and video.
Microsoft Silverlight is a web-based subset of WPF. During development it was named WPF/E, which stood for « Windows Presentation Foundation Everywhere ». Silverlight is based on XAML and JScript. The Silverlight subset enables Flash-like web and mobile applications with the exact same code as Windows .NET applications. 3D features are not included, but XPS, vector-based drawing and hardware acceleration are included
. »)

http://en.wikipedia.org/wiki/Microsoft_Silverlight (« Microsoft SilverlightWindows Presentation Foundation/Everywhere or WPF/E) is a proprietary runtime for browser-based Rich Internet Applications, providing a subset of the animation, vector graphics, and video playback capabilities of Windows Presentation Foundation. Version 1.1 also includes a complete version of the .NET Common Language Runtime, named (code-named CoreCLR,[1][2] so that Silverlight applications can be written in any .NET language. Silverlight aims to compete with Adobe Flash and the presentation components of Ajax. It also competes with Sun MicrosystemsJavaFX, which was launched a few days after Silverlight »)

http://www.mono-project.com/Moonlight (« A page to track the various projects that make up the Mono-based implementation of Silverlight. The goals are:

  • To run Silverlight applications on Linux.
  • To provide a Linux SDK to build Silverlight applications.
  • To reuse the Silverlight engine we have built for desktop applications.

You can see screenshots of the work in progress here.

Silverlight 1.1 (http://silverlight.net) is a new development technology for the Web created by Microsoft based on the CLR that augments it with a 2D retained graphics system and media playback engine and ships a subset of the standard .NET libraries. Currently the Moonlight project supports both Silverlight 1.0 (canvas + browser-based scripting) as well as 1.1 applications (canvas + ECMA CLI powered execution engine).

Building an open source implementation on top of Mono is an obvious choice as Mono has most of the technologies required to implement it but is missing a few components. In this page we will track the work required and the design decisions involved in creating an open source version of it.« )

Les environnements de développement:

http://en.wikipedia.org/wiki/Visual_Studio_.NET#Visual_Studio_2005 (« Visual Studio 2005, codenamed Whidbey (a reference to Whidbey Island in Puget Sound), was released online in October 2005 and hit the stores a couple of weeks later. Microsoft removed the « .NET » moniker from Visual Studio 2005 (as well as every other product with .NET in its name), but it still primarily targets the .NET Framework, which was upgraded to version 2.0. Visual Studio 2005’s internal version number is 8.0 while the file format version is 9.0.[4] Microsoft released service Pack 1 for Visual Studio 2005 on 14 December 2006.[5]

Visual Studio 2005 was upgraded to support all the new features introduced in .NET Framework 2.0, including generics and ASP.NET 2.0. The IntelliSense feature in Visual Studio was upgraded for generics and new project types were added to support ASP.NET web services. Visual Studio 2005 also includes a local web server, separate from IIS, that can be used to host ASP.NET applications during development and testing….. »)

http://en.wikipedia.org/wiki/Visual_Studio_.NET#Visual_Studio_2008 (« Visual Studio 2008,[9], code-named Orcas, is the successor to Visual Studio 2005 currently under development. It is slated to be officially launched on February 27, 2008.[10] The codename Orcas is, like Whidbey, a reference to an island in Puget Sound, Orcas Island. The successor to Visual Studio 2008 is codenamed Hawaii.

The first publically available beta was the September 2006 CTP, released on September 28, 2006. The latest beta is Beta 2, released on July 23, 2007.

Visual Studio 2008 is focused on development of Windows Vista, 2007 Office system, and Web applications. Among other things, it brings a new language feature, LINQ, new versions of C# and Visual Basic languages, a Windows Presentation Foundation visual designer, and improvements to the .NET Framework. It will also likely feature a new HTML/CSS editor influenced by Microsoft Expression Web.[11] J# will not be included.[12].NET Framework 3.5 and by default configures compiled assemblies to run on .NET Framework 3.5; but it also supports multi-targeting which lets the developers choose which version of the .NET Common Language Runtime (out of 2.0, 3.0, Silverlight CoreCLR or .NET Compact Framework runtimes) the assembly will run on. »)

http://www.monodevelop.com/Main_Page (« MonoDevelop is a free GNOME IDE primarily designed for C# and other .NET languages« )

Les flux RSS/ATOM intéressants:

http://ironpython-urls.blogspot.com/feeds/posts/default?alt=rss (« La planète Ironpython« )

http://www.voidspace.org.uk/python/weblog/index.xml (De nombreuses infos sur Ironpython)

http://www.ironpython.info/index.php/Main_Page (« wiki sur ironpython. IronPython brings Python to .NET, and allows you native access to the .NET framework and classes. In addition, Microsoft has built IronPython support into the following systems:

http://tirania.org/blog/miguel.rss2 (« le blog de Miguel de Icaza« )

http://blogs.msdn.com/jomo_fisher/atom.xml (« le blog de Jomo Fisher« )

http://msdn.microsoft.com/fr-fr/rss.xml (« Les nouvelles de microsoft »)

http://blogs.msdn.com/mitsufu/atom.xml (Le blog de mitsufu)

http://blogs.developpeur.org/tom/atom.aspx (Le blog de Thomas Lebrun sur WPF et C#)

http://blogs.msdn.com/tims/rss.xml (« Le blog de Tim Sneath« )

Les sites (avec ou sans flux RSS/Atom)

http://groups.google.com/group/mono-olive (« Olive is the group used to develop the post-2.0 Mono-based technologies. This includes Mono’s efforts to implement pieces of the 3.0 and 3.5 stacks as well as the new Silverlight implementation. »)

http://www.codeplex.com/IronPython (« IronPython is a new implementation of the Python programming language running on .NET. It supports an interactive console with fully dynamic compilation. It is well integrated with the rest of the .NET Framework and makes all .NET libraries easily available to Python programmers, while maintaining full compatibility with the Python language.« )

http://www.wikimindmap.org/viewmap.php?wiki=en.wikipedia.org&topic=IronPython

http://www.wikimindmap.org/viewmap.php?wiki=en.wikipedia.org&topic=mono_%28software%29

http://dotnet.developpez.com/cours/ (« Les meilleurs cours et tutoriels .NET »)

http://csharp-source.net/ (Des projets C# open source)

http://monofrance.tuxfamily.org/ (« Monofrance Portail francophone des utilisateurs de Mono. »)

Divers

http://www.castleproject.org/activerecord/index.html (« The Castle ActiveRecord is an implementation of the ActiveRecord pattern for .NET. The ActiveRecord pattern consists on instance properties representing a record in the database, instance methods acting on that specific record and static methods acting on all records. project is an implementation of the

Castle ActiveRecord is built on top of NHibernate, but its attribute-based mapping free the developer of writing XML for database-to-object mapping, which is needed when using NHibernate directly. »)

Les dernières nouvelles:

http://en.wikipedia.org/wiki/C_Sharp#C.23_3.0_new_language_features (« C# 3.0 is the next version of the language as proposed by Microsoft. It includes new features inspired by functional programming languages such as Haskell and ML, and is driven largely by the introduction of the Language Integrated Query (LINQ) pattern to the Common Language Runtime.[3]« )

http://blogs.developpeur.org/tom/archive/2007/06/27/silverlight-pas-convaincu-par-silverlight-essayer-alors-zero-gravity.aspx (« Interfaces graphiques avec Silverlight: ‘Si vous voulez voir ce qu’il est possible de faire, pendant 4 semaines, avec une équipe de 5 personnes (des designers utilisant Expression Blend et Expression Design, des développeurs utilisant Visual Studio 2008 et des animateurs), alors jettez un oeil sur Zero Gravity. Voir http://timheuer.com/blog/archive/2007/06/26/zerogravity.aspx‘ »)

http://tirania.org/blog/archive/2007/Aug-04.html (« Pretty much all the C# 3.0 features are now completed. As Marek points out there are a couple of areas that still need some work (collection initializers and anonymous types), but we are in good shape to complete the LINQ support in Mono’s C# compiler…The majority of our C# 3.0 support will be available in Mono 1.2.5. The recent developments (type inference) did not make it into the release, so folks will have to wait for 1.2.6…« )

http://tirania.org/blog/archive/2007/Jul-02.html (« Marek Habersack has written a Guide on Porting ASP.NET Applications to Linux using Mono. This is a complement to Jonathan Pobst’s Porting Winforms Applications to Linux using Mono. AjaxWidgets: In addition to the two Guides above, the Thomas from Frost Innovations (the makers of Ajaxwidgets has written a tutorial on how he run ASP.NET 2.0 apps on Linux with Mono.« )

http://ironpython-urls.blogspot.com/2007/07/new-release-ironpython-20-alpha-3.html (« We have just released IronPython 2.0 Alpha 3. This release is a snapshot of the on-going progress with IronPython 2.0 and the DLR. The most significant changes in this release include more work to use dynamic sites from IronPython and improved evaluation mode support. This release is also timed to closely coincide with the IronRuby release and provides a near-identical DLR release…« )

http://tirania.org/blog/archive/2007/Jun-21.html (« Needless to say, we believe that Silverlight is a fantastic development platform, and its .NET-based version is incredibly interesting and as Linux/Unix users we wanted to both get access to content produced with it and to use Linux as our developer platform for Silverlight-powered web sites. »)

http://spellcoder.com/blogs/dodyg/archive/2007/08/08/7756.aspx (« In Summary :

  • Less Code Matters A Lot.
  • C# 3.0 really shines for back end development. It doesn’t add much value in the current ASPX Page structure code behind.
  • IronPython really shines for CodeBehind code or anything related to UI programming. I can’t fathom using it for back end programing due to the lack of refactoring support.
  • Using both C# 3.0 and IronPython in the same project is a joy.« )

Posted in active record, C_sharp, DotNet, Ironpython, mono | 1 Comment »