Open Menu

Synergex Blog


Drilling for Data

By Richard Morris, Posted on April 20, 2016 at 5:44 am

One cool aspect of a Synergy UI Toolkit program has been list processing. When we introduced the concept of a list load method to populate the list as items were required was a huge step towards decoupling the program logic from the user interface. Because of this separation of concerns it’s actually very easy using the Symphony Framework to load a modern WPF data grid using an existing UI Toolkit list load method.

Our starting point has to be the UI, and that’s being rewritten in XAML. XAML allows data binding between class properties and the column elements of a data grid. We exposes our Synergy data by use of a Symphony Data Object. These data object classes represent your repository based data structures. The fields within your structures are exposed as the properties that the data grid will data-bind to.

Once we have the data grid defined we need to define the hooks between the collection of data we are going to expose to the data grid and the host programs list load method. First we call a generic method that will allow us to signal the required list loading requirements back to the host program. This snippet is going to call a generic method that will then raise the event back to the host:

d1

We are passing the load method name and then various parameters that define the actual data we are going to load and any additional list load method data. Now we can raise the load method request to the host DBL program:

d2

In the host DBL program we need to handle the event so we register an event handler:

d3

The following code snippet dispatches the load request to the existing UI Toolkit load method. There are two formats to the request depending if the list has associated list method data:

d4

So now we need to change the load method. If you have coded your list load method according to the standards laid out in the UI Toolkit manual there should only be a single line of code to change:

d5

The DoingTK test is a flag we have set to indicate if the program is running with the traditional UI Toolkit or our new WPF UI.

We shall be drilling down into the ability to handle list loading during the DevPartner 2016 pre-conference workshop as we all migrate an existing UI Toolkit program to a modern WPF user interface.


All Selective

By Richard Morris, Posted on May 29, 2015 at 8:39 am

During DevPartner 2015 a number of people ran through the Utilizing the Repository tutorial which sets out to demonstrate how the meta-data stored in the repository describing your Synergy database can be utilized when building a modern Windows Presentation Foundation desktop application using Synergy and the Symphony Framework.

Using your repository, CodeGen and the associated Symphony Framework templates you can build, from the ground up, a complete WPF application, and this is exactly what you do during the tutorial.

Using the Model-View-View Model pattern you code-generate the model elements as repository based data objects that extend the base Symphony Framework DataObjectBase – this provides field level properties with validation and data bindings. Then we code generate the view – the UI element the user interacts with. The view comprises of windows containing the individual edit controls which in turn use code generated styles. These styles define the visual attributes and data bindings of each field in the repository.

Great – you would think. But I’ve been asked about a default behaviour of a WPF application a number of times and again at the conference, and that is the fact that edit controls, specifically text boxes, don’t auto-select all content when they receive focus. I also find it frustrating but thus far have been unable to think of a solution. “It’s a deal breaker” according to Gayle – who’d just completed the tutorial. Well considering Gayle is a rather fine chap I guess it’s time for me to look at the problem again. I spoke with Jeff @ Synergex who pointed me to a blog by Oliver Lohmann which addresses just this problem.

The solution is to register a behaviour against the TextBox control and handle the GotFocus event – and in the event handler force the selection of the data in the TextBox control. Simple!

And simple it was – and it usually is when you are looking for that “complex” answer. I’ve not done much with behaviours so far, but I think that is about to change! The Symphony Framework has been updated (did that on the plane home) and I’ll be releasing that to GuGet very shortly. The Symphony Framework “style” template will be updated – it’s now released as part of CodeGen – to reflect the new capabilities and normal “behaviour” will be resumed.


DevPartner 2015 – WOW!

By Richard Morris, Posted on May 15, 2015 at 6:37 pm

That was the week that was the DevPartner 2015 conference in Philadelphia. Ok, so I’m biased but I really have to say this was one of the best conference weeks I’ve had the pleasure to be part of for many years. There were some really great sessions: The HBS customer demonstration rocked! They came to a conference a couple of years ago, did a tutorial on xfServerPlus and with this new found knowledge (and some PSG guidance) created a cool web bolt-on to their existing Synergy app.

