Author Archives: Robert Haken

About Robert Haken

Software Architect, Founder at HAVIT, Microsoft MVP - ASP.NET/IIS

IoC jak a proč – záznam [Jiří Činčura, HAVIT Vzdělávací okénko 23.11.2017]

Záznam z interního vzdělávacího okénka HAVIT z 23.11.2017 je publikován na našem HAVIT YouTube Channel. Téma prezentoval Jiří Činčura a záznam zahrnuje i větší část následné diskuze (omluvte sníženou kvalitu zvuku v této části):

Záměrem tohoto setkání bylo shrnutí a designová rozprava nad smysluplností používání IoC/DI pro line-of-business aplikace a custom-development. V HAVITu se snažíme dávat přednost odbornému porozumění a hledání konsensu před silovým uplatňováním standardů. Setkání nám pomohlo utřídit myšlenky, prostor dostal i alternativní pohled na věc.

(Počáteční narážka na performance statických metod viz předcházející Twitter diskuze a z ní indukované srovnání výkonu statických a instančních volání metod od Jirky Činčury.)

 

Shrnutí mého #NoResharper challenge s Visual Studio 2017

Jak přišlo na začátku roku Visual Studio 2017, rozhodl jsem se jako obvykle zkusit svůj #NoResharper challenge. S každou novou major-verzí VS zkouším, jestli by se dala používat bez Resharperu. Obecně mám rád mnoho z funkcí Resharperu, ale cena, kterou za to mám zaplatit ztrátou výkonu a stability je velkým protivníkem. Štve mě taky, že R# není v podstatě rozšířením, ale znásilní VS tak, že překryje dost podstatnou část jeho funkcí zcela vlastní implementací. Snažím se proto opakovaně najít light-weight setup bez Resharperu, kde bych si vystačil jen s čistým VS a pár lehkými doplňky do něj.

Resharper jsem v minulosti používal intenzivně. V dobách Visual Studio .NET a Visual Studio .NET 2003 to byla nezbytnost. VS2005 přišlo s prvními refaktoringy, tehdy mi to stačilo a fungoval jsem bez R# až zhruba do VS2013, kdy jsem se nechal přesvědčit dát R# další šanci. Resharper mi tehdy výborně posloužil pro nové výzvy spojené s moderními vývojářskými technikami (IoC/DI, unit-testing, …), protože pro mnoho jeho funkcí nebyla rozumná „lehká“ alternativa (dosud nepřekonané T-navigace, Go to definition, Introduce and initialize a field from constructor parameter, Adjust namespaces, atp.).

S příchodem Visual Studia 2017 se poměr sil opět změnil. VS2017 se svojí vylepšenou T-navigací (Go to…), s pomocí Roslyn-based refactorings (e.g. Roslynator) a updaty přinášejícími stále nové vylepšení produktivity mě nejenom zlákalo pro další #NoResharper challenge, ale po zhruba deseti měsících mohu konstatovat, že mi Resharper vůbec nechybí.

Moje aktuální Visual Studio je:

Když tak koukám na ten seznam, vypadá to, že bych vlastně mohl fungovat s úplně čistým VS2017 bez větších kompromisů. Největší překvapení pro mě bylo zjištění, že mám Roslynator vypnutý a ani jsem si toho nevšiml. (Vypnul jsem ho s příchodem VS2017 15.3 update, kdy jsem chtěl vyzkoušet novinky v něm.)

(Roslynator Refactorings jsem si zase zapnul, protože mi nepřinášel žádné komplikace, jen drobné příjemné pomůcky pro kódování. Nicméně se ukázalo, že kdyby se mělo sebemenší zaváhání objevit, klidně se obejdu bez něj.)

UPDATE: Pokud postrádáte CamelHumps, zkuste Subword Navigation extension.

 

 

 

 

Connect(); 2017 – přehled oznámených novinek

Od 15. do 17. listopadu proběhla online vývojářská konference Microsoft Connect(); 2017, která přinesla řadu zásadních oznámení a novinek. Pro základní orientaci přináším přehled těch nejdůležitějších. Záznamy jednotlivých session si můžete stále přehrát.

Visual Studio & Developer Productivity

https://blogs.msdn.microsoft.com/visualstudio/2017/11/15/the-latest-in-developer-productivity-and-app-experiences/

Team Foundation Server / Visual Studio Team Services

