Author:admin

Date:2008-09-19T14:06:51.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@28 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
jfiat
2008-09-19 14:06:51 +00:00
parent 4087eb614e
commit a903078386
100 changed files with 122 additions and 16 deletions

View File

@@ -0,0 +1,7 @@
[[Property:title|Community]]
[[Property:weight|2]]
[[Property:uuid|75c75712-7c3e-2757-51b7-77b404471e2e]]
== Community contributions ==
Provide a place with the official documentation for referencing valuable work done by and available to the Eiffel community.

View File

@@ -13,8 +13,8 @@ In order for us to communicate effectively about the activities of the method we
The method is laid out in wonderful detail in [http://www.eiffel.com/doc/oosc/ Object-oriented Software Construction, 2nd Edition]. But, if you're just getting started, you will find some good introductory material on this page. The invitation to Eiffel is fairly short introduction to the method and language. and the tutorial gives a more detailed look.
* An [[Invitation to Eiffel|Invitation to Eiffel]]
* [[An Eiffel Tutorial|Eiffel tutorial]]
* [[Invitation to Eiffel|Invitation to Eiffel]]
* [[An Eiffel Tutorial|An Eiffel tutorial]]
* Developers' quick reference to Eiffel the language

View File

@@ -1,6 +1,7 @@
[[Property:title|4 Classes]]
[[Property:link_title|I2E: Classes]]
[[Property:weight|-11]]
[[Property:uuid|218bead9-428e-f61d-1e45-7eea4291d895]]
A class, it was said above, is an implementation of an abstract data type. This means that it describes a set of run-time objects, characterized by the ''' features''' (operations) applicable to them, and by the formal properties of these features.
Such objects are called the '''direct instances''' of the class. Classes and objects should not be confused: "class" is a compile-time notion, whereas objects only exist at run time. This is similar to the difference that exists in classical programming between a program and one execution of that program, or between a type and a run-time value of that type.
@@ -13,7 +14,9 @@ A class <code> X </code> may become a client of <code> ACCOUNT </code> by declar
<code>acc: ACCOUNT</code>
The term "entity" generalizes the more common notion of "variable". An entity declared of a reference type, such as <code>acc</code>, may at any time during execution become " '''attached to''' " an object; the type rules imply that this object must be a direct instance of <code> ACCOUNT </code> -- or, as seen below, of a "descendant" of that class.
[[Image:invitation-2]]
[[Image:invitation-2]]
An entity is said to be void if it is not attached to any object. By default, entities are void at initialization. To obtain objects at run-time, a routine <code> r </code> appearing in the client class <code> X </code> may use a '''creation instruction''' of the form
<code>create acc</code>

View File

@@ -1,6 +1,7 @@
[[Property:title|Accessing a COM component]]
[[Property:link_title|Accessing a COM Component]]
[[Property:weight|2]]
[[Property:uuid|d27be959-8f8e-a6f0-cd20-12f6ce71307f]]
The third tutorial describes how to access a COM component. It will build a client of the <eiffel>StringManipulator</eiffel> component built in the first tutorial.
==Step by step instructions==
# In '''Project''', in the '''Current project''' input field, type in ''string_manipulator_client'' and press '''enter'''.

View File

@@ -1,6 +1,7 @@
[[Property:title|Creating a new COM component]]
[[Property:link_title|Creating a New COM Component]]
[[Property:weight|0]]
[[Property:uuid|f8298b7d-c1a4-c8cc-1821-066f90e7e6e0]]
This first tutorial describes creating a COM component from a COM definition file that is either an IDL file or a Type Library. The tutorial focuses on creating an in-process (DLL) component, called <eiffel>StringManipulator</eiffel>. The component exposes one interface <eiffel>IString</eiffel> that includes the functions <eiffel>ReplaceSubstring</eiffel> and <eiffel>PruneAll</eiffel> corresponding respectively to the features <eiffel> [[ref:libraries/base/reference/string_8_chart|replace_substring]] </eiffel> and <eiffel> [[ref:libraries/base/reference/string_8_chart|prune_all]] </eiffel> of the class <eiffel> [[ref:libraries/base/reference/string_8_chart| <eiffel>STRING</eiffel> ]] </eiffel> from the EiffelBase library. <eiffel>IString</eiffel> also exposes the property <eiffel>String</eiffel> which represents the manipulated string. The property can be set or read.
==Step by step instructions==
# In '''Project''', in the '''Current project''' input field, type in ''string_manipulator_server'' and press '''enter'''.

View File

@@ -1,5 +1,6 @@
[[Property:title|Creating a new component from an Eiffel project]]
[[Property:weight|1]]
[[Property:uuid|f1f6711a-989b-f182-377d-89dd827401d5]]
The second tutorial describes creating a COM component from an Eiffel system. The tutorial example <eiffel>String</eiffel> is almost identical to <eiffel>StringManipulator</eiffel> of the previous tutorial. In the <eiffel>StringManipulator</eiffel> example the wizard starts from an IDL file and builds an Eiffel System; in contrast, the <eiffel>String</eiffel> example takes an Eiffel system and generates an IDL file and the required plumbing code to make the Eiffel project accessible to COM.
==Step by step instructions==

View File

@@ -1,5 +1,6 @@
[[Property:title|EiffelCOM Wizard Guided Tour]]
[[Property:weight|-13]]
[[Property:uuid|b0973926-aaac-0131-ae60-d1db6ecf6f38]]
This chapter explains how to use the EiffelCOM wizard to create COM components and to access existing components. <br/>
* [[Creating a new COM component|Creating a new COM component]] .
* [[Creating a new component from an Eiffel project|Creating a new component from an Eiffel Project.]]

View File

@@ -1,5 +1,6 @@
[[Property:title|EiffelCOM Wizard Introduction]]
[[Property:weight|-14]]
[[Property:uuid|b73bc137-55ce-5404-e178-d88565cb6b62]]
The COM standard allows software components written in different languages to communicate with each other. However, building COM compliant applications requires the development of a large amount of code only dedicated to supporting the technology. The EiffelCOM wizard was designed to free Eiffel developers from having to write the plumbing code.
The EiffelCOM wizard is a powerful tool that enables the fast development of COM components in Eiffel and accessing COM components from Eiffel systems. It consists of a series of input fields, which ask about the component's characteristics. The wizard needs the data to produce an Eiffel system skeleton, the code to access or create a component, and the component-specific runtime libraries.

View File

@@ -1,5 +1,6 @@
[[Property:title|Building a COM Component]]
[[Property:weight|5]]
[[Property:uuid|eb299741-4570-c2f1-011a-69da3043c6eb]]
The EiffelCOM wizard allows for the development of both in-process (DLLs) and out-of-process (EXEs) COM components in Eiffel.
==Using the Generated Code==

View File

@@ -1,5 +1,6 @@
[[Property:title|Class Hierarchy]]
[[Property:weight|2]]
[[Property:uuid|3f78176c-179f-78a4-cf32-47ec548bbb16]]
The generated Eiffel code reflects the architecture of the component described in the definition file. Each interface corresponds to a deferred Eiffel class that includes one deferred feature per interface function. The deferred features are implemented in heirs of the interface class. Classes inheriting from these interfaces implement either a coclass or an implemented interface (that is an interface whose instance might be used as an argument on one of the component interfaces functions).
[[Image:interface-inheritance]]
In a project accessing an existing component, the Eiffel classes corresponding to component coclasses inherit from the class [[ref:libraries/com/reference/ecom_queriable_chart| <eiffel>ECOM_QUERIABLE</eiffel> ]] , which is part of the EiffelCOM library. This class includes the feature <eiffel>make_from_other</eiffel> which allows initializing the component from another instance of [[ref:libraries/com/reference/ecom_interface_chart| <eiffel>ECOM_INTERFACE</eiffel> ]] .

View File

@@ -1,5 +1,6 @@
[[Property:title|Eiffel Project Processing]]
[[Property:weight|3]]
[[Property:uuid|d94c4060-af70-930b-5023-1c2b2d069633]]
The EiffelCOM Wizard can be used to add a COM interface to an existing Eiffel project. The advantage of that approach is that it doesn't require any knowledge about IDL. The EiffelCOM Wizard will take care of generating the IDL from the Eiffel facade class. The generated IDL will define one coclass containing one interface that corresponds to the contract view of the facade class.
==Designing the Facade Class==

View File

@@ -1,5 +1,6 @@
[[Property:title|Generated Files]]
[[Property:weight|1]]
[[Property:uuid|808d49ba-132d-f847-2d8c-f49fe8c499b1]]
The EiffelCOM Wizard generates code into the specified destination folder. The file hierarchy is the following:
[[Image:folders]]
* The '''Client''' folder includes all the files used to access a COM component. The subfolders '''Clib''' and '''Include''' contain respectively the C++ source files and header files. The subfolder '''Component''' contains the Eiffel classes corresponding to the component's coclasses. Finally the subfolder '''Interface_proxy''' contains classes wrapping interfaces that may be returned by functions of the component. These classes may be of interest for systems implementing a new COM component as well. The '''Client''' folder also contains a ECF file that can be used to precompile the generated Eiffel classes if the project consists of accessing an existing component. It is also possible to directly use the ECF file as a library in an existing project.

View File

@@ -1,5 +1,6 @@
[[Property:title|How the EiffelCOM Wizard works]]
[[Property:weight|0]]
[[Property:uuid|2cbfb8ef-d163-fb01-ab8f-5ab156ea36fd]]
Depending on the project settings there are between 2 and 6 major steps involved when generating the Eiffel system:
* '''IDL Generation''': If the project consists of adding a COM interface to an existing Eiffel project, the first step accomplished by the EiffelCOM Wizard consists of generating an IDL file from the specified facade class (see [[Eiffel Project Processing|Adding a COM interface to an Eiffel project]] for additional details).
* '''IDL Compilation''': If the project uses an IDL file (whether it was specified or the result of processing a facade class from an existing Eiffel project), the EiffelCOM Wizard then compiles it into a type library.

View File

@@ -1,5 +1,6 @@
[[Property:title|EiffelCOM Wizard Reference]]
[[Property:weight|-12]]
[[Property:uuid|d3564eb8-ef56-4ec1-599f-430b023fa7e8]]
The EiffelCOM Wizard allows the creation of Eiffel projects implementing or reusing COM components.
* [[How the EiffelCOM Wizard works|How the EiffelCOM Wizard works]] describes the steps followed by the wizard when creating the Eiffel project.
* [[Generated Files|Generated Files]] describes the list of generated files and their usage.

View File

@@ -1,5 +1,6 @@
[[Property:title|Reusing a COM Component]]
[[Property:weight|4]]
[[Property:uuid|ae910c51-2264-4b65-2567-9dfc1873beca]]
The wizard generates the necessary code to access the existing component. The plumbing is already done so that instantiating an Eiffel class corresponding to one of the component's coclasses automatically calls the right COM initialization APIs.
==Using the Generated Code==

View File

@@ -1,5 +1,6 @@
[[Property:title|Wizards: Command Line Options]]
[[Property:weight|6]]
[[Property:uuid|ca417e46-ad46-2d3f-e13e-a88366dc06b3]]
The EiffelCOM Wizard can be used from the command line for example in batch scripts. The command line utility is <code>com_wizard.exe</code> and is located in <code>$ISE_EIFFEL\wizards\com</code>. Each command line option has both a long and a short name. The long names are all prefixed with <code>--</code> while the short names are all prefixed with <code>-</code>. Options that take an argument should have the argument directly following the option with a space or a <code>=</code> sign in between the option name and the argument as in:
<code>
--ace="mysystem.ecf"</code>

View File

@@ -6,19 +6,19 @@
Primary source for Eiffel platform specific support for Microsoft Windows
* Eiffel for .NET documentation http://ise181.ise/book/documentation/net
** Installation instructions http://ise181.ise/book/documentation/net-installation-instructions
** Building a .NET application http://ise181.ise/book/documentation/building-net-application
** Eiffel for .NET language description http://ise181.ise/book/documentation/eiffel-net-language
** Samples http://ise181.ise/book/documentation/samples
* [[.NET| Eiffel for .NET documentation]]
** [[.NET Installation instructions|Installation instructions]]
** [[Building a .NET application|Building a .NET application]]
** [[The Eiffel for .NET language|Eiffel for .NET language description]]
** [[Samples|Samples]]
* EiffelEnvision documentation ?
* Eiffel for ASP.NET http://ise181.ise/book/documentation/eiffel-aspnet-documentation
* WEL http://ise181.ise/book/documentation/wel-library
** WEL introduction http://ise181.ise/book/documentation/wel-interface-content
** WEL class reference
** WEL samples http://ise181.ise/book/documentation/wel-samples
* EiffelCOM Wizard
* ResourceBench
* [[Eiffel for ASP.NET Documentation|Eiffel for ASP.NET]]
* [[WEL Library|WEL]]
** [[WEL Interface Content|WEL introduction]]
** [[ref:libraries/wel/reference/index|WEL class reference]]
** [[WEL Samples|WEL Samples]]
* [[EiffelCOM Wizard|EiffelCOM Wizard]]
* [[ResourceBench|ResourceBench]]

View File

@@ -1,5 +1,6 @@
[[Property:title|Eiffel CodeDom Provider Manager]]
[[Property:weight|-1]]
[[Property:uuid|089e658f-4bd8-df8f-5647-0c176c00359b]]
The Eiffel Codedom Provider Manager allows to graphically configure the Eiffel CodeDom Provider. There can be multiple configurations, each of them being associated with at least one application.
{{note| '''Note:''' The Eiffel for ASP.NET installation program will add a shortcut in the start menu to the Eiffel CodeDom Provider Manager. }}
The main dialog of the Eiffel CodeDom Provider Manager is divided into two vertical panes. The left pane contains a list of available configurations while the right pane contains the settings corresponding to the currently selected configuration. Initially the only available configuration is the '''default''' configuration which applies to all applications. The configurable settings are listed below.

View File

@@ -1,5 +1,6 @@
[[Property:title|Name Mapper]]
[[Property:weight|2]]
[[Property:uuid|82691c82-50a5-ed7f-b138-90946d094dae]]
The Name Mapper utility allows retrieving the Eiffel identifier corresponding to a .NET type name or a .NET member name. There are only two input fields in the interface: the .NET type name should be entered in the first one while the .NET member name should be entered in the second one. Once a valid .NET type name is entered in the type name input field, the tool starts searching for the corresponding Eiffel identifier. When the Name Mapper finds the corresponding Eiffel identifier, it automatically fills the .NET member name input combo box with all the member names of the corresponding type. This means that the .NET member type name can be chosen from the combo box entries or typed in (if it's typed in then the tool will autocomplete the member name).
The assemblies the tool will look into for the .NET type whose name was given in the .NET type name input field are listed below the input fields. It is possible to add new assemblies to the list by clicking the ''Add'' button. Assemblies that were added this way can be removed by clicking the ''Remove'' button after selecting the assembly from the list.
{{note| '''Note:''' Assemblies that are listed by default cannot be removed. }}

View File

@@ -1,5 +1,6 @@
[[Property:title|About the Code Document Object Model (CodeDom)]]
[[Property:weight|0]]
[[Property:uuid|46136373-34bb-94b7-1f7b-934d584cf637]]
CodeDom stands for the '''Code Document Object Model'''. CodeDom allows for representing source code in an abstract data structure. Such a representation is called a '''CodeDom tree''' as the underlying data structure uses a tree paradigm. This abstract representation can then be generated into different programming languages. Each language vendor provides its implementation of the CodeDom interfaces, this implementation is called a '''CodeDom Provider'''. Programmers can then build tools that can work with many different languages without having to know about each one, instead they just delegate code generation to each CodeDom Provider.
The CodeDom interfaces also expose types and methods that allow for parsing source code and creating the corresponding CodeDom. The current implementation of the Eiffel CodeDom Provider does not support parsing. Code generation is a much more popular useage of the CodeDom and the current version focuses on this aspect of the technology.

View File

@@ -1,5 +1,6 @@
[[Property:title|Common Scenarios]]
[[Property:weight|7]]
[[Property:uuid|15334d95-2ef5-6e1b-1754-051342bb7290]]
==ASP.NET==
Probably the most common use of the CodeDom technology is via Internet Information Services (IIS) and ASP.NET. The installation of the Eiffel for ASP.NET will configure the machine so ASP.NET pages can be written in Eiffel. Consult the [[Eiffel for ASP.NET Installation|Eiffel for ASP.NET documentation]] for details on how to write ASP.NET Eiffel pages.
==WSDL==

View File

@@ -1,5 +1,6 @@
[[Property:title|Configuration]]
[[Property:weight|3]]
[[Property:uuid|2d885f05-adcc-d8da-6515-4568fc76bcf6]]
The Eiffel Codedom Provider uses XML configuration files that define additional settings specific to Eiffel. Such settings include whether to fail on error, what events to log, where to log them etc... Each application can define its own configuration to be used when it loads the Eiffel CodeDom Provider. If an application is not associated with a configuration file then a default configuration is used.
The association between applications and configurations as well as the actual settings the configuration defines can be set in the [[Eiffel CodeDom Provider Manager|Eiffel CodeDom Provider Manager]] . Run ''ecdpman.exe'' to start the manager.

View File

@@ -1,5 +1,6 @@
[[Property:title|Eiffel Implementation]]
[[Property:weight|7]]
[[Property:uuid|3f945c36-521e-cd71-fc7b-d549a6c05a04]]
There are a few topics specific to the implementation of the Eiffel CodeDom Provider that are worth mentioning.
==Multiple Classes File==
The Eiffel compiler expects that there is only one class per source file (file with extension '''.e'''), however the CodeDom interface specification requires multiple classes to be generated in the same file (actually in the same ''stream''). The Eiffel CodeDom Provider code generator generates files with the extension '''.es''' which may contain multiple class definitions. Each class definition is separated with a special marker that the Eiffel CodeDom Provider compiler will parse to create multiple '''.e''' files - each containing a single class definition - prior to calling the command line Eiffel compiler.

View File

@@ -1,5 +1,6 @@
[[Property:title|The Eiffel CodeDom Provider]]
[[Property:weight|0]]
[[Property:uuid|0b45f31f-83ea-6301-9017-7b78c6827772]]
The Eiffel CodeDom Provider provides an implementation of the CodeDom Provider generation and compilation interfaces defined in the System.CodeDom namespace of the .NET Framework. This documentation includes the following sections:
* [[About the Code Document Object Model (CodeDom)|About CodeDom]] introduces the basic concepts behing the CodeDom technology.
* [[Installation|Installation]] describes the steps involved in installing the Eiffel CodeDom Provider.

View File

@@ -1,5 +1,6 @@
[[Property:title|Installation]]
[[Property:weight|1]]
[[Property:uuid|b6197932-4bcb-c79b-afe2-1a8f36dbbd7c]]
For certain tools (including ASP.NET) to detect the availability of a CodeDom Provider, the corresponding assembly name must be listed in the .NET machine wide configuration file typically located in:
<code>%SYSTEM_DRIVE%\Windows\Microsoft.NET\Framework\vx.x.xxxx\CONFIG\machine.config</code>
(where vx.x.xxxx corresponds to the .NET Framework version number). The available CodeDom Providers are listed under the ''<compilers>'' XML node. The Eiffel CodeDom Provider implements a.NET Installer class so that should you need to add the Eiffel CodeDom Provider to the machine configuration file, simply run the .NET SDK command line utility ''InstallUtil'' as follows:

View File

@@ -1,5 +1,6 @@
[[Property:title|Logging]]
[[Property:weight|4]]
[[Property:uuid|d425684b-687c-aee6-25fa-650e5885e014]]
The Eiffel CodeDom Provider may be configured (via the [[Eiffel CodeDom Provider Manager|Eiffel Codedom Provider Manager]] ) to log information, warnings and/or errors in the Windows Event Log. Logging may be useful for a number of reasons, some of them are:
* To detect which CodeDom interface method is called and when it's called. This is particularly useful when the source code for the CodeDom consumer (e.g. ASP.NET) is not available.
* To locate the source of a problem when the code generated by the Eiffel CodeDom Provider is incomplete or incorrect. This may happen if the CodeDom tree given to the Eiffel CodeDom Provider uses one of the unsupported constructs as listed in the topic [[Supported Constructs|Supported Constructs]] .

View File

@@ -1,5 +1,6 @@
[[Property:title|Required Permissions]]
[[Property:weight|6]]
[[Property:uuid|f55af6a0-b896-12b7-fe4a-ebb1787731e5]]
The account running the Eiffel CodeDom Provider might have restricted permissions such as when used through ASP.NET. This section aims at defining the security permissions required for the execution of the Eiffel CodeDom Provider.
==Eiffel Metadata Cache==
Both when generating and compiling source code, the Eiffel CodeDom Provider needs to read and write from and to the Eiffel Metadata Cache. This repository stores the mapping information between .NET and Eiffel names for both types and their members. By default the Eiffel Metadata Cache is located in the ''Assemblies'' subfolder of the Eiffel CodeDom Provider directory.

View File

@@ -1,5 +1,6 @@
[[Property:title|CodeDom: Getting Started]]
[[Property:weight|0]]
[[Property:uuid|06e0c7ae-6d25-a0ef-81e6-2ee3c95fe4a1]]
==Prerequesites==
Before you start writing ASP.NET pages in Eiffel, you should be familiar with the ASP.NET technology itself. If you haven't already, it is strongly recommended that you follow the ASP.NET quickstarts available online at [http://samples.gotdotnet.com/quickstart/aspplus/ http://samples.gotdotnet.com/quickstart/aspplus/] . Apart from a few Eiffel specific points described in [[Using Eiffel (to write ASP.NET pages)|Using Eiffel]] , writing ASP.NET pages in Eiffel follows the same rules as writing ASP.NET pages in any other language.
Writing ASP.NET pages in Eiffel also requires to be familiar with the Eiffel language itself. There are no changes in the language when using it to write ASP.NET pages: the same parser and compiler are used to parse and compile standard Eiffel source code and ASP.NET generated source code. Documentation on the Eiffel language can be found on the [http://docs.eiffel.com Eiffel documentation web site] .

View File

@@ -1,5 +1,6 @@
[[Property:title|Eiffel for ASP.NET Installation]]
[[Property:weight|-1]]
[[Property:uuid|c9371a07-12fb-bdb2-b076-3da3c0ec8da6]]
Eiffel for ASP.NET is available for downloading for free at [http://www.eiffel.com http://www.eiffel.com] . Simply run the file and follow the installer instructions. It is recommended that Internet Information Services (IIS) be deployed on the machine prior to installing Eiffel for ASP.NET. If IIS is not deployed then the installation program will display a warning message box. Click '''ignore''' to keep installing the product.
Without IIS, ASP.NET pages cannot be loaded and thus the samples will not be installed. It might still be useful to install Eiffel for ASP.NET without IIS if the Eiffel CodeDom Provider is going to be used through other [[Common Scenarios|scenarios]] . If IIS is available then the installer will open an Eiffel ASP.NET page at the end of the installation process. This page contains links to the documentation and samples. The installer will also put links to these documents in the ''Start'' menu under 'Programs\Eiffel for ASP.NET x.x' where 'x.x' corresponds to the version number of Eiffel for ASP.NET.
==System Requirements==

View File

@@ -1,5 +1,6 @@
[[Property:title|Writing ASP.NET pages in Eiffel]]
[[Property:weight|-1]]
[[Property:uuid|7027e7f3-38e1-5e26-c936-20aea0e0c205]]
Eiffel for ASP.NET allows running ASP.NET pages written in Eiffel. It should be installed on both the web server and the developer's machine. This documentation includes the following sections:
* [[Eiffel for ASP.NET Installation|Installation]] describes the steps involved in installing Eiffel for ASP.NET.
* [[CodeDom: Getting Started|Getting started]] lists resources that will help getting started with Eiffel for ASP.NET.

View File

@@ -1,5 +1,6 @@
[[Property:title|Names Mappings]]
[[Property:weight|4]]
[[Property:uuid|fa212869-ffb0-0a6a-cbd0-7a184b11491d]]
Maybe the most striking difference when writing pages in Eiffel comes from the name of the .NET types and methods. Because of different naming conventions, overloading and differences in identifier validity rules, .NET identifiers cannot be mapped directly to Eiffel identifiers. As a consequence, the Eiffel compiler creates XML mapping files in the ''Eiffel Metadata Cache''. These files are created only once for each referenced assembly.
{{note| '''Note:''' The ASP.NET installation program pre-generates the Eiffel Metadata Cache for all assemblies required by ASP.NET by default. }}
The name mapping algorithm is quite complex but it is possible to guess the Eiffel identifier from the .NET identifier in most cases. The following simple steps can be followed to retrieve the Eiffel identifier corresponding to a .NET type:

View File

@@ -1,5 +1,6 @@
[[Property:title|Using Eiffel (to write ASP.NET pages)]]
[[Property:weight|3]]
[[Property:uuid|c8e2ffa7-cfa8-0b4c-4b5e-e1f386b7ab11]]
==Inheritance==
Eiffel handles inheritance in a different way than most languages. In C# or VB.NET the behavior of a newly introduced member in a class hierarchy is defined as part of the member declaration itself (for example C# will precede the member declaration with the keyword ''override'' to accomplish the same result as an Eiffel ''redefine'' clause). In Eiffel, classes are equipped with an inheritance clause which centralizes all the feature adaptations.
As a result, Eiffel for ASP.NET introduces '''inheritance snippets'''. Each Eiffel ASP.NET page may include at most one inheritance snippet. Such a snippet must start with the '''inherit''' keyword and may then list any valid Eiffel feature adaptation.

View File

@@ -1,5 +1,6 @@
[[Property:title|Eiffel Class and Feature Names]]
[[Property:weight|2]]
[[Property:uuid|16e4a231-7aae-4b37-52fd-67876cc222ad]]
Certain naming conventions are respected by Eiffel programmers. Although Eiffel is not case-sensitive, convention dictates the use of upper and lower case in particular situations. When you program in EiffelEnvision, you create new Eiffel classes, but you also use types from .NET assemblies. These .NET types are presented to you in a view that is consistent with Eiffel conventions.
==Eiffel Class Names==

View File

@@ -1,5 +1,6 @@
[[Property:title|Conventions]]
[[Property:weight|1]]
[[Property:uuid|1f101597-06cd-b851-8cc1-e214b3eedb3e]]
* [[Eiffel for .NET Conventions|Introduction]]
* [[Eiffel for .NET Terminology|Terminology]]
* [[Eiffel Class and Feature Names|Conventions and Name Handling]]

View File

@@ -1,5 +1,6 @@
[[Property:title|Similar Types Occurring in Both Libraries]]
[[Property:weight|5]]
[[Property:uuid|4c9f6ad8-107b-af69-3eb3-3f076f2c936c]]
==Whose String is it anyway?==
Over the last 15 years or so, the Eiffel class libraries have been a source for reusable software components for developers.

View File

@@ -1,5 +1,6 @@
[[Property:title|Adding Class Features]]
[[Property:weight|2]]
[[Property:uuid|04261c22-b28f-b045-a5d7-2c85efe992b9]]
The features of a class make it useful. They are the things that objects which are instances of the class have and can do.
It is during the process of adding class features that we relate a class we are producing to other classes via the client/supplier relationship.

View File

@@ -1,5 +1,6 @@
[[Property:title|Eiffel Classes]]
[[Property:weight|1]]
[[Property:uuid|f905426e-3109-b60b-adf0-c74b83c81b55]]
The unit of software reuse in Eiffel is the class.
The unit of modularity in Eiffel is the class.

View File

@@ -1,5 +1,6 @@
[[Property:title|Eiffel for .NET Compliance]]
[[Property:weight|9]]
[[Property:uuid|1e19c2f0-995e-02c1-0588-c134a11e0003]]
As of EiffelEnvision 2.6, Eiffel for ASP.NET 5.6 and EiffelStudio 5.7; Eiffel for .NET introduces the notion of '''Eiffel-Compliance'''. .NET specifies a number of language interopability rules in a [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconwhatiscommonlanguagespecification.asp Common Language Specification-Compliance] specification. Eiffel for .NET supports all CLS-Compliant type and features in .NET but now additionally supports a number of non-CLS-compliant types and features. This is the purpose of the Eiffel-Compliant notion.
{{note| '''Note''': The information contained within this page does not go into any depth on the Common Language Specification (CLS) or CLS-Compliance. For this information please see Microsoft's on-line documentation [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconwhatiscommonlanguagespecification.asp What is the Common Language Specification?] }}

View File

@@ -1,5 +1,6 @@
[[Property:title|Eiffel for .NET]]
[[Property:weight|2]]
[[Property:uuid|446038d8-abd6-0a0d-2b90-94124e1ac810]]
* [[Eiffel for.NET Language|Introduction]]
* [[Eiffel Classes|Eiffel Classes]]
* [[Adding Class Features|Adding Class Features]]

View File

@@ -1,5 +1,6 @@
[[Property:title|Inheritance]]
[[Property:weight|3]]
[[Property:uuid|7e4cb7ba-fda6-8eac-3e27-bbb8fafd8673]]
Inheritance, along with client/supplier, are the two relationships that can exist between classes.
Inheritance lets us mirror in software the types of abstractions that are common in many problem domains, i.e., the more general to the more specialized.

View File

@@ -1,5 +1,6 @@
[[Property:title|Referenced Assembly Type and Feature Name Conversion]]
[[Property:weight|10]]
[[Property:uuid|5d575090-35d9-f983-7308-172b1641173f]]
The [[The Eiffel for .NET language|Eiffel for .NET language]] is Eiffel. It is not a variant of Eiffel that spawned a new language, as is '''C#''', or a dramatic evolution of Eiffel, such as '''Visual Basic .NET''' is to '''VB6'''. As Eiffel stands today, and will probably remain, Eiffel's conventions for class names and features names do not match that of the Pascal and Camel-casing conventions recommended by Microsoft. Eiffel also does not support the notion of full quantified type names. The period (''''.'''') between namespace and type names is not valid Eiffel syntax. These naming convention rules pose a problem for maintaining the Eiffel language. To address this issue, when referencing .NET assemblies, all referenced assembly type names and feature names are converted into "Eiffel-case" when using Eiffel.
<span id="eiffel_case"></span>
==What is Eiffel-Case?==

View File

@@ -1,5 +1,6 @@
[[Property:title|Using Referenced Assemblies]]
[[Property:weight|8]]
[[Property:uuid|acbe0407-b95e-6268-fc20-238f91df595e]]
Eiffel for.NET is a first class citizen in the Microsoft.NET programming world. This means that if you are programming in Eiffel for.NET, say with ENViSioN!, you have full access to the thousands of software components in the .NET type libraries. But, that's not all. You also have full access to the thousands of components in the traditional Eiffel class libraries. And even that's not all. You have the ability to build software components which comply with.NET standards, so that they can be used by programmers using any other .NET language. Still not all. When you use Eiffel, you can choose to build software that will run under Microsoft.NET, but will be portable to other popular operating systems as well.
Being an Eiffel for.NET programmer obviously put you in a very powerful position. How do you take advantage of it?

View File

@@ -1,5 +1,6 @@
[[Property:title|The Eiffel for .NET language]]
[[Property:weight|2]]
[[Property:uuid|ba6cd8d3-683c-4167-bdef-a0274c392f34]]
* [[Eiffel for .NET: Introduction|Introduction]]
* [[Eiffel for .NET Conventions|Using Eiffel on .NET]]
* [[Eiffel for .NET|Summary of the Eiffel Language]]

View File

@@ -1,5 +1,6 @@
[[Property:title|.NET Installation instructions]]
[[Property:weight|0]]
[[Property:uuid|64f7e3b1-f6ee-5cc4-1006-2fc4dfdaeae7]]
Before installing the .NET components for Eiffel for .NET you need to install either the .NET Framework, the .NET Framework SDK or Visual Studio .NET. If you do not have any of those installed, the installation program will prompt you with a warning because no .NET features support will be installed.

View File

@@ -1,5 +1,6 @@
[[Property:title|ADO .NET Samples]]
[[Property:weight|0]]
[[Property:uuid|b58f17b4-57b0-ffe9-3160-86d95512f900]]
* [[ADO.NET Sample|Ado]]

View File

@@ -1,5 +1,6 @@
[[Property:title|Calculator: console]]
[[Property:weight|0]]
[[Property:uuid|70cc4687-0d3e-2859-70f6-c603c05d085c]]
=The Calculator Sample=
This sample consists of a command line reverse Polish notation (RPN) calculator.

View File

@@ -1,5 +1,6 @@
[[Property:title|Console Samples]]
[[Property:weight|1]]
[[Property:uuid|3f2c704c-9784-06a5-4cad-02ad58433b2c]]
* [[Calculator: console|Calculator]]

View File

@@ -1,5 +1,6 @@
[[Property:title|Samples]]
[[Property:weight|3]]
[[Property:uuid|c1dbfdb5-c4d0-f674-d818-00d56c431c6e]]
In this chapter you will find a series of examples that will permit to you to understand the bases of programming with Dotnet.
However, you should be familiar with Object-Oriented programming model. Almost all other examples can also be built for .NET if the dotnet target is choosen instead of classic.

View File

@@ -1,5 +1,6 @@
[[Property:title|Threads Samples]]
[[Property:weight|2]]
[[Property:uuid|62e36a4c-0afd-e143-9a1f-98eab4022e6b]]
* [[Pools|Pools]]
* [[Timers|Timers]]

View File

@@ -1,5 +1,6 @@
[[Property:title|Date Time Picker]]
[[Property:weight|1]]
[[Property:uuid|9f94f4f3-3a6e-1fe7-f9c0-d9411913ce25]]
<div>
[[Image:date-time-picker|Hello world form]]
</div>

View File

@@ -1,5 +1,6 @@
[[Property:title|GDI plus - text]]
[[Property:weight|-7]]
[[Property:uuid|0c5210da-5512-5ae5-2971-a1a5095737c9]]
<div>
[[Image:text|Hello world form]]
</div>

View File

@@ -1,5 +1,6 @@
[[Property:title|Winform Samples]]
[[Property:weight|3]]
[[Property:uuid|24cbeb3c-ba2b-1fea-ccec-89600bbf3256]]
The following examples are classified from the easiest to the most complex one. So, some notions are introduced in the few first examples and will not be explained again in the complex examples!
==Getting started==
* [[Simple Hello world form sample|Hello world form]]

View File

@@ -1,5 +1,6 @@
[[Property:title|Progress bar sample]]
[[Property:weight|6]]
[[Property:uuid|3b888246-2382-ec0b-ed4c-e1d35fe1bd79]]
<div>
[[Image:progress-bar|Hello world form]]
</div>

View File

@@ -1,5 +1,6 @@
[[Property:title|Simple data binding]]
[[Property:weight|7]]
[[Property:uuid|5a0572cb-435c-1558-9e05-7de7e6ba08f1]]
<div>
[[Image:simple-data-binding|Hello world form]]
</div>

View File

@@ -1,5 +1,6 @@
[[Property:title|Tree view]]
[[Property:weight|9]]
[[Property:uuid|28ca95af-120a-f99c-16ba-090dd290c23a]]
<div>
[[Image:tree-view|Hello world form]]
</div>

View File

@@ -1,5 +1,6 @@
[[Property:title|Features]]
[[Property:weight|0]]
[[Property:uuid|3f6c7915-7e08-fc2b-f25a-7d98dff38631]]
* Parse any resource file (created by Microsoft Developer Studio or Borland Resource Workshop).
* Show resources by using a tree view control.
* Display some resource's informations.

View File

@@ -1,5 +1,6 @@
[[Property:title|Common message hooks]]
[[Property:weight|4]]
[[Property:uuid|356b5211-f710-6509-3609-8d717ff425f7]]
Each WEL library component implements a set of routines for processing the most common messages that a component receives. For example, looking at [[ref:libraries/wel/reference/wel_frame_window_chart|WEL_FRAME_WINDOW]] , you will see that there are many features which begin `on_'. Each of these features enable the user to know when a specific event has occurred, and to perform the appropriate processing as a result of this event. Most of the time, you will only be interested in a small subset of these, necessary to your program. For example, below is the code for on_paint:
<code>
on_paint (paint_dc: WEL_PAINT_DC; invalid_rect: WEL_RECT) is

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL Common Concepts]]
[[Property:weight|0]]
[[Property:uuid|f2486cae-0ce5-7360-d40f-aea5f2766ebd]]
Some useful WEL concepts are listed below:
* [[Inheriting WEL_APPLICATION|Inheriting WEL_APPLICATION]]
* [[Redefining main_window|Redefining main_window]]

View File

@@ -1,5 +1,6 @@
[[Property:title|Inheriting WEL_APPLICATION]]
[[Property:weight|1]]
[[Property:uuid|e6b092c9-dfb1-7bf1-67fc-647d047b6a01]]
For most WEL applications that you write, you will need to inherit [[ref:libraries/wel/reference/wel_application_chart|WEL_APPLICATION]] .
{{note| '''Note'''. See [[Tutorial Step 1|step1]] in the [[Tutorial|tutorial]] for a simple demonstration of how to do this }}

View File

@@ -1,5 +1,6 @@
[[Property:title|Redefining `init_application']]
[[Property:weight|2]]
[[Property:uuid|95d9b971-7470-9191-3023-b99c22354e8f]]
[[ref:libraries/wel/reference/wel_application_chart|WEL_APPLICATION]] contains a feature <eiffel>init_application</eiffel> which does nothing by default, but is called before the application is started. This can be redefined to execute tasks that must be performed before the application is running. A common redefinition is to allow the loading of common dll's, see [[List View|list_view]] sample for a demonstration of this technique.

View File

@@ -1,5 +1,6 @@
[[Property:title|Redefining main_window]]
[[Property:weight|1]]
[[Property:uuid|f7bfd5d0-86ef-5387-ba79-5461a516bcf6]]
When you inherit [[ref:/libraries/wel/reference/wel_application_chart|WEL_APPLICATION]] , you will need to implement the deferred feature main_window as a once function. This will be the main window of your application, and can be any descendent of [[ref:libraries/wel/reference/wel_composite_window_chart|WEL_COMPOSITE_WINDOW]] .
{{note| '''Note'''. See [[Tutorial Step 2|step2]] in the [[Tutorial|tutorial]] for a simple demonstration of how to do this. }}

View File

@@ -1,6 +1,7 @@
[[Property:title|Controls]]
[[Property:link_title|controls cluster]]
[[Property:weight|1]]
[[Property:uuid|622aa1e2-75a6-4b2e-ac1a-44f1e7be6a3b]]
==Overview==
A Control is a window which provides a means of interacting with the application. For example, the [[ref:libraries/wel/reference/wel_edit_chart|WEL_EDIT]] control provides a user with the means of entering and modifying text. There are many common controls available within this cluster, each with a specific use.

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_CHECK_BOX_3_STATE]]
[[Property:weight|1]]
[[Property:uuid|61726774-89f4-2a6f-8383-bda19e6db217]]
[[ref:libraries/wel/reference/wel_check_box_3_state_chart| A WEL_CHECK_BOX_3_STATE]] control can take three states, checked, indeterminate or unchecked.
==Appearance==

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_CHECKBOX]]
[[Property:weight|0]]
[[Property:uuid|daed1ee2-dac2-b606-7c3c-2fdbd88f6a92]]
A [[ref:libraries/wel/reference/wel_check_box_chart|WEL_CHECK_BOX]] control can take two states, checked or unchecked.
==Appearance==

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_MULTIPLE_SELECTION_LIST_BOX]]
[[Property:weight|5]]
[[Property:uuid|9f1f5944-969a-2d44-9cea-5c4c3d316917]]
A [[ref:libraries/wel/reference/wel_multiple_selection_list_box_chart|WEL_MULTIPLE_SELECTION_LIST_BOX ]] is a control used to display a list of <eiffel>STRING</eiffel>. Multiple items may be selected at once.
==Appearance==

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_OWNER_DRAW_BUTTON]]
[[Property:weight|6]]
[[Property:uuid|c17da029-c9dc-e664-86ce-53b1e3e4e2cc]]
A [[ref:libraries/wel/reference/wel_owner_draw_button_chart|WEL_OWNER_DRAW_BUTTON]] is a control that the user can click to provide notification to the application, and behaves in a similar fashion to [[ref:libraries/wel/reference/wel_push_button_chart|WEL_PUSH_BUTTON]] except that <eiffel>on_paint</eiffel> must be implemented to give the button the desired appearance.
==Appearance==

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_PROGRESS_BAR]]
[[Property:weight|7]]
[[Property:uuid|6c8b5b4c-2d55-9635-1c29-361c28f09b14]]
A [[ref:libraries/wel/reference/wel_progress_bar_chart|WEL_PROGRESS_BAR]] control is an encapsulation of the Win32 progress bar. It can be used to display the progress of a lengthy operation.
{{note| '''Note:''' By specifying the style Pbs_vertical, the progress bar will be displayed vertically. }}

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_SINGLE_SELECTION_LIST_BOX]]
[[Property:weight|12]]
[[Property:uuid|4123c28b-da84-8d4b-5d51-844716569c44]]
A [[ref:libraries/wel/reference/wel_single_selection_list_box_chart|WEL_SINGLE_SELECTION_LIST_BOX]] is a control used to display a list of <eiffel>STRING</eiffel>. Only one item may be selected at once.
==Appearance==

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL Interface Content]]
[[Property:weight|1]]
[[Property:uuid|e779c244-ec00-6a80-41e6-3ff79eb1efdb]]
WEL is an encapsulation of the Win32 Application Programming Interface (API), and provides users with a powerful means of creating Win32 Applications.
==Components==