We saw some fresh new faces from Synergex: Marty blasted through the Workbench and visual Studio development environments we provide and showed some really great tools and techniques. Phil gave us a 101 introduction to many of the “must know” features and capabilities of Synergy SDBMS – and of course was able to address mine and Jeff’s performance issues – you had to be there:). Roger demonstrated his wizardry to enlighten everyone as to the issues you need to consider when transferring your data within local and wide area networks – I was the bad router!

Bill Mooney set the whole tone of the conference with a great opening presentation showing just how committed Synergex are to empowering our customers with the best software development capabilities available.

My first day’s session followed and gave me the opportunity to demonstrate how you actually can bring all our great tools together to create true single-source, cross-platform applications which run on platforms as diverse as OpenVMS, UNIX and Microsoft Windows and onto a Sony watch running Google Wear!

Steve Ives went 3D holographic with videos from his recent trip to the Microsoft Build conference that showed just how amazing the Microsoft platform is becoming – and we aim to continue to be a first class player in that arena.

So many of our products are reaching a level of maturity that blows the competition away. Gary Hoffman from TechAnalysts presented a session showing how to use CodeGen and Symphony in the real world and showed just what you can achieve today in Synergy.

Jeff Greene (Senior .NET engineer @ Synergex) and I presented a rather informal (read written the night before) presentation showing the performance and analysis tools in Visual Studio 2015 that you can use to identify problem area and memory leaks in your application. Within minutes Brad from Automated System forwarded me an email he’d just sent to his team:

“At the Synergex conference just this morning, they just showed fantastic new diagnostics tools in Visual Studio 2015.  I just put the Team on the trail of potential memory issues with these new tools in a Virtual PC environment so we don’t alter our current developer stations. This could both reduce the memory footprint and improve performance.” – You can’t beat such instant feedback!

The tutorial time gives attendees the opportunity to play with the latest tools on a pre-configured virtual machine – plug in and code! And we continued the hands-on theme with Friday’s post conference workshop – where we built the DevPartner 2015 App from the ground up!

nexus_working

Thanks to everyone for coming and making the conference such a great success. It’s our 30th conference next year so keep your eyes and ears open for dates and details – it will be a conference not to miss!


Build your own CLR

By Richard Morris, Posted on March 26, 2015 at 1:54 pm

Open source code is all the rage these days, everyone is doing it, even Synergex.  For some years now CodeGen and Symphony Framework have been open source.  They are both available on www.codeplex.com.  What this gives you is the ability to see inside the classes and programs to see, if you are interested, exactly how they are doing what they do. Even Microsoft are joining the open source band wagon – the .NET Framework is open source and the CLR is following!  Where PSG lead, others will follow (LOL – I think that means laugh out loud, so my kids tell me).

Does this mean you are going to grab all the code, build your own CLR and tweak it to make the blue windows green? No, not at all.  What it does mean is that people can now see what’s happening inside the ocne “black box” and move this code to other platforms.  And this obviously helps us Synergy .NET developers.  We can already take advantage of other platforms because of the availability of the .NET framework and CLR components on non-windows platforms.  It’s how we can deploy your next application to that fancy new Android or iOS phone.  It’s how you can take your good received code you wrote 10 years ago, bundle it up into a tablet application with signature capture and have real time “proof of delivery” built into your systems.

Aside from the conference topics there was an interesting question on the Synergy-l list last night.  The request was to display multiple coloured boxes on the screen.  Sounds simple – and using Synergy.Net inside Visual Studio it was!  20 minute later….

boxes

 

 

 

 

 

 

