From 94b5a22f71991cd6eb0619be71bdadf2c3a1d094 Mon Sep 17 00:00:00 2001 From: Rob Eisenberg Date: Sat, 10 Sep 2016 16:36:11 -0400 Subject: [PATCH] doc(all): update email links and company names --- .../drafts/FromCaliburn.MicroToAurelia.md | 62 +++++++++---------- doc/article/en-US/business-advantages.md | 2 +- doc/article/en-US/getting-help.md | 4 +- doc/article/en-US/what-is-aurelia.md | 2 +- doc/article/pt-BR/what-is-aurelia.md | 4 +- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/doc/article/drafts/FromCaliburn.MicroToAurelia.md b/doc/article/drafts/FromCaliburn.MicroToAurelia.md index 7a39d71e..4cacf27b 100644 --- a/doc/article/drafts/FromCaliburn.MicroToAurelia.md +++ b/doc/article/drafts/FromCaliburn.MicroToAurelia.md @@ -4,34 +4,34 @@ Twitter: @GregoryGum Linked In: GregGum -# From Caliburn.Micro to Aurelia - -## _If you know Caliburn.Micro, then you already know Aurelia_. - -Ok, so the syntax is different, but you will find the concepts **very** familiar. The learning curve is not so much learning Aurelia itself, it's learning the JavaScript ecosystem in which Aurelia lives. Once you have mastered that, you will find that Aurelia plugs in all that MVVM goodness you found in Caliburn.Micro. This guide is a high level view meant for c# developers moving to JavaScript who wish to write the same types of apps they did before in Silverlight/WPF, but this time, write a real web app. - -First some background so you know from where I write this guide: I have written apps in various technologies for the last 15 years, starting with Visual FoxPro, Windows Forms, WPF and then finally Silverlight. Silverlight's biggest contribution is that it popularized the MVVM (Model-View-Viewmodel) concept and made it easy to implement through binding. The level of apps I could write with Silverlight which much more sophisticated than anything before, and it became clear that I needed a framework to bring all the pieces intelligently without having to write it all myself. I did in fact write a framework for Visual Foxpro ( called TurboFox, long since laid in the technology graveyard) and knew the amount of raw hours it takes to bring a framework up to professional standards. I checked out the different frameworks, and Caliburn.Micro was the one that worked best for me. I have since authorized at least 20 major applications with the framework, and became very familiar with its use. Even after the "death" of Silverlight, I was a diehard. I saw no viable alternative on the horizon and thus continued to use it. For corporate apps which you can mandate, that's not really a problem. But the reality is that the web, and using web standards like good ole html and JavaScript is now the _only_ standard. And if you are reading this, you have already seen the light. But if we are destined to write html/JavaScript, how do we get there without throwing everything we know and love about writing serious applications out the window and starting from scratch? - -Here is where Aurelia makes its entrance. Some time ago, someone asked Rob, "What if you could create Caliburn.Micro in JavaScript?" It was a revolutionary thought, but why not? In the end, design patterns are design patterns no matter what language they are implemented in. JavaScript is not known for its application of design patterns. Despite there being a book named "JavaScript Design Patterns" from O'Reilly, I don't think any JavaScript developers have actually read it, and if they did, completely ignored them. Any JavaScript I have ever seen was written in the vein of "gitter-done now!", not "Which GOF pattern shall I implement today?" (Like c# coders are fond of). - -So that is the premise of Aurelia – implement those patterns which have worked so well in the past in JavaScript to create MVVM style applications in JavaScript. - -The first pill to swallow is that it's a lot of JavaScript. In a SL application, I think nothing of writing a few thousand lines of application code. That's not a lot of code really. But to see that in JavaScript makes some people squirm. At least it did me. Most people see JS as a few lines of code to send an alert to the window. You have to see it in the same way you see code in a c# application – its code, it should be well written, and using standard coding practices such as classes and separations of concerns. So in Aurelia, you start writing classes, just like you do in c#. You are going to have a Welcome class, and a Welcome view which combine to make a Welcome page. But I am getting ahead of myself. Here are the major concepts of Aurelia, and how they are implemented. - -# Routing - -Every app is a collection of pages. In Silverlight, there was a Navigation Template which attempted to route pages with a router, but most app's did not use this. I even wrote an adapter so that I could use the SL router and then using Caliburn.Micro to bind the pages. In Aurelia, the Router is elevated in status to one of the prime components and it integrates deeply with the browser. The net result of this is that the browser forward and back buttons work as users would expect them to do. Even though the back button does not in fact change the page he is on (it's a single page application, remember) it does navigate him back to the prior view. So it appears to him that he went to the prior page, and even the link in the browser bar updates accordingly. - -# Pages - -When a user navigates to a page, that page is a view/viewmodel pair as I hinted to earlier. In Caliburn.Micro, the convention was to use CustomerViewModel/CustomerView. In Aurelia, it's just Customer/Customer, or whatever you want to name it. It just uses the exact same name, so only the extension is different. - -An Aurelia ViewModel has the same type of lifecycle as in Caliburn.Micro. There are the usual Activate/Deactivate, as well as CanActivate/CanDeactivate which work as you would expect. - -# Binding - -Ah, the miracle of bind. Binding is what made MVVM great, and it's no different in Aurelia. In your viewmodel, you have a "name" property, and you bind it in your view like so: Just like old times. The binding is two way binding as well in this case, as it's an input element which automatically gets two way binding. But there is another way to bind in Aurelia and it's called "String Interpolation." Instead of having to have a control to bind to, you can specify the binding directly in the html. Say for example you want to display them name property in a span. This is the syntax: ${name} This of course is one way binding. But it is live binding, so if you change the value of the name property to "Greg", it will automatically update in the UI just as you would expect. While this is a minor thing to a xaml developer, it's big news in the HTML world. Knockout was the original binding library, and it's still kicking around with a lot of people using it. Durandal, the forerunner of Aurelia supported Knockout, but Aurelia brought its own binding library to the table. I won't go into the details, but Aurelia binding is much cleaner having brought years of binding experience to the table before it was even started. - -# Wrap Up - -So there you have it. My goal here was to whet your appetite for Aurelia and convince you to give it a chance. Aurelia is rapidly becoming the SPA framework of choice, and your experience with Caliburn.Micro is going to help you get up and running. Welcome aboard. If you have questions, you can reach me on the Aurelia gitter channel, or email me at greg.gum@gmail.com +# From Caliburn.Micro to Aurelia + +## _If you know Caliburn.Micro, then you already know Aurelia_. + +Ok, so the syntax is different, but you will find the concepts **very** familiar. The learning curve is not so much learning Aurelia itself, it's learning the JavaScript ecosystem in which Aurelia lives. Once you have mastered that, you will find that Aurelia plugs in all that MVVM goodness you found in Caliburn.Micro. This guide is a high level view meant for c# developers moving to JavaScript who wish to write the same types of apps they did before in Silverlight/WPF, but this time, write a real web app. + +First some background so you know from where I write this guide: I have written apps in various technologies for the last 15 years, starting with Visual FoxPro, Windows Forms, WPF and then finally Silverlight. Silverlight's biggest contribution is that it popularized the MVVM (Model-View-Viewmodel) concept and made it easy to implement through binding. The level of apps I could write with Silverlight which much more sophisticated than anything before, and it became clear that I needed a framework to bring all the pieces intelligently without having to write it all myself. I did in fact write a framework for Visual Foxpro ( called TurboFox, long since laid in the technology graveyard) and knew the amount of raw hours it takes to bring a framework up to professional standards. I checked out the different frameworks, and Caliburn.Micro was the one that worked best for me. I have since authorized at least 20 major applications with the framework, and became very familiar with its use. Even after the "death" of Silverlight, I was a diehard. I saw no viable alternative on the horizon and thus continued to use it. For corporate apps which you can mandate, that's not really a problem. But the reality is that the web, and using web standards like good ole html and JavaScript is now the _only_ standard. And if you are reading this, you have already seen the light. But if we are destined to write html/JavaScript, how do we get there without throwing everything we know and love about writing serious applications out the window and starting from scratch? + +Here is where Aurelia makes its entrance. Some time ago, someone asked Rob, "What if you could create Caliburn.Micro in JavaScript?" It was a revolutionary thought, but why not? In the end, design patterns are design patterns no matter what language they are implemented in. JavaScript is not known for its application of design patterns. Despite there being a book named "JavaScript Design Patterns" from O'Reilly, I don't think any JavaScript developers have actually read it, and if they did, completely ignored them. Any JavaScript I have ever seen was written in the vein of "gitter-done now!", not "Which GOF pattern shall I implement today?" (Like c# coders are fond of). + +So that is the premise of Aurelia ïżœ implement those patterns which have worked so well in the past in JavaScript to create MVVM style applications in JavaScript. + +The first pill to swallow is that it's a lot of JavaScript. In a SL application, I think nothing of writing a few thousand lines of application code. That's not a lot of code really. But to see that in JavaScript makes some people squirm. At least it did me. Most people see JS as a few lines of code to send an alert to the window. You have to see it in the same way you see code in a c# application ïżœ its code, it should be well written, and using standard coding practices such as classes and separations of concerns. So in Aurelia, you start writing classes, just like you do in c#. You are going to have a Welcome class, and a Welcome view which combine to make a Welcome page. But I am getting ahead of myself. Here are the major concepts of Aurelia, and how they are implemented. + +# Routing + +Every app is a collection of pages. In Silverlight, there was a Navigation Template which attempted to route pages with a router, but most app's did not use this. I even wrote an adapter so that I could use the SL router and then using Caliburn.Micro to bind the pages. In Aurelia, the Router is elevated in status to one of the prime components and it integrates deeply with the browser. The net result of this is that the browser forward and back buttons work as users would expect them to do. Even though the back button does not in fact change the page he is on (it's a single page application, remember) it does navigate him back to the prior view. So it appears to him that he went to the prior page, and even the link in the browser bar updates accordingly. + +# Pages + +When a user navigates to a page, that page is a view/viewmodel pair as I hinted to earlier. In Caliburn.Micro, the convention was to use CustomerViewModel/CustomerView. In Aurelia, it's just Customer/Customer, or whatever you want to name it. It just uses the exact same name, so only the extension is different. + +An Aurelia ViewModel has the same type of lifecycle as in Caliburn.Micro. There are the usual Activate/Deactivate, as well as CanActivate/CanDeactivate which work as you would expect. + +# Binding + +Ah, the miracle of bind. Binding is what made MVVM great, and it's no different in Aurelia. In your viewmodel, you have a "name" property, and you bind it in your view like so: Just like old times. The binding is two way binding as well in this case, as it's an input element which automatically gets two way binding. But there is another way to bind in Aurelia and it's called "String Interpolation." Instead of having to have a control to bind to, you can specify the binding directly in the html. Say for example you want to display them name property in a span. This is the syntax: ${name} This of course is one way binding. But it is live binding, so if you change the value of the name property to "Greg", it will automatically update in the UI just as you would expect. While this is a minor thing to a xaml developer, it's big news in the HTML world. Knockout was the original binding library, and it's still kicking around with a lot of people using it. DurandalJS, the forerunner of Aurelia supported Knockout, but Aurelia brought its own binding library to the table. I won't go into the details, but Aurelia binding is much cleaner having brought years of binding experience to the table before it was even started. + +# Wrap Up + +So there you have it. My goal here was to whet your appetite for Aurelia and convince you to give it a chance. Aurelia is rapidly becoming the SPA framework of choice, and your experience with Caliburn.Micro is going to help you get up and running. Welcome aboard. If you have questions, you can reach me on the Aurelia gitter channel, or email me at greg.gum@gmail.com diff --git a/doc/article/en-US/business-advantages.md b/doc/article/en-US/business-advantages.md index 7e0a9e91..10d897da 100644 --- a/doc/article/en-US/business-advantages.md +++ b/doc/article/en-US/business-advantages.md @@ -19,7 +19,7 @@ * One of the only two main-stream, open-source SPA frameworks with official commercial backing (Ember is the other). * The only SPA framework with commercial support options available. * Custom contracts available for enterprises. -* Internally “dogfooded” by Durandal Inc. in its own business-critical products. +* Internally “dogfooded” by Blue Spire Inc. in its own products. Many technologists make incorrect assumptions in this space. You may hear about "Google's Polymer" (or Angular) or "Facebook's React". However, these libraries aren't official products of their respective companies. React team members have stated publicly that Facebook is not committed to the React library. Google developers have stated publicly that Polymer is not a Google product and developers are not considered customers. Angular and Polymer are two out of six UI libraries built by Google employees, all competitive with one another, and none officially recognized by the company. There is much marketing and brand recognition around these libraries but no guarantee and little hope of long-term stability. We encourage you to try to see past the marketing, brands and hype and into the core capabilities and benefits of the technology itself. If you do, we think you'll realize that Aurelia is the best option available. diff --git a/doc/article/en-US/getting-help.md b/doc/article/en-US/getting-help.md index f4740556..2bfbcc61 100644 --- a/doc/article/en-US/getting-help.md +++ b/doc/article/en-US/getting-help.md @@ -17,6 +17,6 @@ When you join the Aurelia community, you have access to our entire ecosystem. If you need quick help or an answer clarifying documentation, we hope you'll engage with the community in our Gitter chat room. We have one of the most active Gitter channels in the world, with core team and community members present almost every hour of the day, no matter what part of the world you live in. You can join the channel and get help at [http://www.gitter.im/aurelia/discuss](http://www.gitter.im/aurelia/discuss) -If you need architectural advice, consulting or training, you can take advantage of Durandal Inc's services as well as those provided by our global partner network. For inquiries, please contact [consulting@durandal.io](email:consulting@durandal.io). We would love to connect with you, hear your needs and help provide you with the best resources to build your product and business. +If you need architectural advice, consulting or training, you can take advantage of Blue Spire's services as well as those provided by our global partner network. For inquiries, please contact [consulting@bluespire.com](email:consulting@bluespire.com). We would love to connect with you, hear your needs and help provide you with the best resources to build your product and business. -If you need commercial or enterprise support, priority bug fixes and/or a guaranteed SLA on support answers for your team or organization, Durandal Inc. can provide for you. To inquire about establishing a support agreement, please contact [support@durandal.io](email:support@durandal.io). +If you need enterprise support, priority bug fixes and/or a guaranteed SLA on support answers for your team or organization, Blue Spire can help you. To inquire about establishing a support agreement, please contact [support@bluespire.com](email:support@bluespire.com). diff --git a/doc/article/en-US/what-is-aurelia.md b/doc/article/en-US/what-is-aurelia.md index 727121bd..1b887bb9 100644 --- a/doc/article/en-US/what-is-aurelia.md +++ b/doc/article/en-US/what-is-aurelia.md @@ -35,5 +35,5 @@ So, Aurelia is a set of modern, modular JavaScript libraries for building UI...a * **Web Standards Focused** - Focused on next generation JavaScript and Web Components, and avoiding unnecessary abstractions that obscure the underlying web, Aurelia is the cleanest and most standards-compliant framework today. * **Integrates Well with Others** - Because of the extensible design of Aurelia and a number of core technical considerations we made early on, it's easy to integrate Aurelia with any 3rd party library or framework. For example, you can easily integrate with jQuery, React, Polymer, Bootstrap, MaterializeCSS and much more. * **TypeScript Support** - Each Aurelia library is released with its own d.ts files. We also have official TypeScript beginner kits and production quality starter kits. -* **An Official Product with Commercial Support** - Libraries like Angular, Polymer and React are neither official products of their associated companies nor is any official support or commitment to the library by the company guaranteed. However, Aurelia is an official product of Durandal Inc., has commercial and enterprise support available and we are committed to it over the long haul. If you are building core technology for your business, you want to know that your technology provider is as committed as you are. Aurelia is a clear choice. +* **An Official Product with Commercial Support** - Libraries like Angular, Polymer and React are neither official products of their associated companies nor is any official support or commitment to the library by the company guaranteed. However, Aurelia is an official product of Blue Spire Inc., has enterprise support available and we are committed to it over the long haul. If you are building core technology for your business, you want to know that your technology provider is as committed as you are. Aurelia is a clear choice. * **Thriving Community and Ecosystem** - With one of the largest and most active developer gitter channels in the JavaScript world, a huge number of contributors and a large active core team, Aurelia has an amazing community. Our ecosystem also includes video training resources, books in production, master class opportunities, upcoming conferences, component libraries, tooling, an official partner network and more. Aurelia has been used to build just about every type of application and is used by large, well-known multi-national companies and enterprises. diff --git a/doc/article/pt-BR/what-is-aurelia.md b/doc/article/pt-BR/what-is-aurelia.md index 2e5c79d0..1d45a256 100644 --- a/doc/article/pt-BR/what-is-aurelia.md +++ b/doc/article/pt-BR/what-is-aurelia.md @@ -39,5 +39,5 @@ facilidade de manutenção, extensibilidade, capacidade de aprendizado, etc. Est * **Focado em PadrĂ”es Web** - Focado na prĂłxima geração do JavaScript e Web Components e evitando abstraçÔes desnecessĂĄrias que obscurece a web fundamental, Aurelia Ă© o framework mais limpo e mais compatĂ­vel com os padrĂ”es hoje * **Integra Bem com Outros** - Devido ao design extensĂ­vel do Aurelia e uma sĂ©rie de consideraçÔes tĂ©cnicas fundamentais que fizemos desde o inĂ­cio, Ă© fĂĄcil integrar o Aurelia com qualquer biblioteca ou framework de terceiros. Por exemplo, vocĂȘ pode facilmente integrar com jQuery, React, Polymer, Bootstrap, MaterializeCSS e muito mais. * **Suporte ao TypeScript** - Cada biblioteca Aurelia Ă© lançada com seus prĂłprios arquivos d.ts. NĂłs tambĂ©m temos kits TypeScript oficiais para iniciantes e *starter kits* com qualidade de produção. -* **Um Produto Official com Suporte Comercial** - Bibliotecas como Angular, Polymer and React nĂŁo sĂŁo nem produtos oficiais de suas empresas associadas nem qualquer suporte ou compromisso com a biblioteca Ă© garantida pela empresa. No entanto, Aurelia Ă© um produto oficial da Durandal Inc., tem suporte comercial e empresarial disponĂ­vel e estamos comprometidos com isso a longo prazo. Aurelia Ă© uma escolha clara. -* **Comunidade Ativa e Ecossistema** - Com um dos maiores e mais ativos canais Gitter para desenvolvedores no mundo JavaScript, um nĂșmero enorme de colaboradores e uma grande equipe principal ativa, Aurelia tem uma comunidade incrĂ­vel. Nosso ecossistema tambĂ©m inclui recursos de vĂ­deos de treinamento, livros em produção, oportunidades de aulas especializadas, conferĂȘncias para acontecer, biblioteca de componentes, ferramentas, uma rede de parceiros oficial e mais. \ No newline at end of file +* **Um Produto Official com Suporte Comercial** - Bibliotecas como Angular, Polymer and React nĂŁo sĂŁo nem produtos oficiais de suas empresas associadas nem qualquer suporte ou compromisso com a biblioteca Ă© garantida pela empresa. No entanto, Aurelia Ă© um produto oficial da Blue Spire Inc., tem suporte empresarial disponĂ­vel e estamos comprometidos com isso a longo prazo. Aurelia Ă© uma escolha clara. +* **Comunidade Ativa e Ecossistema** - Com um dos maiores e mais ativos canais Gitter para desenvolvedores no mundo JavaScript, um nĂșmero enorme de colaboradores e uma grande equipe principal ativa, Aurelia tem uma comunidade incrĂ­vel. Nosso ecossistema tambĂ©m inclui recursos de vĂ­deos de treinamento, livros em produção, oportunidades de aulas especializadas, conferĂȘncias para acontecer, biblioteca de componentes, ferramentas, uma rede de parceiros oficial e mais.