View File

@@ -1,6 +1,7 @@
[[Property:title|Standard Dialogs]]
[[Property:link_title|stddlgs cluster]]
[[Property:weight|2]]
[[Property:uuid|0af8dcbf-ed31-51d7-885c-c677090f0633]]
This cluster contains different standard dialogs provided by WEL as listed below:
* [[WEL_CHOOSE_COLOR_DIALOG|WEL_CHOOSE_COLOR_DIALOG]]
* [[WEL_CHOOSE_FOLDER_DIALOG|WEL_CHOOSE_FOLDER_DIALOG]]

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_CHOOSE_COLOR_DIALOG]]
[[Property:weight|0]]
[[Property:uuid|d827c9d8-068b-bade-f6a5-6aeb6be145e3]]
The [[ref:libraries/wel/reference/wel_choose_color_dialog_chart|WEL_CHOOSE_COLOR_DIALOG]] is an encapsulation of the Win32 choose color dialog, and provides a means of selecting standard colors or creating custom colors.
==Appearance==

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_CHOOSE_FOLDER_DIALOG]]
[[Property:weight|1]]
[[Property:uuid|cd4eaeb8-2322-e95f-0528-75ec0849d0fe]]
The [[ref:libraries/wel/reference/wel_choose_folder_dialog_chart|WEL_CHOOSE_FOLDER_DIALOG]] allows the directory structure to be viewed and a folder selected.
==Appearance==

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_CHOOSE_FONT_DIALOG]]
[[Property:weight|2]]
[[Property:uuid|046ecb0d-819b-fbc5-d736-629d0497b8b5]]
The [[ref:libraries/wel/reference/wel_choose_font_dialog_chart|WEL_CHOOSE_FONT_DIALOG]] is an encapsulation of the Win32 choose font dialog, and provides a means of selecting a font available on the system.
==Appearance==

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_OPEN_FILE_DIALOG]]
[[Property:weight|3]]
[[Property:uuid|b97583e1-ecfd-d2c0-2718-cc7bb90c9ec7]]
The [[ref:libraries/wel/reference/wel_open_file_dialog_chart|WEL_OPEN_FILE_DIALOG]] is an encapsulation of the Win32 open file dialog, and provides a means of specifying a file to be opened.
==Appearance==

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_PRINT_DIALOG]]
[[Property:weight|4]]
[[Property:uuid|c6c2866e-c14a-601c-8898-845c4b8d92a3]]
The [[ref:libraries/wel/reference/wel_print_dialog_chart|WEL_PRINT_DIALOG]] is an encapsulation of the Win32 print dialog and provides a means of specifying print preferences.
==Appearance==

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL_SAVE_FILE_DIALOG]]
[[Property:weight|5]]
[[Property:uuid|db6de1e7-1edb-3968-6ee5-60bf5d6f75cb]]
The [[ref:libraries/wel/reference/wel_save_file_dialog_chart|WEL_SAVE_FILE_DIALOG]] is an encapsulation of the Win32 save file dialog, and provides a means of specifying a file name and location for saving.
==Appearance==