All the UI elements (colour, values, images) come from a data bound repository based structure so you could load the contents directly from your ISAM files.  The actual colours and images are selected through switches inside the XAML code based on the values of your synergy data.  I don’t think I’ll be demonstrating this simple example at the DevPartner 2015 conference, but there will be lots of great examples to see, and of course tutorials to step you through how it’s done.  It’s the last day of DevWeek tomorrow which means I’ll be driving my car around the M25 car park trying to get out of central London for hours.  So I’ll make this my last blog from the conference.  As always the conference has been enlightening.

 


Secure the Bridge

By Richard Morris, Posted on March 24, 2015 at 2:16 pm

Today is actually the first “real” day of the DevWeek conference.  As a member of the DevPartner team at Synergex I tend to look at more than just the agenda content when I attend conferences like this – the venue has to be right.  DevWeek this year is being held in a church!  it’s a fully-fledged conference venue, but it’s still a church.

The opening keynote was a dual affair.  The first half was about trees (not the green leafy variety) followed by a presentation about how “estimates are a complete waste of time, effort and resources” – something I can certainly agree with!  If you consider that all estimations are based on guess work, why waste time guessing how long something may take just to get it wrong.  There are other more accurate ways to plan out a project – the biggest challenge is convincing the customer.

Not everything presented at this conference is directly related to coding – and it’s the same at DevPartner 2015. This year we are bringing in people from outside of Synergex to present a different perspective to developing software outside of just “typing Synergy code”.  This will include experts in the field of UI design considerations – so your Synergy applications can sparkle.

One area I’m working on at the moment is security.  The new Symphony Bridge is a web-service architecture that allows direct access to your code and data from any client.  Unlike a traditional Web Service the Symphony Bridge does not expose all your methods and data structures, which is a security concern for old legacy implementations.  It exposes a single point of entry that accepts a single input stream – there are no external indications as to what that entry point is or the format of the input data.  This helps to protect the service from those hackers out there that just want to get into and behind your service.

The security 101 session today was both informative and reassuring that Bridge is doing as much as it can to protect your back end server systems from attack.  I’ll demonstrate some of the built in security features during the “Serving up Success” session.


Conference Time

By Richard Morris, Posted on March 23, 2015 at 2:26 pm

Day one and a 9:30 start, which is quite early for a Monday morning – and I have just hustled my way through the London underground commuter traffic!  Front row seat for the Xamarin multi-targeting apps workshop, and the presenter is a fellow “Evangelist” so things are looking good.

My goal for today is to squeeze as much knowledge from James, the Developer Evangelist from Xamarin, to ensure everything we are doing at Synergex is going to take us down the multi-targeting utopia highway.

DevWeek in London is an annual conference I try to attend because over the years it’s given me many thought provoking ideas that have made their way into Synergy, Symphony and the applications I write and assist on.  I’m especially looking forward to this year because everything is no longer just about C#, it’s now about multi-platform targeted development – you know, just like what we have been doing with Synergy for 30 years!!

Today it’s a pre-conference Xamarin workshop showing how to provide true native applications on android, iOS and Windows without compromising the UI or having to duplicate your application code across multiple development projects.  The trick is Portable Class Libraries (PCL’s) – once you have these you can plug them into your chosen UI project (Android, Windows, iOS).  Of course Synergy allows for the creation of these PCL’s so out-of-the-box your development team have the tools to “go mobile”.

Many years ago Synergex developed the UI Toolkit – and I know many people reading this will still have applications running using it.  It provided a single source for UI design that targeted multiple platforms.  You could write your UI pieces into a script file which would be “compiled” on the target platforms and the same Synergy code would run and display according to the host environment – OpenVMS and UNIX was “green screen”, Microsoft Windows was just that, native Microsoft Windows.

Today’s multi-targeting tools come from Xamarin and are built into Microsoft Visual Studio and Utilise the Microsoft .Net Framework – just like Synergy.  It provides developers with the ability to write-once-deploy-many across all the latest must-have devices including iOS, Android and Windows Phone and Store.  And did I mention Google Wear?