https://blogs.msdn.microsoft.com/bharry/2017/11/15/connect-announcements/

  • Team Foundation Server 2018 – final release. Přináší pro on-premise funkčnost, kterou již známe z onlinového VSTS:
    • Mobile work item experience – responsivní podoba TFS webu
    • Wiki – jednoduchá Wiki založená na GIT-repository s Markdown soubory (ála GitHub)
    • Git Forks – forking ála GitHub
    • GVFS – viz dále
    • Graphical release definition editor
    • Deployment groups
  • GVFS – Git Virtual File System – umožní efektivní práci s obrovskými repository (ála Windows source codes), kdy jsou na pracovní stanici staženy pouze minimální potřebné soubory a zbytek zůstává „virtuální“ a je stahován dle potřeby
  • Azure DevOps Projects – zjednodušeně řečeno onboarding wizzard pro Azure a VSTS, který pro různé typy projektů (.NET, Java, Node.js, Python, …) založí šablonu aplikace, GIT repo, CI/CD pipeline, atd.
  • YAML – Pipeline as code (public preview) – podpora YAML pro VSTS buildy – víceméně textová podoba vytváření build definic do VSTS.
  • Release management gates – možnost vytváření podmínek pro posun release do dalšího deployment prostředí, např. „žádné nové bugy“ (obecně libovolné Work Item Query), stav Azure Monitoru, či dle výsledku volání libovolného REST API či Azure Function.
  • VSTS Symbol Server (public preview)  – TFS (resp. zatím VSTS) se konečně stává symbol-serverem pro uchovávání a publikování PDB souborů. S každým buildem lze PDB symboly uchovat a následně je získávat do Visual Studia, Windows Debuggeru či jakoukoliv další potřebu.
  • Hosted MacOS Build Agents – ve VSTS se objevila možnost poslat build na Hosted MacOS agenta. Mimochodem je tam nově i Hosted Linux.
  • TFS data import service (general availability) – finální release služby pro import on-premise databáze TFS do online VSTS
  • VSTS CLI (public preview) – command-line tools pro VSTS a TFS, git-like commands, atp.

Data

  • Microsoft SQL Operations Studio (Preview) – odlehčená multiplatformní podoba SQL Server Management Studia
  • Azure Databricks (Preview) – Apache-Spark jako služba na Azure
  • Apache Cassandra API for Azure Cosmos DB (Preview) – jako další možnost připojení na Cosmos DB přibylo API dle Apache Cassandra.
  • Microsoft is joining the MariaDB Foundation – MariaDB – fork MySQL od jejího původního autora, získává podporu Microsoftu coby platinum sponzora tohoto open-source projektu. (Mimochodem věděli jste, že se obě tyto databáze vlastně jmenují po dceři jejich autora? MySQL není „moje“, ale švédská Maruška.)

Xamarin

https://blog.xamarin.com/xamarin-announcements-microsoft-connect-2017/

  • .NET Embedding
  • Xamarin.Forms 2.5
    • Xamarin.Forms Native Forms
    • Xamarin.Forms Layout Compression
    • Xamarin.Forms & XAML Standard
  • Xamarin Live Player
  • Xamarin Workbooks open-sourced

AI – Artificial Intelligence

Zaznělo mnoho dalších drobností a náznaků, spousta produktů releasovalo drobnější updates. Směřující myšlenky se točily rozhodně kolem AI.

TFS – Work Item Queries – záznam [Jiří Kanda, HAVIT Vzdělávací okénko 9.11.2017]

Záznam z interního vzdělávacího okénka HAVIT z 9.11.2017 je publikován na našem HAVIT YouTube Channel. Téma prezentoval Jiří Kanda:

Dotčená témata:

  • Search work items
  • Queries Editor
  • @Me, @Today, @CurrentIteration
  • operátor Was Ever
  • Charts
  • Type of Queries – Flat List, Tree of Work Items, …

Quartz .NET – sekvenční zřetězení jobů [Martin Havel, HAVIT Vzdělávací okénko 2.11.2017]

Záznam z interního vzdělávacího okénka HAVIT z 2.11.2017 je publikován na našem HAVIT YouTube Channel. Téma prezentoval Martin Havel:

Dotčená témata:

  • Co je Quartz
  • Sekvenční spouštění úloh
  • Tři způsoby, jak se zřetězením jobů vypořádat

 

Hackování webů běžnými „smrtelníky“ – záznam [Jiří Kanda, HAVIT Vzdělávací okénko 19.10.2017]

Záznam z interního vzdělávacího okénka HAVIT z 19.10.2017 je publikován na našem HAVIT YouTube Channel. Téma prezentoval Jiří Kanda:

Dotčená témata:

  • Open Redirects
  • XSS – Cross Site Scripting, ASP.NET Request Validation
  • MIME-type injection
  • External JS references, CDN, Tag Managers
  • Cross Site Request Forgery (XSRF/CSRF)
  • CORS – Cross Origin Resource Sharing, Preflight requests
  • X-Frame-Options
  • X-Content-Type-Options
  • X-XSS-Protection

NPM as a build tool – záznam [Vít Heřman, HAVIT Vzdělávací okénko 27. 4. 2017]

Záznam z interního vzdělávacího okénka HAVIT z 27.4.2017 je publikován na našem HAVIT YouTube Channel. Téma prezentoval Vít Heřman:

Dotčená témata:

  • Grunt
  • Gulp
  • Webpack
  • NPN
  • NPN scripts
  • Pre a post skripty