View File

@@ -1,6 +1,7 @@
[[Property:title|Wel: Windows]]
[[Property:link_title|windows cluster]]
[[Property:weight|-1]]
[[Property:uuid|dc1af280-2e91-713c-751f-e88ce87197cf]]
This cluster contains the different types of windows available to a [[ref:/libraries/wel/reference/wel_application_chart|WEL_APPLICATION]] .
The following effective window types are available:

View File

@@ -1,5 +1,6 @@
[[Property:title|Bmpview]]
[[Property:weight|-15]]
[[Property:uuid|c3df2d26-d913-e298-c7bc-929451617903]]
[[Image:bmpview|bmpview]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Brushes]]
[[Property:weight|-14]]
[[Property:uuid|6bca9e95-d5fe-3b88-bea0-284eb60d2dcf]]
[[Image:brushes|brushes]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Commands]]
[[Property:weight|-12]]
[[Property:uuid|e1942cb8-02df-352e-061c-2c87c280ead8]]
[[Image:commands|commands]] <br/>
<br/>

View File

@@ -1,6 +1,7 @@
[[Property:title|Wel Sample: Controls]]
[[Property:link_title|Controls Sample]]
[[Property:weight|-11]]
[[Property:uuid|7f9a091f-61af-9ea2-18c3-469573ba14f3]]
[[Image:controls|controls]] <br/>
<br/>