As a Synergy developer you are perfectly placed to take full advantage of these opportunities.  As well as being able to build new applications from Synergy templates, built into Visual Studio for Android and iOS, you can also plug in your Synergy Portable Class Libraries directly into Windows Phone and Store applications.  You could even be sending push notifications to the latest Google Watch technology on your wrist, if that’s what your application needs.

We will be showing you just how easy it is to create great cross-device apps using Synergy and the latest Xamarin tools at this year’s DevPartner 2015 conference.

And if you want to get right up to speed on all things Synergy don’t forget to sign-up for the pre and post conference workshops.  These workshops will take you from zero to hero when it comes to building great Synergy applications using all the latest tools and techniques, and understanding what all the buzz words and jargon mean.


Symphony Bridge

By Richard Morris, Posted on March 19, 2015 at 1:51 pm

For more than 30 years Synergex has enabled developers to take advantage of many different computer operating systems, hardware environments and networking topologies.  Today there are a number of different options to enable connectivity between client applications and services and the Synergy application logic and data.

If it’s a simple case of data on one machine and Synergy application on another then xfServer is the technology of choice.  One quick change to your environment variables and off you go – data being served on a plate.

If you want to move the execution of Synergy logic onto the server where the data is to improve performance while doing complex data searching and analysis, or need to access the application logic from non-Synergy environments like C#/ASP.NET/Java, then xfServerPlus is the perfect fit.  It takes a little more configuring, but is proven and reliable.

Both of these “server” technologies required a certain configuration of your network and are only recommended for use on your internal LAN.  So getting data and logic accessible to clients on the wrong side of your firewall, in a standard and secure way, requires the use of other tools or software.  The general approach is to create a web service to expose all the methods you would like the client to be able to consume.   Once you’ve written this web service you then need to run the Synergy application logic and data access.  You can call back into your traditional ELB’s via xfServerPlus or you could write the server in Synergy.Net and use xfServer to access the data – but stop!  If you do this you run the risk of running out of channels, different processes crashing your common data and other issues. 

Welcome to the Symphony Bridge Server and the Symphony Harmony namespace.  Symphony Bridge provides a RESTful web service layer that allows you to execute your native Synergy.Net application logic and data access from any Synergy supported client consumer.  The Symphony Harmony namespace provides the ability to access your applications database files using SQL syntax and to make remote procedure calls to execute Synergy application logic, without the need to build a web server of your own, because it uses the Symphony Bridge.

We’ll be presenting the new Symphony capabilities at DevPartner 2015 and you’ll get your chance to try them out by working through one of the self-paced tutorials.  You can also sign up for the post-conference workshop to utilise these new capabilities to build a complete client-server application end-to-end.


2013 DevPartner Conference Tutorials Now Available On-Line

By Steve Ives, Posted on June 30, 2013 at 10:24 am

We and many of our customers have just returned home from another great conference, during which we introduced another batch of Synergy/DE related developer tutorials. These tutorials have now been added to those from previous years and made available on-line. The tutorials can be downloaded via a small client application. If you already have the tutorials client installed then you will see the new content when you start the application. If not you can download and install the tutorials client from the following URL:

http://tutorials.synergex.com/Download.aspx

 


We’re Ready for for the 2013 DevPartner Conference … Are You?

By Steve Ives, Posted on June 5, 2013 at 9:36 pm

photo

What you’re looking at is fifty terabytes of external USB 3.0 hard drives (for the oldies amongst us that’s the equivalent of 10,000 RL01’s), and we’ll be giving them away during the DevPartner conferences in Bristol (UK) and Providence (RI) in the next three weeks.

Of course it’s not really about the hardware, anyone can get that! It’s really about what’s ON the hardware. Each of these disks contains a Windows 8 virtual machine that includes the latest version of Synergy/DE (10.1.1a, just released today) and Microsoft Visual Studio 2012 (Update 2).

But it’s not really about the products that are installed on the virtual machines either. It’s really about what you can learn from these “freebies”, and how you can use what you have learned to the benefit of your employer.

