New on demand webucation!
Quick Links  

1/8/2009


The Host with the Most: The Synergy .NET Assembly API

Part 2: Cross-language debugging
By Jeff Greene, Software Engineer, Synergy/DE

Did You Receive Your 2009 Synergex Calendar?

If not, let us know!

Simplify xfServerPlus Development with New MDU Enhancements

Learn how in this new on-demand webucation—a must see for xfServerPlus users

Support Has a New Name

Why?

What’s New in CodeExchange?

Get the local time offset from Universal Time with LocalUMTOffset

Support Tech Tip

Escape sequences not recognized by install_lm or config_lm on Linux

Quiz

Synergy/DE pros, see if you can answer this question

Platform News

Read a selection of recent articles

Synergex Events and Education

Check out the on-demand webucations

Synergex Holiday Reminder

We will be closed on Monday, January 19th, in honor of Martin Luther King Jr. Day

Synergy/DE 9
Synergy/DE blog
Synergy/DE and OS versions
Subscribe to Synergy-e-News
 
 

The Host with the Most: The Synergy .NET Assembly API

Part 2: Cross-Language Debugging

By Jeff Greene, Software Engineer

The previous issue of Synergy-e-News included the first part of this article, which introduced the Synergy.NET assembly API and showed how it enables you to integrate existing Synergy code with .NET assemblies, without having to throw out your existing user interface. Here's an excerpt:

The .NET assembly API allows you to replace specific features or add new ones. If your customers are clamoring for a shiny new graphical reporting tool they’ve seen in someone else’s product, you can find a .NET control that does the job easily, and get it up and running inside your Synergy application with very little effort. But the .NET assembly API isn’t just for UI; you can also use it to access functionality from the .NET Framework. One example is regular expressions. .NET offers a great wealth of text processing classes. If you need to match and/or replace sections of a very large block of text, regular expressions could save you a great deal of programming time, as well as time on the user’s CPU.

We created a simple C# application that printed out what you passed in, returned true for success, and changed the string you passed in to "success". Now we'll use that program as the starting point for an exploration of cross-language debugging with both C# and Synergy code.

Click here to read the full article.

top


Did You Receive Your 2009 Synergex Calendar?

If not, let us know!

If you did not receive your Synergex 2009 calendar, or would like additional complimentary copies, please email us at synergy@synergex.com. Include your address and the quantity you’d like, and we’ll send some your way.

2009 calendar

top


Simplify xfServerPlus Development with New MDU Enhancements

Learn how in this new on-demand webucation—a must see for xfServerPlus users

From new return types and parameters to datatype coercion, Synergy/DE 9’s Method Definition Utility (MDU) is loaded with features that can make development of distributed applications easier—for Synergy and .NET developers.  Get more details on the MDU updates in this brief (only 6 minutes) Synergy Language webucation: MDU Enhancements in Synergy/DE 9

top


Support Has a New Name

Why?

Next time you call Synergex to get support for your Synergy/DE products, instead of talking to the Synergy/DE HelpDesk Support department, you will be talking to the Synergy/DE Developer Support department. We decided to change the department name to more accurately represent the level of service that we provide, and also to be more in line with what the industry is using for this technical developer support role. For these same reasons, we also changed the titles of our Support department members. Instead of HelpDesk Support representatives, they are now Developer Support Engineers.

Our Developer Support team has extensive experience with Synergy/DE technologies, and they are ready to help you with any problem or question you have with your Synergy/DE products. We encourage you to contact Developer Support whenever you hit a roadblock that prevents you from getting the most from your Synergy/DE products.

If you do not currently have support for your Synergy/DE products, please contact your Synergy/DE account manager for more information.

top


What's New in CodeExchange?

Get the local time offset from Universal Time with LocalUMTOffset

LocalUMTOffset is a function that returns the local time offset from Universal Time (UT) based on a user-editable XML file. The return value represents the number of hours (plus or minus) that the current time differs from UT. This function comes in handy for such programs as sendmail, where the header information must reflect a time based on UT, and must match the SMTP server's time or risk disposal by the client server as an invalid (and potentially spam) email.

Synergy/DE Developer Support customers can download this code from CodeExchange, in the Synergy/DE Resource Center.

For information about obtaining Developer Support, contact your Synergy/DE account manager.

top


Support Tech Tip

Escape sequences not recognized by install_lm or config_lm on Linux