View File

@@ -1,6 +1,7 @@
[[Property:title|Hello World]]
[[Property:link_title|Hello World!]]
[[Property:weight|-4]]
[[Property:uuid|37b82651-78e9-dd6a-97bf-0fe3c444157d]]
[[Image:hello|hello]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|WEL Samples]]
[[Property:weight|4]]
[[Property:uuid|f6df9869-52b7-0d10-dd0c-52796f631998]]
There are a large number of samples provided with the WEL library, each designed to demonstrate different functionality. The samples available are listed below:
* [[Tutorial|Tutorial]]
{{note| '''Note''': If you are new to WEL programming, this is the recommended place to start. }}

View File

@@ -1,5 +1,6 @@
[[Property:title|List View]]
[[Property:weight|-3]]
[[Property:uuid|709475e9-e01c-6ce7-942f-7dc6bf6f3bec]]
[[Image:list-view|list_view]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|MDI (Multiple Document Interface)]]
[[Property:weight|-1]]
[[Property:uuid|e5f4b1d5-31a1-51a3-46ea-3cf70a4b40d7]]
[[Image:mdi--mdi|mdi]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Minimal]]
[[Property:weight|1]]
[[Property:uuid|270db90c-dc2a-b6c4-8c2d-62a6657d01de]]
[[Image:minimal|minimal]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Printer]]
[[Property:weight|3]]
[[Property:uuid|ee50d48e-4f39-adbc-1f69-1f9d9ef6e101]]
[[Image:printer|printer]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Rich Edit]]
[[Property:weight|4]]
[[Property:uuid|d0a35ffd-a253-406f-ba15-c78400e8acd5]]
[[Image:richedit|richedit]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Split Area]]
[[Property:weight|5]]
[[Property:uuid|b53ef206-7cda-5f27-649c-e43b47688061]]
[[Image:splitarea|splitarea]] <br/>
<br/>