During this years DevPartner conferences the Synergex Professional Services Group will introduce seventeen all-new hands-on tutorials that will provide you with a quick-start to all of the latest features of Synergy/DE. And in addition we’ll be including updated versions of three of the most popular tutorials from previous conferences.

It’s not too late! If you haven’t already signed up for the 2013 DevPartner Conference then all you have to do is visit this link:

http://conference.synergex.com/registration.aspx

But talk to your boss before you visit the link, because if your company is already a member of the DevPartner program you might find that your conference registration is free!

We are all looking forward to seeing you again for another great conference.


Paradise by the dashboard light.

By Richard Morris, Posted on March 7, 2013 at 11:08 pm

For many years we have had the ability to expose Synergy data and logic through xfServerPlus which can be consumed, processed and displayed by cool Windows programs.  But for me there has always been the “single thread” bottleneck.  I’ve wanted my Windows applications to respond when the user drags the mouse, clicks a button, sorts a grid, at the time the event happens, and not when the program has caught up doing its background actions.  Calling a remote method generally “hangs” the program until that operation has completed and this is because it’s being performed on the UI thread.  And while the UI thread is busy calling into your xfServerPlus libraries and waiting for a response it blocks any user interaction so your application becomes unresponsive.

The answer is to utilize threads.  Threads are separate processing channels that can run simultaneously.  Your application always has at least one thread – the UI thread.  But if you have a language that can allow multithreading then utilising this to perform background tasks on other threads frees your UI thread to continue being response to the user – its job really!

Welcome to Synergy.NET!  Totally written in Synergy.NET and utilising the Symphony Framework I’ve written a fully functional interactive dashboard:

db

The user can fully define the record selection criteria and then issue the “Select” of the data.  This selection is performed on a background thread.  This means as the results are being returned from the remote Synergy DBMS file via xfServer the list is populated and the user can begin navigating the items within it.  While the list is loading, the user can select an item even if the list load is not complete.  At this point a number of background threads become active – each one loading data from different files via xfServer.  The various lists are populated “in real time” and the application remains responsive – all the lists can be “loading” at the same time.

If the user clicks another item in the list the executing threads are instructed to “stop” and then the selection process restarts based on the newly selected master record.

Using the Symphony Framework and building my Synergy Repository based Data Objects using CodeGen I was able to quickly build the core components used in the Dashboard including the thread based selection code.

All this functionality is available in the latest V10.1 release of Synergy. To find out more details and to see multithreaded processing in action book your place at the upcoming DevPartner Conference at http://conference.synergex.com.


The changing face of data.

By Richard Morris, Posted on January 14, 2013 at 3:02 am

With the eagerly anticipated release of Synergy/DE version 10 we now have the ability to track and manage changes to Synergy DBMS data files.  This new feature, Change Tracking, gives you the ability to track and monitor records within a file that have been modified, added or deleted.

Using the snapshot facility you can start a new snapshot within a file and begin your applications normal processing.  Any file updates are records against the current snapshot.  There can only ever be one active snapshot within a file so as soon as you start a new snapshot, all previous ones become an historical record of the changes made to the file.  In code you can access any existing snapshot within a file to trace the activity using the new Select class.

A recent development for a customer required code changes to a number of programs.  All the programs together defined a process and it was imperative that my changes didn’t break that process.  I wanted to be able to test the changes to the data after running each program and not just when I’d run all the programs for the process.  With Change Tracking this was a very easy task.  I simply created a new snapshot across all my files before running each program.  Using the Symphony Framework and CodeGen I created a simple program that displayed the records within a particular snapshot, so I could easily see what changes the program had made.  If a program didn’t do what I had expected (I intentionally coded in a bug just to check this!) I could simply rollback the current transaction, fix the program and continue.  I no longer have to restore the data and start my testing from the beginning.

You can see just how easy it is to utilise Change Tracking by watching a short video I’ve uploaded to YouTube.  Enjoy!

