dotnet new

by Rok Bermež 15. June 2016 13:12
Ena izmed opcij novega dotnet orodja za orodno vrstico je tudi 'new' in nam omogoča inicializirati nov .Net projekt. V osnovi nam ponuja dodatne –t kot tip in –l kot jezik dodatne možnosti ter seveda privzeto prazno, ki bo generirala 'Hello World' konzolno aplikacijo, ki jo lahko odpremo s katerimkoli urejevalnikom besedil ali pa kar takoj prevedemo in poženemo: D:\Pika>dotnet new Created new C# project in D:\Pika. D:\Pika>dotnet restore log : Restoring packages for D:\Pika\project.json... log : Writing lock file to disk. Path: D:\Pika\project.lock.json log : D:\Pika\project.json log : Restore completed in 1612ms. D:\Pika>dotnet run Project Pika (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing Compiling Pika for .NETCoreApp,Version=v1.0 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:01.3401987 Hello World! Kot smo že omenili, lahko z -l zamenjamo jezik in z "dotnet new -l F#" naredimo namesto C# raje F# konzolno aplikacijo: D:\Pika>dotnet new -l F# Created new F# project in D:\Pika. D:\Pika>type Program.fs ´╗┐// Learn more about F# at http://fsharp.org open System [<EntryPoint>] let main argv = printfn "Hello World!" printfn "%A" argv 0 // return an integer exit code D:\Pika> Z –t izbiramo tip želenega projekta, tako na primer "dotnet new -t lib" hitro naredi novo knjižnico za enim Class1 razredom in prazno Empty metodo. Samo po sebi ne najbolj koristno, vendar vseeno v »dobro je vedeti« kategoriji. Prav tako lahko z "dotnet new -t xunittest" naredimo nov testni projekt, ki pa ga tokrat po "dotnet restore" pokličemo z "dotnet test": D:\Pika>dotnet new -t xunittest Created new C# project in D:\Pika. D:\Pika>dotnet restore log : Restoring packages for D:\Pika\project.json... warn : Dependency specified was dotnet-test-xunit (>= 1.0.0-rc2-192208-24) but ended up with dotnet-test-xunit 1.0.0-rc2-build10015. log : Writing lock file to disk. Path: D:\Pika\project.lock.json log : D:\Pika\project.json log : Restore completed in 2122ms. D:\Pika>dotnet test Project Pika (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing Compiling Pika for .NETCoreApp,Version=v1.0 D:\Pika\project.json(9,46): warning NU1007: Dependency specified was dotnet-test-xunit >= 1.0.0-rc2-192208-24 but ended up with dotnet-test-xunit 1.0.0-rc2-build10015. Compilation succeeded. 1 Warning(s) 0 Error(s) Time elapsed 00:00:01.4732457 xUnit.net .NET CLI test runner (64-bit win10-x64) Discovering: Pika Discovered: Pika Starting: Pika Finished: Pika === TEST EXECUTION SUMMARY === Pika Total: 1, Errors: 0, Failed: 0, Skipped: 0, Time: 0,184s SUMMARY: Total: 1 targets, Passed: 1, Failed: 0. Imamo tudi ASP.NET Core Hello World, do katerega pridemo s pomočjo ukaza "dotnet new -t Web.", ki nam naredi lep in enostaven začetni primer ASP.NET Core aplikacije, s primeri uporabe tehnologij kot so bower, gulp in npm. Alternativno lahko ustvarjamo ASP.NET Core projekte tudi s pomočjo precej močnejšega Yeoman Asp.Net generatorja: Vsi ti generatorji delujejo na Windows , Mac in Linux operacijskih sistemih, tako da bomo kmalu lahko 'vse' kar nam ponudi Visual studio v "File | New Project " menuju, lahko naredili preko orodne vrstice, tudi v konkurenčnih svetovih.

Tags:

.Net | c# | mvc | Web | Visual Studio

Docker v Azurju

by Rok Bermež 10. April 2016 11:24
Ko je Microsoft prvič napovedal podporo za Docker na svoji oblačni Azure platformi, je bilo videti, zgolj kot podpora za samo še eno orodje upravljanja z containerji, namesto uporabe command line orodij, medtem ko smo čakali na vgrajeno podporo motorja Docker v naslednjo različico operacijskega sistema Windows Server. Čeprav je Azure res temelji na operacijskem sistemu Windows Server, je odličen peskovnik za preizkušanje prototipov novih strežniških funkcij. Na primer, Azure CTO Mark Russinovich pravi, da je Azure za "ključni dejavnik, ki tesno sodeluje z ekipo Windows o zahtevah za v naslednjo različico operacijskega sistema Windows Server, saj bo Azure je glavna stranka." Zato se je podpora zanj v zadnjih šestih mesecih bistveno povečala, od zgolj možnosti prižiga Docker virtualnih strojev na dodajanje vedno več in več podpore za upravljanje platform, kar jo naredi še precej bolj zanimivo za devops scenarije. Oblačna storitev, kot je Azure, je odlična izbira za Docker, ker omogoča razvijalcem prenosljivost ter zmožnost gradnje nad zadevami, ki so jih naredili že drugi in tako precej hitrejši razvojni cikel. Čeprav je pri besedi devops po navadi, največji poudarek je bil na ops strani, je Docker edinstven ker bistveno spreminja produktivnost razvijalca, ker z združitvijo aplikacije z potrebno infrastrukturo za njeno delovanje končno reši standardni »deluje na mojem računalniku« glavobol tako da se lahko osredotočijo na optimizacijo prave infrastrukture za aplikacije ter vejo, da deluje in da imajo prenosljivost. " Lažja uporaba Docker containerjev in boljša integracija z ostalimi Azure storitvami pomeni, da lahko dobite prednosti devopsa brez večjih notranjih sprememb. Pri devops je del sprememb ponavadi tudi velika organizacijska sprememba. Velika stvar tega modela pa je, da loči aplikacije iz omejitev infrastrukture. Tako lahko spremenite svoj organizacijsko strukturo - vendar ga pa to ni nujno potrebno. Več pa si lahko preberete na https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-dockerextension/.