View File

@@ -1,6 +1,7 @@
[[Property:title|Wel Sample: Standard Dialogs]]
[[Property:link_title|Standard Dialogs Sample]]
[[Property:weight|6]]
[[Property:uuid|0d706af1-8c76-64b3-5907-0d9effb2bb8f]]
[[Image:stddlgs|stddlgs]] <br/>
<br/>

View File

@@ -1,6 +1,7 @@
[[Property:title|Wel Sample: Tree View]]
[[Property:link_title|Tree View Sample]]
[[Property:weight|8]]
[[Property:uuid|31c64f11-3aa4-cfff-b9f3-09027acfc143]]
[[Image:tree-view--tree-view|tree_view]] <br/>
<br/>

View File

@@ -1,6 +1,7 @@
[[Property:title|Wel Sample: Unicode]]
[[Property:link_title|Unicode Sample]]
[[Property:weight|9]]
[[Property:uuid|9905de6c-3f13-1c31-2f8c-efddd71abc6d]]
[[Image:unicode|unicode]] <br/>
<br/>

View File

@@ -1,6 +1,7 @@
[[Property:title|Wel Sample: Windows]]
[[Property:link_title|Windows Sample]]
[[Property:weight|10]]
[[Property:uuid|3ace1338-c85b-c7d8-faaf-52e9fb4e157e]]
[[Image:windows|windows]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|XY Co-ordinates]]
[[Property:weight|12]]
[[Property:uuid|f0b46125-2954-1504-0f47-c023462957f3]]
[[Image:xy|xy]] <br/>
<br/>