There are many applications for Change Tracking, and at this year’s DevPartner conference I’ll be exploring this new feature in detail – including having attendees help me demonstrate many of the capabilities!


DevPartner 2012, Chicago style.

By Richard Morris, Posted on May 28, 2012 at 1:20 am

Having just completed the three day conference in Chicago I felt the urge to write about the event.  Fun is most certainly a word I would use!  It’s a real blast.  That’s not to take away from the information exchange, education and general idea stimulation that occurred not only during the conference times but throughout the informal evening receptions, which always stimulate great debate.

This year’s agenda is a mix of technical presentations and self-paced tutorials – a total of sixteen brand new tutorials to test and tax your brain and to expand your knowledge of just what Synergy can do today!  Although all the tutorials use Visual studio or Workbench as the development environment, many of them introduce capabilities which are cross platform, as you would expect with Synergy!  And the presentations themselves cover many subjects including the upcoming Windows 8 operating system from Microsoft – will your software be ready?

Tuesday starts the conference with a detailed review of everything Synergy – and I bet there are quite a few enhancements and new features you never knew existed.   Then we move into unchartered territory for the Professional Services Group – Open Source.  We will show you two great new Open Source projects that we have created, and invite you to join the community and collaborate together to build some great tools and frameworks.  So come and join the orchestra and help us all to take full advantage of Synergy and Synergy .NET.  And that’s not all, we’ll have you all hooked up by lunch!

Wednesday kicks off with the development team presenting future thoughts and Synergy opportunities.  And of course their unique take on the issues that will affect you – even before you’ve thought of them! Watch out for the pesky new disk drives, they will hurt you if you are not ready!  And what do you store on a disk drive – data of course.  Wednesday is data day so you can be as selective as you like with the information you receive, but be sure to update those brain cells you’ll need to remember it all.

Thursday starts with the Synergy brain strain – pitching your knowledge and skills against my grey matter manipulating questions.  We’ll blow away those early morning cobwebs ready for the final day of presentations and tutorials.  Hold onto your input windows as we show you how utilize Synergy .NET and tweak your UI toolkit programs.  And we’ll get all %NM$N%REFrrF$%£GRT&FSD£$FSD– that’s encrypted so you’ll need to attend the presentation to know what I said.  Get ready to jump on the metro and take a tour of the Windows 8 OS – you’ll be amazed, but is it right for your customers?

Throughout the conference the sessions are informative and thought provoking.  Being described by one customer as a cross between Monty Python and Austin Powers one wonders how educational the event really was – but I was assured they’d learnt a whole lot of new things about Synergy and our amazing Synergy .NET environment.

And so the DevPartner 2012 conference hits the road and will be rolling up to York, England, on the 12th June.  Do you think you have the knowledge to take on the Thursday morning Synergy brain strain quiz?  You’ll only know by signing up and being there.   There really is just too much information and opportunity to miss and I hope to see you there!


Windows 8 First Impressions.

By Richard Morris, Posted on March 27, 2012 at 1:41 pm

Although I’ve seen the latest offerings from Microsoft in the Windows OS stakes, I must say it’s a real eye opener to see it presented – and by non-Microsoft people!  It is conference time again for me, both preparing my sessions for the upcoming DevPartner Conferences in Chicago and York, and attending Dev Week in London.  This is my third year at this conference and I use the presentations here to spring board ideas into my conference sessions.

Anyone keeping abreast of the OS news from Microsoft will no doubt know there is a new OS on the block – Windows 8.   The new OS has, of course, a new UI. First impressions are that it is a combination Windows Mobile and Xbox!  Thankfully there is also a standard desktop environment as well, which for those of us without touch screen enabled laptops (note to boss, need new slate device :)) is good news.  Don’t get me wrong, the new interface is great, but as I’m swiping along and hunting for the back button I have a tendency to be up on my feet waving my hands erratically – well that’s what I have to do to get my Kinect to respond, and I did say it’s like the Xbox!