Question:
When I try to install Synergy/DE on a Linux machine by running install_lm, I see the following message:

 Please enter Unique Licensee Name: \c

 What is causing this?

Answer:
On Linux, the echo command doesn't recognize \c, or other escape sequences, unless the -e option is specified. By default, it is not specified, so instead of placing the cursor after "Please enter Unique Licensee Name:" and waiting for your input (which is what \c would instruct other UNIX systems to do), "\c" is printed at the end of the line and the cursor moves down to the next line, awaiting your input. Unrecognized escape sequences, such as \c, don't prevent the program from working, but they can be confusing. Note that the same problem exists for config_lm.

There are two ways to work around this:

1. Ignore the unrecognized escape characters and enter the information you're prompted for. For example, after "Please enter Unique Licensee Name: \c" is printed to the screen and the cursor is moved to the next line, enter the licensee name and press ENTER.

2. Edit the install_lm and config_lm files by removing the pound sign (#) from the beginning of the following line:

#echo() { /bin/echo -e "$*" ; } # Non-conforming echo (Linux, etc)

We plan, in the next version of Synergy/DE, to fix install_lm and config_lm on Linux to set the -e option for echo.

top


Quiz

Synergy/DE pros, see if you can answer this question!

Given the following code, how would you signal the event from Server.Run() such that Client.OnServerEvent() is called?

namespace eventhandlingexample

    class Client

        public method OnServerEvent, void
            in req a_what, a
        proc
            open(1,o,"TT:")
            writes(1,a_what)
            close 1
        end

    endclass

    class Server

        public method Run, void
        proc
            ;Do some extensive processing, and when an event occurs:
            ;  Uh, what now?
        endmethod

    endclass

    main
    record
        svr     ,@Server
        clnt    ,@Client
    proc
        svr = new Server()
        clnt = new Client()
        svr.Run()
    end

endnamespace

a. Add a member variable to Server of type @Client so Server.Run() can call clnt.OnServerEvent() directly.
b. Create an EventListener class within Server, and add a member variable of that type. Then extend that class for Client’s needs.
c. Pass the address of a function to Server, and let that function call clnt.OnServerEvent().
d. M_SIGNAL a menu entry and return from Server.Run(). Then let the main program dispatch the menu entry to clnt.OnServerEvent().

Click here for the answer and explanation.

top


Platform News

Read a selection of recent articles

Windows
How to Secure Your Vista PC in 10 Easy Steps
December 31, 2008

List of the Breaking Issues with the .NET Framework 2.0 SP2 After You Upgrade to the .NET Framework 3.5 SP1
December 31, 2008

Description of the Cumulative Update Rollup for the Visual Basic 6.0 Service Pack 6 Runtime Extended Files
December 30, 2008

Windows 7 Beta 1 Leaked
December 29, 2008

Microsoft Extends Windows XP's Lifetime
December 22, 2008

An Access Violation Occurs When You Use an Application that Calls the SQLExecDirect Function of the SQL Server ODBC Driver to Run a Long Query in Windows Server 2003 or in Windows XP
December 18, 2008

FIX: Error Message in the Data Source Configuration Wizard in Visual Studio 2008: "Failed to add relation(s) Unexpected error"
December 17, 2008

You Receive a PAGE_FAULT_IN_NONPAGED_AREA Stop Error When You Print a Document from a Windows Server 2003 Server that is Running as a Terminal Server
December 16, 2008

You Receive a Stop Error When You Click the Arrow to Scroll Down an Application Pop-up Menu on a Windows Server 2003 SP1 or SP2-based Computer
December 16, 2008

OpenVMS
Secure Web Browser (SWB) V1.1-12 for OpenVMS I64
December 11, 2008

Linux
Higher and Further: The Innovations of Linux 2.6.28
December 25, 2008

Linux Foundation Names New CTO
December 19, 2008

top


Synergex Events and Education

Check out the on-demand webinars!

NEW! MDU Enhancements in Synergy/DE 9
On-demand

From UI Toolkit to .NET: Updating a Legacy Application (A Customer's Perspective)
On-demand

Synergy/DE 9.1 Highlights
On-demand

UI Toolkit Composite Windows
On-demand

Synergy Objects Parts 1, 2, and 3
On-demand

top


Synergex Holiday Reminder


We will be closed on Monday, January 19th, in honor of Martin Luther King, Jr. Day. If you anticipate needing our assistance on this day, please contact us at synergy@synergex.com to make arrangements.

top