View File

@@ -1,6 +1,7 @@
[[Property:title|Tutorial]]
[[Property:link_title|WEL Tutorial]]
[[Property:weight|2]]
[[Property:uuid|68faa545-c658-ad5e-ca6f-ab693a7aabf8]]
WEL is shipped with a tutorial among its sample programs. This tutorial shows you how to develop a simple WEL application and contains eight different samples listed below:
* [[Tutorial Step 1|Step1]] - A Basic WEL Application.
* [[Tutorial Step 2|Step2]] - Responding to an event.

View File

@@ -1,5 +1,6 @@
[[Property:title|Tutorial Step 1]]
[[Property:weight|0]]
[[Property:uuid|b952d232-1ef9-04a8-bac4-117185aa316d]]
This sample shows you how to set up your first [[ref:/libraries/wel/reference/wel_application_chart|WEL_APPLICATION]] consisting of a single [[ref:/libraries/wel/reference/wel_frame_window_chart|WEL_FRAME_WINDOW]] . This is one of the simplest WEL applications you can write, and the output is shown below:
[[Image:step1|step1]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Tutorial Step 2]]
[[Property:weight|1]]
[[Property:uuid|f4a73538-8a2f-ce6b-5190-6bd4d0e8c8d1]]
This sample shows you how to respond to an event occurring within your application. It also demonstrates the use of a [[ref:libraries/wel/reference/wel_msg_box_chart|WEL_MSG_BOX]] control and a redefinition of closeable from [[ref:libraries/wel/reference/wel_composite_window_chart|WEL_COMPOSITE_WINDOW]] .
[[Image:step2|step2]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Tutorial Step 3]]
[[Property:weight|2]]
[[Property:uuid|7d79155a-fe75-e252-49d7-b03243ac96fd]]
This sample demonstrates the use of a [[ref:libraries/wel/reference/wel_client_dc_chart|WEL_CLIENT_DC]] to display output in the <code>MAIN_WINDOW</code>. The output is shown below:
[[Image:step3|step3]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Tutorial Step 4]]
[[Property:weight|3]]
[[Property:uuid|a43c069c-d56e-47f0-f1b0-d58df627b5a4]]
This sample builds on the knowledge learned in the previous tutorials ( [[Tutorial Step 1|1]] , [[Tutorial Step 2|2]] and [[Tutorial Step 3|3]] ) and again demonstrates the use of a [[ref:libraries/wel/reference/wel_client_dc_chart|WEL_CLIENT_DC]] .
[[Image:step4|step4]] <br/>
<br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Tutorial Step 8]]
[[Property:weight|7]]
[[Property:uuid|38c3a22d-2c15-cb68-a685-99a25d191885]]
This sample builds on tutorial [[Tutorial Step 7|step 7]] , and also demonstrates the use of a [[ref:libraries/wel/reference/wel_open_file_dialog_chart|WEL_OPEN_FILE_DIALOG]] and a [[ref:libraries/wel/reference/wel_save_file_dialog_chart|WEL_SAVE_FILE_DIALOG]] . The output is shown below:
[[Image:step8|step8]] <br/>
<br/>