Joking aside (why?) it’s rather important to understand that Windows 8 has a new interface, and not a single application you have running under Windows (7/XP, etc.) will run under this new environment.  Now before you all start to panic, I did say there is a Windows desktop environment, and it’s under this that all your Synergy based applications will run. Panic over then.  All you need to do is install and go – click the start button and you are away.  So where has the program “start” button gone?  Disappeared, it is no longer, vanished!  All your programs will start from the new Windows 8 swishing tile start page.  If you have a lot of programs hanging off start button sub-menus then these will all appear as individual tiles on your new start page, which may be an installation consideration.  The desktop appears to work just nicely, and it’s where all of the traditional style applications are executed within, complete with all their associated Chrome (the windows, ribbon menus, buttons, etc.)  There are, of course, new or updated programs that utilise the new design architecture, Metro.  Metro is a new style of program UX (user experience).  Metro takes a while to get used to, but if you’ve been swishing through Xbox programs like LoveFilm, or the new BBC iPlayer app, you’ll be well versed in the navigation techniques of Metro styled programs.

It’s interesting that even the Microsoft people at his conference have no idea (or are not able to say) when Windows 8 will be officially released, but it’s most likely no time soon.

One great bit of news is that Metro is built on XAML – just like the WPF desktop developments I’ve been promoting for some years now.  Also, for those utilising my single page Visual State Managed design then this is the same approach used by Metro – well done MicrosoftJ

