tag:blogger.com,1999:blog-33647698110629924362024-03-05T15:02:52.135-06:00PTI Costa Rica BlogIn this blog we share information, tutorials, demos, work in progress and more in game development and cloud-based services.
Please remember to visit our main website at: <a href="https://www.pticostarica.com/?utm_source=PTIBlog&utm_medium=Blog&utm_campaign=BlogLink">http://www.pticostarica.com</a><br>
<a href="http://eepurl.com/boPusD">Subscribe to our Blog</a>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.comBlogger86125tag:blogger.com,1999:blog-3364769811062992436.post-75268122512717134462021-06-20T07:18:00.002-06:002021-06-20T07:25:15.110-06:00Youtube Channels (with Twitter Account) to learn Blazor<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitLIT_k4_aPBUSFAp3RhKD8ioLnFG4VAXaLApyXbUQS_x2SJo_KIp1po6mL9xKv5kZ-4t6aafNKwDt7ffk2i4LWu1RibEZfW7APujqjziLkMFo7xEOlf2PnA-NYajtkvfF8mEklzNMgGBA/s2813/Screen+Shot+2021-06-20+at+07.01.51.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1118" data-original-width="2813" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitLIT_k4_aPBUSFAp3RhKD8ioLnFG4VAXaLApyXbUQS_x2SJo_KIp1po6mL9xKv5kZ-4t6aafNKwDt7ffk2i4LWu1RibEZfW7APujqjziLkMFo7xEOlf2PnA-NYajtkvfF8mEklzNMgGBA/s320/Screen+Shot+2021-06-20+at+07.01.51.png" width="320" /></a></div><br /><p><br /></p><p>As you may know, <a href="https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor" target="_blank">Blazor</a> has rapidly been turning into the technology of choice to speed up your Software Development, and deliver products faster while keeping best practices and reduce code duplication.</p><p>At the same time there have been more and more persons asking where they could learn more about Blazor, in this post we will add the information for some Youtube channels where you will be able to learn more of it.</p><p></p><ul style="text-align: left;"><li>PTI Costa Rica</li><ul><li><a href="https://www.youtube.com/c/pticostaricags" target="_blank">Youtube Channel</a></li><li><a href="https://twitter.com/pticostarica" target="_blank">Twitter Account</a></li><li><a href="https://twitter.com/efonsecabcr" target="_blank">Founder Twitter Account</a></li></ul><li>Tim Corey</li><ul><li><a href="https://www.youtube.com/user/IAmTimCorey" target="_blank">Youtube Channel</a></li><li><a href="https://twitter.com/IAmTimCorey" target="_blank">Twitter Account</a></li><li><a href="https://iamtimcorey.com/" target="_blank">Courses</a></li></ul><li>Nick Chapsas</li><ul><li><a href="https://www.youtube.com/user/ElfocrashDev" target="_blank">Youtube Channel</a></li><li><a href="https://twitter.com/nickchapsas" target="_blank">Twitter Account</a></li></ul><li>AK Academy</li><ul><li><a href="https://www.youtube.com/channel/UCRs-PO48PbbS0l7bBhbu5CA" target="_blank">Youtube Channel</a></li><li><a href="https://twitter.com/ahmadmozaffar99" target="_blank">Twitter Account</a></li></ul><li>Hector de León</li><ul><li><a href="https://www.youtube.com/hdeleonnet" target="_blank">Youtube Channel</a></li><li><a href="https://twitter.com/powerhdeleon" target="_blank">Twitter Account</a></li></ul></ul><div>If you have a Youtube channel <b>(and Twitter account) </b>where you teach Blazor, please let us know, and we'll add it to the list.</div><p></p>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-44830400789067562522021-06-13T10:46:00.003-06:002021-08-05T12:02:16.486-06:00How To Prepare for MAUI Blazor in Microsoft .NET 6<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0I2KtlUKW_ehv84IyrtA74tz_OTPjOMJwaD5pgILyA29Fj3YH4MislMb4n8-Bh1E42L7Uctt9htwxhTgck2eqZ_qTKrNKg29gml2iYOdrJs0WGAOmiFrQG9gFlHlS3Nfwowpo96vJM6UA/s1280/MAUI+Blazor+How+To+Prepare.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="249" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0I2KtlUKW_ehv84IyrtA74tz_OTPjOMJwaD5pgILyA29Fj3YH4MislMb4n8-Bh1E42L7Uctt9htwxhTgck2eqZ_qTKrNKg29gml2iYOdrJs0WGAOmiFrQG9gFlHlS3Nfwowpo96vJM6UA/w442-h249/MAUI+Blazor+How+To+Prepare.png" width="442" /></a></div><p><br /></p><p>Prepare For MAUI Blazor in the next evolution of Xamarin Forms & .NET Core: .NET 6 MAUI</p><p>MAUI is the evolution of Xamarin Forms, and it a now allows you to combine it with Blazor to make great cross platform systems in no time, allowing you to reutilize your components as much as possible, and have consistent layouts across the different platform specific builds for your system.</p><p>MAUI Blazor is great, though, you need to have some special considerations, one of those being that not all of your Blazor WebAssembly logic will be able to be reutilized so simply.</p><p>Those issue however, have solutions.</p><p>You need to take advantage of Blazor component-based design, and make sure that most of the pieces you want to reutilize in your MAUI Blazor app, are designed as independent components, it is also better if those components only receive the data.</p><p>In situations where you need to use Azure Ad B2C, you to do so, in the same way you would do outside of the Blazor Webview, and instead do so in the same way you would do it for Xamarin.Forms applications, after all, remember that MAUI is the next evolution of Xamarin, and MAUI Blazor is Blazor on top of MAUI.</p><p><br /></p><p>Check the following videos to learn what you need to be prepare for MAUI Blazor.</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="338" src="https://www.youtube.com/embed/AjtXXsEoH5E" width="489" youtube-src-id="AjtXXsEoH5E"></iframe></div><br /><p><br /></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/3b4NUbcryv4" width="470" youtube-src-id="3b4NUbcryv4"></iframe></div><br /><p><br /></p>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-83516637926621767312021-05-29T05:24:00.009-06:002021-05-29T05:38:32.433-06:00How To Create The Next Youtube or Twitch using Blazor, .NET 5, and Microsoft Azure - Part I<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2p7vaxtg7_WHMN5vYrqmseCwt4-Cxmk_F5NJ5S8aQlpVy2N_XH1Z60KK61iFhuFXhadjj-jccydFCEkIhogTmhI8-_2VBdb8ijM3BnvytxLc1b1vAMI7AnqUOBF4H3rp36DUj8I9sSCnR/s2048/FairPlayTube.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1645" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2p7vaxtg7_WHMN5vYrqmseCwt4-Cxmk_F5NJ5S8aQlpVy2N_XH1Z60KK61iFhuFXhadjj-jccydFCEkIhogTmhI8-_2VBdb8ijM3BnvytxLc1b1vAMI7AnqUOBF4H3rp36DUj8I9sSCnR/s320/FairPlayTube.png" width="320" /></a></div><br /><p></p><p>There are countless types of solutions you can create when developing software.<br />Today, we will see a small introduction on how to create your very own Video Sharing Portal,<br />with Blazor, .NET 5, and Microsoft Azure.</p><p><br /></p><h3 style="text-align: left;">The Architecture</h3><div>Before starting to code any project, it is vital to have an understanding of the architectural components required by the system and how all of the pieces will interact.</div><div><br /></div><div>The diagram displayed here is just one of the many ways in which you can implement Video Sharing Portals, there is no right or wrong architecture, since it ultimately depends on your own specific needs and business strategy, however, there are best practices, you can learn of those in the <a href="https://docs.microsoft.com/en-us/azure/architecture/" target="_blank">Azure Architecture Center</a>, take a special look to the <a href="https://docs.microsoft.com/en-us/azure/architecture/browse/" target="_blank">Reference Architectures section</a>.<br /></div><div><br /></div><div>Our diagrams are the proposed solution for the <a href="https://github.com/efonsecab/FairPlayTube" target="_blank">Open Source Project FairPlayTube</a>, which has the following items:</div><div><ul style="text-align: left;"><li>Users</li><li><a href="https://azure.microsoft.com/en-us/services/cdn/" target="_blank">Azure Web CDN</a></li><ul><li>Used to speed up load times.</li></ul><li><a href="https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor" target="_blank">Blazor</a> WebAssembly Client App</li><li>.NET 5 Server API</li><li><a href="https://azure.microsoft.com/en-us/services/storage/blobs/" target="_blank">Azure Blob Storage</a></li><ul><li>Used to store users uploaded videos</li></ul><li><a href="https://azure.microsoft.com/en-us/products/azure-sql/database/" target="_blank">Azure SQL Database</a></li><ul><li>Use to store users and videos-related data, while enforcing Data Integrity.</li></ul><li><a href="https://powerbi.microsoft.com/en-us/" target="_blank">Power BI</a></li><ul><li>Used to visualize Error Logs from Desktop and Mobile App</li></ul><li><a href="https://docs.microsoft.com/en-us/azure/active-directory-b2c/overview" target="_blank">Azure AD B2C</a></li><ul><li>Used to allow secure and centralized users authentication</li></ul><li><a href="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-5.0&tabs=visual-studio#ihostedservice-interface" target="_blank">.NET 5 Background Jobs</a></li><ul><li>Used to monitor the videos indexing progress and update data accordingly.</li></ul><li><a href="https://azure.microsoft.com/en-us/services/signalr-service/" target="_blank">Azure SignalR</a></li><ul><li>Used to notify users when their videos have been indexed, as well as when they have received new messages from other users.</li></ul><li><a href="https://azure.microsoft.com/en-us/services/cognitive-services/speech-services/" target="_blank">Azure Speech</a></li><ul><li>Used as an accessibility helper, to allow users to hear an audio representation of the content in the page.</li></ul><li><a href="https://azure.microsoft.com/en-us/products/video-analyzer/" target="_blank">Azure Video Analyzer</a> (formerly Azure Video Indexer)</li><ul><li>Used to analyze videos and generator insights</li></ul><li><a href="https://azure.microsoft.com/en-us/services/cognitive-services/personalizer/" target="_blank">Azure Personalizer</a></li><ul><li>Used to show the best content for the users</li></ul><li><a href="https://azure.microsoft.com/en-us/services/cognitive-services/translator/" target="_blank">Azure Translator</a></li><ul><li>Used to automatically translate the text-data to multiple languages</li></ul><li><a href="https://azure.microsoft.com/en-us/services/search/" target="_blank">Azure Cognitive Search</a></li><ul><li>Used to allow for high quality fast search of videos</li></ul></ul><div><br /></div></div><div>You can find the repo here: <a href="https://github.com/efonsecab/FairPlayTube" target="_blank">FairPlayTube Repository</a></div><div>There you can check the Readme and the <a href="https://github.com/efonsecab/FairPlayTube/wiki" target="_blank">Wiki</a>.</div><div><br /></div><div>Here you can see a small sample of the development progress</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/wdD2ivmGzHs" width="320" youtube-src-id="wdD2ivmGzHs"></iframe></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-9911084340957378742021-04-20T06:34:00.003-06:002021-04-20T06:34:51.759-06:00Optimize your new Developers Onboarding process with Microsoft Azure<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDS0UxSvlzR1gSe8z7cxaitfBNbH_r9UaK-6Ss6TtkXcBnTQRiPuOgd6Re2tUdvaa4vgqigRf2DqRq0XWKQ7uuSZpfl01H60MaXjqpxduAPdZ_wVRur4Gk9dug_ofyQaaUQoZMeFiY8lXV/s1920/web-1935737_1920.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="895" data-original-width="1920" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDS0UxSvlzR1gSe8z7cxaitfBNbH_r9UaK-6Ss6TtkXcBnTQRiPuOgd6Re2tUdvaa4vgqigRf2DqRq0XWKQ7uuSZpfl01H60MaXjqpxduAPdZ_wVRur4Gk9dug_ofyQaaUQoZMeFiY8lXV/s320/web-1935737_1920.png" width="320" /></a></div><br /><p>A common scenario in Software Development Onboarding process, is that the developers need to configured their environment, usually from scratch.</p><p>Depending on the system's complexity and network connection speeds, these setups can take more than a day, even a whole week in exceptional cases, meaning the new resources will not be productive immediately.</p><p>In today's world, immediate productivity is a must, therefore, as company owners, <br />we must do what is within our reach to make new resources be productive as soon as possible,<br />here is where Microsoft Azure comes to play.</p><p>Microsoft Azure has a vast quantity of services for all of your needs, one of those is <br />Shared Image Galleries.</p><p>With Shared Images Galleries, you can pre-configure Development Environments Virtual Machines and every time you hire a new Software Developer, you just create a new VM based on those already <br />pre-configured VM Image Definitions.</p><p>Check more here:</p><p></p><ul style="text-align: left;"><li><a href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/shared-images-portal" target="_blank">Create an Azure Shared Image Gallery using the portal</a></li><li><a href="https://docs.microsoft.com/en-us/azure/virtual-machines/shared-image-galleries" target="_blank">Shared Image Galleries overview</a></li></ul><div><br /></div>Would you like to know more about Microsoft Azure? <br />Feel free to contact me through <a href="https://www.upwork.com/o/profiles/users/~01dfba7bd0d1f23c9f/" target="_blank">Upwork</a> or <a href="https://www.linkedin.com/in/pticostarica?lipi=urn%3Ali%3Apage%3Ad_flagship3_profile_view_base_contact_details%3BeIrw1j5CSgeO%2FUwc%2BHZ%2F0A%3D%3D" target="_blank">LinkedIn</a><p></p>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-90465274610051893542021-03-19T06:47:00.004-06:002021-03-19T07:10:17.752-06:00Why you must move to Blazor<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNS0azwJYhwIThZrJOhKk3zK8gVC_EZ5S_4qiDNQtt4mfE2gNb-rVWuRbpifAis1Jk8ta6978uFgYOaYUs_s1oQNmPkPG5grF_e0CaZsebEsa9KzGf1hSEP2d4J93ysXqgGkIRAiTRWOLs/s2515/Screen+Shot+2021-03-19+at+06.39.42.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1251" data-original-width="2515" height="159" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNS0azwJYhwIThZrJOhKk3zK8gVC_EZ5S_4qiDNQtt4mfE2gNb-rVWuRbpifAis1Jk8ta6978uFgYOaYUs_s1oQNmPkPG5grF_e0CaZsebEsa9KzGf1hSEP2d4J93ysXqgGkIRAiTRWOLs/w320-h159/Screen+Shot+2021-03-19+at+06.39.42.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><p>If your business develops applications on .NET, you probably have already heard of <a href="https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor" target="_blank">Blazor</a>.</p><p><a href="https://blazor.pticostarica.com/" target="_blank">Blazor</a> is a framework for building interactive client-side Web UIs with .NET, <br />a dream come true, not only for .NET Developers, but also for companies who want to optimize their development speed, while maintaining high quality standards, avoid code duplication, and reuse existent code in both server-side and client-side.</p><p><a href="https://blazor.pticostarica.com/" target="_blank">Blazor</a> allows you to create rich interactive UIs using C#, reducing and even eliminating<br />your need to create Javascript code.</p><p><a href="https://blazor.pticostarica.com/" target="_blank">Blazor</a> allows you to share your logic written in .NET between server and client-side, e.g. a custom regex validation that needs to be performed in front-end and in back-end, well, with Blazor, you can reuse the actual validation classes between client-side and server-side, effectively implementing the validation only once.</p><p><a href="https://blazor.pticostarica.com/" target="_blank">Blazor</a> allows you to utilize a lot of already existent .NET libraries, on your client-side!</p><p>Another great feature of Blazor, is that Blazor apps are based on components, which in Blazor are elements of UI such as a page, dialog or data entry, and since they are implemented as components, they can be reused throughout your application, and even be shared with other applications when you create them as a Component Library.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYwtqDuvA9m1erAgHT5_2MIt_KVTRgz1QnBZzc7dW40GpF-t2RBBn3AXXNIVKEX0DI_5QhHyAjySo8ERkTh9KY-y5or4xSyoagNkkRuN_BaUXVZcmF3wCUnekV8EDOq3jvMyXzDmFQYJdq/s2316/Screen+Shot+2021-03-19+at+06.40.24.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1042" data-original-width="2316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYwtqDuvA9m1erAgHT5_2MIt_KVTRgz1QnBZzc7dW40GpF-t2RBBn3AXXNIVKEX0DI_5QhHyAjySo8ERkTh9KY-y5or4xSyoagNkkRuN_BaUXVZcmF3wCUnekV8EDOq3jvMyXzDmFQYJdq/s320/Screen+Shot+2021-03-19+at+06.40.24.png" width="320" /></a></div><p><br /></p><p>One of the best features of <b>Blazor, is that, due to is design, it allows you to create fully-featured, nice-looking, rich Web Applications. in no time, even as low as a day</b>, since it removes the need of using other frameworks like in the traditional SPA ( Single Page Application ) approach depending on Angular, React, or similar.</p><p>Blazor is in fact, the perfect framework for creating MVPs ( Minimum Viable Products ) and go to market quickly, without sacrificing quality.</p><p>Since Blazor runs fully on .NET, you can even create .NET based automated test for your front-end!</p><p>Tell us, when are you moving to Blazor?</p><p>We help you move to Blazor: <a href="https://www.upwork.com/o/profiles/users/~01dfba7bd0d1f23c9f/" target="_blank">Hire Us here</a></p>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-75827134865029890822020-09-17T06:23:00.002-06:002020-09-17T06:24:28.862-06:00Introduction to PTI.Microservices.Library<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7rFvlWnpT8B9plnzrm0H3cYGsqBJnrT3K-eDoj2zv8EOJuxoh4oP8vLOa2MuTPOZ5AzaIq3-_ZBD_YFyDzrnOaz80Mhq35tRxzJ_FEGlTUPkW_H8mVwecUlcZfk_yThVC3v3lX7498tZB/s1786/Screen+Shot+2020-09-17+at+06.20.52.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="830" data-original-width="1786" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7rFvlWnpT8B9plnzrm0H3cYGsqBJnrT3K-eDoj2zv8EOJuxoh4oP8vLOa2MuTPOZ5AzaIq3-_ZBD_YFyDzrnOaz80Mhq35tRxzJ_FEGlTUPkW_H8mVwecUlcZfk_yThVC3v3lX7498tZB/w400-h186/Screen+Shot+2020-09-17+at+06.20.52.png" width="400" /></a></div><br /><p><br /></p><p>Today we want to introduce you to <b>"PTI.Microservices.Library"</b>, a NuGet package designed to aid developers create systems faster by integrating several cloud services, abstracting some of the repetitive logic, adding exception handling, an logging, while also allowing developers to have control of the configuration.</p><p>Why <b>"PTI.Microservices.Library"</b> was created?</p><p>At PTI Costa Rica, we do lots of Research And Development, we develop many POC (Proof of Concept) code, and many times those tasks tend to be repetitive, writing the same code.</p><p>We also like to use Strong Types and take advantage of methods such as PostAsJson, ReadFromJson, etc.</p><p>So we decided to take all that we have in our POCs, along with some of the custom code we have in our applications and convert it to a NuGet package, and share it so our customers can use it.</p><p>The package was recently released as preview, and the official documentation will be here:</p><p><a href="https://github.com/efonsecab/PTI.Microservices.Library" target="_blank">https://github.com/efonsecab/PTI.Microservices.Library</a></p><p>Currently the package is in preview so it is free, however, the product will be accesible through a monthly subscription once it is out of preview, which should happen by the end of year 2020.</p><p><br /></p>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-67317551777493772002020-09-08T16:35:00.006-06:002020-09-08T16:49:50.266-06:00Why migrating to .NET Core, soon 5 is a must, specially after the pandemic<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU60hoKZOH_pocKfqKqQDPXO3CCuugMGVL4wL76jyOgR-ZaV7m83bhXzIMOV4w2roZOdqUl5mPHz6gdlkElSP7dTRTwdkPYuV5Sw9qVjj31Tfx2Y79dqH3HY68zvQNPkTv9ZriP3_UF0Yi/s1280/business-561387_1280.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="853" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU60hoKZOH_pocKfqKqQDPXO3CCuugMGVL4wL76jyOgR-ZaV7m83bhXzIMOV4w2roZOdqUl5mPHz6gdlkElSP7dTRTwdkPYuV5Sw9qVjj31Tfx2Y79dqH3HY68zvQNPkTv9ZriP3_UF0Yi/s320/business-561387_1280.jpg" width="320" /></a></div><p><br /></p><p>The COVID-19 pandemic has greatly affected companies, many being force to reduce their workforce, <br />many employees have had to accept new contract arrangements with reduced salary, <br />and people motivation and happiness has generally beeng reduced as well.</p><p>As result of all of this and more, companies had had to change their strategies, <br />many companies have had to become digital in order to survive, and since the end of the pandemic is actually unknown, companies need to reduce their expenses as much as possible, while still been agile and great in their operations.</p><p>Many companies still use old technologies, and many still are reluctant to migrate from .NET Framework to .NET Core, even if is it just for new applications.<br /></p><p>I have worked with .NET Framework since 1.1, and with .NET Core since it's first release candidates, and I also have migrated projects across versions of each, and from .NET Framework to .NET Core.</p><p>When you develop systems with .NET Core, you actually see the difference, not only in performance, but also in development speed, which is in turn heavily linked to the time it would take for a system to be ready for go to market.</p><p>Advantages of moving to .NET Core</p><p></p><ul style="text-align: left;"><li>Better systems performance</li><li>Less overhead in systems</li><li>Faster communication across systems</li><li>Cross platform support</li><li>Faster software development</li><li>Easier development of reusable components</li><li>Ready for Cloud-Native applications</li><li>Enhanced from the lessons learned in original .NET (.NET Framework)</li><li>Increased range of application types you can create</li><li>Save you time and money</li><li>More innovation opportunities</li></ul><div>Migrating not only reduces cost, while giving you an advantage over your competitors, but it is also a way to motivate your human resources, which has become even more vital after the pandemic.</div><p></p>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-84020262911135402952020-08-01T15:31:00.001-06:002020-08-01T15:31:13.275-06:00Introduction To Microsoft Blazor Part I - Develop Rich Client Side Web A...<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/GbuiVMMgorY" width="459"></iframe>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-5257120685197764832020-07-28T07:40:00.002-06:002020-07-29T09:10:46.791-06:00Why you must upgrade your systems as soon as possible<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMPIMYCz6-UbVlLDNLCZZPrkO13jbVIaZupaNhO8kPw2F4uf_T5PNEmJT9M46DBHL3QIH5HzBLHuWNIRlNwRPL0ROMlZPvYoApkOW-Qiky4POb2IJW9_nz6VLRbkylgQUZxJnZYLHgZaT8/s1280/code-1839406_1280.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="854" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMPIMYCz6-UbVlLDNLCZZPrkO13jbVIaZupaNhO8kPw2F4uf_T5PNEmJT9M46DBHL3QIH5HzBLHuWNIRlNwRPL0ROMlZPvYoApkOW-Qiky4POb2IJW9_nz6VLRbkylgQUZxJnZYLHgZaT8/s320/code-1839406_1280.jpg" width="320" /></a></div><div><br /></div><div><br /></div><h2 style="text-align: left;">Obsolence</h2><div>It is not a should, it is a must, you need to upgrade your business systems as soon as possible.</div>Software technologies are constantly evolving, and with it come new and better ways to create and develop complex systems.<div>The fast growth of technologies means that if you do not upgrade your systems as soon as possible they will eventually become obsolete and weaker against your competitor's.</div><div><br /></div><h2 style="text-align: left;">Higer Cost</h2><div>Not only your systems become obsolete, but the more time you wait to upgrade reflects into a higher cost for upgrading, meaning that what could cost just a hundred of dollars in the past, could potentially increase to thousands and even more depending on your systems complexity.</div><h2 style="text-align: left;">No developers found</h2><div>The longer you wait to upgrade your systems, the less software developers in the market for your specific technology.</div><div><br /></div><h2 style="text-align: left;">Security Risk</h2><div>Failing to upgrading your systems represents a huge security risk, for the longer you wait, the more susceptible you are to found security holes.</div><div><br /></div><h2 style="text-align: left;">Innovation</h2><div>By staying informed of edge technologies and constantly upgrading your systems, <br />you frequently find new opportunities to innovate, reduce your costs, and find new ways to generate business around your systems.<br /></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnrKErR7HVhRhs2LryDCo6mbHwx6BceMOczXFC_VuQIETe-xJNuUOMuEba1qefS1FBL1wvr9slBm0FAAfzk7j9p03kNZsoAM4h-inXuMIVuo9niXzAd6OdVLGPj_hfAALCNgkLihZRvhPT/s1280/innovation-561388_1280.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="853" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnrKErR7HVhRhs2LryDCo6mbHwx6BceMOczXFC_VuQIETe-xJNuUOMuEba1qefS1FBL1wvr9slBm0FAAfzk7j9p03kNZsoAM4h-inXuMIVuo9niXzAd6OdVLGPj_hfAALCNgkLihZRvhPT/s320/innovation-561388_1280.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><ol style="text-align: left;"><li><b>Do you upgrade your business systems every year? If you do not why not?</b></li><li><b style="text-align: center;">Which issues have you had due to not frequently upgrading your business software?</b></li></ol><div style="text-align: center;"><b><br /></b></div><div style="text-align: left;">Check this link to check some of the signs of outdated technology killings your business<br /><a href="https://www.cio.com/article/3411956/10-signs-outdated-it-systems-are-killing-your-business.html" target="_blank">https://www.cio.com/article/3411956/10-signs-outdated-it-systems-are-killing-your-business.html</a></div></div>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-27878089446411790752020-06-12T05:54:00.005-06:002020-06-12T05:56:11.195-06:00How To Convert You Facebook Data To Excel<br /><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/2g6GKIXLt_w" width="320" youtube-src-id="2g6GKIXLt_w"></iframe></div>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-13640793738170875272020-06-12T04:13:00.000-06:002020-06-12T04:13:08.119-06:00How To Use Microsoft Azure Text Analytics<br /><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/EstJHY28-vI" width="320" youtube-src-id="EstJHY28-vI"></iframe></div>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-60676329915411673852020-06-02T07:48:00.005-06:002020-06-03T06:05:33.132-06:00APIs To Translate Your Books<div><br /></div>This is one of the great things you can do with Azure Cognitive Serices: Translate Books.<br /><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/4W0oJBtLtso" width="320" youtube-src-id="4W0oJBtLtso"></iframe></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/lmJYzNJfNho" width="320" youtube-src-id="lmJYzNJfNho"></iframe></div><div class="separator" style="clear: both; text-align: center;"><br /></div>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-1986049674954665222020-06-01T06:35:00.000-06:002020-06-01T06:35:55.674-06:00Cloud based APIs to Detect Possible Signs of Depression and Risks of Suicidal Tendencies<br /><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/HzlOkaGHZSg" width="320" youtube-src-id="HzlOkaGHZSg"></iframe></div>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-80233746591060907012020-05-28T08:10:00.000-06:002020-05-28T08:10:22.326-06:00Introduction to #Microsoft #Azure Functions and @Azure Durable Functions<br /><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/MN4ZPIPnNTM" width="320" youtube-src-id="MN4ZPIPnNTM"></iframe></div>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-85498272889478104032020-05-27T08:23:00.002-06:002020-05-27T08:23:51.224-06:00How to Generate a Swagger Document per Controller in ASP .NET Core<br /><div><br /></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/SAFoPzvojhk" width="320" youtube-src-id="SAFoPzvojhk"></iframe></div><div><br /></div>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-65239265014636490972020-05-26T06:22:00.001-06:002020-05-26T06:22:34.537-06:00How to Convert Your Text To Speech With Microsoft AzureMicrosoft Azure gives you a lot of possibilities, among them, <br />it allows you to use Cognitive Services in order to convert your text to speech,<div>which is extremely useful when creating GPS enabled applications, <br />web applications with accesibility features, MOOC(Massive Open Online Courses),</div><div>videogames characters dialogs when you have no voice actors, and more.</div><div><br /></div><div>Watch the following videos to learn how to use Microsoft's Azure Speech APIs</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/n3dg-gS0rxQ" width="320" youtube-src-id="n3dg-gS0rxQ"></iframe></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/4pd_n7SO8y4" width="320" youtube-src-id="4pd_n7SO8y4"></iframe></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div><br /></div>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-57283125708615089672020-05-25T07:53:00.000-06:002020-05-25T07:53:20.785-06:00Deploy Production Ready Web Applications Quickly, Easy And Free With Microsoft AzureNow, you can easily publish your production ready web applications very quick and easy.<div>Do you have an angular application and want to reduce the complexity and costs of web hosting?</div><div>Check the following video to learn how.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/me7CW-HJc-I" width="320" youtube-src-id="me7CW-HJc-I"></iframe></div><div><br /></div>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-60845048562123599742019-05-13T20:46:00.001-06:002019-05-13T20:54:18.202-06:00Marketing Automation Tips<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMkPzwx7PfxCvzBgWLvYlttDJcM-u3YxAxi-RmqoK21xm5HLG-qskC32tesRYhj_w84TMZrIOW-Lb9XcgsAwynx2QiiPt2LtFP1RhJsXa7J_9_OaTdigW8KwC21oT5RkwIVuttAOmgtnwc/s1600/mobile-phone-1087845_1920.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1131" data-original-width="1600" height="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMkPzwx7PfxCvzBgWLvYlttDJcM-u3YxAxi-RmqoK21xm5HLG-qskC32tesRYhj_w84TMZrIOW-Lb9XcgsAwynx2QiiPt2LtFP1RhJsXa7J_9_OaTdigW8KwC21oT5RkwIVuttAOmgtnwc/s400/mobile-phone-1087845_1920.jpg" width="400" /></a></div>
<div style="text-align: center;">
<br /></div>
<br />
Marketing Automation is extremely useful if not vital, not only for businesses but for every person with the need to create prescence and grow audiences in the Internet.<br />
<div>
<br /></div>
<div>
There are many tools for Marketing Automation, today I would like to show you a small example of how to take advantage of Microsoft Azure Logic Apps to do some Marketing Automation in your Social Media Channels, in this case Twitter.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/bjAM0u0yioo/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/bjAM0u0yioo?feature=player_embedded" width="320"></iframe></div>
<div>
<br /></div>
efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-41310323494314790832019-05-12T12:39:00.000-06:002019-05-12T13:02:40.537-06:00Amazing Assets for you #Unity3d Projects<h3>
Suburb Neighborhood House Pack (Modular)</h3>
<div>
This package created by Finward Studios allows you to create beautiful residential neighborhoods.</div>
<div>
Take the advantage of the fact that is designed thinking on modulairty, <br />
allowing you to create many different houses with little efforts.</div>
<div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/-6rR-890Gb4/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/-6rR-890Gb4?feature=player_embedded" width="320"></iframe></div>
<br />
Buy this package today and you will have your neighbor done in no time.</div>
<div>
<br /></div>
<iframe src="https://api.assetstore.unity3d.com/affiliate/embed/package/72712/widget-wide?aid=1100lIqc&pubref=ptiblog" style="border: 0px; height: 130px; width: 600px;"></iframe><br />
<br />
<h3 style="box-sizing: inherit; color: #002835; font-size: 24px; font-weight: 400; margin: 0px 0px 7px; min-height: 36px; padding: 0px;">
<span style="background-color: white;"><span style="font-family: inherit;">
Digger - Caves & Overhangs</span></span></h3>
<div>
For a long time it has been very difficult to create caves in Unity3d, it's default terrain system was not designed for it, so one of the common approaches was to create 3d modles which would include the caves, holes, and similar structures to be placed into the scene.</div>
<div>
This package by Amandine Entertainment, allows you to create caves in your scene very easily.</div>
<div>
Buy it today, before it's too late (it's currently at a disccount)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/HN329dRKYSU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/HN329dRKYSU?feature=player_embedded" width="320"></iframe></div>
<br /></div>
<div>
<br /></div>
<iframe src="https://api.assetstore.unity3d.com/affiliate/embed/package/135178/widget-wide?aid=1100lIqc&pubref=ptiblog" style="border: 0px; height: 130px; width: 600px;"></iframe>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-86107311808175829262019-05-12T12:01:00.001-06:002019-06-04T08:17:37.119-06:00What is PTI Analyzer?PTI has been working in the development of tools which have the objective to create positive social impact and awareness on society taking adtange of the benefits included in combining Psychology and Technology.<br />
<div>
<br /></div>
<div>
PTI Analyzer nuget package is a small subset of a system which has the objective to aid in the prevention of suicide.</div>
<div>
<br /></div>
<div>
Long before people execute the act, they tend to give signs, which are not always easy to detect, especially if there is no knowledge about the subject.</div>
<div>
<br /></div>
<div>
PTI Analyzer nuget package current implementation and the Windows Client Tool allows a user to feed the system with facebook exported data, or excel files with text from a specific person, and once analyzed returns an excel file indictaging the sentiment over time, and personality attributes charts, which can be used as insights to identify if there are signs of depression or suicidal tendencies.<br />
<br />
Here you will find a preview for the Document Analyzer Feature in PTI Portal<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/rBfUtZNRhZ4/0.jpg" src="https://www.youtube.com/embed/rBfUtZNRhZ4?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br /></div>
<div>
<br /></div>
<div>
You can see some examples of the Windows Tool and Nuget pacakge in the videos below</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/OhqGsFZUTIU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/OhqGsFZUTIU?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/qYO0sCMA1dc/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/qYO0sCMA1dc?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/ai3r0H5pGZU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/ai3r0H5pGZU?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
We are currently working in the support for more features including</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul>
<li>Analysis of Photos along with mood changes over time.</li>
<li>Alerts on places, days, and months which tend to reduce positive emotions.</li>
<li>Predictions on possible dates where a person could have positive emotions reduced.</li>
</ul>
<br />
<div>
We are also working on the Web Portal Version including the previous mentioned features.</div>
<div>
<br /></div>
<div>
If you would like to keep learning more about the tool and the company in general, feel free to subscribe to our newsletter.</div>
<div>
<br /></div>
<div>
<br /></div>
<!-- Begin Mailchimp Signup Form -->
<link href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" rel="stylesheet" type="text/css"></link>
<style type="text/css">
#mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; }
/* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
</style>
<br />
<div id="mc_embed_signup">
<form action="https://pticostarica.us11.list-manage.com/subscribe/post?u=8b82a1556651be6b90abb39cb&id=b857414bb6" class="validate" id="mc-embedded-subscribe-form" method="post" name="mc-embedded-subscribe-form" novalidate="" target="_blank">
<div id="mc_embed_signup_scroll">
<h2>
Subscribe</h2>
<div class="indicates-required">
<span class="asterisk">*</span> indicates required</div>
<div class="mc-field-group">
<label for="mce-EMAIL">Email Address <span class="asterisk">*</span>
</label>
<input class="required email" id="mce-EMAIL" name="EMAIL" type="email" value="" />
</div>
<div class="mc-field-group">
<label for="mce-FNAME">First Name </label>
<input class="" id="mce-FNAME" name="FNAME" type="text" value="" />
</div>
<div class="mc-field-group">
<label for="mce-LNAME">Last Name </label>
<input class="" id="mce-LNAME" name="LNAME" type="text" value="" />
</div>
<div class="mc-field-group">
<label for="mce-MMERGE3">Company </label>
<input class="" id="mce-MMERGE3" name="MMERGE3" type="text" value="" />
</div>
<div class="mc-field-group input-group">
<strong>Email Format </strong>
<br />
<ul>
<li><input id="mce-EMAILTYPE-0" name="EMAILTYPE" type="radio" value="html" /><label for="mce-EMAILTYPE-0">html</label></li>
<li><input id="mce-EMAILTYPE-1" name="EMAILTYPE" type="radio" value="text" /><label for="mce-EMAILTYPE-1">text</label></li>
</ul>
</div>
<div class="clear" id="mce-responses">
<div class="response" id="mce-error-response" style="display: none;">
</div>
<div class="response" id="mce-success-response" style="display: none;">
</div>
</div>
<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
<br />
<div aria-hidden="true" style="left: -5000px; position: absolute;">
<input name="b_8b82a1556651be6b90abb39cb_b857414bb6" tabindex="-1" type="text" value="" /></div>
<div class="clear">
<input class="button" id="mc-embedded-subscribe" name="subscribe" type="submit" value="Subscribe" /></div>
</div>
</form>
</div>
<script src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js" type="text/javascript"></script><script type="text/javascript">(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[3]='MMERGE3';ftypes[3]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script>
<!--End mc_embed_signup-->efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-19955985842510699592019-05-12T07:49:00.003-06:002019-05-12T12:05:56.807-06:006 Books Every .NET Software Developer must have.NET Core has been growing up fast, and every day more people are taking advantage of it, while .NET Core has many similarities to .NET Framework, it has many new features and some ways to solve tasks have changed.<br />
<br />
<div>
Below you will find a list of books which would help you polish your .NET Core Skills<br />
<h3>
<a href="https://www.amazon.com/gp/product/150930441X/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=pticostaric0d-20&creative=9325&linkCode=as2&creativeASIN=150930441X&linkId=d3023f65c787f36fe76e96da35c8db3a" target="_blank">Programming ASP.NET Core (Developer Reference) 1st Edition</a></h3>
<div>
This books is a complete guide to .NET Core and many of the features and components surrounding it. You will learn: .NET Core, Entity Framework Core, ASP .NET Identity in .NET Core, Dependency Injection, using middleware, and more.</div>
<div>
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=qf_sp_asin_til&ad_type=product_link&tracking_id=pticostaric0d-20&marketplace=amazon&region=US&placement=150930441X&asins=150930441X&linkId=c15da70536a1ad3d05b1b7f92183a732&show_border=true&link_opens_in_new_window=true&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;">
</iframe></div>
<div>
<h3>
<a href="https://www.amazon.com/gp/product/B07B9S3YHL/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=pticostaric0d-20&creative=9325&linkCode=as2&creativeASIN=B07B9S3YHL&linkId=a1654f5cb9024551075b7972e6b1085f" target="_blank">Modern API Design with ASP.NET Core 2: Building Cross-Platform Back-End Systems</a><a href="https://www.amazon.com/gp/product/B07B9S3YHL/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=pticostaric0d-20&creative=9325&linkCode=as2&creativeASIN=B07B9S3YHL&linkId=a1654f5cb9024551075b7972e6b1085f" target="_blank">Professional C# 7 and .NET Core 2.0 7th Edition</a></h3>
</div>
<div>
While most of the times not visible to the main users of a system, back-ends are a vital part of most systems. Nowadays, it is very important to have the same applications accessible from many platforms (Web, Mobile, Windows, etc), while having the same back-end, this can be easily achieved by exposing your shared functionality as Web APIs.<br />
<br /></div>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=qf_sp_asin_til&ad_type=product_link&tracking_id=pticostaric0d-20&marketplace=amazon&region=US&placement=B07B9S3YHL&asins=B07B9S3YHL&linkId=ad43e8dda5b29f66d67833f4167da006&show_border=true&link_opens_in_new_window=true&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;">
</iframe><br />
<div>
<h3>
<a href="https://www.amazon.com/gp/product/1788395093/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=pticostaric0d-20&creative=9325&linkCode=as2&creativeASIN=1788395093&linkId=9ca731533128581f10a34e91eb86df5c" target="_blank">.NET Core 2.0 By Example: Learn to program in C# and .NET Core by building a series of practical, cross-platform projects</a></h3>
<div>
One of the best ways to learn is through examples. You will find a step by step guide from the installation of the required tools up to the implementation of applications running in .NET Core.</div>
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=qf_sp_asin_til&ad_type=product_link&tracking_id=pticostaric0d-20&marketplace=amazon&region=US&placement=1788395093&asins=1788395093&linkId=0af621b4358e8fa0759a773f9f670ae9&show_border=true&link_opens_in_new_window=true&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;">
</iframe>
<br />
<div>
<br /></div>
<h3>
<a href="https://www.amazon.com/gp/product/1789956692/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=pticostaric0d-20&creative=9325&linkCode=as2&creativeASIN=1789956692&linkId=2aeafa4091906c4b661889334773be9f" target="_blank">C# 7 and .NET: Designing Modern Cross-platform Applications: The Open Source revolution of .NET Core</a></h3>
<div>
As time passes and technologies evolve, the way to develop applications also change. Nowadays, it is required to create high-quality modern applications, which are cross-platform and many times open sourced. With this book you will learn the basis for .NET Core based moden web applications and microservices.<br />
<br /></div>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=qf_sp_asin_til&ad_type=product_link&tracking_id=pticostaric0d-20&marketplace=amazon&region=US&placement=1789956692&asins=1789956692&linkId=4cf31a8d522856d18c1a57cb98afba41&show_border=true&link_opens_in_new_window=true&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;">
</iframe>
<br />
<div>
<br /></div>
<br />
<h3>
<a href="https://www.amazon.com/gp/product/1786468883/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=pticostaric0d-20&creative=9325&linkCode=as2&creativeASIN=1786468883&linkId=4cd7b526bb2076ec5fd35d3201edeea2" target="_blank">Enterprise Application Architecture with .NET Core: An architectural journey into the Microsoft .NET open source platform</a></h3>
</div>
<div>
Design and Development of Enterprise Applications is more than just coding, it is a set of steps involving methodologies, best-practices and tools to manage the systems lifecycles from its inception up to the release to production and maintenance.</div>
<div>
With this book you will learn about DevOps, Agile, basics for enterprise level architectures, distributed computing, microservices, cloud-specific architectures, and even some market trends.<br />
<br /></div>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=qf_sp_asin_til&ad_type=product_link&tracking_id=pticostaric0d-20&marketplace=amazon&region=US&placement=1786468883&asins=1786468883&linkId=04744d418b4e40c18412db0978b2afd3&show_border=true&link_opens_in_new_window=true&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;">
</iframe><br />
<br />
<h3>
<a href="https://www.amazon.com/gp/product/1788470044/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=pticostaric0d-20&creative=9325&linkCode=as2&creativeASIN=1788470044&linkId=3bdeb5ddc41be163ec3ed64b8bc61aa5" target="_blank">C# 7 and .NET Core 2.0 High Performance: Build highly performant, multi-threaded, and concurrent applications using C# 7 and .NET Core 2.0</a></h3>
<div>
Modern applications require to respond very quickly and efficiently, though also many times these systems have the need to perform long-running tasks, which, if not designed correctly, can create bottlenecks and heavily reduce the system performance. With this book, you will learn to design and implement highly performance systems by using such as multithreading and microservices.</div>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=qf_sp_asin_til&ad_type=product_link&tracking_id=pticostaric0d-20&marketplace=amazon&region=US&placement=1788470044&asins=1788470044&linkId=74152ac33ab1d53f7e89f7a04a9f6724&show_border=true&link_opens_in_new_window=true&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;">
</iframe>
<br />
<div>
<br /></div>
<div>
<br /></div>
</div>
efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-41486684700741864912019-03-17T13:27:00.004-06:002019-06-28T12:55:43.824-06:00Leveraging the power of technology to identify cases of depression and prevent suicides<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdAYOQUeVGhAY3V4g0KCi5gmGbYT0eucKOyDzursFDPhYnULfYbq7dmvNNngBALQeFjA8ogDe6HOgsnOTEMjQixNBDMSmIeDVACghnWWjAbZ6vTAk24vZ9O4_kRTxWl5sIVOsu05n0Hgms/s1600/pink-rose-on-empty-swing-3656894_1920.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="940" data-original-width="1600" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdAYOQUeVGhAY3V4g0KCi5gmGbYT0eucKOyDzursFDPhYnULfYbq7dmvNNngBALQeFjA8ogDe6HOgsnOTEMjQixNBDMSmIeDVACghnWWjAbZ6vTAk24vZ9O4_kRTxWl5sIVOsu05n0Hgms/s400/pink-rose-on-empty-swing-3656894_1920.jpg" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
Depression is one of the most common pathologies present in human beings, and however, it is not always evident, persons with depression and suicidal tendencies tend to present behavioral patterns many times so subtle that get unnoticed by most people, and this is something normal, since not everyone has knowledge on these topics, after all, one simply can't know everything, and here is where technology can help us, cloud computing and artificial intelligence can be integrated with psychology studies, and help identify these cases.<br />
<div>
<br /></div>
<div>
By leveraging the power of technology you can help parents identify possible signs of depression on their children utilizing the children's social networks data.</div>
<div>
<br /></div>
<div>
With the data it is possible to get important metrics like how many times per week a user has posted in a social network, how possitive or negative the person has been throughout the time, association betwwen a negative mood and places visited, the many different emotions a person has through the time, like happiness, anger or sadness.</div>
<div>
We can also get information on the most common used phrases, and map them to common words and phrases used by persons with depression.</div>
<div>
<br /></div>
<div>
Below you will see some sample Power BI reports consuming the analyzed data for a user's social network.</div>
<div>
<br /></div>
<div>
<b>Weekly Posts</b></div>
<div>
Some studies mention that if a person posts more than 3-5 times per week, that may be a possible indicator of a person having depression, of course that indicator alone mean nothing, when compared to other indicators like the emotions and negativity of posts, it begins to take meaning.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFnqrRdwOXhhNbrXZKSnwo8OQ68jBHy1-V238uKYe2bMW5wwenIumVGQNVFlLsPlOXh7HPeBM9Fe0y0rzoGxEsIH1eTjNcJIKvVnr8Zq36YwzorDs9cyeHZNqD6QDcT0RhDTjkaC7tO9zt/s1600/Weekly+Posts.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="901" data-original-width="1600" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFnqrRdwOXhhNbrXZKSnwo8OQ68jBHy1-V238uKYe2bMW5wwenIumVGQNVFlLsPlOXh7HPeBM9Fe0y0rzoGxEsIH1eTjNcJIKvVnr8Zq36YwzorDs9cyeHZNqD6QDcT0RhDTjkaC7tO9zt/s400/Weekly+Posts.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Weekly Posts</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
<br /></div>
<div>
<b>Monthly Sentiment</b></div>
<div>
How positive or negative a person has been during a particular period and the trend of each can also be a possible indicator of depression. How sad and dark/obscure the person's messages have been can also be a possible indicator.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv9O9U3R9r1tMI-sFj8r3ndEcCgC5HR0AATood7aW95ZlouYRDhRmgQKNTV4SyIpZxzqVyChuHAyEt6CAAaLyV7krClgwviRI-7-Kqi9PeZFP0iOTumWJBoZDRLI_Cj5V2MYdqbZ0W2Kgh/s1600/Sentiment+Per+Year.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="744" data-original-width="1600" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv9O9U3R9r1tMI-sFj8r3ndEcCgC5HR0AATood7aW95ZlouYRDhRmgQKNTV4SyIpZxzqVyChuHAyEt6CAAaLyV7krClgwviRI-7-Kqi9PeZFP0iOTumWJBoZDRLI_Cj5V2MYdqbZ0W2Kgh/s400/Sentiment+Per+Year.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sentiment Per Year</td></tr>
</tbody></table>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhscGDnaqBMZJigYu2om_che6ARugua6Uxtp1OBL0RgTuJPVMFSKufM5uHcPFpqybNp1yThgcGNfgfRkQxYBoYOrrG6nHV9R7BsSl7w-ACNXBU8N4l8nTAQmv24zZ9nPe2iSIpvmauYBNf/s1600/Sentiment+Per+Month.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="744" data-original-width="1600" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhscGDnaqBMZJigYu2om_che6ARugua6Uxtp1OBL0RgTuJPVMFSKufM5uHcPFpqybNp1yThgcGNfgfRkQxYBoYOrrG6nHV9R7BsSl7w-ACNXBU8N4l8nTAQmv24zZ9nPe2iSIpvmauYBNf/s400/Sentiment+Per+Month.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sentiment Per Month</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
<b>Association Between Sentiment and Places</b></div>
<div>
With the data analysis it is possible to identify association between sentiment and the visited places, which is a useful key to check if when a person has been negative tends to visits a place or if the negativity tends to be a result of visting a specific place.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm5coPhnJ5_p4JCN5QoLhzSjx8rVXX940CgbwheTPP96qav0Gn-K7z9bHNAqkMvAzc26o4lh-HdiLglknti0zYzX5F7T8yAwRjWLPXRe96vbXW7mEn5q1GQgo8KSK5Gce70gt3zsXHgFaa/s1600/Sentiment+and+Places+Association.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="922" data-original-width="1600" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm5coPhnJ5_p4JCN5QoLhzSjx8rVXX940CgbwheTPP96qav0Gn-K7z9bHNAqkMvAzc26o4lh-HdiLglknti0zYzX5F7T8yAwRjWLPXRe96vbXW7mEn5q1GQgo8KSK5Gce70gt3zsXHgFaa/s400/Sentiment+and+Places+Association.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sentiment And Place Association</td></tr>
</tbody></table>
<br />
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSTaBZvQbFMzT8hEPFVsQmNwQcbyzeuaaY0ABCMBE1a4R3NQyouIcUxz9p4s-NDLyUcGlR8FvEkx8VTleyp9PaTMbjNgLQn5leuCsPahUFgdkN0OAMobMqW4iNqfZMvUzdUh3P3rz3N5FO/s1600/Emotional+Analysis+v2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="766" data-original-width="1600" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSTaBZvQbFMzT8hEPFVsQmNwQcbyzeuaaY0ABCMBE1a4R3NQyouIcUxz9p4s-NDLyUcGlR8FvEkx8VTleyp9PaTMbjNgLQn5leuCsPahUFgdkN0OAMobMqW4iNqfZMvUzdUh3P3rz3N5FO/s400/Emotional+Analysis+v2.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Emotional Analysis</td></tr>
</tbody></table>
<br />
Furthermore, the data can be compared to case of study and even create some preddictions like when a person will possibly feel sad, or angry in the future.<br />
<br />
<b>Weekly Sentiment With Filters</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGZkylyyBnNlTX6p7C8DeCho6UubQG6lj00HATtOrzAxecBdM_jShEQW0xkcsZnrWJBIqsnq2I2CqSRuYnosaxhe9Z4dOyymAWcXkQkquk8emgWr9LAY5wF6h9MVd4Kc6d3-NyZylQyuQB/s1600/Power+BI+-+Weekly+Sentiment.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGZkylyyBnNlTX6p7C8DeCho6UubQG6lj00HATtOrzAxecBdM_jShEQW0xkcsZnrWJBIqsnq2I2CqSRuYnosaxhe9Z4dOyymAWcXkQkquk8emgWr9LAY5wF6h9MVd4Kc6d3-NyZylQyuQB/s400/Power+BI+-+Weekly+Sentiment.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The previous report takes advantage of Power BI filtering capabilities to help the user identify sentiment in a range, and the weeks and months where that happens. In a real case scenario a therapist or a father can search for data where sentiment is below a given threshold (45% for example),, and the report will show the months and weeks in the year when this has happened.</div>
<br />
Posts with Sentiment and Places<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwif7RY44a1Io7Zh1fEmVuN-z9IXNK69GwMqeRStjqTnkHcT513sdIkI_nWsKlGNiMpyi8FxkGbM61zUIWU4Sh0CT8Py5WDhl1B6F_2STuSveoW2j6TU3Ih4vjqzLeojNEqCLrBNudogUq/s1600/Power+BI+-+Posts+With+Sentiment+and+Place.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwif7RY44a1Io7Zh1fEmVuN-z9IXNK69GwMqeRStjqTnkHcT513sdIkI_nWsKlGNiMpyi8FxkGbM61zUIWU4Sh0CT8Py5WDhl1B6F_2STuSveoW2j6TU3Ih4vjqzLeojNEqCLrBNudogUq/s400/Power+BI+-+Posts+With+Sentiment+and+Place.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The previous report takes advantage of Power BI filtering capabilities to help the user identify the posts where there is a sentiment in a given range. This report allows the user to associate the places where a sentiment is low, which can be used as additional insight to discover places that could be causing depression, or the places a person visits in order to run away from depressive emotions.</div>
<br />
<br />
<div>
For more information about the project you can send an email to <a href="mailto:services@pticostarica.com">services@pticostarica.com</a></div>
efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-3385641468598265712018-11-25T11:23:00.002-06:002018-11-25T11:25:19.702-06:00How to set row creation info for your Entity Framework Core entities<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEK0pKQKq3wrqs95wMLFMH9DoxYMlAmjKQhF8MwvQVV23_pyLj8Dluc1vybJFBGZg1xxi83I7gRTy5i4XwTN9bRm8EWwVEL1XgME9tiInIDasSO5Pz4xWiHDkNmVggJtdk2ml6l7DZPJN_/s1600/programming-1873854_1920.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="880" data-original-width="1600" height="218" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEK0pKQKq3wrqs95wMLFMH9DoxYMlAmjKQhF8MwvQVV23_pyLj8Dluc1vybJFBGZg1xxi83I7gRTy5i4XwTN9bRm8EWwVEL1XgME9tiInIDasSO5Pz4xWiHDkNmVggJtdk2ml6l7DZPJN_/s400/programming-1873854_1920.png" width="400" /></a></div>
<br />
<br />
There are many time where we need to have tracking where our data rows were originated from,<br />
let's say we need this information:<br />
<br />
<ul>
<li>Creation Date & Time</li>
<li>Source Application</li>
<li>Source Application IP Address</li>
<li>Originator User</li>
</ul>
<div>
<br /></div>
<div>
Depending on how big our system is, and how good or bad it is designed, it could be a real pain to send this information, specially if our system is a set of multiple applications.</div>
<div>
So, what we could do?</div>
<div>
<br /></div>
<div>
When using Entity Framework Core, we can take the advantage of it using Code First and Partial Classes, so what we can do is the following</div>
<div>
<br /></div>
<div>
<ol>
<li>Create and interface with the columns representing the Source Information</li>
<li>Create a Partial class for each Entity which requires the Origin information and make it implement the previously created interface.</li>
<li>Create a Partial class for our DbContext</li>
<li>Create a custom Validation method which would check if the entity uses the interface, and if the fields are not assigned, set them a value</li>
<li>In the partial class override the Save methods, and invoke the previously created validation method</li>
</ol>
<div>
<br /></div>
</div>
<div>
Sample code:</div>
<div>
<br /></div>
<blockquote class="tr_bq">
<blockquote class="tr_bq">
public partial class MainContext : DbContext</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
protected string ConnectionString { get; set; }</blockquote>
<blockquote class="tr_bq">
public MainContext(string connectionString)</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
this.ConnectionString = connectionString;</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
if (!optionsBuilder.IsConfigured)</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
optionsBuilder.UseSqlServer(ConnectionString);</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
public override int SaveChanges()</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
ValidateAndSetDefaults();</blockquote>
<blockquote class="tr_bq">
return base.SaveChanges();</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
public override int SaveChanges(bool acceptAllChangesOnSuccess)</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
ValidateAndSetDefaults();</blockquote>
<blockquote class="tr_bq">
return base.SaveChanges(acceptAllChangesOnSuccess);</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
public override Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default(CancellationToken))</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
ValidateAndSetDefaults();</blockquote>
<blockquote class="tr_bq">
return base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken);</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken))</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
ValidateAndSetDefaults();</blockquote>
<blockquote class="tr_bq">
return base.SaveChangesAsync(cancellationToken);</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
private void ValidateAndSetDefaults()</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
//Check https://www.bricelam.net/2016/12/13/validation-in-efcore.html</blockquote>
<blockquote class="tr_bq">
var entities = from e in ChangeTracker.Entries()</blockquote>
<blockquote class="tr_bq">
where e.State == EntityState.Added</blockquote>
<blockquote class="tr_bq">
|| e.State == EntityState.Modified</blockquote>
<blockquote class="tr_bq">
select e.Entity;</blockquote>
<blockquote class="tr_bq">
foreach (var entity in entities)</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
if (entity is IOriginatorInfo)</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
IOriginatorInfo entityWithOriginator = entity as IOriginatorInfo;</blockquote>
<blockquote class="tr_bq">
if (String.IsNullOrWhiteSpace(entityWithOriginator.SourceApplication))</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
entityWithOriginator.SourceApplication = System.Reflection.Assembly.GetEntryAssembly().FullName;</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
if (String.IsNullOrWhiteSpace(entityWithOriginator.OriginatorIpaddress))</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
entityWithOriginator.OriginatorIpaddress = String.Join(",",</blockquote>
<blockquote class="tr_bq">
PTI.NetCore.CommonUtilities.NetworkUtilities.GetCurrentHostIPv4Addresses());</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
if (entityWithOriginator.RowCreationDateTime == DateTimeOffset.MinValue)</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
entityWithOriginator.RowCreationDateTime = DateTimeOffset.UtcNow;</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
if (String.IsNullOrWhiteSpace(entityWithOriginator.RowCreationUser))</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
try</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
entityWithOriginator.RowCreationUser = System.Threading.Thread.CurrentPrincipal.Identity.Name;</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
catch (Exception)</blockquote>
<blockquote class="tr_bq">
{</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
var validationContext = new ValidationContext(entity);</blockquote>
<blockquote class="tr_bq">
Validator.ValidateObject(</blockquote>
<blockquote class="tr_bq">
entity,</blockquote>
<blockquote class="tr_bq">
validationContext,</blockquote>
<blockquote class="tr_bq">
validateAllProperties: true);</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
}</blockquote>
<blockquote class="tr_bq">
}</blockquote>
</blockquote>
efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0San José Province, Escazu, Costa Rica9.920695 -84.14615199.8894125 -84.1864924 9.9519775 -84.105811400000007tag:blogger.com,1999:blog-3364769811062992436.post-7192570398509193862016-12-06T17:19:00.002-06:002016-12-12T19:24:15.050-06:00Recommended Assets for Unity<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRe9rcNTMMb6bd0-zi1mt8AMQO5kbvVZ1H1eAeh_OTBDa5peqpMsU7jrgHzH5MQOK6KSSRoTKef9_PtiZ2aNJlVhBa_hNJ2tOnbQEXUGCoYsM4sE3aFNJo2iq_snEWws4YrLUJz_axADOR/s1600/minecraft-1106261_1280.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRe9rcNTMMb6bd0-zi1mt8AMQO5kbvVZ1H1eAeh_OTBDa5peqpMsU7jrgHzH5MQOK6KSSRoTKef9_PtiZ2aNJlVhBa_hNJ2tOnbQEXUGCoYsM4sE3aFNJo2iq_snEWws4YrLUJz_axADOR/s400/minecraft-1106261_1280.png" width="400" /></a></div>
<br />
<br />
If you are starting in Game Development or if you just want to speed up your development you will probably want to use resources from the Asset Store, in this post we will recommend you some of those we like the most.<br />
<h3>
<a href="https://www.assetstore.unity3d.com/#!/content/8081?aid=1100lIqc&pubref=Blogger" target="_blank">Urban Construction Pack by Quantum Theory</a></h3>
This package gives you a lot of value, it allows you to quickly and easily create cities, from roads to modular buildings, allowing you to heavily customize your designs, it also has an integrated traffic light system.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/b8_60op8UUo/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/b8_60op8UUo?feature=player_embedded" width="320"></iframe></div>
<br />
<h3>
<a href="https://www.assetstore.unity3d.com/#!/content/23515?aid=1100lIqc&pubref=Blogger" target="_blank">100+ Magic Particle Effects by UETools</a></h3>
This package allows you to create cool particle based elements such as magic<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/7yH_8TdFEaw/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/7yH_8TdFEaw?feature=player_embedded" width="320"></iframe></div>
<br />
<h3>
<a href="https://www.assetstore.unity3d.com/#!/content/35605?aid=1100lIqc&pubref=Blogger" target="_blank">2D Animated Fantasy Knight, Dragon and Princess Pack by Murlyka</a></h3>
This is a must package if you like Knights and Dragons, or if you want to create an interesting game such as <a href="https://www.youtube.com/playlist?list=PLGPt1G9l1TyweW3N7LFAl7ZQsvU-jD3zl" target="_blank">Dragon Adventures (Videos are in spanish)</a><br />
<br />
<h3>
<a href="https://www.assetstore.unity3d.com/#!/content/19955?aid=1100lIqc&pubref=Blogger" target="_blank">2D Platformer Art Pack by One Point Six Studio</a></h3>
This package can be used to create 2D platformers. <a href="https://www.youtube.com/playlist?list=PLGPt1G9l1TyweW3N7LFAl7ZQsvU-jD3zl" target="_blank">Dragon Adventures (Videos are in spanish)</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/rlcsWIf8UvI/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/rlcsWIf8UvI?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
<h3>
<a href="https://www.assetstore.unity3d.com/#!/content/2337?aid=1100lIqc&pubref=Blogger" target="_blank">Substance Database 2.0 by Allegorithmic</a></h3>
If you want to have scenes looking awesome this is a must have, Substance Database gives you over 1000 substances including 650 Physical Based Rendering materials.<br />
<br />
<h3>
<a href="https://www.assetstore.unity3d.com/#!/content/65047?aid=1100lIqc&pubref=Blogger" target="_blank">Low Poly City Pack by Dynamic Art</a></h3>
Another must have, this package allows you to quickly create amazing cities at a fairly low price.<br />
<h3>
<a href="https://www.assetstore.unity3d.com/#!/content/13080?aid=1100lIqc" target="_blank">Christmas Megapack / Low Poly by BRAiNBOX</a></h3>
This package will allows you to create a great X-mas based project.<br />
<br />
If you have or know any assets you'd like to include in this list let us by writing an email to <a href="mailto:services@pticostarica.com">services@pticostarica.com</a>efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0tag:blogger.com,1999:blog-3364769811062992436.post-656323724994286742016-10-29T09:13:00.002-06:002016-10-29T09:53:04.615-06:00¿Qué son los videojuegos de impacto social?<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwipV4kc50V-7vZzlBVu1S0ATeMmZkMBQmrgHGNZxfiKxGHO8MVvht-_SDYJPpijXdlk9ptjKVivFr4JTIjHV10eIzmD533gLVG6-uCS-9hJnDcXLCUmVi_xa3cfpm9jYeuWYu3vtvVc6m/s1600/right-597133_1920.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwipV4kc50V-7vZzlBVu1S0ATeMmZkMBQmrgHGNZxfiKxGHO8MVvht-_SDYJPpijXdlk9ptjKVivFr4JTIjHV10eIzmD533gLVG6-uCS-9hJnDcXLCUmVi_xa3cfpm9jYeuWYu3vtvVc6m/s400/right-597133_1920.jpg" width="400" /></a></div>
<br />
<br />
Son videojuegos que van más allá de solamente ocio y entretenimiento,<br />
los videojuegos de impacto social tienen un propósito, por ejemplo:<br />
ayudar a las personas a mejorar sus habilidades sociales,<br />
estudiar el comportamiento de personas mediantes simulaciones controladas,<br />
curar las fobias, concientizar sobre los problemas en la sociedad,<br />
solucionar problemas como el cambio climatico, la discriminación, la pobreza,<br />
entre otros. <br />
<br />
A los videojuegos de impacto social también se les conoce con el nombre de "<a href="https://en.wikipedia.org/wiki/Games_for_Change" target="_blank">games for change</a>", nombre que refleja el propósito de estos videojuegos, generar un cambio positivo en la sociedad.<br />
<br />
Estos videojuegos pertenecen a la categoría denominada "<a href="https://en.wikipedia.org/wiki/Serious_game" target="_blank">serious games</a>" (juegos serios), que al igual que los videojuegos de impacto social, van más alla del entretenimiento, sin embargo los juegos serios no necesariamente tienen un propósito de impacto social o apoyo a causas en pro de la sociedad.<br />
<br />
Algunos videojuegos de impacto social que podemos nombrar son<br />
<br />
<ul>
<li>Project HTH</li>
<li>Zephyr 2D</li>
<li>Outcasted</li>
<li>Never Alone</li>
<li>Macon Money</li>
<li>People Power</li>
<li>Participatory Chinatown</li>
<li>Interrobang</li>
<li>Evoke</li>
<li>Battlestorm</li>
<li>Peacemaker</li>
<li>Life is Strange</li>
<li>Gone Home</li>
<li>Reach for the Sun</li>
<li>This War of Mine</li>
</ul>
<div>
Veamos un poco de algunos de ellos</div>
<div>
<br /></div>
<h3>
<a href="https://www.pticostarica.com/Game/ProjectHTH" target="_blank">Project HTH</a></h3>
<div>
Es un videojuegos de simulación en 3D actualmente en desarrollo, orientado a conscientizar sobre las muchas y diversas causas que pueden llevar a cualquier persona a encontrarse en una situacion de indigencia. <br />
Este videojuego busca educar a las personas miembros de la sociedad, de manera que logren comprender mejor el problema de indigencia, y se logre generar mayor empatía y menos discriminación hacia las personas en situaciones de indigencia; busca además darle a los ciudadanos herramientas con las que pueden ayudar a solucionar el problema, de la mejor manera posible.</div>
<div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/9pUcdzi4qbU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/9pUcdzi4qbU?feature=player_embedded" width="320"></iframe></div>
<br /></div>
<h3>
<a href="https://www.pticostarica.com/Game/Zephyr2D" target="_blank">Zephyr 2D</a></h3>
<div>
Es un videojuego RPG 2D multiplataforma, actualmente en desarrollo.<br />
Este videojuego busca concientizar sobre la violencia hacia los animales al mismo tiempo que mediante una manera particular buscar mostrar que no todo es lo que parece a simple vista.<br />
<h3>
<br /><a href="http://outcastedgame.com/" target="_blank">Outcasted</a></h3>
Es un videojuego que busca concientizar acerca de la vida de las personas indigentes, y como en muchas ocasiones se ven indefensos y el salir de dicha situacion se encuentra fuera de su control.<br />
<a href="http://neveralonegame.com/" target="_blank"><br /></a>
<br />
<h3>
<a href="http://neveralonegame.com/" target="_blank">Never Alone</a></h3>
</div>
<div>
Es un videojuego que busca compartir historias y las creencias de los <a href="https://en.wikipedia.org/wiki/I%C3%B1upiat" target="_blank">Inupiaq</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/VnY21Fg5G1Y/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/VnY21Fg5G1Y?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
<h3>
<a href="https://en.wikipedia.org/wiki/This_War_of_Mine" target="_blank">This War of Mine</a></h3>
Es un videojuego basado en la guerra, un poco distinto a lo tradicional.<br />
This War of Mine se enfoca en mostrar lo que viven las personas que se encuentran sufriendo las consecuencias de las guerras a su alrededor, lo extremadamente complicado que se vuelve su mundo, y su lucha por sobrevivir.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/BALBUyoTxQM/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/BALBUyoTxQM?feature=player_embedded" width="320"></iframe></div>
<div>
<br />
<br />
Estos son solamente algunos ejemplos de videojuegos que van más alla del entretenimiento y enfocados en generar impacto social positivo.<br />
<br />
<br />
Para conocer más sobre videojuegos de impacto social <a href="http://www.gamesforchange.org/play/" target="_blank">puede visitar este enlace</a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Déjanos saber en los comentarios que otros videojuegos de impacto social conoces y qué te llama la atencion de ellos.<br />
<br />
<h4>
<a href="https://www.youtube.com/c/pticostaricags" target="_blank">Visite nuestro canal de youtube</a> y aprenda sobre creación videojuegos, programación y tecnologías de nube</h4>
<br />
<br />
<br />
<br />
<br /></div>
efonsecabhttp://www.blogger.com/profile/04098005088857647654noreply@blogger.com0