עד שנת 2005 המשיכה IT Mill לשחרר גרסאות של "Millstone 3", בשלב זה פיתוח הפלטפורמה התקדם ונוספה עליו שכבה של טכנולוגיית AJAX. בעקבות כך הוחלט על שכתוב צד לקוח וצד שרת. שינוי זה סייע בכך שהשינויים בגרסאות הבאות היו שוליים.
שנת 2006 הביאה שינוי גדול נוסף בצד לקוח על מנת להתאימו לתכונות חדשות של AJAX והגרסה שוחררה בשם "IT Mill Toolkit 4". השינוי כלל הוספה של JavaScript ובעקבות כך היה קשה להמשיך לתחזק ולהרחיב את הגרסה הזו. מסיבה זו בשנת 2007 הוחלט להוריד את ה-JavaScript ולהחליף אותו ב-GWT. שינוי זה הוביל לכתיבתו מחדש של צד לקוח וגרסה חדשה יצאה בשם "IT Mill Toolkit 5".
בשנת 2009 IT Mill שחררה גרסה "Toolkit 6" ושמה שונה ל- Vaadin.
בשנת 2010 המותג Vaddin היה מוכר בציבור יותר משם החברה (IT Mill) מסיבה זו החליטה החברה לשנות את שמה ולאמץ את שם החברה.
בשנת 2013 יצאה גרסה 7. בגרסה זו הכניסו את GWT כחלק מהמערכת. בנוסף, הוסיפו תכונות חדשות ושיפרו את המערכת בהתאם למשובים מהקהילה של Vaadin.
בשנת 2017 שוחררה מגרסה 8. השינויים העיקריים נבעו בעיקר משיפורים של JAVA גרסה 8. הגרסה עברה התאמה מלאה ל-JAVA 8 ושיפור של ה-API.
בשנת 2018 שוחררה גרסה 10 (גרסה 9 לא הייתה קיימת). היה זה השינוי המשמעותי ביותר בהיסטוריה של Vaadin. השינוי כלל שכתוב של הרכיבים ושכבת התקשורת.
בשנת 2019 שוחררה גרסה 13 (בתא) הכוללת שיפורים קטנים ותיקון תקלות.
רכיבי Vaadin.
הרכיבים של Vaadin הם קבוצה מקיפה של רכיבי אינטרנט המיועדים למפתחי אתרי אינטרנט. בעזרת הרכיבים אלו ניתן לבנות בקלות יחסית אתר אינטרנט.
שימוש בסיסי.
רכיבי Vaadin מותקנים בדרך כלל עם npm או bower. לדוגמה, הפקודה הבאה מתקינה את codice_1 :
bower install vaadin/vaadin-button
לאחר ההתקנה, הרכיב יכול לשמש בדף אינטרנט כדלקמן:
&lt;html&gt;
&lt;head&gt;
&lt;link rel="import" href="bower_components/vaadin-button/vaadin-button.html" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;vaadin-button onclick='alert("Hello, World")'&gt;Click me&lt;/vaadin-button&gt;
&lt;/body&gt;
&lt;/html&gt;
להלן צילום מסך של הדף הקודם:
רכיבים זמינים.
הטבלה הבאה מציגה רשימה של רכיבי האינטרנט של קוד פתוח ללא תשלום הכלולים ב- Vaadin:
Vaadin Flow (בעבר Vaadin Framework) היא תשתית לבניית יישומי אינטרנט ואתרי אינטרנט. מודל התכנות של Vadadin Flow דומה Vaadin Framework's - היא משתמשת בשפת JAVA כשפת התכנות ליצירת תוכן אינטרנט. ארכיטקטורת Vaadin Flow היא של צד שרת כלומר רוב הלוגיקה פועלת בצד שרת. בצד לקוח, Vaadin Flow בנויה על גבי תקני Web Component.
Vaadin Flow כוללת תמיכה ברכיבי אינטרנט עבור מפתחי JAVA ומאפשרת שימוש בתבניות HTML (המבוססות על פולימרים) עם תקשורת אוטומטית של שרת-לקוח. הוא כולל גם את ממשק ה- API של ניתוב (חיבור רכיבי ממשק משתמש לכתובות אתר), חיבור נתונים (סנכרון שדות קלט עם מודלים לנתונים בצד השרת) ומניפולציה של ה-DOM בצד השרת.
שימוש בסיסי.
להלן דוגמה בסיסית של שימוש ב- Vaadin Flow:
@Route("hello-world")
public class MainView extends VerticalLayout {
public MainView() {
TextField textField = new TextField("Enter your name");
Button button = new Button("Click me", event -&gt;
add(new Span("Hello, " + textField.getValue())));
add(textField, button);
להלן צילום מסך של היישום הקודם:
מאפיינים.
מימוש ממשק המשתמש רק עם JAVA.
Vaadin Flow מאפשרת שימוש במרכיבי ממשק קיימים וביצוע רכיבים חדשים באמצעות קוד JAVA הפועל בצד שרת. ניתן ליצור ולשנות את DOM מהצד שרת. הבנאי של קטע הקוד הבא מראה כיצד ליצור אלמנט codice_2 חדש, להגדיר codice_3, ולהוסיף מאזין לאירוע קליק:
@Route("")
public class MainView extends Div {
public MainView() {
Div div = new Div();
div.setText("Click me");
div.getElement().setAttribute("id", "main");
div.getElement().addEventListener("click", (DomEventListener) event -&gt;
add(new Span("Hello, World")));
add(div);
שילוב רכיבי אינטרנט.
שילוב רכיבי אינטרנט מסופק באמצעות ההערות codice_4 ו- codice_5 codice_4. קטע הקוד הבא מראה כיצד לעטוף רכיב אינטרנט קיים ברכיב Java בצד השרת:
@Tag("juicy-ace-editor")
@HtmlImport("bower_components/juicy-ace-editor/juicy-ace-editor.html")
public class JuicyAceEditor extends Div {
public void setMode(String mode) {
getElement().setAttribute("mode", mode);
Router.
Router הוא מושג ליבה ב-Vaadin Flow המאפשר ניווט באמצעות כתובות אתרים. ה-Router מאפשר חיבור של כתובות אתרים לרכיבי ממשק משתמש. הוא מבוסס על ממשק API HTML5 History המאפשר למשתמשי הקצה לנווט בין הדפים תוך שמירה על מצב הדף. קטע הקוד הבא מראה כיצד להשתמש בהערות codice_7 כדי להציג את הרכיב codice_7 כאשר משתמש הקצה מבקש כתובת אתר כגון codice_9 :
@Route("hello/world")
public class HelloWorldComponent extends Div {
public HelloWorldComponent() {
setText("Hello, World!");
מיזוג נתונים.
מיזוג הנתונים נעשה דרך מחלקת codice_10. זה מאפשר לסנכרן את הערכים בשדות קלט עם מודלים נתונים בצד השרת. קטע הקוד הבא מראה כיצד לקשר את codice_11 שדה Java מסוג codice_12 לערך ברכיב codice_13 :
TextField nameField = new TextField();
Binder&lt;Person&gt; binder = new Binder&lt;&gt;();
binder.bind(nameField, Person::getName, Person::setName);
תבניות HTML.
Vaadin Flow מאפשרת הגדרה של תבניות HTML עם תקשורת אוטומטית של שרת לקוח וחיבור נתונים (בעת שימוש בתבניות מבוססות פולימר ). להלן דוגמה לתבנית מבוססת פולימרים:
&lt;link rel="import" href="../bower_components/polymer/polymer-element.html"&gt;
&lt;link rel="import" href="../bower_components/vaadin-text-field/vaadin-text-field.html"&gt;
&lt;dom-module id="hello-world"&gt;
&lt;template&gt;
&lt;vaadin-text-field label="Your name" value=""&gt;&lt;/vaadin-text-field&gt;
&lt;button on-click="greet"&gt;Click me&lt;/button&gt;
&lt;div id="greeting"&gt;greeting&lt;/div&gt;
&lt;/template&gt;
&lt;script&gt;
class HelloWorld extends Polymer.Element {
static get is() {
return 'hello-world'
customElements.define(HelloWorld.is, HelloWorld);
&lt;/script&gt;
&lt;/dom-module&gt;
קטע הקוד הבא מראה כיצד לחבר את התבנית הקודמת למרכיב Java בצד השרת:
@Tag("hello-world")
@HtmlImport("src/hello-world.html")
public class HelloWorld extends PolymerTemplate&lt;HelloWorld.HelloWorldModel&gt; {
public interface HelloWorldModel extends TemplateModel {
String getName();
void setGreeting(String greeting);
@EventHandler
private void greet() {
getModel().setGreeting("Hello, " + getModel().getName());
התאמה אישית של מראה ותחושת המשתמש.
התאמה אישית של המראה ותחושת המשתמש ניתן לעשות עם CSS, סגנונות מותאמים אישית של HTML, או על ידי תצורות ערכות נושא מוכנות.
שילוב עבודה עם Spring Framework.
Vaadin Flow כולל אינטגרציה עם Spring Framework 5 ו-Spring Boot 2.
וידאל דה לה בלאש
פול וידאל דה לה בלאש (צרפתית: Paul Vidal de La Blache; 22 בינואר 1845, Pézenas, Hérault - 5 באפריל 1918, Tamaris-sur-Mer) היה גאוגרף צרפתי. נחשב למייסד הגאוגרפיה הצרפתית המודרנית וגם מייסד בית הספר הצרפתי לגאופוליטיקה. הוא הגה את רעיון ״אורח החיים״ (genres de vie) האמונה כי אורח החיים של אזור מסוים משקף את הזהויות הכלכליות, החברתיות, האידאולוגיות והפסיכולוגיות שהוטבעו על ידי הנוף.
חייו.
פול וידאל דה לה בלאש, היה בנו של אנטואן דה לה בלאש; פרופסור שהפך לאחר מכן למפקח בתחום האקדמיה. הוא נשלח לבית הספר בפריז והצליח מאוד בלימודיו, לאחר מכן, למד לימודים גבוהים במוסד היוקרתי - אקול נורמל סופרייר וקיבל הסמכה בהיסטוריה ובגאוגרפיה בשנת 1866. הוא קיבל משרה בהוראה בבית הספר הצרפתי באתונה, וניצל את ההזדמנות לנסוע לאיטליה, ארץ ישראל, ומצרים (שם נכח בחנוכת תעלת סואץ). באתונה למד ארכאולוגיה יוונית במשך שלוש שנים.
עם שובו לצרפת, בשנת 1870 הוא נישא ללור מארי אליזבת מונדון (Laure Marie Elizabeth Mondont) נולדו להם חמישה ילדים ורק שניים נותרו בחיים. הוא החזיק כמה משרות הוראה בבתי ספר שונים, ובמקביל השלים את עבודת הדוקטורט שלו. בזמן המהומות של הקומונה הפריזאית (1871) הצליח לצאת מפריס והגיע לוורסאי וסיים להדפיס את הדוקטורט. העבודה אושרה בסורבון בשנת 1872. עבודת הדוקטורט שלו הייתה בהיסטוריה עתיקה. הוא החל לעבוד בנאנסי ולאחר כמה שנים בשנת 1877 חזר ללמד ב״אקול נורמל סופרייר״ כפרופסור מלא של גאוגרפיה ולימד שם במשך 21 השנים הבאות. הוא הועבר לאוניברסיטת פריז, שם המשיך ללמד עד שפרש בשנת 1909, בגיל 64.
וידאל דה לה בלאש ייסד את בית הספר הצרפתי לגאוגרפיה. יחד עם מרסל דובואה , ולוסיין גאלואה , ייסדו את כתב העת הצרפתי החשוב לגאוגרפיה - Annales de Géographie ״אנאלס דה גאוגרפי״ (1893), שאותו ערך עד מותו. ״אנאלס דה גאוגרפי״ הפך לכתב עת אקדמי בעל השפעה, אשר קידם את הרעיונות של הגאוגרפיה האנושית כמחקר האדם ואת יחסיו לסביבתו.
תלמידו של וידאל דה לה בלאש, אלבר דמנז'ון הושפע עמוקות מהדגשת חשיבות ההיסטוריה בחקר הגאוגרפיה, והפך בהמשך לדמות האקדמית המובילה בצרפת בתחום הגאוגרפיה האנושית.