Now, I wonder if there will be any fancy data driven, Metro styled, slate device based, live & interactive demos at this year’s DevPartner conference – see “note to boss” above.  Check out the conference agenda (http://conference.synergex.com/) and make sure you have your seat booked to find out!


Windows Reimagined

By Steve Ives, Posted on September 14, 2011 at 12:18 am

Well, all I can say is “WOW”! The first day of the Microsoft BUILD conference is over, and it’s been a LONG day, and it’s been a BUSY day, and it’s been an EXCITING day. Wow!

I’m buzzed … and I’m really quite surprised by that statement. I arrived in Anaheim a little over 24 hours ago, and to be quite honest I was a little skeptical about the whole thing. As you may know from a couple of recent posts, I had started to do some research about what Windows 8 might mean to Synergex, and to our customers, and to our customers customers … and to be quite honest I had more questions than answers. I was more than a little concerned that Microsoft were all set to try to change the Windows world … which they are … but perhaps with less than the amount of (in my opinion) required consideration for existing customers, and applications, and technologies, and tools.

Specifically, I was concerned that there was a lot of talk about HTML5, and of CSS, and of JavaScript … but very little talk about XAML, and C#, and third-party languages like Synergy .NET, and so on. I was concerned that Microsoft were set to not only reimagine Windows, but also reimagine all of the development tools that are used to build Windows applications.

But … big sigh of relief … from me and several thousand other people in the room … although there is a definite emphasis on new development tools which will soon be available within the Microsoft development toolset, i.e. extended support for tools like HTML5, CSS and JavaScript,  there is also a consistent message that existing .NET toolsets are still completely valid and will continue to be so.

On the platform side … WOW! Most of the information to date has centered around videos of demos dating back to early June, and those demos were pretty impressive, Well, I can tell you that things have moved on quite significantly since then, and although Windows 8 is still only in a “Developer Preview” (i.e. pre-beta) state … it’s looking REALLY GOOD!

Of course there are bugs, of course there are glitches, but on the whole people at this conference are pretty excited about what is coming. And that includes the four Synergex employees that are here … after a long day at the conference, and a pretty good stint in the bar afterwards, we’re bouncing ideas around, and coming up with all of these “what if’s”, and seeing the real possibility of Synergy developers being able to fully participate in these exciting new technologies.

Of course some of the reason for this is as a direct consequence of the tens of thousands of man hours of work that have been invested in the various Synergy products in recent years. But also it is with the realization that there is more work still to be done, because the goal posts just got moved in a fairly significant way. But … because of where we know we are now, where we now know we need to be actually doesn’t seem that far away … WOW!

There are exciting times ahead … there are challenges also, but I firmly believe that we’re on the right track.

If you’re interested in the future of Windows then I would strongly recommend that you watch the keynote speech from todays conference, you can find it and many other interesting videos here:

http://www.buildwindows.com

By the way, I am writing this post on my new Samsung Windows 8 “Slate” PC. Those who know me would tell you that I develop on Windows, and Unix, and Linux, and OpenVMS … but I’m an Apple guy at heart. I have an iPhone, and an iPad, and a couple of Macs … and I LOVE those things. But … I think that Microsoft Windows 8 might just change the world. It’s an operating system for the PC, and that PC might just be a Slate (tablet). The point is that today I was convinced that the best of both worlds really can be built into one operating system that can run equally well on different types of devices. I LOVE my iPad but I can’t run hundreds of thousands of existing desktop apps on it, and despite good intentions iOS is jus WAY too restrictive. What Microsoft showed us and gave us today is really cool … it’s a tablet, but it’s also a PC … WOW!


Shameless plug

By William Hawkins, Posted on March 28, 2011 at 4:38 pm

I’ve just come back from the UK, where Richard Morris and myself attended DevWeek 2011.   The DevWeek conference was hosted at the Barbican center in London, and covered a multitude of various Microsoft / Windows technologies. As it wasn’t hosted by Microsoft, there were no significant goodies/toys given away, but we did gain a lot of great info on developing state-of-the-art user interfaces, and lose a few pounds climbing 4 flights of stairs between sessions.
After the conference, Richard and I visited a couple of customers and had planned to spend a couple of days performing analysis work for a prospective PSG project.  However, a few hours into this analysis task, we got a cry for help from another UK customer that Richard had been working with.
This customer was in the process of moving their application from OpenVMS to Windows.  They had already moved the executables to Windows and were using xfServer to access the data on OpenVMS.  Over the weekend that followed DevWeek, Richard had helped them do a test migration of the data from OpenVMS RMS files to Windows SDBMS isam files, and it all appeared to be working fine.  However, during their testing, a few files were showing spurious data in a few fields – hence the cry for help.
It turns out that the bad data was actually caused by integer fields, that everybody had assumed were decimal fields.  Now, when you unload data files, most people just use the standard isload/fconvert (or Convert on OpenVMS) to generate a sequential file, which works great for Synergy alpha and decimal fields, but when you have integer (aka binary) fields, regular sequential files no longer “cut the mustard”.  One of the issues you have to deal with is this.  If you have an integer field that contains the value 13, (aka a Carriage Return character) in a sequential file, the operating system assumes that it’s an end-of-record character and treats the record as truncated.  So now the next part of the same record is now treated as a new truncated record, and you have two “bad” records in the file, instead of one “good” one.
The way to resolve this class of issue is to use a “counted” file.  This is a special form of sequential file where the length of the record is included with each record, so when re-loading data, the application knows how many characters there are in the record, and it will ignore any “spurious” control characters in the middle of the record.   Job done, you would think, but no.  Being OpenVMS it wasn’t as simple as that, as we also had to use the OpenVMS Convert utility to change the sequential file into a stream file, so we can preserve the file as a counted file after it was FTP’d to Windows.

With Synergy version 9, the language supports several new data types (e.g. boolean, enum) which are really integer fields, so if you start to store these new data types in your Synergy DBMS files, you need to start using counted files, instead of regular sequential files when loading/unloading data.  Fortunately, (in this case) both OpenVMS and Windows are little endian systems, so there was no issue about changing endian type, but this is something that you may need to consider, should you consider moving integer data between systems.
Now, to come back to the topic I started with of “attending conferences” (and to issue a shamless plug), if you come to the 2011 SPC in Chicago or Oxford, you’ll be able to hear all about managing binary data in Synergy DBMS files.

Hope to see you there.


Page 1 of 212
Don't miss a post!

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Recent Posts Tag Cloud Archives