Tags:

Web | Azure

Manualy Submiting Unobtrusive MVC 3 Ajax Form

by Rok Bermež 21. April 2011 14:21
If you want to submit Ajax.BeginForm created ajax form a simple this.form.submit() wont work. Well to be exact it will, but not as it was intended. In order to make it work like expected, we can do it like this:   Html.DropDownList("selPredavanja",ViewBag.Lectures as SelectList,new { onchange = "Sys.Mvc.AsyncForm.handleSubmit( this.form, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'lectureData' });"})

Tags:

ASP.NET | mvc | Web

Windows Azure Cache Dependency

by Rok Bermež 10. April 2011 23:07
We are supposed to get Windows AppFabric Cache real soon, but till than form time to time we need to synchronize content cached inside our Web roles. SqlDependency is one way, but it cannot solve all problems (especialy those that are not based on SQL data). So to help with the matter I wrote AzureStorageCacheDependency that uses Azure storage to know when data is outdated and cache shloul be cleared. If anyone is in need of something similar, here it goes: public class AzureStorageCacheDependency : System.Web.Caching.CacheDependency { private System.Threading.Timer _timer; private int _poolTime; private CloudBlob _blob; private string _key; public AzureStorageCacheDependency(string connectionString, string conteinerAddress, string blobAddress, int poolTime = 5000) { _poolTime = poolTime; using (AzureContext azureContext = new AzureContext(true)) { var storageAccount = CloudStorageAccount.Parse(connectionString); CloudBlobClient blobStorage = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobStorage.GetContainerReference(conteinerAddress.ToLower()); container.CreateIfNotExist(); _blob = container.GetBlockBlobReference(blobAddress.ToLower()); if (!Exists(_blob)) { Reset(); } else { _key = _blob.DownloadText(); } } _timer = new Timer(new System.Threading.TimerCallback(CheckDependencyCallback), this, 0, _poolTime); } public void Reset() { _key = Guid.NewGuid().ToString(); _blob.UploadText(_key); } private void CheckDependencyCallback(object sender) { if (!Exists(_blob) || _key != _blob.DownloadText()) { NotifyDependencyChanged(this, EventArgs.Empty); _timer.Dispose(); } } public static bool Exists(CloudBlob blob) { try { blob.FetchAttributes(); return true; } catch (StorageClientException e) { if (e.ErrorCode == StorageErrorCode.ResourceNotFound) { return false; } else { throw; } } } } public class AzureContext : IDisposable { HttpContext _oldHttpContext; bool _restoreOldHttpContext = false; public AzureContext(bool forceSettingContextToNull = false) { if (forceSettingContextToNull) { _oldHttpContext = HttpContext.Current; HttpContext.Current = null; _restoreOldHttpContext = true; } else { try { HttpResponse response = HttpContext.Current.Response; } catch (HttpException) { _oldHttpContext = HttpContext.Current; HttpContext.Current = null; _restoreOldHttpContext = true; } } } public void Dispose(bool disposing) { if (disposing) { if (_restoreOldHttpContext) { HttpContext.Current = _oldHttpContext; } } } public void Dispose() { Dispose(true); } ~AzureContext() { Dispose(false); } }

Tags:

.Net | c# | ASP.NET | Azure | Web

ASP.NET MVC 3 AJAX REDIRECT RESULT

by Rok Bermež 5. April 2011 14:31
From time to time, we need to selectively redirect the browser to another location as a result of an AJAX action. Just returning RedirectResult won’t do the trick (even if we are used to similar functionality in ASP.NET AJAX in combination with WebForms ). Here is a very simple RedirectResult thet will be appropriate in those scenarios: public class AjaxRedirectResult : RedirectResult { public AjaxRedirectResult(string url): base(url){} public override void ExecuteResult(ControllerContext context) { if (context.RequestContext.HttpContext.Request.IsAjaxRequest()) { JavaScriptResult result = new JavaScriptResult() { Script = String.Format("window.location='{0}';", UrlHelper.GenerateContentUrl(Url, context.HttpContext)) }; result.ExecuteResult(context); } else base.ExecuteResult(context); } }

Tags:

.Net | c# | ASP.NET | mvc | Web

Calendar

<<  August 2017  >>
MonTueWedThuFriSatSun
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar

Page List

Month List